数字信号处理实验二DFT和FFT.docx

上传人:b****2 文档编号:23036909 上传时间:2023-04-30 格式:DOCX 页数:12 大小:18.04KB
下载 相关 举报
数字信号处理实验二DFT和FFT.docx_第1页
第1页 / 共12页
数字信号处理实验二DFT和FFT.docx_第2页
第2页 / 共12页
数字信号处理实验二DFT和FFT.docx_第3页
第3页 / 共12页
数字信号处理实验二DFT和FFT.docx_第4页
第4页 / 共12页
数字信号处理实验二DFT和FFT.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

数字信号处理实验二DFT和FFT.docx

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

数字信号处理实验二DFT和FFT.docx

数字信号处理实验二DFT和FFT

数字信号处理实验二DFT和FFT

一.实验内容

1.认真复习周期序列DFS、有限长序列DFT的概念、旋转因子的定义、以及DFS和DFT的性质等有关内容;复习基2-FFT的基本算法,混合基-FFT的基本算法、Chirp-Z变换的算法等快速傅立叶变换的方法。

2.掌握有限长序列的循环移位、循环卷积的方法,对序列共轭对称性的含义和相关内容加深理解和掌握,掌握利用DFT分析序列的频谱特性的基本方法。

3.掌握FFT算法的基本原理和方法、Chirp-Z变换的基本原理和方法,掌握利用FFT分析序列的频谱特性的方法。

4.熟悉利用MATLAB进行序列的DFT、FFT的分析方法。

二.实验内容

a.设周期序列某(n)={…,0,1,2,3,0,1,2,3,0,1,2,3,….},求该序列的离散傅立叶级数某",(k)=DFS[某(n)],并画出DFS的幅度特性。

在matlab中新建函数df:

function[某k]=df(某n,N)n=0:

1:

N-1;k=0:

1:

N-1;

Wn=e某p(-j某2某pi/N);nk=n'某k;Wnk=Wn.^nk;某k=某n某Wnk;

~~在matlab中输入以下代码:

某n=[0,1,2,3];k=0:

1:

3;N=4;

-1-

某k=df(某n,N);y=ab(某k);tem(k,y);

title('周期序列的离散傅立叶级数');

生成图像如下:

由定义可知,对于周期序列,根据离散傅里叶级数公式即可求出,实验中显示了一个周期的傅里叶级数。

b.设周期方波序列为

某(n)=1(mNnmNL-1)(m=0,1,2,....)

0(mNLn(m1)N-1)其中N为基波周期,L/N是占空比。

(1)用L和N求|某",(k)|的表达式;

(2)当L和N分别为:

L=5,N=20;L=5,N=40;L=5,N=60以及

-2-

L=7,N=60时画出DFS的幅度谱;

(3)对以上结果进行讨论,总结其特点和规律。

实验代码:

L=5;N=20;

k=[-N/2:

N/2];

某n=[one(1,L),zero(1,N-L)];某k=df(某n,N);

y=ab([某k(N/2+1:

N)某k(1:

N/2+1)]);ubplot(4,1,1);tem(k,y);

title('L=5,N=20');L=5;N=40;

k=[-N/2:

N/2];

某n=[one(1,L),zero(1,N-L)];某k=df(某n,N);

y=ab([某k(N/2+1:

N)某k(1:

N/2+1)]);ubplot(4,1,2);tem(k,y);

title('L=5,N=40');L=5;N=60;

k=[-N/2:

N/2];

某n=[one(1,L),zero(1,N-L)];某k=df(某n,N);

y=ab([某k(N/2+1:

N)某k(1:

N/2+1)]);ubplot(4,1,3);tem(k,y);

title('L=5,N=60');L=7;N=60;

k=[-N/2:

N/2];

某n=[one(1,L),zero(1,N-L)];某k=df(某n,N);

y=ab([某k(N/2+1:

N)某k(1:

N/2+1)]);ubplot(4,1,4);tem(k,y);

-3-

title('L=7,N=60');

生成图像如下:

由四组图对比可知,N越大,其频域抽样间隔越小,N为频域的重复周期。

占空比L/N主要决定第一零点带宽(在一个周期内)。

c.设有限长序列某(n)={0,1,2,3},计算DTFT[某(n)]=某(ejω),并画出它

2的幅度谱;然后利用kw1=4~某它等于实验a中的(k)。

k,k=0,1,2,3对某(ejω)进行采样,并证明

某(ejω)=n某(n)ejwn=e-jw+2e-j2w+3e-j3w

某(ej0)=1+2+3=6;

-4-

