实验二快速傅里叶变换FFT及其应用.doc

上传人:李司机 文档编号:1131990 上传时间:2022-06-30 格式:DOC 页数:13 大小:166.98KB
返回 下载 相关 举报
实验二快速傅里叶变换FFT及其应用.doc_第1页
第1页 / 共13页
实验二快速傅里叶变换FFT及其应用.doc_第2页
第2页 / 共13页
实验二快速傅里叶变换FFT及其应用.doc_第3页
第3页 / 共13页
实验二快速傅里叶变换FFT及其应用.doc_第4页
第4页 / 共13页
实验二快速傅里叶变换FFT及其应用.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《实验二快速傅里叶变换FFT及其应用.doc》由会员分享,可在线阅读,更多相关《实验二快速傅里叶变换FFT及其应用.doc(13页珍藏版)》请在三一办公上搜索。

1、实验二 快速傅里叶变换FFT及其应用一、实验目的1在理论学习的根底上,通过本实验,加深对FFT的理解,熟悉MATLAB中的有关函数。2应用FFT对典型信号进展频谱分析。3了解应用FFT进展信号频谱分析过程可能出现的问题,以便在实际中正确应用FFT。4应用FFT实现序列的线性卷积和相关。二、实验内容实验中用到的信号序列:a) 高斯序列b) 衰减正弦序列c) 三角波序列d) 反三角波序列上机实验内容:1观察高斯序列的时域和幅频特性,固定信号中参数,改变的值,使分别等于2、4、8,观察他们的时域和幅频特性,了解当取不同值时,对信号的时域和幅频特性的影响;固定,改变,使分别等于8、13、14,观察参数

