您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 四川大学-数字信号处理DSP实验报告-重叠相加法-重叠保留法-Gibbs现象
四川大学实验报告实验名称:用MATLAB实现线性卷积和Gibbs现象学院:姓名:学号:日期:2013年11月Problem11实验原理1.1算法产生背景DFT是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时间傅里叶变换频域的采样。在形式上,变换两端(时域和频域上)的序列是有限长的。DFT具备明确且合理的物理含义,适合应用于数字系统,同时可以方便地由计算机进行运算。对于线性非移变离散系统,可由线性卷积表示时域输入输出关系,即Y[n]=x[n]*h[n]通常采用循环卷积降低运算量,但实际中往往无法满足对信号处理的实时性要求。因此,产生了重叠相加法和重叠保留法两种典型的算法,用以快速计算线性卷积,成为了DFT的一个重要应用。1.2算法原理1.2.1重叠相加法重叠相加法是将待过滤的信号分割成长为N的若干段,每一段都可以和有限时宽单位取样响应作卷积,再将过滤后的各段重叠相加。算法首先建立缓存序列,每次输入N点序列,通过计算x(n)和h(n)的循环卷积实现线性卷积运算,将缓存的M-1点序列和卷积结果相加,并输出前N点作为计算结果,同时缓存后M-1点,如此循环,直至所有分段计算完毕,则输出序列y(n)为最终计算结果。算法流程图:1.2.2重叠保留法重叠保留法相当于将x𝑙(𝑛)和h(𝑛)作循环卷积,然后找出循环卷积中相当于线性卷积的部分。在这种情况下,将序列y(n)分为长为N的若干段,每个输入段和前一段有M-1个重叠点。此时只需要将发生重叠的前M-1个点舍去,保留重叠的部分并输出,则可获得序列y(n)。算法流程图:2MATLAB源程序2.1MATLAB简介MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案。2.2循环卷积2.3重叠相加法2.4重叠保留法3实验结果及分析随机输入一序列x[n],h[n],分别利用重叠相加法、重叠保留法以及MATLAB自带的线性卷积函数conv()计算其输出值。3.1主函数3.2计算结果3.2.1重叠相加法Y1=overlap_add(x,h,N);[Y1]1∗25=[5.000037.0000123.0000189.0000176.0000…343.0000385.0000294.0000387.0000283.0000…167.0000220.0000171.0000156.0000249.0000…354.0000388.0000356.0000496.0000445.0000…271.0000441.0000102.0000142.000028.0000]3.2.2重叠保留法Y2=overlap_save(x,h,N);[Y2]1∗25=[5.000037.0000123.0000189.0000176.0000…343.0000385.0000294.0000387.0000283.0000…167.0000220.0000171.0000156.0000249.0000…354.0000388.0000356.0000496.0000445.0000…271.0000441.0000102.0000142.000028.0000]3.2.3MATLAB自带函数conv()Y0=conv(x,h);[]1∗25=[537123189176…343385294387283…167220171156249…354388356496445…27144110214228]可以发现,重叠相加法和重叠保留法的计算结果正确,达到预期效果。3.3运算时间Problem21实验原理语音包含不同的频率成分,降低或去除特定范围频率的幅值,就能达到滤波的效果。将原始有噪声的语音“DSP_Noise.wav”通过一个低通滤波器,即可得到复原的语音信号。示意图如下:2实验源程序3实验结果及分析通过观察发现,还原声音信号的波形(第三行)与原始信号的波形(第二行)大体上相同4频谱分析分别对噪声信号、原始信号、复原序列作傅里叶变换,然后比较其振幅的绝对值大小。源程序如下:输出频谱图如下:通过观察,可以发现复原型号的频谱图(第三行)与原始信号(第二行)大体相同。Problem31实验原理复杂周期信号如方波、锯齿波等,通过一定的数学工具,可以得到一系列频率不同的谐波。考虑周期方波信号:x(t)={𝐴,𝑡𝑇/2−𝐴,𝑇/2𝑡𝑇式中,T为周期,其傅里叶级数展开为:x(t)=4𝐴𝑛∗sin(nωt),n=1,3,5,...Nω=2𝑇在这里不妨假设A=1,T=2,则ω=2𝑇=1。算法流程图:2实验源代码3实验结果及分析3.1K取不同的值(5、20、50、100)时,对比其吉布斯现象:3.2误差分析经傅里叶级数合成的x(t)随K的增大不断逼近周期方波信号,但仍存在一定误差。例如K=20:计算其误差:K的取值绝对误差K=50.1634K=200.0647K=500.0306K=1000.0171可以发现,随着K的增大,其绝对误差越小。Summary1实验所遇故障及处理方法1.1故障:初始使用MATLAB时,由于未区分大小写,软件出现报错。处理方法:注意大小写及中英文输入。1.2故障:初始时没有考虑到分段长度的限制,导致输入分段小于系统冲击响应h(n)的长度时运算出错。处理方法:增加一个判断语句,当出现前述情况时,自动提升分段点数,问题解决。1.3故障:在编写并运行程序时,出现”Indexexceedsmatrixdimensions.”处理方法:由于输出序列y不匹配,增加y的长度。1.4故障:分析信号频谱图时,出现杂乱无章的图形。处理方法:由于序列傅里叶变换后存在虚数,必须加绝对值符号abs(),才能得到振幅图。1.5故障:吉布斯现象所输出的图形不是对称的。处理方法:将图形平移π/2。2实验总结及心得体会本次实验主要包括三个部分:用MATLAB实现重叠相加法和重叠保留法、对噪声信号进行滤波复原、观察吉布斯现象。在第一问中,主要的工作是理解算法的流程和使用MATLAB编写程序。通过认真阅读教材中关于重叠相加法和重叠保留法的内容及查阅相关资料,我理解了算法的思想,是利用循环卷积来思想线性卷积,二由于处理过程的不同,又分为重叠相加法和重叠保留法。因此,我根据算法思想画出算法的流程图,并用MATLAB正确的编写出源程序。在第二问中,其要求是从噪声中提取原始的声音,并对其做频谱分析。题目中给出了低通滤波器的序列。只需将噪声序列通过低通滤波器即让两个序列想卷积,即可得到复原的声音信号。在这里,做傅里叶变换时,可利用MATLAB提供的快速傅里叶变换fft()。在第三问中,主要是观察在不同级数K的情况下,吉布斯现象的图像变换以及和理想的低通滤波器相比较的误差分析。我们需要明白傅里叶变换的原理和展开的表达式,根据其表达式即可编写程序实现吉布斯现象。在这里,可以对图形进行适当平移,以使观察方便。本次实验的主要工具软件是MATLAB,它在工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域具有很大的优势。虽然在参加全国大学生数学建模竞赛时对MATLAB有一定的了解,但通过本次实验,仍然让我学到很多东西。通过本次DSP实验,我对矩阵实验室MATLAB的工作环境及广大应用有了更深刻的理解,在编写原代码过程中,我更加深刻地体会到了MATLAB作为具有高效的计算能力、灵活的图形处理与可视化功能,以及易学易懂的自然化语言的数学工具软件的强大功能,同时实验过程也是对该软件的编程使用的巩固。这必将有助于我以后更好的利用MATLAB这个工具。在实验过程中,我弄明白了自己以前没弄懂的重叠相加法和重叠保留法,并将它用于实践,得到了噪声的复原信号,这大大激发了我对DSP这门学科的兴趣。本次实验不仅巩固了相关基础知识,而且培养了我综合应用相关知识来解决相关问题的能力,锻炼了我的实际动手能力。我相信,本次实验必将有助于我以后的学习和工作。在此,感谢何老师和三位助教老师对我们的教育和指导!2013年11月9日
本文标题:四川大学-数字信号处理DSP实验报告-重叠相加法-重叠保留法-Gibbs现象
链接地址:https://www.777doc.com/doc-5688516 .html