2022年2022年离散傅立叶变换的性质及应用实 .pdf
离散傅立叶变换的性质及应用实验实验目的 1. 了解 DFT性质及应用。2. 熟悉 MATLAB 编程的特点。实验要求能够用 MATLAB 来进行数字信号的处理。实验原理 1 、DFT变换正变换:反变换:2、序列卷积设序列的长度为 N ,序列 的长度为 M 。则分别对两个序列作点的 DFT得到 和 ,则两序列的线性卷积等于 。即时域卷积频域为相乘关系。实验仪器计算机 一台;MATLAB 软件实验步骤 1 、 用三种不同的 DFT程序计算的傅立叶变换,并比较三种程序计算机的运行时间。(1)编制用 for 循环语句的 M函数文件 dft1.m ,用循环变量逐点计算;(2)编写用 MATLAB 矩阵运算的 M函数文件 dft2.m ,完成下列矩阵运算:(3)调用 FFT库函数,直接计算 ; (4) 分别利用上述三种不同方式编写的DFT程序计算序列的傅立叶变换,并画出相应的幅频和相频特性,再比较各个程序的计算机运行时间。2、利用 DFT实现两序列的卷积运算,并研究DFT点数与混叠的关系。用 FFT和 IFFT 分别求线性卷积和混叠结果输出,并用函数stem(n,y) 画出相应图形。选择不同的DFT点数进行对比,观察其混叠效应。3、研究高密度频谱与高分辨率频谱设有连续信号以采样频率对该信号采样,分析下列三种情况的幅频特性。(1)采集数据长度点,做 点的 DFT ,并画出幅频特性。(2)采集数据长度点,补零到 256 点的 DFT ,并画出幅频特性。(3)采集数据长度点,做 点的 DFT ,并画出幅频特性。观察三幅不同频率特性图,分析和比较它们的特点以及形成的原因。4、实现序列的内插和抽取所对应的傅立叶变换。给定序列,做 128 点的傅立叶变换,并求和为整数对应的傅立叶变换(128 点) 。比较这三个计算结果得到的幅频特性图,分析其差别产生的原因。 选择不同的插值倍数和抽样倍数对比其幅频的变化实验内容 1.(1)M 函数文件 dft1.m function y=dft1(x) N=length(x); for k=1:N A=0; for n=1:N A=A+x(n)*exp(-j*2*pi/N)*(k-1)*(n-1); y(k)=A; end end end (2)M 函数文件 dft2.m function y=dft2(x) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - N=length(x); x1=x; for r=1:N for c=1:N g(r,c)=exp(-j*2*pi/N)*(r-1)*(c-1); end end y=g*x1; end 2. 取 23 点的 DFT x=0:15;h=ones(1,8); y1=fft(x,23); y2=fft(h,23); y3=y1.*y2; y4=ifft(y3,23) 取 24 点的 DFT y1=fft(x,24); y2=fft(h,24); y3=y1.*y2; y4=ifft(y3,24) 取 18 点的 DFT y1=fft(x,18); y2=fft(h,18); y3=y1.*y2; y4=ifft(y3,18) 3. fs=32000;Ndata=16;N=16; n=0:Ndata-1;t=n/fs; x=cos(2*pi*6500*t)+cos(2*pi*9000*t); http:/ x2=neicha(x,3); y=fft(x,128);y1=fft(x1,128);y2=fft(x2,128); subplot(3,1,1),stem(n,abs(y),title(x(n)幅频特性 ) subplot(3,1,2),stem(n,abs(y1),title(x(3n)幅频特性 ) subplot(3,1,3),stem(n,abs(y2),title(x(n/3)幅频特性 ) grid on subplot(3,1,1),grid on subplot(3,1,2),grid on 序列抽取函数 chouqu.m function y=chouqu(x,k) n=length(x); m=(n-1)-mod(n-1),k)/k; for j=0:m y(j+1)=x(k*j+1); end end 序列内插函数 neicha.m function y=neicha(x,k) n=length(x); for m=0:(n-1)*k if mod(m,k)=0 y(1+m)=x(m/3)+1); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - else y(m+1)=0; end end end 为序列抽取和内插函数。实验数据 1. (4) x=ones(1,8); tic;y1=dft1(x),t1=toc y1 =8.0000 -0.0000 + 0.0000i -0.0000 - 0.0000i -0.0000 + 0.0000i 0 - 0.0000i -0.0000 - 0.0000i -0.0000 - 0.0000i 0.0000 + 0.0000i t1 =7.7712e-004 tic;y2=dft2(x),t2=toc y2=8.0000 -0.0000 + 0.0000i -0.0000 - 0.0000i -0.0000 + 0.0000i 0 - 0.0000i -0.0000 - 0.0000i -0.0000 - 0.0000i 0.0000 + 0.0000i t2 =6.3996e-004 tic;y3=fft(x),t3=toc y3 = 8 0 0 0 0 0 0 0 t3 =3.6269e-004 从各自运行所需时间来看: 运用 FFT库函数所需时间最少。 2. 23点 DFT时求得的卷积24 点 DFT时求得的卷积18 点 DFT时求得的卷积分别通过图形来表示如下:3. 幅频图如下: 4. 图形如下:实验总结学会用不同DFT程序实现一维数字信号的傅立叶变换。通过本实验了解了DFT的性质及其应用。 熟悉了 MATLAB 的编程特点。 并学会了永 MATLAB 来处理数字信号。对永 MATLAB 处理数字信号特点有了初步了解,及加深了来对 MATLAB 编程特点有有了更进一步的认识。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -