数字信号实验2.docx

上传人:b****5 文档编号:8567656 上传时间:2023-01-31 格式:DOCX 页数:14 大小:452.65KB
下载 相关 举报
数字信号实验2.docx_第1页
第1页 / 共14页
数字信号实验2.docx_第2页
第2页 / 共14页
数字信号实验2.docx_第3页
第3页 / 共14页
数字信号实验2.docx_第4页
第4页 / 共14页
数字信号实验2.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

数字信号实验2.docx

《数字信号实验2.docx》由会员分享,可在线阅读,更多相关《数字信号实验2.docx(14页珍藏版)》请在冰豆网上搜索。

数字信号实验2.docx

数字信号实验2

实验二快速Fourier变换(FFT)及其应用

一、实验目的

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

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

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

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

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

二、实验原理与方法

 在各种信号序列中,有限长序列信号处理占有很重要地位,对有限长序列,我们可以使

用离散Fouier变换(DFT)。

这一变换不但可以很好的反映序列的频谱特性,而且易于用快速算法在计算机上实现,当序列x(n)的长度为N时,它的DFT定义为:

反变换为:

   有限长序列的DFT是其Z变换在单位圆上的等距采样,或者说是序列Fourier变换的等距采样,因此可以用于序列的谱分析。

   FFT并不是与DFT不同的另一种变换,而是为了减少DFT运算次数的一种快速算法。

它是对变换式进行一次次分解,使其成为若干小点数的组合,从而减少运算量。

常用的FFT是以2为基数的,其长度

它的效率高,程序简单,使用非常方便,当要变换的序列长度不等于2的整数次方时,为了使用以2为基数的FFT,可以用末位补零的方法,使其长度延长至2的整数次方。

三、实验内容及步骤

   实验中用到的信号序列:

a)Gaussian序列

b)衰减正弦序列

c)三角波序列

d)反三角波序列

上机实验内容:

(1)、观察高斯序列的时域和幅频特性,固定信号xa(n)中参数p=8,改变q的值,使q分别等于2,4,8,观察它们的时域和幅频特性,了解当q取不同值时,对信号序列的时域幅频特性的影响;固定q=8,改变p,使p分别等于8,13,14,观察参数p变化对信号序列的时域及幅频特性的影响,观察p等于多少时,会发生明显的泄漏现象,混叠是否也随之出现?

记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。

%%定义高斯序列

%function[Xa,Fa]=gauss(p,q)

%n=[0:

15];

%Xa(n+1)=exp(-(n+1-p).^2./q);

%F=fft(Xa);

%Fa=abs(F);

clearall;

%%%%%%%p=8,q=2%%%%%%%%%%%%

[Xa1,Fa1]=gauss(8,2);

k=0:

15;

subplot(5,2,1);plot(k,Xa1);

xlabel('n');ylabel('时域特性');text(10,0.5,'p=8,q=2');

subplot(5,2,2);plot(k,Fa1);

xlabel('n');ylabel('幅频特性');text(8,3,'p=8,q=2');

%%%%%%%p=8,q=4%%%%%%%%%%%%

[Xa2,Fa2]=gauss(8,4);

subplot(5,2,3);plot(k,Xa2);

xlabel('n');ylabel('时域特性');text(10,0.5,'p=8,q=4');

subplot(5,2,4);plot(k,Fa2);

xlabel('n');ylabel('幅频特性');text(8,3,'p=8,q=4');

%%%%%%%p=8,q=8%%%%%%%%%%%%

[Xa3,Fa3]=gauss(8,8);

subplot(5,2,5);plot(k,Xa3);

xlabel('n');ylabel('时域特性');text(10,0.5,'p=8,q=8');

subplot(5,2,6);plot(k,Fa3);

xlabel('n');ylabel('幅频特性');text(8,3,'p=8,q=8');

%%%%%%%p=13,q=8%%%%%%%%%%

[Xa4,Fa4]=gauss(13,8);

subplot(5,2,7);plot(k,Xa4);

xlabel('n');ylabel('时域特性');text(10,0.5,'p=13,q=8');

subplot(5,2,8);plot(k,Fa4);

xlabel('n');ylabel('幅频特性');text(8,3,'p=13,q=8');

%%%%%%%p=14,q=8%%%%%%%%%%

[Xa5,Fa5]=gauss(14,8);

subplot(5,2,9);plot(k,Xa5);

xlabel('n');ylabel('时域特性');text(10,0.5,'p=14,q=8');

subplot(5,2,10);plot(k,Fa5);

xlabel('n');ylabel('幅频特性');text(8,3,'p=14,q=8');

(2)、观察衰减正弦序列xb(n)的时域和幅频特性,a=0.1,f=0.0625,检查谱峰出现位置是否正确,注意频谱的形状,绘出幅频特性曲线,改变f,使f分别等于0.4375和0.5625,观察这两种情况下,频谱的形状和谱峰出现位置,有无混叠和泄漏现象?

说明产生现象的原因。

%定义衰减正弦序列

%function[Xb,Fb]=downsin(a,f)

