数字信号处理实验报告完整版解读.docx

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验1 利用DFT分析信号频谱 一、实验目的 1.加深对DFT原理的理解。 2.应用DFT分析信号的频谱。 3.深刻理解利用DFT分析信号频谱的原理,分析实现过程中出现的现象及解决方法。 二、实验设备与环境 计算机、MATLAB软件环境 三、实验基础理论 1.DFT与DTFT的关系 有限长序列x(n)(0≤n≤N-1)的离散时间傅里叶变换X(ejω)在频率区间(0≤ω≤2π)的N个等间隔分布的点kω=2πk/N(0≤k≤N-1)上的N个取样值可以由下式表示: 由上式可知,序列x(n)的N点DFT Xk,实际上就是x(n)序列的DTFT在N个等间隔频率点kω=2πk/N(0≤k≤N-1)上样本Xk。 2.利用DFT求DTFT 方法1:由恢复出的方法如下: 由图2.1所示流程可知: 由上式可以得到: 其中为内插函数 方法2:实际在MATLAB计算中,上述插值运算不见得是最好的办法。由于DFT是DTFT的取样值,其相邻两个频率样本点的间距为2π/N,所以如果我们增加数据的长度N,使得到的DFT谱线就更加精细,其包络就越接近DTFT的结果,这样就可以利用DFT计算DTFT。如果没有更多的数据,可以通过补零来增加数据长度。 3.利用DFT分析连续信号的频谱 采用计算机分析连续时间信号的频谱,第一步就是把连续信号离散化,这里需要进行两个操作:一是采样,二是截断。 对于连续时间非周期信号,按采样间隔T进行采样,阶段长度M,那么: 对进行N点频域采样,得到 因此,可以将利用DFT分析连续非周期信号频谱的步骤归纳如下: (1)确定时域采样间隔T,得到离散序列 (2)确定截取长度M,得到M点离散序列,这里为窗函数。 (3)确定频域采样点数N,要求N≥M。 (4)利用FFT计算离散序列的N点DFT,得到. (5)根据上式由计算采样点的近似值。 采用上述方法计算信号的频谱需要注意如下三个问题: (1)频谱混叠。如果不满足采样定理的条件,频谱会出现混叠误差。对于频谱无限宽的信号,应考虑覆盖大部分主要频率分量的范围。 (2)栅栏效应和频谱分辨率。使用DFT计算频谱,得到的结果只是N个频谱样本值,样本值之间的频谱是未知的,像通过一个栅栏观察频谱,称为“栅栏效应”。频谱分辨率与记录长度成反比,要提高频谱分辨率,就要增加记录时间。 (3)频谱泄露。对信号截断会把窗函数的频谱引入信号频谱,造成频谱泄露。解决这个问题的主要办法是采用旁瓣小的窗函数,频谱泄露和窗函数均会引起误差。 因此,要合理选取采样间隔和截取长度,必要时还需考虑加适当的窗。 对于连续时间周期信号,我们在采用计算机进行计算时,也总是要进行截断,序列总是有限长的,仍然可以采用上述方法近似计算。 4.可能用到的MATLAB函数与代码 实验中DFT运算可采用MATLAB中提供的函数fft来实现。 DTFT可采用MATLAB矩阵运算的方法进行计算,如下式所示: 四、实验内容 1、已知,完成如下要求: (1)计算其DTFT,并画出区间的波形。 (2)计算4点DFT,并把结果显示在(1)所画的图形中。 (3)对x(n)补零,计算64点DFT,并显示结果。 (4) 根据实验结果,分析是否可以由DFT计算DTFT,如果可以,如何实现。 解:(1)计算其DTFT,并画出区间的波形。 n=0:3; x=[2 -1 1 1]; w=-pi:0.01*pi:pi; X=x*exp(-j*n*w); subplot(211); plot(w,abs(X)); xlabel(\Omega/\pi); title(Magnitude); axis tight; subplot(212); plot(w,angle(X)/pi); xlabel(\Omega/\pi); title(Phase); axis tight; (2)计算4点DFT,并把结果显示在(1)所画的图形中。 Xk=fft(x); subplot(211); hold on; stem(n,abs(Xk),filled); plot(w,abs(X)); axis tight; xlabel(\Omega/\pi); title(Magnitude); subplot(212); hold on; plot(w,angle(X)/pi); stem(n,angle(Xk),filled); axis tight; xlabel(\Omega/\pi); title(Phase); 运行结果如下: (3)对x(n)补零,计算64点DFT,并显示结果。 x=[2 -1 1 1 zeros(1,60)]; n=0:63; Xk=fft(x

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档