Inquiry about Fourier Transform
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Angel Lozada
am 5 Mai 2021
Kommentiert: Angel Lozada
am 12 Mai 2021
Hello.
Hello.
According to Matlab documents regarding to Fourier Transform calculation, the code to do so is:
Ts = 1/25;
t = 0:Ts:10-Ts;
x = sin(2*pi*15*t) + sin(2*pi*20*t);
plot(t,x)
xlabel('Time (seconds)')
ylabel('Amplitude')
y = fft(x);
fs = 1/Ts;
f = (0:length(y)-1)*fs/length(y);
plot(f,abs(y))
xlabel('Frequency (Hz)')
ylabel('Magnitude')
title('Magnitude')
n = length(x);
fshift = (-n/2:n/2-1)*(fs/n);
yshift = fftshift(y);
plot(fshift,abs(yshift))
xlabel('Frequency (Hz)')
ylabel('Magnitude')
I have some inquiries:
I do not understand variable f and fshift?
- What does mean?
- Is always write it like that?
- How can I show the expression for y = fft(x)?
0 Kommentare
Akzeptierte Antwort
Pratyush Roy
am 10 Mai 2021
Hi,
The variables f and fshift are MATLAB arrays which represent the frequency components of a signal, where the array f varies within the interval [0,Fs] and fshift varies within the interval [-Fs/2,Fs/2]. While performing fftshift, we shift the zero-frequency component to the center of the spectrum. As a result, the spectrum is now centered around zero. We can choose different variable names for them as well.
When you mention show the expression y=fft(x), I understand you want to show the values in the y-array containing the FFT values. You can either print them out using disp
disp(y)
y = fft(x);
fs = 1/Ts; %Ts = Sampling interval
f = (0:length(y)-1)*fs/length(y);
plot(f,abs(y))
Hope this helps!
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Fourier Analysis and Filtering finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!