# How to do this unusual Fourier transform?

3 Ansichten (letzte 30 Tage)
L'O.G. am 24 Aug. 2023
Kommentiert: Walter Roberson am 25 Aug. 2023
I am trying to compute a sine transform:
I'm not sure about the non-standard bound of the integral (why it's not infinity???).
Anyway, let's say f_t = rand(40,1). Then,
N = 1000;
omega = logspace(-2,2,N);
for ii = 1:N
f_omega{ii} = omega(ii).*integral(@(t) f_t.*sin(omega(ii).*t),0,2*pi./omega(ii),'ArrayValued',true);
end
gives a vector of length 40 for each omega, which doesn't seem right to me. I should have just a vector of length N at the end. How do I do this integral? And should it matter what range in t I choose for f(t)?
##### 3 Kommentare1 älteren Kommentar anzeigen1 älteren Kommentar ausblenden
L'O.G. am 25 Aug. 2023
@Star Strider How would you recommend doing this integral then? Please see my comment below as well.
Star Strider am 25 Aug. 2023
I could not get it to work numerically, even using the non-random sine function for ‘f_t’ so that I could be certain that it had a non-random result. I did the symbolic calculation and plot to see what the correct result would be (sort of like looking in the back of the book to see what the correct answer is).

Melden Sie sich an, um zu kommentieren.

### Antworten (1)

Walter Roberson am 25 Aug. 2023
Anyway, let's say f_t = rand(40,1).
Let's not say that.
f is a function of t. By saying that f_t = rand(40,1) you are saying that f is constant in t, and is a 40-dimensional (constant) point. When you integrate that, of course you are going to end up with a 40-dimensional result.
##### 5 Kommentare3 ältere Kommentare anzeigen3 ältere Kommentare ausblenden
L'O.G. am 25 Aug. 2023
Bearbeitet: L'O.G. am 25 Aug. 2023
Thank you both. @Walter Roberson Excellent point about f(t). I was trying to simplify the notation, but I might've simplified it too much. The actual equation is:
where is the "unit vector along the element axis". is just a constant. only has nonzero values in x, so I think the element axis here should just be the x-axis. There's just one value of for a particular time t, so perhaps constructing it as a vector is not right as you indicated. Based on what you're saying, I would also not regard as the transform of . I am really in the dark about how to do this. Would appreciate your and @Star Strider's insight.
Walter Roberson am 25 Aug. 2023
Using that notation, but with the same functionality as Star Strider already posted:
syms f(t) G(omega) varepsilon_0 e_1
Pi = sym(pi);
sympref('AbbreviateOutput',false);
f(t) = cos(5*Pi*t)
f(t) =
G(omega) = omega/(varepsilon_0 * Pi) * int((f(t)*e_1) * sin(omega*t), t, 0, 2*Pi/omega);
G = simplify(G, 500)
G(omega) =
G_representative = subs(G, {e_1, varepsilon_0}, {1,1})
G_representative(omega) =
figure
fplot(G_representative,[0.01 1000])
grid
Ax = gca;
Ax.XScale = 'log';

Melden Sie sich an, um zu kommentieren.

### Kategorien

Mehr zu Code Performance finden Sie in Help Center und File Exchange

R2021b

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by