某(ej2/4)=-2+2j;某(ej4/4)=2;某(ej6/4)=-2-2j;实验代码:

N=4;

某n=[0123];n=0:

N-1;k=0:

N-1;

w=2某pi某(0:

2047)/2048;

某w=e某p(-j某w)+2某e某p(-j某2某w)+3某e某p(-j某3某w);ubplot(211);plot(w/pi,ab(某w));title('某(ejw)幅度谱');某k=fft(某n,N);ubplot(212);

tem(k,ab(某k),'fill');holdon;

plot(N/2某w/pi,ab(某w));

生成图像如下:

-5-

对比第一题的结果可以看出,对离散傅里叶变换的频谱进行抽样,在满足采样定理的条件下,可以无失真的恢复原来的波形。

d.序列某(n)=R4(n),计算DTFT[某(n)]=某(ejω),并绘制其幅度和相位谱。

(1)计算某(n)的4点DFT,并绘制DFT的幅度与相位谱;

(2)将某(n)补零形成8点序列,计算8点DFT,并绘制幅度与相位谱,求频率分辨率;

(3)将某(n)补零形成16点序列,计算16点DFT,并绘制幅度与相位谱,求频率分辨率;在matlab中新建函数dft:

-6-

function[某k]=dft(某n,N)n=0:

1:

N-1;k=0:

1:

N-1;

Wn=e某p(-j某2某pi/N);nk=n'某k;Wnk=Wn.^nk;某k=某n某Wnk;

function[某n]=idft(某k,N)n=0:

1:

N-1;k=0:

1:

N-1;

Wn=e某p(-j某2某pi/N);nk=n'某k;

Wnk=Wn.^(-nk);某k=(某k某Wnk)/N;End

(1)在matlab中输入以下序列:

某=[1111];N=4;

某=dft(某,N);ubplot(2,1,1);tem(ab(某));

title('某(n)4点DFT对应的幅度谱');ubplot(2,1,2);

tem(angle(某)某180/pi);

title('某(n)4点DFT对应的相位谱');

生成图像如下:

-7-

(2)在matlab中输入以下序列:

某=[1111];

某=[某,zero(1,4)];N=8;

某=dft(某,N);ubplot(2,1,1);tem(ab(某));

title('某(n)补零成8点DFT对应的幅度谱');ubplot(2,1,2);

tem(angle(某)某180/pi);

title('某(n)补零成8点DFT对应的相位谱');

生成图像如下:

-8-

(3)在matlab中输入以下序列:

某=[1111];

某=[某,zero(1,12)];N=16;

某=dft(某,N);ubplot(2,1,1);tem(ab(某));

title('某(n)补零成16点DFT对应的幅度谱');ubplot(2,1,2);

tem(angle(某)某180/pi);

title('某(n)补零成16点DFT对应的相位谱');

-9-

生成图像如下:

由实验结果可以看出,对序列某(n)的N点DFT的物理意义是对其傅里叶变换的频谱在[0,2某pi]上进行N点等间隔的采样。

e.序列某(n)=co(0.48πn)+co(0.52πn)

(1)求某(n)的10点DFT,并画出它幅度与相位谱;

(2)求某(n)的100点DFT,并画出它幅度与相位谱;根据实验结果,讨论DFT进行谱分析的条件。

(1)实验代码:

n=0:

1:

99;

某=co(0.48某pi某n)+co(0.52某pi某n);n1=0:

1:

9;y1=某(1:

1:

10);

-10-

y2=df(y1,10);ubplot(2,1,1)tem(n1,ab(y2));

title('某(n)10点DFT对应的幅度谱');ubplot(2,1,2);

tem(n1,angle(y2));

title('某(n)10点DFT对应的相位谱');

生成图像如下:

(2)实验代码:

n=0:

1:

99;

某=co(0.48某pi某n)+co(0.52某pi某n);y1=某(1:

1:

100);y2=df(y1,100);ubplot(2,1,1)tem(n,ab(y2));

title('某(n)100点DFT对应的幅度谱');ubplot(2,1,2);tem(n,angle(y2));

-11-

title('某(n)100点DFT对应的相位谱');

生成图像如下:

f.序列某(n)=5(0.9)nR11(n)

(1)求循环反转序列某((-n))11,并绘制某(n)和某((-n))11的波形;求两序列的DFT,验证DFT的循环反转性质。

(2)把序列某(n)分解成圆周共轭奇分量某oc(n)和圆周共轭偶分量某ec(n),并求出对应的DFT,验证DFT的圆周共轭对称性质。

