欢迎来到天天文库
浏览记录
ID:42824094
大小:723.29 KB
页数:12页
时间:2019-09-23
《数字信号处理实验利用dft分析信号频谱》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验2利用DFT分析信号频谱一.实验目的1.加深对DFT原理的理解。2.应用DFT分析信号的频谱。3.深刻理解利用DFT分析信号频谱的原理,分析实现过程中出现的现彖及解决方法。计算机、MATLAB软件环境。三、实验基础理论1.DFT和DTFT的关系有限长序列x(n)(O)在频率区间(02、法1:X(』3)=〉X(k)0(6O-—)其中e(x)为内插函数方法2:然而在实际MATLAB计算中,上述插值运算不见得是最好的办法。由于DFT是DTFT的収样值,英相邻两个频率样本点的间距为2H/N,所以如果我们增加数据的长度N,使得到的DFT谱线就更加精细,其包络就越接近DTFT的结果,这样就可以利用DFT来近似计算DTFT,如果没有更多的数据,可以通过补零来增加数据长度。3•利用DFT分析连续时间信号的频谱采用计算机分析连续吋间信号的频谱,第一部就是把连续时间信号离散化。这里需要两个操作:一是采样,二是截断。对于连续时间非周期信号按采样间隔T进行采样,截取长度为M,那么对Xq(/Q)进行3、N点频域采样,得到M-l^aOn)4、=tYxame^kn=TXmW因此,可以将利用DFT分析连续非周期信号频谱的步骤归纳如下:(1)确定时域釆样间隔T,得到离散序列x(n);(2)确定截取长度M,得到M点离散序列xM(n)=x(n)iv(n),这里川⑺)为窗函数。(3)确定频域采样点数N,要求N>Mo(4)利用FFT计算离散序列的N点DFT,得到XM(k).(5)根据式rtlXM(k)计算X3)采样点的近似值。采用上述方法计算氐(£)的频谱,需要注意如下三个问题:(1)频谱混叠。如杲不满足采样定理的条件,频谱会出现混叠误差。对于频谱无限宽的信号,应考虑覆盖大部分主要频率分量的范围。(2)栅栏效5、应和频谱分辨率。使用DFT计算频谱,得到的结果只是N个频谱样本值,样本值之间的频谱是未知的,像通过一个栅栏观察频谱,称为“栅栏效应频谱分辨率与记录长度成反比,要提高频谱分辨率,就要增加记录时间。(3)频谱泄露。对信号阶段会把窗函数的频谱引入信号频谱,造成频谱泄露,解决这个问题的主要办法是采用旁瓣小的窗函数,频谱泄露和窗函数均会引起误差。因此,要合理选取采样间隔和截取长度,必要时还考虑加适当的窗。对于连续时间周期信号,我们在采用计算机进行计算时,也总是要进行截断,序列总是有限长的,仍然可以采用上述方法近似计算。4•可能用到的MATLAB函数与代码实验中DFT运算可采用MATLAB中提供的函数ff6、t来实现。g-jniQg-;n2n•••e-jnN§lDTFT可以利用MATLAB矩阵运算的方法进行计算nNX(RQ)=》x[n]e~jiln=[兀[心厂血],…,兀阪]]-n=n1四.实验内容2.已知x(n)={2,-1,1,1},完成如下要求:⑴计算器DTFT,并画出[-几皿区间的波形。⑵讣算4点DFT,并把结果显示在(1)所画的图形中。⑶对x(n)补零,计算64点DFT,并显示结果。(4)根据实验结果,分析是否可以由DFT计算DTFT,如果可以,如何实现?2.考察序列x(n)=cos(0.487m)+cos(0.527m)(1)07、长到长度为100点序列用DFT估计x(n)的频谱,要求画出相应波形。(2)0SnS100时,用DFT估计x(n)的频谱,并画出波形。(3)根据实验结果,分析怎样提高频谱分辨率。3.已知信号x(t)=0・15sin(2n7!t)+sin(27rEt)一O・lsin(27r/^t),其中/1=lHzJ2=2Hzff3=3Hzf^x(n)的表达式可以看出,它包含三个频率的正眩波,但是,从其时域波形來看,似乎是一个正弦信号,利用DFT做频谱分析,确定适合的参数,使得到的的频率分辨率复合需要。2.利用DFT近似分析连续时间信号X(t)=e-°KU(t)的频谱(幅度谱)。分析采用不同的采样间隔和截取长度进8、行计算的结果,并最终确定适合的参数。五、实验结果及分析1.(1)实验代码:»x=[2-111];>>n二0:3;»w=-pi:0.01*pi:pi;»X=x*exp(-j*n'*w);»subplot(211);»plot(w,abs(X));xlabel('Omega/pi');title('Magnitude');axistight»subplot(212);»plot(w,angle(X
2、法1:X(』3)=〉X(k)0(6O-—)其中e(x)为内插函数方法2:然而在实际MATLAB计算中,上述插值运算不见得是最好的办法。由于DFT是DTFT的収样值,英相邻两个频率样本点的间距为2H/N,所以如果我们增加数据的长度N,使得到的DFT谱线就更加精细,其包络就越接近DTFT的结果,这样就可以利用DFT来近似计算DTFT,如果没有更多的数据,可以通过补零来增加数据长度。3•利用DFT分析连续时间信号的频谱采用计算机分析连续吋间信号的频谱,第一部就是把连续时间信号离散化。这里需要两个操作:一是采样,二是截断。对于连续时间非周期信号按采样间隔T进行采样,截取长度为M,那么对Xq(/Q)进行
3、N点频域采样,得到M-l^aOn)
4、=tYxame^kn=TXmW因此,可以将利用DFT分析连续非周期信号频谱的步骤归纳如下:(1)确定时域釆样间隔T,得到离散序列x(n);(2)确定截取长度M,得到M点离散序列xM(n)=x(n)iv(n),这里川⑺)为窗函数。(3)确定频域采样点数N,要求N>Mo(4)利用FFT计算离散序列的N点DFT,得到XM(k).(5)根据式rtlXM(k)计算X3)采样点的近似值。采用上述方法计算氐(£)的频谱,需要注意如下三个问题:(1)频谱混叠。如杲不满足采样定理的条件,频谱会出现混叠误差。对于频谱无限宽的信号,应考虑覆盖大部分主要频率分量的范围。(2)栅栏效
5、应和频谱分辨率。使用DFT计算频谱,得到的结果只是N个频谱样本值,样本值之间的频谱是未知的,像通过一个栅栏观察频谱,称为“栅栏效应频谱分辨率与记录长度成反比,要提高频谱分辨率,就要增加记录时间。(3)频谱泄露。对信号阶段会把窗函数的频谱引入信号频谱,造成频谱泄露,解决这个问题的主要办法是采用旁瓣小的窗函数,频谱泄露和窗函数均会引起误差。因此,要合理选取采样间隔和截取长度,必要时还考虑加适当的窗。对于连续时间周期信号,我们在采用计算机进行计算时,也总是要进行截断,序列总是有限长的,仍然可以采用上述方法近似计算。4•可能用到的MATLAB函数与代码实验中DFT运算可采用MATLAB中提供的函数ff
6、t来实现。g-jniQg-;n2n•••e-jnN§lDTFT可以利用MATLAB矩阵运算的方法进行计算nNX(RQ)=》x[n]e~jiln=[兀[心厂血],…,兀阪]]-n=n1四.实验内容2.已知x(n)={2,-1,1,1},完成如下要求:⑴计算器DTFT,并画出[-几皿区间的波形。⑵讣算4点DFT,并把结果显示在(1)所画的图形中。⑶对x(n)补零,计算64点DFT,并显示结果。(4)根据实验结果,分析是否可以由DFT计算DTFT,如果可以,如何实现?2.考察序列x(n)=cos(0.487m)+cos(0.527m)(1)07、长到长度为100点序列用DFT估计x(n)的频谱,要求画出相应波形。(2)0SnS100时,用DFT估计x(n)的频谱,并画出波形。(3)根据实验结果,分析怎样提高频谱分辨率。3.已知信号x(t)=0・15sin(2n7!t)+sin(27rEt)一O・lsin(27r/^t),其中/1=lHzJ2=2Hzff3=3Hzf^x(n)的表达式可以看出,它包含三个频率的正眩波,但是,从其时域波形來看,似乎是一个正弦信号,利用DFT做频谱分析,确定适合的参数,使得到的的频率分辨率复合需要。2.利用DFT近似分析连续时间信号X(t)=e-°KU(t)的频谱(幅度谱)。分析采用不同的采样间隔和截取长度进8、行计算的结果,并最终确定适合的参数。五、实验结果及分析1.(1)实验代码:»x=[2-111];>>n二0:3;»w=-pi:0.01*pi:pi;»X=x*exp(-j*n'*w);»subplot(211);»plot(w,abs(X));xlabel('Omega/pi');title('Magnitude');axistight»subplot(212);»plot(w,angle(X
7、长到长度为100点序列用DFT估计x(n)的频谱,要求画出相应波形。(2)0SnS100时,用DFT估计x(n)的频谱,并画出波形。(3)根据实验结果,分析怎样提高频谱分辨率。3.已知信号x(t)=0・15sin(2n7!t)+sin(27rEt)一O・lsin(27r/^t),其中/1=lHzJ2=2Hzff3=3Hzf^x(n)的表达式可以看出,它包含三个频率的正眩波,但是,从其时域波形來看,似乎是一个正弦信号,利用DFT做频谱分析,确定适合的参数,使得到的的频率分辨率复合需要。2.利用DFT近似分析连续时间信号X(t)=e-°KU(t)的频谱(幅度谱)。分析采用不同的采样间隔和截取长度进
8、行计算的结果,并最终确定适合的参数。五、实验结果及分析1.(1)实验代码:»x=[2-111];>>n二0:3;»w=-pi:0.01*pi:pi;»X=x*exp(-j*n'*w);»subplot(211);»plot(w,abs(X));xlabel('Omega/pi');title('Magnitude');axistight»subplot(212);»plot(w,angle(X
此文档下载收益归作者所有