一、DFT之前言部分
由于matlab已提供了内部函数来计算DFT、IDFT,我们只需要会调用fft、ifft函数就行;
二、函数说明:
fft(x):计算N点的DFT。N是序列x的长度,即N=length(x);
fft(x,L):计算L点的DFT。若L<N,则将原序列x截短为L点序列,再计算其L点的DFT;若L>N,则将原序列x补0至L点,然后通过计算其L点DFT。
ifft(X):计算N点的IDFT。N是序列x的长度,即N=length(X)。
ifft(X,L):计算L点的IDFT。若L<N,则将原序列x截短为L点序列,再计算其L点的IDFT;若L>N,则将原序列x补0至L点,然后通过计算其L点IDFT。
N=30;
L=512;
f1=100;
f2=120;
fsam=600;
T=1/fsam;
wsam=2*pi*fsam;
t=(0:N-1)*T;
x=cos(2*pi*f1*t)+cos(2*pi*f2*t);
X=fft(x,L);
X1=fftshift(X);
w=(-wsam/2+(0:L-1)*wsam/L)/(2*pi);
plot(w,abs(X1));
ylabel('幅度值');