MATLAB FFT的使用方法
2009-08-22 11:00
说明:以下资源来源于《数字信号处理的 MATLAB;现》万永革主编
X=FFT(X);
X=FFTX, N);
x=IFFT(X);
x=IFFT(X,N)
用MATLAB!行谱分析时注意:
函数FFT返回值的数据结构具有对称性。
例:
N=8;
n=0:N-1;
xn=[4 3 2 6 7 8 9 0];
Xk=fft(xn)
Xk =
+
- +
0 + - -
Xk与xn的维数相同,共有8个元素。Xk的第一个数对应于直流分量,即频率值 为00
做FFT分析时,幅值大小与FFT选择的点数有关,但不影响分析结果。在 IFFT时已经做了处理。要得到真实的振幅值的大小,只要将得到的变换后结果 乘以2除以N即可。
例 1: x=*sin(2*pi*15*t)+2*sin(2*pi*40*t) 。采样频率 fs=100Hz,分别绘
制N=128 1024点幅频图。
clf;
fs=100;N=128; %采样频率和数据点数
n=0:N-1;t=n/fs; %时间序歹 U
x=*sin(2*pi*15*t)+2*sin(2*pi*40*t); % 信号
y=fft(x,N); %对信号进行快速Fourier变换
mag=abs(y); %求得Fourier变换后的振幅
f=n*fs/N; %® 率序列
subplot(2,2,1),plot(f,mag); %绘出随频率变化的振幅
xlabel('频率 /Hz');
ylabel('振幅');title('N=128');grid on;
subplot(2,2,2),plot(f(1:N⑵,mag(1:N⑵);% 绘出 Nyquist 频率之前随频率
变化的振幅
xlabel('频率 /Hz');
ylabel('振幅');title('N=128');grid on;
以对信号采样数据为1024点的处理
fs=100;N=1024;n=0:N-1;t=n/fs;
x=*sin(2*pi*15*t)+2*sin(2*pi*40*t); % 信号
y=fft(x,N); %对信号进行快速Fourier变换
mag=abs(y); %求取Fourier变换的振幅
f=n*fs/N;
subplot(2,2,3),plot(f,mag); % 绘出随频率变化的振幅
xlabel('频率 /Hz');
ylabel('振幅');title('N=1024');grid on;
subplot(2,2,4)
plot(f(1:N/2),mag(1:N/2)); % 绘出Nyquist频率之前随频率变化的振幅 xlabel('频率 /Hz');
ylabel('振幅');title('N=1024');grid on;
运行结果:
例 2: x=*sin(2*pi*15*t)+2*sin(2*pi*40
MATLAB中FFT的使用方法 来自淘豆网m.daumloan.com转载请标明出处.