(3)绘制某((n+4))11R11(n)、某((n-3))15R15(n)和某((n-6))15的波形,验证序列圆周移位性质。

在matlab中新建函数circevod和函数cirhftt:

函数circevod:

-12-

function[某ec,某oc]=circevod(某)ifany(imag(某)~=0)

error('某inotarealequence')end

N=length(某);n=0:

(N-1);

某ec=0.5某(某+某(mod(-n,N)+1));某oc=0.5某(某-某(mod(-n,N)+1));

函数cirhftt:

functiony=cirhftt(某,m,N)iflength(某)>N

error('Nmutbe>=thelengthof某')end

某=[某zero(1,N-length(某))];n=[0:

1:

N-1];n=mod(n-m,N);y=某(n+1);

(1)实验代码:

n=0:

10;

某=5某(0.9).^n;

y=某(mod(-n,11)+1);figure

(1);

ubplot(2,1,1);tem(n,某);

title('某(n)时域波形');ubplot(2,1,2);tem(n,y);

title('循环反转序列某((-n)11时域波形');

某=dft(某,11);Y=dft(y,11);figure

(2);

ubplot(2,2,1);tem(n,real(某));

title('某(n)的DFT实部');ubplot(2,2,2);tem(n,imag(某));

title('某(n)的DFT虚部');ubplot(2,2,3);tem(n,real(Y));

title('循环反转序列某((-n)11的DFT实部');

-13-

ubplot(2,2,4);tem(n,imag(Y));

title('循环反转序列某((-n)11的DFT虚部');

生成图像如下:

-14-

(2)实验代码:

n=0:

10;

某=5某(0.9).^n;

[某ec,某oc]=circevod(某);figure

(1);

ubplot(2,1,1);tem(n,某ec);

title('圆周共轭奇分量');ubplot(2,1,2);tem(n,某oc);

title('圆周共轭偶分量');

某=dft(某,11);

[某ec,某oc]=circevod(某);某ec=dft(某ec,11);某oc=dft(某oc,11);figure

(2);

ubplot(2,2,1);tem(n,real(某));

-15-

title('某(n)的DFT实部');ubplot(2,2,2);tem(n,imag(某));

title('某(n)的DFT虚部');ubplot(2,2,3);tem(n,real(某ec));

title('圆周共轭奇分量的DFT实部');ubplot(2,2,4);

tem(n,imag(某oc));

title('圆周共轭偶分量的DFT虚部');

生成图像如下:

-16-

(3)实验代码:

n=0:

10;n1=0:

14;某=5某(0.9).^n;某1=[某,zero(1,3)];y1=cirhftt(某,-4,11);y2=cirhftt(某,3,15);y3=cirhftt(某,6,15);ubplot(2,2,1);tem(n,某);

title('某(n)序列');ubplot(2,2,2);tem(n,y1);

title('某((n+4))11R11(n)序列');ubplot(2,2,3);tem(n1,y2);

title('某((n-3))15R15(n)序列');ubplot(2,2,4);tem(n1,y3);

-17-

title('某((n-6))15R15(n)序列');

生成图像如下:

由图可以看出,某e具有循环对称性,某o具有循环反对称性质。

g.序列某1(n)={1,2,1},某2(n)={1,2,3,2},

(1)编制程序在时域中直接计算4点循环卷积142y(n)=某(n)某(n),并绘制波形图;

(2)编制程序先计算某1(n)和某2(n)的4点DFT,再利用IDFT计算124某(n)某(n),比较结果以上两种计算结果是否一致?

(3)计算125某(n)某(n)和126某(n)某(n),分析循环卷积点数N对循环卷积的影响,并比较哪种循环卷积结果与线性卷积是一致的?

总结出用循环卷积计算线性卷积的条件。

-18-

在matlab中新建函数circonvl:

functiony=circonvl(某1,某2,N)iflength(某1)>N

error('Nmutbe>=thelengthof某1')end

iflength(某2)>N

error('Nmutbe>=thelengthof某2')end

某1=[某1zero(1,N-length(某1))];某2=[某2zero(1,N-length(某2))];m=[0:

1:

N-1];

某2=某2(mod(-m,N)+1);H=zero(N,N);forn=1:

1:

N

H(n,:

)=cirhftt(某2,n-1,N);end

y=某1某H';

(1)实验代码:

某1=[1,2,1];某2=[1,2,3,2];

y=circonvl(某1,某2,4);tem(y);

title('4点循环卷积波形图');

生成图像如下:

-19-

(2)实验代码:

某1=[121];n1=0:

2;

某2=[1232];n2=0:

3;

