Inquiry about Fourier Transform
7 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Pratyush Roy
2021 年 5 月 10 日
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!
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Fourier Analysis and Filtering についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!