%n=[0:

15];

%Xb(n+1)=exp(-a.*n).*sin(2*pi*f.*n);%自然对数的底:

e=:

2.71828182845904523536

%F=fft(Xb);

%Fb=abs(F);

clearall;

k=0:

15;

%%%%%%%%%a=0.1,f=0.0.0625%%%%%%%%%%%

[Xb,Fb]=downsin(0.1,0.0625);

subplot(3,2,1);plot(k,Xb);

xlabel('n');ylabel('时域特性');text(8,0.5,'a=0.1,f=0.0625');

subplot(3,2,2);plot(k,Fb);

xlabel('n');ylabel('幅值特性');text(10,3,'a=0.1,f=0.0625');

%%%%%%%%%a=0.1,f=0.4375%%%%%%%%%%%

[Xb1,Fb1]=downsin(0.1,0.4375);

subplot(3,2,3);plot(k,Xb1);

xlabel('n');ylabel('时域特性');text(8,0.5,'a=0.1,f=0.4375');

subplot(3,2,4);plot(k,Fb1);

xlabel('n');ylabel('幅值特性');text(10,3,'a=0.1,f=0.4375');

%%%%%%%%%a=0.1,f=0.5625%%%%%%%%%%

[Xb2,Fb2]=downsin(0.1,0.5625);

subplot(3,2,5);plot(k,Xb2);

xlabel('n');ylabel('时域特性');text(8,0.5,'a=0.1,f=0.5625');

subplot(3,2,6);plot(k,Fb2);

xlabel('n');ylabel('幅值特性');text(10,3,'a=0.1,f=0.5625');

(3)、观察三角波和反三角波序列的时域和幅频特性,用N=8点FFT分析信号序列xc(n)和xd(n)的幅频特性,观察两者的序列形状和频谱曲线有什么异同?

绘出两序列及其幅频特性曲线。

在xc(n)和xd(n)末尾补零,用N=16点FFT分析这两个信号的幅频特性,观察幅频特性发生了什么变化?

两情况的FFT频谱还有相同之处吗?

这些变化说明了什么?

clearall;

n=[0:

3];k=[1:

8];

%定义三角波序列

Xc(n+1)=n;Xc(n+5)=4-n;

%三角波特性

subplot(2,1,1);plot(k-1,Xc);

xlabel('n');ylabel('时域特性');text(1,3,'三角波');

subplot(2,1,2);plot(k-1,abs(fft(Xc)));

xlabel('k');ylabel('幅频特性');text(4,10,'三角波');

%末尾补0,计算32点FFT

Xc(9:

32)=0;Xd(9:

32)=0;k=1:

32;figure;

%三角波特性

subplot(2,1,1);plot(k-1,Xc);

xlabel('n');ylabel('时域特性');text(1,3,'三角波');

subplot(2,1,2);plot(k-1,abs(fft(Xc)));

xlabel('k');ylabel('幅频特性');text(4,10,'三角波');

(4)、一个连续信号含两个频率分量,经采样得

x(n)=sin2π*0.125n+cos2π*(0.125+Δf)nn=0,1……,N-1

已知N=16,Δf分别为1/16和1/64,观察其频谱;当N=128时,Δf不变,其结果有何不同,为什么?

clearall;

%%%%%%%N=16%%%%%%%%%%%%

N=16;detf=1/16;n=[0:

N-1];

x1(n+1)=sin(2*pi*0.125.*n)+cos(2*pi*(0.125+detf).*n);

detf=1/64;x2(n+1)=sin(2*pi*0.125.*n)+cos(2*pi*(0.125+detf).*n);

%%%%%%%N=16,detf=1/16%%%%%%%%%%%%

subplot(2,2,1);stem(n,x1);hold;plot(n,x1);

xlabel('n');ylabel('时域特性');text(6,1,'N=16,detf=1/16');

subplot(2,2,2);stem(n,abs(fft(x1)));

xlabel('n');ylabel('幅值特性');text(6,4,'N=16,detf=1/16');

%%%%%%%N=16,detf=1/64%%%%%%%%%%%%

subplot(2,2,3);stem(n,x2);

xlabel('n');ylabel('时域特性');text(6,1,'N=16,detf=1/64');

subplot(2,2,4);stem(n,abs(fft(x2)));

xlabel('n');ylabel('幅值特性');text(6,4,'N=16,detf=1/64');

%%%%%%%N=128%%%%%%%%%%%%

N=128;detf=1/16;n=[0:

N-1];

x3(n+1)=sin(2*pi*0.125.*n)+cos(2*pi*(0.125+detf).*n);

detf=1/64;

x4(n+1)=sin(2*pi*0.125.*n)+cos(2*pi*(0.125+detf).*n);

%%%%%%%N=128,detf=1/16%%%%%%%%%%%%

figure;subplot(2,2,1);stem(n,x3);

xlabel('n');ylabel('时域特性');axis([0128-22]);text(6,1.5,'N=128,detf=1/16');

subplot(2,2,2);stem(n,abs(fft(x3)));

