数字信号处理实验五-用FFT做频谱分析
数字信号处理实验五
用FFT做频谱分析
实验目的:
(1)通过本实验,加深对DTFT和IDFT以及DFT和FFT的理解,熟悉FFT子程序
(2)熟悉应用FFT对典型信号进行频谱分析的方法
(3)了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT
(4)熟悉应用FFT实现两个序列线性卷积的方法
(5)初步了解用周期图法做随机信号频谱分析的方法
实验内容:
(1)已知有限长序列x(n)=[1,0.5,0,0.5,1,1,0.5,0],要求:用FFT求该序列的DFT、IDFT的图形。
程序如下:
xn=[1,0.5,0,0.5,1,1,0.5,0];
n=length(xn);
k=0:n-1;
subplot(2,2,1);
stem(k,xn,'k.');
title('x(n)');
Xk=fft(xn,n);
subplot(2,1,2);
stem(k,abs(Xk));
title('Xk=DFT(xn)');
xn1=ifft(Xk,n);
subplot(2,2,2);
stem(k,xn1);
title('x(n)=IDFT(Xk)');
波形如下:
假设采样频率Fs=20Hz,序列长度N分别取8、32和64,用FFT计算幅度谱和相位谱。
程序如下:
clear;close all
fs=20;
T=1/fs;
N=[8,32,64];
for m=1:3
x=[1,0.5,0,0.5,1,1,0.5,0];
x1=fft(x,N(m));
x2=ifft(x,N(m));
subplot(3,2,2*m-1);
stem([0:N(m)-1],abs(x1),'o');
title('幅度谱');
subplot(3,2,2*m);
stem([0:N(m)-1],abs(x2),'o');
title('相位谱');
end
波形如下:
(2)用FFT计算下面连续信号的频谱,并观察选择不同的采样周期Ts和序列长度N值对频谱特性的影响:
=-t
+
t
+
t
x e t
t
t
(sin
2.2
),
sin
1.2
2
sin
)(01.0≥
a
程序如下:
clear;close all
fs=4;T=1/fs;
Tp=4;N=Tp*fs;
N1=[N,4*N,8*N];
T1=[T,2*T,4*T];
for m=1:3
n=1:N1(m);
x1=exp(-0.01*T);
x2=sin(2*n*T)+sin(2.1*n*T)+sin(2.2*n*T);
x=x1*x2;
xk=fft(x,51)
fk=[0:50]/51/T
subplot(3,2,2*m-1);
stem(fk,abs(xk)/max(abs(xk)),'k.');
xlabel(T1(m));
ylabel(N1(m));
if m==1
title('序列长度')
end
end
for m=1:3
n=1:14;
x1=exp(-0.01*T1(m));
x2=sin(2*n*T1(m))+sin(2.1*n*T1(m))+sin(2.2*n*T1(m)); x=x1*x2;
xk=fft(x,51)
fk=[0:50]/51/T
subplot(3,2,2*m);
stem(fk,abs(xk)/max(abs(xk)),'k.');
xlabel(T1(m));
ylabel(N1(m));
if m==1
title('采样周期')
end
end
波形如下:
(注:可编辑下载,若有不当之处,请指正,谢谢!)