基於MATLAB中fft函式的時域取樣訊號頻譜生成程式碼
阿新 • • 發佈:2019-02-11
如何快速的將時域離散訊號的頻譜通過MATLAB的fft2函式表示出來:
clc
clear allclose all
fs = 500;
t = 0:1/fs:1.5;
f1 = 40;
f2 = 20;
x = sin(2 * pi * t * f1) + sin(2 * pi * t * f2); %input signalfigure(1)
plot(t, x);
title('input signal x[n]'); %input signal wave
figure(2)
f = (0:750) * fs / 751 - fs / 2;%750 derives from t, which (1.5 - 0) / (1 / fs) = 750, 0:1:750 there are 751 values
plot(f, abs(fftshift(fft(x)))); % plot input signal's frequency spectrum
%利用fftshift函式是必要的,fftshift函式的作用正是讓正負半軸的影象分別關於各自的中心對稱,
%因為直接用fft得出的資料與頻率是不對應的,fftshift可以糾正過來。
title('frequency components of the input singal');