数字信号处理实验五-用FFT做频谱分析

数字信号处理实验五-用FFT做频谱分析
数字信号处理实验五-用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

波形如下:

(注:可编辑下载,若有不当之处,请指正,谢谢!)

相关主题
相关文档
最新文档