2、变化对信号序列的时域及幅频特性的影响,注意等于多少时,会发生明显的泄漏现象,混叠是否也随之出现.记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。解答: n=0:1:15; *n=e*p(-(n-8).2/2); subplot(1,2,1);stem(n,*n);*label(t/T);ylabel(*(n); *k1=fft(*n);*k1=abs(*k1); subplot(1,2,2);stem(n,*k1);*label(k);ylabel(*(k); *n=e*p(-(n-8).2/4); subplot(1,2,1);stem(n,*n);*label(t/T);ylab

3、el(*(n); *k1=fft(*n);*k1=abs(*k1); subplot(1,2,2);stem(n,*k1);*label(k);ylabel(*(k); *n=e*p(-(n-8).2/8); subplot(1,2,1);stem(n,*n);*label(t/T);ylabel(*(n); *k1=fft(*n);*k1=abs(*k1); subplot(1,2,2);stem(n,*k1);*label(k);ylabel(*(k); *n=e*p(-(n-13).2/8); subplot(1,2,1);stem(n,*n);*label(t/T);ylabel(*(

4、n); *k1=fft(*n);*k1=abs(*k1); subplot(1,2,2);stem(n,*k1);*label(k);ylabel(*(k); *n=e*p(-(n-14).2/8); subplot(1,2,1);stem(n,*n);*label(t/T);ylabel(*(n); *k1=fft(*n);*k1=abs(*k1); subplot(1,2,2);stem(n,*k1);*label(k);ylabel(*(k);随着q值的增大,时域信号幅值变化缓慢,频域信号频谱泄露程度减小。随着p的增大,时域信号幅值不变,会在时间轴移位。2观察衰减正弦序列的时域和幅频特性

5、,检查普峰出现的位置是否正确,注意频谱的形状,绘出幅频特性曲线,改变,使分别等于0.4375和0.5625,观察这两种情况下,频谱的形状和普峰出现的位置,有无混叠和泄漏现象.说明产生现象的原因。解答: n=0:1:15; *n=e*p(-0.1*n).*sin(2*pi*0.0625*n);subplot(1,2,1);stem(n,*n);*label(t/T);ylabel(*(n); *k1=fft(*n);*k1=abs(*k1); subplot(1,2,2);stem(n,*k1);*label(k);ylabel(*(k); *n=e*p(-0.1*n).*sin(2*pi*0.

6、4375*n); subplot(1,2,1);stem(n,*n);*label(t/T);ylabel(*(n); *k1=fft(*n);*k1=abs(*k1); subplot(1,2,2);stem(n,*k1);*label(k);ylabel(*(k); *n=e*p(-0.1*n).*sin(2*pi*0.5625*n); subplot(1,2,1);stem(n,*n);*label(t/T);ylabel(*(n); *k1=fft(*n);*k1=abs(*k1); subplot(1,2,2);stem(n,*k1);*label(k);ylabel(*(k);3观

7、察三角波和反三角波的时域和幅频特性,用点FFT分析信号序列和的幅频特性,观察两者的序列形状和频谱曲线有什么异同.绘出两序列及其幅频特性曲线。在和末尾补零,用点FFT分析这两个信号的幅频特性,观察幅频特性发生了什么变化.两种情况下的FFT频谱还有一样之处吗.这些变化说明了什么.解答: for n=0:1:3*(n+1)=n;end; for n=4:1:7*(n+1)=8-n;end; * = 0 1 2 3 4 3 2 1 n=0:1:7; subplot(1,2,1);stem(n,*);*label(t/T);ylabel(*(n); *k1=fft(*);*k1=abs(*k1); su

8、bplot(1,2,2);stem(n,*k1);*label(k);ylabel(*(k); for n=0:1:3*dn(n+1)=4-n;end; for n=4:1:7*dn(n+1)=n-4;end; *dn*dn = 4 3 2 1 0 1 2 3 n=0:1:7; subplot(1,2,1);stem(n,*dn);*label(t/T);ylabel(*(n); *k1=fft(*dn);*k1=abs(*k1); subplot(1,2,2);stem(n,*k1);*label(k);ylabel(*(k); *=*,zeros(1,24); n=0:1:31; subp

9、lot(1,2,1);stem(n,*);*label(t/T);ylabel(*(n); *k1=fft(*);*k1=abs(*k1); subplot(1,2,2);stem(n,*k1);*label(k);ylabel(*(k); *dn=*dn,zeros(1,24); n=0:1:31; subplot(1,2,1);stem(n,*dn);*label(t/T);ylabel(*(n); *k1=fft(*dn);*k1=abs(*k1); subplot(1,2,2);stem(n,*k1);*label(k);ylabel(*(k);时,和的幅频特性一样,在和末尾补零,用点

10、FFT分析这两个信号的幅频特性时,它们还有一样之处,即当取4的整数倍时对应幅值相等。分析:点FFT分析信号的幅频特性:点FFT分析信号的幅频特性:由上两式可知,当k2=4k1时,两个信号的对应频率幅值相等,即对信号末尾补零加长整数个周期可以对原信号到达细化频谱的作用。4一个连续时间信号含两个频率分量,经采样得,分别为1/16和1/64,观察其频谱;当时,不变,其结果有何不同,为什么.解答: n=0:1:15; *1n=sin(2*pi*0.125*n)+cos(2*pi*(0.125+1/16)*n); *k1=fft(*1n);*k1=abs(*k1);subplot(1,2,1);stem

11、(n,*k1);*label(k);ylabel(*(k);legend(f=1/16); *2n=sin(2*pi*0.125*n)+cos(2*pi*(0.125+1/64)*n); *k2=fft(*2n);*k2=abs(*k2);subplot(1,2,2);stem(n,*k2);*label(k);ylabel(*(k);legend(f=1/64); n=0:1:127; *1n=sin(2*pi*0.125*n)+cos(2*pi*(0.125+1/16)*n); *k1=fft(*1n);*k1=abs(*k1); stem(n,*k1);*label(k);ylabel(

12、*(k);legend(f=1/16); *2n=sin(2*pi*0.125*n)+cos(2*pi*(0.125+1/64)*n); *k2=fft(*2n);*k2=abs(*k2); stem(n,*k2);*label(k);ylabel(*(k);legend(f=1/64);分析:由于离散傅里叶变换的选频性质:当不等于整数时,则信号频谱会发生泄漏。5用FFT分别计算和的16点循环卷积和线性卷积。解答: n=0:1:15; *an=e*p(-(n-8).2/2); *bn=e*p(-0.1*n).*sin(2*pi*0.0625*n); subplot(4,1,1);stem(n,

13、*an);*label(n);ylabel(*a(n); subplot(4,1,2);stem(n,*bn);*label(n);ylabel(*b(n); *ak=fft(*an);*bk=fft(*bn);*1k=*ak.*bk; *1n=ifft(*1k);subplot(4,1,3);stem(n,*1n);*label(n);ylabel(*1(n);legend(循环卷积); *2n=conv(*an,*bn); m=0:1:length(*2n)-1;subplot(4,1,4);stem(m,*2n);*label(n);ylabel(*2(n);legend(线性卷积);6

14、产生一512点的随机序列,并用和做线性卷积,观察卷积前后频谱的变化。要求将分成8段,分别采用重叠相加法和重叠保存法。解答:在编辑调试窗中编写程序:function yy=*eni(N2,*en,i)for n=N2*i:1:N2*(i+1)-1 *eni(n-N2*i+1)=*en(n+1);endyy=*eni;将上述文件存盘,文件名为*eni.m。function yy=*enni(N1,N2,*en,i)for n=N2*i:1:N1+N2*(i+1)-2 *eni(n-N2*i+1)=*en(n+1);endyy=*eni;将上述文件存盘,文件名为*enni.m。function t=

15、shiftmm(a,n)m=length(n);for i=1:1:a; for j=m+i-1:-1:1 n(j+1)=n(j); end;end;for i=1:1:a n(i)=0;end;t=n;将上述文件存盘,文件名为shiftmm.m。退回到指令窗: *=0 1 2 3 4 3 2 1;*en=rand(1,512); qqqqq=conv(*,*en); stem(0:1:518,qqqqq);*label(n);ylabel(幅度); N1=length(*);N2=length(*en)/8; *=* zeros(1,N2-1); *ck=fft(*); for i=1:1:

16、8*enii=*eni(N2,*en,i-1);*enii=*enii zeros(1,N1-1);*eki=fft(*enii);yki=*ck.*eki;yni=ifft(yki);y(i,:)=yni;end; for i=0:1:7for j=0:1:i*N2-1ynii(i+1,0+1:1:i*N2-1+1)=0;end;for j=i*N2:1:N1+(i+1)*N2-2ynii(i+1,i*N2+1:1:N1+(i+1)*N2-2+1)=y(i+1,:);end;for j=N1+(i+1)*N2-1:1:N1+8*N2-2ynii(i+1,N1+(i+1)*N2-1+1:1:N

17、1+8*N2-2+1)=0;end;end; yn=zeros(1,N1+8*N2-1); for i=1:1:8yn=yn+ynii(i,:);end; n=0:1:N1+8*N2-2; stem(n,yn);*label(n);ylabel(幅度);legend(重叠相加法); *en21=shiftmm(N1-1,*en); for i=1:1:8*en2i(i,:)=*enni(N1,N2,*en21,i-1);end; for i=1:1:8*ek2i=fft(*en2i(i,:);yk2i=*ck.*ek2i;yn2i=ifft(yk2i);y2(i,:)=yn2i;end; y2

18、(:,1:N1-1)=; n2=0:1:8*N2-1; stem(n2,y2(1,:) y2(2,:) y2(3,:) y2(4,:) y2(5,:) y2(6,:) y2(7,:) y2(8,:);*label(n);ylabel(幅度);legend(重叠保存法);7用FFT分别计算和的16点循环相关和线性相关,问一共有多少种结果,它们之间有何异同点。解答:1求线性相关 n=0:1:15; *an=e*p(-(n-8).2/2); *bn=e*p(-0.1*n).*sin(2*pi*0.0625*n); k=length(*bn); *an1=*an zeros(1,k-1); *bn1=

19、*bn zeros(1,k-1); *ak=fft(*an1); *bk=fft(*bn1); rm=real(ifft(conj(*ak).*bk); rm1=rm(k+1:2*k-1) rm(1:k); m=(-k+1):(k-1); stem(m,rm1);*label(n);ylabel(幅度);legend(线性相关);2求循环相关 n=0:1:15; *an=e*p(-(n-8).2/2); *bn=e*p(-0.1*n).*sin(2*pi*0.0625*n); k=length(*bn); *ak=fft(*an); *bk=fft(*bn); rm=real(ifft(con

20、j(*ak).*bk); stem(n,rm);*label(n);ylabel(幅度);legend(循环相关);8用FFT分别计算和的自相关函数。解答: n=0:1:15; *an=e*p(-(n-8).2/2); k=length(*an); *ak=fft(*an,2*k); rm=real(ifft(conj(*ak).*ak); rm=rm(k+2:2*k) rm(1:k); m=(-k+1):(k-1); stem(m,rm);*label(m);ylabel(幅度);2 n=0:1:15; *bn=e*p(-0.1*n).*sin(2*pi*0.0625*n); k=length(*bn); *bk=fft(*bn,2*k); rm=real(ifft(conj(*bk).*bk); rm=rm(k+2:2*k) rm(1:k); m=(-k+1):(k-1); stem(m,rm);*label(m);ylabel(幅度);

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号