MATLAB中FFT的使用方法
一■调用方法
X=FFT(x);
X=FFT(x,N);
x=IFFT(X);
x=IFFT(X,N)
用MATLAB进行谱分析时注意:
函数FFT返回值的数据结构具有对称性。
例:
N=8幅xlabel('频率/Hz');ylabel('振幅');
title('Ndata=32Nfft=32');gridon;
Ndata=32;%数据个数
N=128;%FFT采用的数据长度
n=0:Ndata-1;t=n/fs;%时间序列
x=*sin(2*pi*15*t)+2*sin(2*pi*40*t);
y=fft(x,N);
mag=abs(y);
f=(0:N-1)*fs/N;%真实频率
subplot(2,2,2),plot(f(1:N/2),mag(1:N/2)*2/N);%绘出Nyquist频率之前的振幅xlabel('频率/Hz');ylabel('振幅');
title('Ndata=32Nfft=128');gridon;
Ndata=136;%数据个数
N=128;%FFT采用的数据个数
n=0:Ndata-1;t=n/fs;%时间序列
x=*sin(2*pi*15*t)+2*sin(2*pi*40*t);
y=fft(x,N);
mag=abs(y);
f=(0:N-1)*fs/N;%真实频率
subplot(2,2,3),plot(f(1:N/2),mag(1:N/2)*2/N);%绘出Nyquist频率之前的振幅xlabel('频率/Hz');ylabel('振幅');
title('Ndata=136Nfft=128');gridon;
Ndata=136;%数据个数
N=512;%FFT所用的数据个数
n=0:Ndata-1;t=n/fs;%时间序列
x=*sin(2*pi*15*t)+2*sin(2*pi*40*t);
y=fft(x,N);
mag=abs(y);
f=(0:N-1)*fs/N;%真实频率
subplot(2,2,4),plot(f(1:N/2),mag(1:N/2)*2/N);%绘出Nyquist频率之前的振幅xlabel('频率/Hz');ylabel('振幅');
title('Ndata=136Nfft=512');gridon;
15
2040
频率也
Ndata=136Nfft=128
Ndata=32Nm=32
15
1
60°0
E0
Ndata=32Nfft=128
2040
频率FHz:Ndata=13'6Nffi-512
0-
0
「」
2040
频率用辽
60°0
1
1
1
1
1
1
■1
1
—丄―—
JLiJ
60
2040
频率/Hz:
304
结论:
(1)当数据个数和FFT采用的数据个数均为32时,频率分辨率较低,但没有由于添零而导致的其他频率成分。
(2)由于在时间域内信号加零,致使振幅谱中出现很多其他成分,这是加零造成的。其振幅由于加了多个零而明显减小。
(3)FFT程序
MATLAB中FFT的使用方法 来自淘豆网m.daumloan.com转载请标明出处.