xlabel('n');ylabel('幅值特性');axis([0128-1070]);text(40,60,'N=128,detf=1/16');

%%%%%%%N=128,detf=1/64%%%%%%%%%%%%

subplot(2,2,3);stem(n,x3);

xlabel('n');ylabel('时域特性');axis([0128-22]);text(6,1.5,'N=128,detf=1/16');

subplot(2,2,4);stem(n,abs(fft(x4)));

xlabel('n');ylabel('幅值特性');axis([0128-1070]);text(40,60,'N=128,detf=1/16');

(5)、用FFT分别实现xa(n)(p=8,q=2)和xb(n)(a=0.1,f=0.0625)的16点圆周卷积和线性卷积。

 

clearall;

N=16;

n=0:

N-1;

p=8;q=2;

Xa(n+1)=exp(-(n-p).^2./q);

a=0.1;f=0.0625;

Xb(n+1)=exp(-a.*n).*sin(2*pi*f.*n);

%16点循环卷积

Fa=fft(Xa);Fb=fft(Xb);

Fx=Fa.*Fb;

X51=ifft(Fx);

stem(n,X51);

%16点线性卷积

Xa(N+1:

2*N-1)=0;

Xb(N+1:

2*N-1)=0;

Fa=fft(Xa);Fb=fft(Xb);

Fc=Fa.*Fb;

X52=ifft(Fc);

figure;stem(1:

2*N-1,X52);

 

(7)用FFT分别计算xa(n)(p=8,q=2)和xb(n)(a=0.1,f=0.0625)的16点循环相关和线性相关,问一共有多少种结果,他们之间有何异同点。

clearall;

N=16;

n=0:

N-1;

p=8;q=2;

Xa(n+1)=exp(-(n-p).^2./q);

a=0.1;f=0.0625;

Xb(n+1)=exp(-a.*n).*sin(2*pi*f.*n);

N=length(Xa);

%16点循环相关

Fa=fft(Xa,2*N);Fb=fft(Xb,2*N);

Fx=conj(Fa).*Fb;

X71=real(ifft(Fx));

X71=[X71(N+2:

2*N)X71(1:

N)];

n=(-N+1):

(N-1);stem(n,X71);

%16点线性相关

Xa(N+1:

2*N-1)=0;

Xb(N+1:

2*N-1)=0;

Fa=fft(Xa);Fb=fft(Xb);

Fc=conj(Fa).*Fb;

X72=real(ifft(Fc));

figure;stem(1:

2*N-1,X72);

(8)用FFT分别计算xa(n)(p=8,q=2)和xb(n)(a=0.1,f=0.0625)的自相关函数。

clearall;

N=16;

n=0:

N-1;

p=8;q=2;

Xa(n+1)=exp(-(n-p).^2./q);

a=0.1;f=0.0625;

Xb(n+1)=exp(-a.*n).*sin(2*pi*f.*n);%自然对数的底:

e=:

2.71828182845904523536

N=length(Xa);

%Xa(n)16点自相关

Fa=fft(Xa,2*N);Fb=fft(Xb,2*N);

F1=conj(Fa).*Fa;

X81=real(ifft(F1));

X81=[X81(N+2:

2*N)X81(1:

N)];

n=(-N+1):

(N-1);

subplot(2,1,1);stem(n,X81);

xlabel('n');ylabel('幅度');

%Xb(n)16点自相关

Fb=fft(Xb,2*N);

F2=conj(Fb).*Fb;

X82=real(ifft(F2));

X82=[X82(N+2:

2*N)X82(1:

N)];

%n=(-N+1):

(N-1);

subplot(2,1,2);stem(n,X82);

xlabel('n');ylabel('幅度');

四思考题

1.实验中的信号序列x

(n)和x

(n),在单位圆上的Z变换频谱

会相同吗?

如果不同,你能说出哪一个低频分量更多一些吗?

为什么?

答:

不相同,它们在单位圆上的Z变换频谱中,xc(n)的低频分量比xd(n)的多一些。

2.对一个有限长序列进行离散傅里叶变换(DFT),等价于将该序列周期延拓后进行傅里叶级数展开。

因为DFS也只是取其中一个周期来运算,所以FFT在一定条件下也可以用分析周期信号序列。

如果正弦信号sin(2

fn),f=0.1,用16点的FFT来做DFS运算,得到的频谱是信号本身的真实谱吗?

答:

只有当DFS变换的点数N与进行FFT变换的点数K相同的时候,才可以认为DFS与FFT的变换是等价的,可以用DFS来分析FFT。

但是在N与K不相等的时候,DFS与FFT变换不等价。

五实验总结

通过本次试验,我对快速Fourier变换(FFT)有了更深一步的了解,熟悉了应用FFT对典型信号进行频谱分析的方法,了解了应用FFT进行信号频谱分析过程中可能出现的问题以便在实际中正确应用FFT。

熟悉了应用FFT实现两个序列的线性卷积的方法,初步了解了用周期图法作随机信号谱分析的方法。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1