1. 程式人生 > >基於MATLAB中fft函式的時域取樣訊號頻譜生成程式碼

基於MATLAB中fft函式的時域取樣訊號頻譜生成程式碼

如何快速的將時域離散訊號的頻譜通過MATLAB的fft2函式表示出來:

clc

clear all
close 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 signal
figure(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');