用FFT做谱分析Matlab2

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二 用FFT 做谱分析

一、实验目的

1.

在理论学习的基础上,通过本实验,加深对FFT 的理解,熟悉FFT 子程序; 2.

熟悉应用FFT 对典型信号进行频谱分析的方法; 3.

了解应用FFT 对信号频谱分析过程中可能出现的问题以便在实际中正确应用FFT ; 4.

熟悉应用FFT 实现两个序列的线性卷积的方法; 5.

初步了解用周期图法作随机信号谱分析的方法; 6.

在理论学习的基础上,通过本实验,加深对DFT 的理解,熟悉DFT 子程序; 7.

掌握计算离散信号DFT 的方法; 8. 体会有限长序列DFT 与离散时间傅里叶变换DTFT 之间的联系;

9. 掌握用Matlab 进行离散傅里叶变换DFT 及其逆变换IDFT 的方法。

二、实验内容

1、已知有限长序列x(n)=[1,0.5,0,0.5,1,1,0.5,0], 要求:

(1) 用FFT 求该序列的DFT 、IDFT 的图形;

(2) 假设采样频率Fs=20Hz,序列长度长度N 分别取8、32和64,用FFT 计算其幅度频

谱和相位频谱。

2、用FFT 计算下面连续信号的频谱,并观察选择不同的采样周期Ts 和序列长度N 值对频谱特性的影响。0),2.2sin 1.2sin 2(sin )(01.0≥++=-t t t t e t x t a

3、已知有限长序列x(n)=[7,6,5,4,3,2], 求x(n)的DFT 和IDFT 。要求:

(1) 画出序列DFT 对应的|X(k)|和arg[X(k)]的图形;

(2) 画出原信号与 IDFT[X(k)]的图进行比较。

4、将第3题中的x(n)以补零方式加长到1000≤≤n ,重复第3题。

三、实现步骤

1、已知有限长序列x(n)=[1,0.5,0,0.5,1,1,0.5,0], 要求:

(1)用FFT 求该序列的DFT 、IDFT 的图形;

x=[1,0.5,0,0.5,1,1,0.5,0];

N=length(x);

n=0:N-1;

figure(1)

subplot(2,2,1.5)

stem(n,x)

title('x(n)');

n1=0:29;

y=fft(x,30);

subplot(2,2,3)

stem(n1,y)

title('DFT1');

y=ifft(x,30);

subplot(2,2,4)

stem(n1,y)

title('IDFT1'); 图1

(2)假设采样频率Fs=20Hz,序列长度长度N 分别取8、32和64,用FFT 计算其幅度频谱和相位频谱。

fs=20;T=1/fs; Tp=pi; N1=[8,32,64]; m=1; n=1:N1(m); xn=[1,0.5,0,0.5,1,1,0.5,0]; Xk=fft(xn,100); fk=[1:100]/100/T; subplot(3,2,2*m-1) stem(fk,Xk/max(abs(Xk))); subplot(3,2,2*m) stem(fk*2*pi,Xk/max(abs(Xk)));

m=2; n=1:N1(m); xn=[1,0,0,0,0.5,0,0,0,0,0,0,0,0.5,0,0,0,1,0,0,0,1,0,0,0,0.5,0,0,0,0,0,0,0]; Xk=fft(xn,100); fk=[1:100]/100/T;

subplot(3,2,2*m-1)

stem(fk,Xk/max(abs(Xk))); subplot(3,2,2*m)

stem(fk*2*pi,Xk/max(abs(Xk)));

m=3;

n=1:N1(m);

xn=[1,0,0,0,0,0,0,0,0,0.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.5,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0.5,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; Xk=fft(xn,100);

fk=[1:100]/100/T;

subplot(3,2,2*m-1)

stem(fk,Xk/max(abs(Xk))); subplot(3,2,2*m)

stem(fk*2*pi,Xk/max(abs(Xk)));

图2

2、用FFT 计算下面连续信号的频谱,并观察选择不同的采样周期Ts 和序列长度N 值对频谱特性的影响。

0),2.2sin 1.2sin 2(sin )(01.0≥++=-t t t t e t x t a

fs=2;T=1/fs;

Tp=pi;N=Tp*fs;

N1=[N,4*N,8*N];

st=['|X1(jf)|';'|X4(jf)|';'|X8(jf)|'];

for m=1:3

n=1:N1(m);

xn=exp(-0.01*n*T).*(sin(2*n*T)+sin(2.1*n*T)+sin(2.2*n*T));

Xk=fft(xn,100);

fk=[1:100]/100/T;

subplot(3,2,2*m-1)

plot(fk,abs(Xk)/max(abs(Xk)));

ylabel(st(m,:));

end

fs=[2 4 8];T=1./fs;

Tp=pi;N=4*pi;

st=['fs=2';'fs=4';'fs=8'];

for m=1:3

n=1:N;

xn=exp(-0.01*n*T(m)).*(sin(2*n*T(m))+sin(2.1*n*T(m))+sin(2.2*n*T( m)));

Xk=fft(xn,100);

fk=[1:100]/100/T(m);

subplot(3,2,2*m)

plot(fk,abs(Xk)/max(abs(Xk)));

axis([0,8,0,1]);

ylabel(st(m,:));

end

图3

3、已知有限长序列x(n)=[7,6,5,4,3,2], 求x(n)的DFT 和IDFT。要求:

(1)画出序列DFT对应的|X(k)|和arg[X(k)]的图形;

(2)画出原信号与IDFT[X(k)]的图进行比较。

x=[7,6,5,4,3,2]; N=length(x);

n=0:N-1;subplot(4,2,1.5) stem(n,x)

title('x(n)');

相关文档
最新文档