1、数字信号处理实验报告1实验一 利用 DFT 分析信号频谱一、实验目的1.加深对 DFT 原理的理解。 2.应用 DFT 分析信号的频谱。3.深刻理解利用 DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。二、实验设备与环境计算机、MATLAB 软件环境。三、实验基础理论1.DFT 与 DTFT 的关系DFT 实际上是 DTFT 在单位圆上以 的抽样,数学公式表示为:kNjez2, 102)(|)()(2NnkjezxXkkj 1,.0N(21)2、利用 DFT 求 DTFT方法一:利用下列公式:(22))2()(10Nkj NkXeX其中 为内插函数21)/sin()(je方法二
2、:实际在 MATLAB 计算中,上述插值运算不见得是最好的办法。由于 DFT 是 DTFT 的取样值,其相邻两个频率样本点的间距为 ,所以如果我们增加数据的长度 N,使得到的NDFT 谱线就更加精细,其包络就越接近 DTFT 的结果,这样就可以利用 DFT 计算 DTFT。如果没有更多的数据,可以通过补零来增加数据长度。3、利用 DFT 分析连续时间函数利用 DFT 分析连续时间函数是,主要有两个处理:抽样,截断对连续时间信号 一时间 T 进行抽样,截取长度为 M,则)(txa(23)nTjnatjaa exdejX )( 10再进行频域抽样可得(24))()(|)(1022 kXeTxj M
3、MnnNkjaNTka因此,利用 DFT 分析连续时间信号的步骤如下:(1) 、确定时间间隔,抽样得到离散时间序列 .)(nx数字信号处理实验报告2(2) 、选择合适的窗函数和合适长度 M,得到 M 点离散序列 .)()(nwxM(3) 、确定频域采样点数 N,要求 NM。(4) 、利用 FFT 计算 N 点 DFT,得到 。)(kX(5) 、根据式(24)计算 的近似值。(ja利用上述方法分析连续连续时间时,应该注意以下问题:(1) 、频谱泄露(2) 、频谱混叠(3) 、栅栏效应和频谱分辨率四、实验内容1、已知 x(n)=2,-1,1,1,完成如下要求:(1) 、计算他的 DTFT,并画出-
4、,区间的波形。(2) 、计算 4 点 DFT,并把结果显示在(1)所画的图形中。(3) 、对 x(n)补零,计算 64 点 DFT,并显示结果。 (4) 、 根据实验结果,分析是否可以由 DFT 计算 DTFT,如果可以,如何实现.(1) (2)实验代码如下:x=2 -1 1 1;n=0:3;w=0:0.01*pi:pi*2;X1=x*exp(-j*n*w);X2=fft(x)subplot(211);plot(w,abs(X1);hold on;stem(n*pi/2,abs(X2),filled);axis tight;subplot(212);plot(w,angle(X1);hold
5、on;stem(n*pi/2,angle(X2),filled);axis tight;MATLAB 图形如下:数字信号处理实验报告30 1 2 3 4 5 601230 1 2 3 4 5 6-101(3)实验代码如下:N=0:63;x=-2 -1 1 1 zeros(1,60);Y=fft(x);subplot(211);stem(abs(Y),filled);subplot(212);stem(angle(Y),filled);MATLAB图像如下:数字信号处理实验报告40 10 20 30 40 50 60 700123450 10 20 30 40 50 60 70-4-2024(4
6、)答:可以由 DFT 计算 DTFT。由实验结果波形看出,序列补零后,长度越长,DFT 点数越多,其 DFT 越逼近其 DTFT 的连续波形。所以,令序列补零至无穷长时,可由其 DFT 当做其DTFT。2、考察序列x(n)=cos(0.48n)+cos(0.52n) (1)0=n=10 时,用 DFT 估计 x(n)的频谱;将 x(n)补零加长到长度为 100 点序列用 DFT估计 x(n)的频谱,要求画出相应波形。(2)0=n=100 时,用 DFT 估计 x(n)的频谱。并画出波形。(3)根据实验结果,分析怎样提高频谱分辨率(1)实验程序代码如下:n=0:10;k=0:10;x=cos(0
7、.48*pi*n)+cos(0.52*pi*n);Y=fft(x);subplot(211);stem(k,abs(Y),filled);subplot(212);stem(k,angle(Y),filled);MATLAB波形如下:数字信号处理实验报告50 1 2 3 4 5 6 7 8 9 1002468100 1 2 3 4 5 6 7 8 9 10-2-1012将 补零至100点再分析其频谱)(nx程序代码:n=n1 n2k=0:99n1=0:10x1=cos(0.48*pi*n1)+cos(0.52*pi*n1);n2=11:99x2=zeros(1,89);x=x1 x2;Y=ff
8、t(x);subplot(211);stem(k,abs(Y),filled);subplot(212);stem(k,angle(Y),filled);MATLAB图形如下:数字信号处理实验报告60 10 20 30 40 50 60 70 80 90 1000510150 10 20 30 40 50 60 70 80 90 100-2-1012(2)0n100时程序代码如下:n=0:100; x=cos(0.48*pi*n)+cos(0.52*pi*n); y=fft(x); subplot(211); stem(0:100,abs(y),filled); subplot(212); s
9、tem(0:100,angle(y)/pi,filled); MATLAB图形如下:数字信号处理实验报告70 10 20 30 40 50 60 70 80 90 10002040600 10 20 30 40 50 60 70 80 90 100-1-0.500.51(3)可以通过增加N来提高频谱分辨率。3、已知信号x(t)=0.15sin2f1t+sin2f2t-0.1sin2f3t,其f1=1Hz,f2=2Hz,f3=3Hz。从x(t)的表达式可以看出,它包含三个频率的正弦波,但是,从其时域波形来看,似乎是一个正弦信号,利用DFT做频谱分析,确定适合的参数,使得到的频谱的频率分辨率符合需
10、要。T=input(T=);M=input(M=);N=input(N=);k=0:N-1;t1=0:T:(M-1)*T;x1=0.15*sin(2*pi*t1)+sin(4*pi*t1)-0.1*sin(6*pi*t1);T2=M*T:N-1;x2=zeros(1,N-M*T);x=x1 x2;X=fft(x);Y=T*X;subplot(211);stem(k,abs(Y),filled);subplot(212);stem(k,angle(Y),filled);MATLAB波形图如下:T=1,M=4,N=10MATLAB图形如下:数字信号处理实验报告80 1 2 3 4 5 6 7 8
11、901234x 10-150 1 2 3 4 5 6 7 8 9-4-20244、利用 DFT 分析连续时间信号 x(t)=e-0.1 u(t)的频谱(幅度值) 。分析采用不同的采样间隔和截取长度进行计算的结果,并最终确定合适的参数。程序代码:T=input(T=);M=input(M=);N=input(N=);k=0:N-1;t1=0:T:(M-1)*T;x1=exp(-0.1*t1)T2=M*T:N-1;x2=zeros(1,N-M*T);x=x1 x2;X=fft(x);Y=T*X;stem(k,abs(Y),filled);T=1 M=3,N=10波形图如下:数字信号处理实验报告90 1 2 3 4 5 6 7 8 900.511.522.53T=1,M=4,T=20波形图如下:0 2 4 6 8 10 12 14 16 18 2000.511.522.533.5五、实验心得与体会通过上机实验,更加深入的了解到了利用 DFT 分析连续时间信号的优缺点以及处理方法,同于对于 DFT 和 DTFT 和 FT 的关系也有了更进一步的认识。