实验二-快速傅里叶变换(FFT)及其应用_第1页
实验二-快速傅里叶变换(FFT)及其应用_第2页
实验二-快速傅里叶变换(FFT)及其应用_第3页
实验二-快速傅里叶变换(FFT)及其应用_第4页
实验二-快速傅里叶变换(FFT)及其应用_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《数字信号处理》课程〔2023-2023学年第1学期〕成绩:实验二快速傅里叶变换〔FFT〕及其应用学生姓名:闫春遐所在院系:电子信息工程学院自动化系年级专业:2023级自动化系学号:00824049指导教师:王亮完成日期:2023年9月27日实验二快速傅里叶变换〔FFT〕及其应用一、实验目的〔1〕在理论学习的根底上,通过本实验,加深对FFT的理解,熟悉MATLAB中的有关函数。〔2〕应用FFT对典型信号进行频谱分析。〔3〕了解应用FFT进行信号频谱分析过程可能出现的问题,以便在实际中正确应用FFT。〔4〕应用FFT实现序列的线性卷积和相关。二、实验内容实验中用到的信号序列:高斯序列衰减正弦序列三角波序列反三角波序列上机实验内容:〔1〕观察高斯序列的时域和幅频特性,固定信号中参数,改变的值,使分别等于2、4、8,观察他们的时域和幅频特性,了解当取不同值时,对信号的时域和幅频特性的影响;固定,改变,使分别等于8、13、14,观察参数变化对信号序列的时域及幅频特性的影响,注意等于多少时,会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。解答:>>n=0:1:15;>>xn=exp(-(n-8).^2/2);>>subplot(1,2,1);stem(n,xn);xlabel('t/T');ylabel('x(n)');>>xk1=fft(xn);xk1=abs(xk1);>>subplot(1,2,2);stem(n,xk1);xlabel('k');ylabel('X(k)');>>xn=exp(-(n-8).^2/4);>>subplot(1,2,1);stem(n,xn);xlabel('t/T');ylabel('x(n)');>>xk1=fft(xn);xk1=abs(xk1);>>subplot(1,2,2);stem(n,xk1);xlabel('k');ylabel('X(k)');>>xn=exp(-(n-8).^2/8);>>subplot(1,2,1);stem(n,xn);xlabel('t/T');ylabel('x(n)');>>xk1=fft(xn);xk1=abs(xk1);>>subplot(1,2,2);stem(n,xk1);xlabel('k');ylabel('X(k)');>>xn=exp(-(n-13).^2/8);>>subplot(1,2,1);stem(n,xn);xlabel('t/T');ylabel('x(n)');>>xk1=fft(xn);xk1=abs(xk1);>>subplot(1,2,2);stem(n,xk1);xlabel('k');ylabel('X(k)');>>xn=exp(-(n-14).^2/8);>>subplot(1,2,1);stem(n,xn);xlabel('t/T');ylabel('x(n)');>>xk1=fft(xn);xk1=abs(xk1);>>subplot(1,2,2);stem(n,xk1);xlabel('k');ylabel('X(k)');随着q值的增大,时域信号幅值变化缓慢,频域信号频谱泄露程度减小。随着p的增大,时域信号幅值不变,会在时间轴移位。〔2〕观察衰减正弦序列的时域和幅频特性,,,检查普峰出现的位置是否正确,注意频谱的形状,绘出幅频特性曲线,改变,使分别等于0.4375和0.5625,观察这两种情况下,频谱的形状和普峰出现的位置,有无混叠和泄漏现象?说明产生现象的原因。解答:>>n=0:1:15;>>xn=exp(-0.1*n).*sin(2*pi*0.0625*n);>>subplot(1,2,1);stem(n,xn);xlabel('t/T');ylabel('x(n)');>>xk1=fft(xn);xk1=abs(xk1);>>subplot(1,2,2);stem(n,xk1);xlabel('k');ylabel('X(k)');>>xn=exp(-0.1*n).*sin(2*pi*0.4375*n);>>subplot(1,2,1);stem(n,xn);xlabel('t/T');ylabel('x(n)');>>xk1=fft(xn);xk1=abs(xk1);>>subplot(1,2,2);stem(n,xk1);xlabel('k');ylabel('X(k)');>>xn=exp(-0.1*n).*sin(2*pi*0.5625*n);>>subplot(1,2,1);stem(n,xn);xlabel('t/T');ylabel('x(n)');>>xk1=fft(xn);xk1=abs(xk1);>>subplot(1,2,2);stem(n,xk1);xlabel('k');ylabel('X(k)');〔3〕观察三角波和反三角波的时域和幅频特性,用点FFT分析信号序列和的幅频特性,观察两者的序列形状和频谱曲线有什么异同?绘出两序列及其幅频特性曲线。在和末尾补零,用点FFT分析这两个信号的幅频特性,观察幅频特性发生了什么变化?两种情况下的FFT频谱还有相同之处吗?这些变化说明了什么?解答:>>forn=0:1:3xcn(n+1)=n;end;>>forn=4:1:7xcn(n+1)=8-n;end;>>xcnxcn=01234321>>n=0:1:7;>>subplot(1,2,1);stem(n,xcn);xlabel('t/T');ylabel('x(n)');>>xk1=fft(xcn);xk1=abs(xk1);>>subplot(1,2,2);stem(n,xk1);xlabel('k');ylabel('X(k)');>>forn=0:1:3xdn(n+1)=4-n;end;>>forn=4:1:7xdn(n+1)=n-4;end;>>xdnxdn=43210123>>n=0:1:7;>>subplot(1,2,1);stem(n,xdn);xlabel('t/T');ylabel('x(n)');>>xk1=fft(xdn);xk1=abs(xk1);>>subplot(1,2,2);stem(n,xk1);xlabel('k');ylabel('X(k)');>>xcn=[xcn,zeros(1,24)];>>n=0:1:31;>>subplot(1,2,1);stem(n,xcn);xlabel('t/T');ylabel('x(n)');>>xk1=fft(xcn);xk1=abs(xk1);>>subplot(1,2,2);stem(n,xk1);xlabel('k');ylabel('X(k)');>>xdn=[xdn,zeros(1,24)];>>n=0:1:31;>>subplot(1,2,1);stem(n,xdn);xlabel('t/T');ylabel('x(n)');>>xk1=fft(xdn);xk1=abs(xk1);>>subplot(1,2,2);stem(n,xk1);xlabel('k');ylabel('X(k)');时,和的幅频特性相同,在和末尾补零,用点FFT分析这两个信号的幅频特性时,它们还有相同之处,即当取4的整数倍时对应幅值相等。分析:点FFT分析信号的幅频特性:点FFT分析信号的幅频特性:由上两式可知,当k2=4k1时,两个信号的对应频率幅值相等,即对信号末尾补零加长整数个周期可以对原信号到达细化频谱的作用。〔4〕一个连续时间信号含两个频率分量,经采样得,分别为1/16和1/64,观察其频谱;当时,不变,其结果有何不同,为什么?解答:>>n=0:1:15;>>x1n=sin(2*pi*0.125*n)+cos(2*pi*(0.125+1/16)*n);>>xk1=fft(x1n);xk1=abs(xk1);>>subplot(1,2,1);stem(n,xk1);xlabel('k');ylabel('X(k)');legend('f=1/16');>>x2n=sin(2*pi*0.125*n)+cos(2*pi*(0.125+1/64)*n);>>xk2=fft(x2n);xk2=abs(xk2);>>subplot(1,2,2);stem(n,xk2);xlabel('k');ylabel('X(k)');legend('f=1/64');>>n=0:1:127;>>x1n=sin(2*pi*0.125*n)+cos(2*pi*(0.125+1/16)*n);>>xk1=fft(x1n);xk1=abs(xk1);>>stem(n,xk1);xlabel('k');ylabel('X(k)');legend('f=1/16');>>x2n=sin(2*pi*0.125*n)+cos(2*pi*(0.125+1/64)*n);>>xk2=fft(x2n);xk2=abs(xk2);>>stem(n,xk2);xlabel('k');ylabel('X(k)');legend('f=1/64');分析:由于离散傅里叶变换的选频性质:当不等于整数时,那么信号频谱会发生泄漏。〔5〕用FFT分别计算〔〕和〔〕的16点循环卷积和线性卷积。解答:>>n=0:1:15;>>xan=exp(-(n-8).^2/2);>>xbn=exp(-0.1*n).*sin(2*pi*0.0625*n);>>subplot(4,1,1);stem(n,xan);xlabel('n');ylabel('xa(n)');>>subplot(4,1,2);stem(n,xbn);xlabel('n');ylabel('xb(n)');>>xak=fft(xan);xbk=fft(xbn);x1k=xak.*xbk;>>x1n=ifft(x1k);>>subplot(4,1,3);stem(n,x1n);xlabel('n');ylabel('x1(n)');legend('循环卷积');>>x2n=conv(xan,xbn);>>m=0:1:length(x2n)-1;>>subplot(4,1,4);stem(m,x2n);xlabel('n');ylabel('x2(n)');legend('线性卷积');〔6〕产生一512点的随机序列,并用和做线性卷积,观察卷积前后频谱的变化。要求将分成8段,分别采用重叠相加法和重叠保存法。解答:在编辑调试窗中编写程序:functionyy=xeni(N2,xen,i)forn=N2*i:1:N2*(i+1)-1xeni(n-N2*i+1)=xen(n+1);endyy=xeni;将上述文件存盘,文件名为xeni.m。functionyy=xenni(N1,N2,xen,i)forn=N2*i:1:N1+N2*(i+1)-2xeni(n-N2*i+1)=xen(n+1);endyy=xeni;将上述文件存盘,文件名为xenni.m。functiont=shiftmm(a,n)m=length(n);fori=1:1:a;forj=m+i-1:-1:1n(j+1)=n(j);end;end;fori=1:1:an(i)=0;end;t=n;将上述文件存盘,文件名为shiftmm.m。退回到指令窗:>>xcn=[01234321];xen=rand(1,512);>>qqqqq=conv(xcn,xen);>>stem([0:1:518],qqqqq);xlabel('n');ylabel('幅度');>>N1=length(xcn);N2=length(xen)/8;>>xcn=[xcnzeros(1,N2-1)];>>xck=fft(xcn);>>fori=1:1:8xenii=xeni(N2,xen,i-1);xenii=[xeniizeros(1,N1-1)];xeki=fft(xenii);yki=xck.*xeki;yni=ifft(yki);y(i,:)=yni;end;>>fori=0:1:7forj=0:1:i*N2-1ynii(i+1,[0+1:1:i*N2-1+1])=0;end;forj=i*N2:1:N1+(i+1)*N2-2ynii(i+1,[i*N2+1:1:N1+(i+1)*N2-2+1])=y(i+1,:);end;forj=N1+(i+1)*N2-1:1:N1+8*N2-2ynii(i+1,[N1+(i+1)*N2-1+1:1:N1+8*N2-2+1])=0;end;end;>>yn=zeros(1,N1+8*N2-1);>>fori=1:1:8yn=yn+ynii(i,:);end;>>n=0:1:N1+8*N2-2;>>stem(n,yn);xlabel('n');ylabel('幅度');legend('重叠相加法');>>xen21=shiftmm(N1-1,xen);>>fori=1:1:8xen2i(i,:)=xenni(N1,N2,xen21,i-1);end;>>fori=1:1:8xek2i=fft(xen2i(i,:));yk2i=xck.*xek2i;yn2i=ifft(yk2i);y2(i,:)=yn2i;;end;>>y2(:,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,:)]);xlabel('n');ylabel('幅度');legend('重叠保存法');〔7〕用FFT分别计算〔〕和〔〕的16点循环相关和线性相关,问一共有多少种结果,它们之间有何异同点。解答:1〕求线性相关>>n=0:1:15;>>xan=exp(-(n-8).^2/2);>>xbn=exp(-0.1*n).*sin(2*pi*0.0625*n);>>k=length(xbn);>>xan1=[xanzeros(1,k-1)];>>xbn1=[xbnzeros(1,k-1)];>>xak=fft(xan1);>>xbk=fft(xbn1);>>rm=real(ifft(conj(xak).*xbk));>>rm1=[rm(k+1:2*k-1)rm(1:k)];>>m=(-k+1):(k-1);>>

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论