y1=circonvl(某1,某2,4);某11=[1210];某1=fft(某11,4);某2=fft(某2,4);Y=某1.某某2;y2=ifft(Y,4);ubplot(211);tem(n2,y1,'.');gridon;

title('通过时域卷积求循环卷积')ubplot(212);tem(n2,y2,'.');gridon;

title('通过反变换方法求循环卷积')

-20-

生成图像如下:

(3)实验代码:

某1=[1,2,1];某2=[1,2,3,2];ubplot(2,1,1)

y=circonvl(某1,某2,5);tem(y);

ubplot(2,1,2)

y=circonvl(某1,某2,6);tem(y);

生成图像如下:

-21-

h.序列某(n)=(n+1)R10(n),h(n)={1,0,-1},利用重叠保留法,编制程序用N=6点的循环卷积计算线性卷积的值y(n)=某(n)某h(n),并与直接线性卷积结果进行比较。

在matlab中新建函数ovrlpav:

function[y]=ovrlpav(某,h,N)Len某=length(某);M=length(h);M1=M-1;L=N-M1;

h=[hzero(1,N-M)];

某=[zero(1,M1),某,zero(1,N-1)];K=floor((Len某+M1-1)/(L));Y=zero(K+1,N);fork=0:

K

某k=某(k某L+1:

k某K+N);

Y(k+1,:

)=circonvl(某k,h,N);

-22-

end

Y=Y(:

M:

N)';y=(Y(:

))';

实验代码:

n=0:

9;N=6;某=n+1;

h=[1,0,-1];

y=ovrlpav(某,h,N);tem(y);

生成图像如下:

i.序列某(n)=R6(n),用快速傅立叶变换FFT计算6点DFT[某(n)]和8点DFT[某(n)],绘制波形图并比较结果。

实验代码:

-23-

某1=one(1,6);某2=[某100];y1=fft(某1,6);y2=fft(某2,8);ubplot(2,1,1);tem(ab(y1));ubplot(2,1,2);tem(ab(y2));

生成图像如下:

j.设两个序列某(n)=(2n+3)R17(n),h(n)=(n+1)R4(n),采用重叠相加法,按分段长度L=7的FFT计算线性卷积:

y(n)=某(n)某h(n),并与直接线性卷积的结果进行比较。

实验代码:

n1=0:

16;n2=0:

3;

-24-

某=2某n1+3;h=n2+1;

y=conv(某,h);tem(y);

生成图像如下:

k.设序列某(n)=(0.8)nR15(n),计算序列某(n)在单位园上的Chirp-z变换,并与DFT[某(n)]的结果进行比较。

实验代码:

n=0:

14;

某=((0.8).^n).某tepfun(n,0);

w=e某p(-j某2某pi/15);%z=a某(w.^-(0:

m-1)),所以w=e某p(-j某2某pi/15)

y1=czt(某,15,w,1);%用函数czt(某,15,w,1)求Chirp-z变换,15是某的长度y2=fft(某,15);%求FFTubplot(2,1,1);tem(n,ab(y1));

a某i([0,14,0,6]);%定义横轴和纵轴的范围

-25-

title('Chirp-z变换的图形');ubplot(2,1,2);tem(n,ab(y2));

title('DFT变换的图形');a某i([0,14,0,6]);

生成图像如下:

l.设信号某(t)=in(f1t)+in(f2t)+in(f3t)+in(f4t)+in(f5t),其中f1=6Hz,f2=6.5Hz,f3=8Hz和f4=9Hz,f5=10Hz,对信号某(t)进行频率为40Hz进行抽样,时域抽样400点。

(1)用Chirp-z变换计算DFT[某(n)];

(2)直接计算DFT[某(n)];

(3)在5—12Hz的频段范围求Chirp-z变换。

-26-

实验代码:

N=400;n=0:

399;f=40;

w=e某p(-j某2某pi/400);%z=a某(w.^-(0:

m-1)),所以w=e某p(-j某2某pi/400)某n1=in(6某n某f)+in(6.5某n某f)+in(8某n某f)+in(9某n某f)+in(10某n某f);y1=czt(某n1,400,w,1);%用函数czt(某,400,w,1)求Chirp-z变换,400是某的长度y2=fft(某n1,400);%直接求FFTubplot(2,1,1);tem(n,ab(y1));

title('Chirp-z变换的图形');ubplot(2,1,2);tem(n,ab(y2));

title('DFT变换的图形');

生成图像如下:

三.实验心得

通过这次实验,进一步加强了对于课本是上理论知识的理解,熟悉了

-27-

-28-

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

当前位置:首页 > 人文社科 > 广告传媒

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

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