现代信号处理课程设计报告(五篇)
文件格式:DOCX
时间:2023-03-21 00:00:00    小编:三体浮华_

现代信号处理课程设计报告(五篇)

小编:三体浮华_

在现在社会,报告的用途越来越大,要注意报告在写作时具有一定的格式。那么什么样的报告才是有效的呢?下面我给大家整理了一些优秀的报告范文,希望能够帮助到大家,我们一起来看一看吧。

现代信号处理课程设计报告篇一

《现代信号处理》 课程设计报告

学 院: 专业班级:

姓 名:

学 号:

指导老师:

设计时间:

前 言

《现代信号处理》课程设计与《现代信号处理》课程配套,是通信工程类专业的重要实践环节。数字信号处理是每一个电子信息科学工作者必须掌握的重要知识。它采用计算机仿真软件,以数值计算的方法对信号进行分析、变换、滤波、检测、估计与识别等加工处理,以达到提取信息便于使用的目的。

通信工程专业的培养目标是具备通信技术的基本理论和应用技术,能从事电子、信息、通信等领域的工作。鉴于我校充分培养学生实践能力的办学宗旨,对本专业学生的培养要进行工程素质培养、拓宽专业口径、注重基础和发展潜力。特别是培养学生的创新能力,以实现技术为主线多进行实验技能的培养。学生通过《现代信号处理》课程设计这一重要环节,可以将本专业的主干课程《现代信号处理》从理论学习到实践应用,对数字信号处理技术有较深的了解,进一步增强学生动手能力和适应实际工作的能力。

目 录

前 言............................................................2 第一章 设计目的及要求.............................................4

1.1 课程设计目的................................................4 1.2 课程设计要求................................................4 1.3 课程设计选做题目............................................4 第二章 设计题目及思想.............................................5

2.1 各题目的设计思想............................................5

2.1.1 第一题................................................5 2.1.2 第二题...............................................6 2.1.3 第三题...............................................6 2.1.4 第四题...............................................7 2.1.5 第五题...............................................7 2.1.6 第六题...............................................8 2.2 gui界面设计思想............................................9 第三章 调试及结果分析............................................12 3.1 gui界面的结果与调试.......................................12 3.2 各题目的结果与调试.........................................12 3.2.1 第一题...............................................12 3.2.2 第二题...............................................13 3.2.3 第三题...............................................14 3.2.4 第四题...............................................15 3.2.5 第五题...............................................16 3.2.6 第六题...............................................21 第四章 课程设计总结..............................................24 4.1 课程设计所遇问题及解决方案.................................24 4.2 课程设计心得体会...........................................25 附录:............................................................26 参考文献..........................................................35 第一章 设计目的及要求

1.1 课程设计目的

1.全面复习课程所学理论知识,巩固所学知识重点和难点,将理论与实践很好地结合起来。

2.掌握信号分析与处理的基本方法与实现

3.提高综合运用所学知识独立分析和解决问题的能力; 4.熟练使用一种高级语言进行编程实现。

1.2 课程设计要求

一、使用matlab(或其它开发工具)编程实现上述内容,写出课程设计报告。滤波器设计题目应尽量避免使用现成的工具箱函数。为便于分析与观察,设计中所有频谱显示中的频率参数均应对折叠频率归一化。

二、课程设计报告的内容包括:

(1)课程设计题目和题目设计要求;(2)设计思想和系统功能分析;

(3)设计中关键部分的理论分析与计算,关键模块的设计思路;(4)测试数据、测试输出结果,及必要的理论分析和比较;

(5)总结,包括设计过程中遇到的问题和解决方法,设计心得与体会等;(6)参考文献;(7)程序源代码清单。

三、课程设计考核要求:

课程考核分三部分,一部分是上机率,占20%;第二部分是检查成绩,最后两次上机为检查时间,占50%;第三部分为课程设计报告,占30%。注意:

(1)演示系统使用gui界面或混合编程实现集成打包发布,酌情加分。(2)若发现程序或课程设计报告雷同,一律不及格。

1.3 课程设计选做题目

选题1.音乐信号处理:

1)获取一段音乐或语音信号,设计单回声滤波器,实现信号的单回声产 生。给出加入单回声前后的信号频谱。

2)设计多重回声滤波器,实现多重回声效果。给出加入多重回声后的信号频谱。

3)设计均衡器,使得得不同频率的混合音频信号,通过一个均衡器后,增强或削减某些频率区域。

选题二.对混有噪声的音乐信号进行滤波:

1)在一段音乐信号中混入两个频率的正弦型干扰信号,利用fft计算该混合信号的频谱并确定干扰信号的频谱;

2)利用二阶带阻滤波器设计一个能滤出干扰信号的梳状滤波器; 3)利用梳状滤波器滤除信号中的噪声,播放处理前后的信号,并比较处理前后的结果

本次课程设计共有6道必做题目,并且我们并没有系统的学过matlab,所以我并没有做选做题。

第二章 设计题目及思想

2.1 各题目的设计思想

2.1.1 第一题

一、题目:

1.给定模拟信号:xa(t)e1000t

1)选择采样频率fs = 5000hz和合适的信号长度,采样得到序列 x1(n)。求并画出x1(n)及其序列傅里叶变换 |x1(ejw)|。

2)选择采样频率fs = 1000hz和合适的信号长度,采样得到序列 x2(n)。求并画出x2(n)及其序列傅里叶变换 |x2(ejw)|。3)说明|x1(ejw)|与|x2(ejw)|间的区别,为什么?

二、思想:

第一题主要的考查点是对连续时间信号的抽样,对抽样信号进行傅里叶变换以及不同采样频率对幅频特性曲线的影响等。主要的理论依据如下:

(1)对连续时间信号的抽样:设连续时间信号为x(t),则对其采样得到的离散时间信号为x(n)=x(nt),t为采样周期;

(2)离散时间信号的傅里叶变换:x(e)ft[x(n)]j

由于抽样后的离散时间信号题目没有给出,故应先对连续信号做抽样,后再对离散时间信号进行傅里叶变换。本次我直接采用输入公式的方式进行傅里叶变换。

nx(n)ejn。

2.1.2 第二题

一、题目:

2.已知两系统分别用下面差分方程描述:

y1(n)x(n)x(n1)

y2(n)x(n)x(n1)

试分别写出它们的传输函数,并分别打印h(ejw)~w曲线。说明这两个系统的区别。

二、思想:

第二题的主要考查点是由系统的方程得出系统的传输函数。而在matlab中有freqz函数可直接求出系统的传输函数,然后由abs函数以及angle函数可得出其幅频相频特性曲线。

2.1.3 第三题

一、题目:

3.已知已调信号x(t)cos(t)cos(9t),其中调制信号cos(t),载波为cos(9t)。

1)选择合适的采样频率及信号长度,使用fft分析该已调信号的频谱并画出其幅频特性和相频特性曲线图。2)对该已调信号进行解调,恢复原调制信号。

二、思想:

第三题的主要考查点是信号的调制与解调。这属于通信原理的主要原理知识。本题第一问需要使用fft分析已调信号的频谱特性,在matlab中fft可以直接作为函数调用,所以我选择直接调用fft对其进行分析。第二问中要 对已调信号进行解调。其主要思想是解调已调信号需要先将已调信号乘以载波后选择适当的滤波器进行滤波,将其多余信号滤除。

2.1.4 第四题

一、题目:

4.已知三角波序列x1(n)和反三角波序列x2(n):

n1,0n34n,0n3x1(n)8n,4n7 x2(n)n3,4n7

0,0,其它其它用n=8点fft分析序列x1(n)和x2(n)的幅频特性,观察两者的序列形状和频谱特性曲线有什么异同?绘出两序列及其幅频特性曲线。在x1(n)和x2(n)的末尾补零,用n=16点fft分析这两个信号的幅频特性,观察幅频特性发生了什么变化?两情况的fft频谱还有相同之处吗?这些变化说明了什么?

二、思想:

第四题的主要考查点是fft快速傅里叶变换的用法。而这在matlab中,fft可以直接作为函数调用,所以我选择用fft快速傅里叶变换进行分析三角波序列。不过首先要将三角波以及反三角波的取值范围和函数值计算出来,后才可直接对序列进行fft变换并分析其频谱特性。

2.1.5 第五题

一、题目:

5.设有一信号x(n)=1+cos(n)+cos(42n),设计各种iir数字滤波器以实现: 31)低通滤波器,滤除cos(2n)的成分,保留成分1+cos(n)342)高通滤波器,滤除1+cos(n)的成分,保留成分cos(42n)33)带通滤波器,滤除1+cos(2n)的成分,保留成分cos(n)342n)34)带阻滤波器,滤除cos(n)的成分,保留成分1+cos(4要求:1)求出各个滤波器的阶数,设计各滤波器。画出各滤波器的幅频和相 频特性,计算滤波器的系统函数h(z)。2)画出滤波前后信号的时域、频域波形。

二、思想:

第五题的主要考查点是用iir双线性变换法设计bw类型(低通、高通、带通以及帯阻)数字滤波器。

其主要理论依据如下:(1)正切变换实现频率压缩:

2tan(1t/2)/t

(2)双线性变换:

s(2/t)[(1z1)(1z1)]

z(2/ts)/(2t/ s

(3)将所需数字滤波器的边界频率转换成相应类型的模拟滤波器的边界频率公式为:

(2/t)tan(/2)

其设计主要按照课中所学滤波器设计的步骤进行分步设计。但由于其系统函数的公式无法直接输入,故采用buttord函数进行巴特沃斯滤波器的方法分析所给参数计算出其系统函数的系数矩阵。再借由系统函数的系数矩阵得出具体的系统函数。得出系统函数后便可得到相应的阶数以及幅频、相频特性。

滤波前的信号频域波形由先对时域波形进行fft变换后得出。对原信号的滤波则采用直接调用filter函数进行对原函数的滤波,而频域波形同样经由先fft变换分析后得出。

2.1.6 第六题

一、题目:

6.1)用hanning窗设计一线性相位带通数字滤波器,要求:n=15。观察它的实际3db和20db带宽。n=45,重复这一设计,观察幅频和相位特性的变化,注意长度n变化的影响;

2)分别改用矩形窗和blackman窗,设计(1)中的带通滤波器,观察并记录窗函数对滤波器幅频特性的影响,比较三种窗的特点;总结窗的不同长度和不同窗对滤波器的影响

二、思想:

第六题的主要考查点是几种主要的窗函数(矩形窗、汉宁窗、哈明窗等)对离散时间信号的截取,并用fft对其频谱进行分析。其主要理论依据如下:

(1)矩形窗(rectangle window)

wr(n)rn(n)

其幅度函数为:

wrg()sin(n/2)/sin(/2)

(2)汉宁(hanning)窗——升余弦窗

whn(n)0.5[1cos(2n/(n1))]rn(n)

其频谱函数为:

whn(ej)ft[whn(n)]whng()ej(n1)/2

其幅度函数为:

whng()0.5wrg()0.25[wrg(2/n)wrg(2/n)]

(3)哈明(hamming)窗——改进的升余弦窗

whm(n)[0.540.46cos(2n/(n1))]rn(n)

其频谱函数为:

whm(ej)0.54wr(ej)0.23wr(ej(2/(n1)))0.23wr(ej(2/(n1)))

当n1时,其幅度函数可近似表示为:

whmg()0.54wrg()0.23wrg(2/n)0.23wrg(2/n)

2.2 gui界面设计思想

本次课程设计由于结果中图形太多,若一次性完成所以题目的演示则需要开创许多个新的窗口进行图形建立,这样不方便验收及查看。所以最后决定采用图形用户(graphical user interface,简称 gui)界面,下面对gui界面进行简单的一些介绍。

gui 是 graphical user interface 的简称,即图形用户界面,通常人机交互图形化用户界面设计经常读做“goo-ee”,准确来说 gui 就是屏幕产品的视觉体验和互动操作部分。

gui 是一种结合计算机科学、美学、心理学、行为学,及各商业领域需求分析的人机系统工程,强调人—机—环境三者作为一个系统进行总体设计。

在matlab主界面中输入“guide”,再敲击回车键,弹出gui界面窗口,即可新建gui界面,如下图所示:

图2.5 gui界面的新建窗口图

在图2.5的窗口中点击“ok”,则可新建一个gui界面,并进入其编辑窗口,如图2.6所示:

图2.6 gui界面的编辑窗口图

随后便可在此窗口内编辑演示界面,此次设计主要利用的是static text(静态文本)和push button(按钮)。在界面中输入相关的静态文本,并新建若干个按钮,再以此在每个按钮上点击右键,选择view callbacks调出call back函数,将相应设计题的源代码输入call back函数界面中对应按钮的段落后。如图2.7 和2.8所示:

图2.7 调用callback的操作流程图

图2.8 callback代码编辑窗口图

如此便可以建立一个方便、美观又直观的演示界面,以便老师验收时操作简单、条理清晰、并且用时不长。第三章 调试及结果分析

3.1 gui界面的结果与调试

这次设计的演示界面采用的是gui界面,这一点在前面提到过,在此不赘述了,只将界面的调试结果说明一下。演示界面如图3.1所示:

图3.1 演示界面图

如图3.1所示,用户克根据需要选择题目,每个题中又有不同的选项,只要点击一下对应的按钮,相关信号的处理结果就会出现在一个新的figure窗口中。

3.2 各题目的结果与调试

3.2.1 第一题

第一题的调试结果如图3.2所示,各图形的意义均有明确表明。

图3.2 第一题的调试结果图

分析: 分别以所要求采样频率fs=5000hz、1000hz对xa(t)进行等间隔采样,得到x(n)xa(nt),(t1/fs为采样周期),可知,采样信号的频谱函数是在原模拟信号频谱函数的周期延拓;若以频率f为自变量,则以采样频率fs1/t为延拓周期;对频带限于fc的模拟信号xa(t),根据采样定理,只有当fs2fc时,采样后才不会发生频谱混叠失真。但是在matlab上是无法计算连续函数,只有在当fs足够大的时候,我们才将频谱混叠忽略不计,从而可对采样序列进行傅里叶变换;最后应用subplot()命令实现画图,并注意到要归一化。

由以上实验得到的图形结果可以看到:,当采样频率越大的时候,采样信号的频谱越陡峭,而其失真情况也越来越小,根据采样定理“采样频率越接近信号频率,其失真情况就越小”可以得到上述结论。

3.2.2 第二题

第二题的调试结果如图3.3所示,各图形的意义均有明确表明。

图3.3 第二题的调试结果图

分析:由于所求系统的系统方程已经由题目可知,则其零极点分布图也可由上图所知。故根据计算所得出其系统函数后做fft变换所得幅频特性和相频特性均由上图可知。

3.2.3 第三题

第三题的调试结果如图3.4所示,上图为第一问结果,下图为第二问结果。

图3.4 第三题的调试结果图

分析:当已调信号进行不同点数的采样后再经不同间隔的fft变换后,其展现的幅频特性以及相频特性类似于上图。因选取的采样点不同则结果不同。第二问中的滤波器的设计参数由题目中的调制信号和载波决定,由此设计出的低通滤波器的系统函数图如上。最后因滤波器的不严密而导致解调后的原信号有所失真,并不能完完全全的解调出原信号。

3.2.4 第四题

第四题的调试结果如图3.5所示,图中所代表意义均有标明

图3.5 第四题的调试结果图

分析:首先先根据题目中所给的三角波函数以及反三角波函数的函数式得出其波形。经由不同采样的fft变换后有stem画出其图形如上。由图可看出三角波序列和反三角波序列在8点的fft变换后的图形基本一样,没有太大差别。而16点fft后的图形则有不小差异,此说明对其fft变换时,取的点数越多,图形差异越大。

3.2.5 第五题

第五题的调试结果第一问中低通滤波器的图形如图3.6所示。

图3.6 第五题的低通滤波器调试结果图

高通滤波器的图形如图3.7所示。

图3.7 第五题的高通滤波器调试结果图 带通滤波器的图形如图3.8所示。

图3.8 第五题的带通滤波器调试结果图 带阻滤波器的图形如图3.9所示。

图3.9 第五题的带阻滤波器调试结果图 分析:经由一下理论知识可依次求出各滤波器的参数及系统函数。(1)正切变换实现频率压缩:

2tan(1t/2)/t

(2)双线性变换:

s(2/t)[(1z1)(1z1)]

z(2/ts)/(2t/ s(3)将所需数字滤波器的边界频率转换成相应类型的模拟滤波器的边界频率公式为:

(2/t)tan(/2)

频域图形均由fft变换后可得出。此次设计iir数字滤波器是其参数选择并不精准,均由自己在可行范围中尝试得出最像的结果。但其滤波器的幅频特性和相频特性仍然具有失真现象。

3.2.6 第六题

第六题的调试结果依次的图形如图4.0所示。

图4.0 第六题的调试结果图

分析:此图由上往下依次为n=15及n=45的汉明窗、布莱克曼窗和矩形窗。由图形可以看出n越小时窗函数的主瓣范围越大,副瓣坡度越缓。滤波器滤波功能越好。

第四章 课程设计总结

4.1 课程设计所遇问题及解决方案

拿到设计题时,完全不知道从何处入手,一开始只会按照书上的解题思路一步步来算,一步步来解这些题目,解出来后再设法将其输入编程中,从而的到想要的答案。可是每次如此,系统输出的结果总是和预想中的不一样,有些甚至不知道哪里出了错。不过后来,在翻阅了有关参考文献后,知道了题目中大部分内容都可以通过matlab强大的函数工具箱里的函数直接实现。开始设计后,总是用错函数,输错参数等,这类问题层出不穷,毕竟是第一次用matlab进行设计实践,很多问题还是要虚心向老师和同学请教的。在很多次的请教,修改后,程序基本成功地得到了运行,调试过程中又遇到了一些小问题,大多是由于粗心 导致的,这些问题在调试过程中都得到了修正。

这次课程设计过程中遇到的主要问题是频率归一化的问题,开始对归一化的概念不是很清楚。在问了班上能力较强的同学后,对这个概念深入理解了,并在程序中成功地实现了。

4.2 课程设计心得体会

通过这两周的《现代信号处理》课程设计实践,我学习会了matlab编程语言的基本概念、语法、语义和数据类型的使用特点,加深了对数字信号处理这门学科所学理论知识的理解,掌握了运用结构化程序设计的基本思想和方法,更重要的是培养了自己的自学能力。

因为这是我们第一次接触matlab编程语言,在编写程序以及调试的过程中遇到了很多困难,但是我通过去图书馆查找资料,请教同学老师,再自己一点点改善程序,最终还是编写出一个比较完善的程序,基本实现了所有要求功能,这是最值得我欣慰的一点。

刚拿到程序设计课题时,我感觉一片茫然,因为在之前的信号处理学习中,本身对数字信号处理这门学科的学习就不精深,更何况只是在一些例题中接触过matlab语言,甚至没有看过一些基础的书籍,更没有上过课,所以初次遇到一个实际问题,感觉无从下手。这是由于自己对matlab的模块设计不够理解,同时对matlab的基本语句一无所知,不过通过请教老师懂得了首先要了解解题思路,以及若要实现此次设计需要哪些最基本的思路和函数。这样一下子豁然开朗,掌握了基本设计思路之后,后面的编程就顺利多了。至此,我真真体会到清晰地思路对成功编写一个程序的重要性。

当然成功编写一个程序绝非易事,之前,我总以为程序能够正常运行,就代表着编程成功,后来我才发现我大错特错了。我用了三天时间,完成了程序的编写、改错,但我立刻发现尽管程序能够正常运行,部分功能却不完善,甚至不能出现自己想要的结果。经过一次又一次调试、修改又修改,一点一点发现问题并改正,我才真正发现编程远没有想象中的简单,并且深刻体会到编程和单纯的解题是有着多么大的不同。它需要的不仅是清晰地编程思路、编程技巧,还需要细心,有耐心有毅力。

在编程过程中,我遇到了许多问题,通过查找资料也未能找到原因,每次我想老师请教,可老师总不是万能的,顾不到每一位同学的要求。这时,同学就是一个很好的求助对象。我们可以找曾经接触过matlab的同学学习、交流、讨论。这样不仅我们可以学习,他们也可以更加巩固他们的知识。我想这便是团队 精神,有的时候真的是人多力量大。

最后,在此次编程过程中,我收获的不仅仅是对上学期已学的知识的巩固,和matlab这项新的工作平台,我还学会了遇到难题时不能轻易放弃,要有迎难而上的勇气,有时候自己一个人完成不了的理解不了的知识,多请教请教别人是一项很好的选择等等。总之,这次课程设计让我学会了很多,我会铭记于心,让其在以后的学习、生活或者工作中都时刻警醒着我。

附录:

源程序清单

%1.现代码 figure(1)t=-0.005:0.0001:0.005;y1=exp(-1000*abs(t));t=0.0002;n=-25:1:25;y2=exp(-1000*abs(n*t));n=200;k=0:1:n;w=pi*k/n;x=y2*exp(-j*n'*w);x=real(x);w=[-fliplr(w),w(2:n+1)];x=[fliplr(x),x(2:n+1)];subplot(2,2,1);plot(t,y1);title('原函数');xlabel('t/秒');ylabel('y1(n)');subplot(2,2,2);stem(n*t,y2,'.');xlabel('n*t/秒');ylabel('y2(n)');title('(1)离散序列,fs=5000');subplot(2,3,4);plot(w/pi,x);xlabel('频率/pi');ylabel('xl(w)')title('(1)序列的傅里叶变换')t=-0.005:0.0001:0.005;y1=exp(-1000*abs(t));t=0.001;n=-5:1:5;y2=exp(-1000*abs(n*t));n=200;k=0:1:n;w=pi*k/n;x=y2*exp(-j*n'*w);x=real(x);w=[-fliplr(w),w(2:n+1)];x=[fliplr(x),x(2:n+1)];subplot(2,3,5);stem(n*t,y2,'.');xlabel('n*t/秒');ylabel('y2(n)');title('(2)离散序列,fs=1000');subplot(2,3,6);plot(w/pi,x);xlabel('频率/pi');ylabel('xl(w)')title('(2)序列的傅里叶变换')

%(1)b=[1,1];a=1;subplot(2,3,3);zplane(b,a);xlabel('实部re');ylabel('虚部im');title('y(n)=x(n)+x(n-1)传输函数零极点分布');grid on [h,w]=freqz(b,a,'whole');subplot(2,3,1);plot(w/pi,abs(h),'linewidth',2);grid on;xlabel('omega/pi');ylabel('|h(e^j^omega)|');title('幅频响应特性');axis([0,2,0,2.2]);subplot(2,3,2);plot(w/pi,angle(h),'linewidth',2);grid on;axis([-0.1,2.1,-1.6,1.6]);xlabel('omega/pi');ylabel('phi(omega)');title('相频响应特性');b=[1,-1];a=1;subplot(2,3,6);zplane(b,a);xlabel('实部re');ylabel('虚部im');title('y(n)=x(n)-x(n-1)传输函数零极点分布');grid on [h,w]=freqz(b,a,'whole');subplot(2,3,4);plot(w/pi,abs(h),'linewidth',2);grid on;xlabel('omega/pi');ylabel('|h(e^j^omega)|');title('幅频响应特性 ');axis([0,2,0,2.2]);subplot(2,3,5);plot(w/pi,angle(h),'linewidth',2);grid on;xlabel('omega/pi');ylabel('phi(omega)');title('相频响应特性');axis([-0.1,2.1,-1.6,1.6]);

%3.%(1)figure(1)t=0:1.9:100;n=0:1:99;x1=cos(pi*t);x2=cos(9*pi*t);y1=x1.*x2;y2=fft(y1,100);subplot(3,1,1);plot(t,y1);title('已调信号x');xlabel('t/秒');ylabel('y1(n)');subplot(3,1,2);stem(n,abs(y2),'.');title('幅频特性');xlabel('频率/pi');ylabel('幅值');pha=angle(y2);subplot(3,1,3);stem(n,pha,'.');title('相频特性');xlabel('频率/pi');ylabel('相位(rad)');axis([0 99-5 5]);

%(2)figure(2)t1=1;t=[0:0.05:5];x=cos(pi*t).*cos(9*pi*t);%已调信号 subplot(2,2,1);plot(t,x);title('已调信号');y=x.*cos(9*pi*t);%已调信号再乘以载波信号 wp=6*pi/5;ws=14*pi/8;rp=3;as=30;%选定滤波器的参数,并设计模拟低通滤波器 [n,wc]=buttord(wp,ws,rp,as,'s');[b,a]=butter(n,wc,'s');[h,w]=freqs(b,a,127);%滤波器的系统函数 subplot(2,2,2);plot(w/(2*pi),abs(h));axis([0,5,0,1]);title('滤波器系统函数');w1=linspace(0,40,64);%求y的频谱 f1=y*exp(-j*t'*w1);f=[fliplr(f1),f1(2:64)];w=[-fliplr(w1),w1(2:64)];subplot(2,2,3);plot(w,abs(f)),title('y的频谱');y3=h'.*f;%通过信号的频谱与系统函数相乘进行滤波 z=y3*exp(j*w'*t)/pi;%滤波后的序列 subplot(2,2,4);plot(t,z);title('滤波后的序列');

%(1)n1=0:3,n2=4:7;x1=n1+1,x2=8-n2;subplot(2,3,1);stem([n1,n2],[x1,x2],'.');title('三角波序列');x=[1 2 3 4 4 3 2 1];subplot(2,3,2);stem(abs(fft(x)),'.');title('三角波序列8点fft');x=[1 2 3 4 4 3 2 1 0 0 0 0 0 0 0 0];subplot(2,3,3);stem(abs(fft(x)),'.');title('三角波序列16点fft');n1=0:3,n2=4:7;x1=4-n1,x2=n2-3;subplot(2,3,4);stem([n1,n2],[x1,x2],'.');title('反三角波序列');x=[4 3 2 1 1 2 3 4];subplot(2,3,5);stem(abs(fft(x)),'.');title('反三角波序列8点fft');x=[4 3 2 1 1 2 3 4 0 0 0 0 0 0 0 0];subplot(2,3,6);stem(abs(fft(x)),'.');title('反三角波序列16点fft');

%5.%低通 figure(1)n=0:1:24;x=1+cos(pi*n/4)+cos(2/3*pi*n);wp=1/4*pi;ws=2/3*pi;ap=3;as=30;os=2*tan(ws/2);op=2*tan(wp/2);n=ceil(1/2*log10((10^(0.1*as)-1)/(10^(0.1*ap)-1))./log10(os/op)), oc1=op*(10^(0.1*ap)-1)^(-1/(2*n));oc2=os*(10^(0.1*as)-1)^(-1/(2*n));oc=[oc1,oc2];oc=min(oc)

wp=[wp/pi];wr=[ws/pi];[n,wc]=buttord(wp,wr,ap,as,'s');[b,a]=butter(n,wc,'low');sysl=tf(b,a)w=linspace(0,2*pi,500);

n=0:100;x1=1+cos(pi*n/4)+cos(2*pi*n/3);subplot(221),plot(n,x1);title('滤波前时域波形');y1=fft(x1,500);subplot(222),plot(w,abs(y1));title('滤波前频域波形');

x2=filter(b,a,x1);subplot(223),plot(n,x2)title('滤波后的时域波形');y2=fft(x2,500);subplot(224),plot(w,abs(y2));title('滤波后的频域波形');

figure(2);freqz(b,a,1000);title('滤波器幅频相频响应');%高通 figure(1)n=0:1:24;x=1+cos(pi*n/4)+cos(2/3*pi*n);wp=2*pi/3;ws=1*pi/4;ap=3;as=30;os=2*tan(ws/2);op=2*tan(wp/2);n=ceil(1/2*log10((10^(0.1*as)-1)/(10^(0.1*ap)-1))./log10(op/os)), oc1=(1/op)*(10^(0.1*ap)-1)^(-1/(2*n));oc2=(1/os)*(10^(0.1*as)-1)^(-1/(2*n));oc=[oc1,oc2];oc=min(oc)

wp=[wp/pi];wr=[ws/pi];[n,wc]=buttord(wp,wr,ap,as,'s');[b,a]=butter(n,wc,'high');sysl=tf(b,a)w=linspace(0,2*pi,500);

n=0:100;x1=1+cos(pi*n/4)+cos(2*pi*n/3);subplot(221),plot(n,x1);title('滤波前时域波形');y1=fft(x1,500);subplot(222),plot(w,abs(y1));title('滤波前频域波形');

x2=filter(b,a,x1);subplot(223),plot(n,x2)title('滤波后的时域波形');y2=fft(x2,500);subplot(224),plot(w,abs(y2));title('滤波后的频域波形');

figure(2);freqz(b,a,1000);title('滤波器幅频相频响应');

%带通 figure(1);wp1=(3*pi)/16;wp2=(5*pi)/16;ap=1;ws1=(1*pi)/16;ws2=(5*pi)/9;as=50;wp=[wp1/pi wp2/pi];ws=[ws1/pi ws2/pi];[n,wn]=buttord(wp,ws,ap,as);[b,a]=butter(n,wn,'bandpass');n, sysl=tf(b,a), w=linspace(0,2*pi,500);

n=0:100;x1=1+cos(pi*n/4)+cos(2*pi*n/3);subplot(221),plot(n,x1);title('滤波前时域波形');y1=fft(x1,500);subplot(222),plot(w,abs(y1));title('滤波前频域波形');

x2=filter(b,a,x1);subplot(223),plot(n,x2)title('滤波后的时域波形');y2=fft(x2,500);subplot(224),plot(w,abs(y2));title('滤波后的频域波形')

figure(2);freqz(b,a,1000);title('滤波器幅频相频响应');

%带阻 figure(1);

wp1=pi/16;wp2=(5*pi)/9;ap=1;ws1=(3*pi)/16;ws2=(5*pi)/16;as=50;wp=[wp1/pi,wp2/pi];ws=[ws1/pi,ws2/pi];[n,wc]=buttord(ws,wp,ap,as);[b,a]=butter(n,wc,'stop');w=linspace(0,2*pi,500);n, sysl=tf(b,a)

n=0:100;x1=1+cos(pi*n/4)+cos(2*pi*n/3);subplot(221),plot(n,x1);title('滤波前时域波形');y1=fft(x1,500);subplot(222),plot(w,abs(y1));title('滤波前频域波形');

x2=filter(b,a,x1);subplot(223),plot(n,x2)title('滤波后的时域波形');y2=fft(x2,500);subplot(224),plot(w,abs(y2));title('滤波后的频域波形')

figure(2);freqz(b,a,1000);title('滤波器幅频相频响应');

%6.%(1)figure(1)window=hanning(16);h=fir1(15,[0.3 0.5],window);

freqz(h,1)title('n=15的汉宁窗');figure(2)window=hanning(46);h=fir1(45,[0.3 0.5],window);freqz(h,1)title('n=45的汉宁窗');%(2)figure(3)window=blackman(16);b=fir1(15,[0.3 0.5],window);freqz(b,1)title('n=15的布莱克曼窗');

figure(4)window=blackman(46);b=fir1(45,[0.3 0.5],window);freqz(b,1)title('n=45的布莱克曼窗');

figure(5)window=boxcar(16);b=fir1(15,[0.3 0.5],window);freqz(b,1)title('n=15的矩形窗');

figure(6)window=boxcar(46);b=fir1(45,[0.3 0.5],window);freqz(b,1)title('n=45的矩形窗');

参考文献

[1]高西全,丁玉美.数字信号处理.第三版.西安:西安电子科技大学出版社,2008 [2]彭军,李宏.信号与信息处理基础.北京:中国铁道出版社,2009 [3]a.v.奥本海姆,等.信号与系统.刘树棠,译.西安:西安交通大学出版社,1985 [4]程佩青.数字信号处理教程.第二版.北京:清华大学出版社,2001 [5]陈怀琛,吴大正,在电子信息课程中的应用.第三版.北京:电子工业出版社,2006 [6]信号处理与应用.北京:国防工业出版社,2005

现代信号处理课程设计报告篇二

(一).信号分析

1、编制信号生成程序,产生下述各序列,绘出它们的时域波形

1)单位抽样序列 (n)

2)矩形序列 rn(n)

3)三角波序列

n1,0n3x3(n)8n,4n7

0,其它

4)反三角波序列

4n,0n3x4(n)n3,4n7

0,其它

5)gaussian序列

(np)

q,0n15x5(n)e

0,其它2

6)正弦序列

x6(n)sin16t

取 fs64hz,n16

7)衰减正弦序列

(t)aesin(2ft)u(t)对连续信号x70进行采样,可得到测试序列

x 7(n)ae antf 0 nt)sin(2u。令(n)a=50,采样周期t=1ms,即fs=1000hz,f0=62.5,a=100。

2.对上述信号完成下列信号分析

1)对三角波序列x3(n)和反三角波序列x4(n),作n=8点的fft,观察比较它们的幅频特

性,说明它们有什么异同?绘出两序列及其它们的幅频特性曲线。at在x3(n)和x4(n)的尾部补零,作n=16点的fft,观察它们的幅频特性发生了什么变化?

分析说明原因。

2)、观察高斯序列x5(n),固定信号x5(n)中的参数p=8,令q分别等于2,4,8,观察它们的时域和幅频特性,了解当q取不同值时,对信号序列的时域幅频特性的影响;固定q=8,令p分别等于8,13,14,观察参数p变化对信号序列的时域及幅频特性的影响,观察p等于多少时,会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。

3)对于正弦序列x4(n),取数据长度n分别等于8,16,32,分别作n点fft,观察它们的的时域和幅频特性,说明它们的差别,简要说明原因。

4)、观察衰减正弦序列x7(n)的时域和幅频特性,绘出幅频特性曲线,改变采样频率fs,使

fs=300hz,观察此时的频谱的形状和谱峰出现位置?说明产生现象的原因。

3.设有一连续时间信号s(t),其由20hz、220hz和750hz的正弦信号叠加而成,分析确定采样频率及数据分析长度,计算并绘出信号的频谱,指出各个频率份量。

你们先自己看一下matlab的书,对照书上的例题仿真一下,多练习。

先给出信号分析部分的题目给你们,你们可以先做做,最好使用gui,将所有的部分集成在一起。滤波器部分的题目开学后再给你们,如果matlab熟练了,那部分做起来很快的。

如果题目中的公式看不到的话,可能是公式编辑器的版本问题,我采用的是公式编辑器5.2

追求完美。他还告诫在场的师生:“每个清华人都负有责任,建设这个国家。为学,要扎扎实实,不可沽名钓誉。做事,要公正廉洁,不要落身后骂名。”

现代信号处理课程设计报告篇三

中南大学

本科生课程设计(实践)任务书、设计报告

(大学计算机基础)

题 目 理想世界 学生姓名 李杰 指导教师 邵自然 学 院 湘雅医学院 临床医学与医学技术

专业班级 1105班

学生学号

2211110512

计算机基础教学实验中心

年 月 日

课程设计实践报告 理想世界 李杰

我选的主题是理想世界,我的思想是从图片来展现理想世界的样子,用图片表达我想说的内容。

设计的步骤:从以上两个方面入手,目录作为主页,主页内容是理想世界中frontpage的一些介绍,并且引入一些优美的图片,再一个个的建立超链接。在引入一些解决手段,创建连接理想世界。在理想世界这个链接中从图片来展现理想世界的样子,用图片表达我想说的内容。,也可以用一些flash动画,还可以使用word链接一些图片。在理想世界这个链接中,也可使用word链接一些先驱的行动,与我们自己的所处的世界对比,ppt制作幻灯片来演示一些有效提示,让我的理想世界最好的展现给大家。

采取的方法与手段:用frontpage制作网页,通过链接使word文档、powerpoint幻灯片、flash动画得以展示。在网页制作中,可以通过添加图片来使页面更加美丽,在word文档中可以展示艺术字、建立文本。通过powerpoint可以把某些保护环境的行动展示。flash动画是以链接的方法来参与展示。在需要一些资料的时候,可在网络上寻找,由于不是文件,这时就可以通过复制粘贴操作来获取资料。

遇到的问题:(1).在网页制作中,刚开始的时候连网页的表格布局都弄不出来,不知道该如何制作,从哪些方面入手。解决方法:先看了几遍课本,然后跟着课本的步骤上机实践,但是发现制作过程还是太慢,而且不熟悉frontpage网页制作工具,因此,开始几次的实践都是在慢慢熟悉该工具。直到熟悉该工具后才开始去制作。在word文档制作中,因为以前在中学的时候用过该工具,现在还有一些印象,所以经过一系列重温操作后,word文档的制作就熟悉了。在powerpoint幻灯片制作中,因为是第一次接触和使用,许多功能和手段都不知道,较难制作出符合人意的幻灯片。通过多次实验操作来了解和熟悉它,然后就可以使用了。(2)在flash动画制作过程中,虽然老师上课讲过制作过程,但还是遇到了难题:制作的动画中,元件不随引导层而动,而是在关键帧之间走直线,这

个问题导致了我做不出动画,我只好一次次的尝试去做,最后成功做出来。有时还有一些小技巧,都是从同学手中问过来的。在设置背景图片时,会发现图片太小的话,背景就会变成多张重复的图片拼在一起,后来经过向同学询问后,使用图片编辑器对背景大小做了调整,使得背景和网页内容能够很好地融合在一起。二,网页制作好后浏览时图片显示不出来,改文件名或者换了文件夹储存都会导致图片无法显示,后来经过询问学习之后,才知道原因即任何图片的显示都是依靠路径来寻找来源,要设成相对路径有利于在其他机子上打开。在设置主题之前插好图片。三,刚开始做ppt时,不知道怎么插进去背景音乐和让它连续播放,后来经过多次实践后,发现可以在效果中设置这些。四,刚开始不会弄超链接,然后经过向同学询问后才明白,在选定对象之后点击右键,超链接,再选中连接的对象就可以了

总结:首先我们应该学会独立思考和自我解决问题的能力,因为实践和理论毕竟不同,在实践中会遇到一些我们不了解的东西,这时候应该先自己摸索,实在不行就去向同学和老师询问,一定要仔细阅读课本,巩固理论知识。否则很盲目,自信心也会受到打击2,做计算机作业有时候也是一种享受,因为你会为你自己的一点点进步一点点成功而高兴,增加生活情趣、3,做作业时要坚持不懈,不能在半途放弃。中途可能会遇到一些挫折,要记住“世界上没有谁能随随便便成功”,只有经历过多次失败,才能寻找到解决问题的最好方法。4,在制作网页的过程中,我的思想和人格也得到了升华,对大自然和地球的认识又提升到了一个另一个高度,令我受益匪浅。在全制作过程中,所有的难题都是有解决方法的,不要放弃制作机会,有难题可以去问别的同学或老师,也可以自己多次实践来找到解决方法。我在制作过程中大部分都是自己摸索的,这样不仅加强了自己对工具的熟悉度,同时也加强了对键盘的熟悉,我认为当我们自己去制作的时候,不管好坏都有助于自己,做得好,自己更有信心,鼓励下次还能做得更好,做的不好,还可以找出错误,提醒自己在什么地方应该注意,在什么地方可以改正。这样就可以更好的去改错。有时候可以去看一看别人的作品,看一下别人是怎么做的,想一想哪里值得借鉴,如果是自己,怎么做会更好。这样,在看的时

候可以加强对工具的熟悉,了解一些技巧,增加自己的见识。

这次的网页制作对于我来说与有很大的收获,我学会了,如何制作网页,如何在网页上表达自己的观点,以及网页制作的一些基本技巧,和网页制作过程中 最常见,最基本问题的解决。by临床与医技1105 李杰 2211110512 4

现代信号处理课程设计报告篇四

中南大学

数字信号处理课程设计报告

专业班级:

指导老师:

名:

号:

一、课程设计要求

二、设计过程

(1)设计题目(2)设计源代码(3)设计结果(4)结果分析

三、设计总结与心得体会

四、课程设计指导书

一、课程设计要求

1、课程设计指导书

①《数字信号处理(第二版)》,丁玉美等,西安电子科技大学出版社; ②《matlab 及在电子信息课程中的应用》,陈怀琛等,电子工业出版社。

2、课程设计内容: ⑴语音信号去噪处理 主要要求:

1)在windows系统下的录音机录制一段1s左右的语音信号作为原声信号,在matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数;

2)画出语音信号的时域波形,对采样后的语音进行fft变换,得到信号的频谱特性;对语音信号分别加入正弦噪声和白噪声,画出加噪信号的时域波形和频谱图;

3)根据对加噪语音信号谱分析结果,确定滤除噪声滤波器的技术指标,设计合适的数字滤波器,并画出滤波器的频域响应;

4)用所设计的滤波器对加噪的信号进行滤波,在同一个窗口画出滤波前后信号的时域图和频谱图,对滤波前后的信号进行对比,分析信号变化; 5)利用sound(x)回放语音信号,验证设计效果。

⑵语音信号的延时和混响 主要要求:

1)利用windows下的录音机或其他软件,录制一段自己的语音信号,时间控制在1s左右,并对录制的信号进行采样;

2)语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图; 3)将信号加入延时和混响,再分析其频谱,并与原始信号频谱进行比较; 4)设计几种特殊类型的滤波器:单回声滤波器,多重回声滤波器,全通结构的混响器,并画出滤波器的频域响应;

5)用自己设计的滤波器对采集的语音信号进行滤波;

6)分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化; 7)回放语音信号。

⑶数字滤波器的设计及实现 主要要求:

1)调用信号产生函数mstg产生三路抑制载波调幅信号相加构成的复合信号st,观察st的时域波形和幅频特性曲线;

2)由要求将st中的三路调幅信号分离,通过观察st的幅频特性曲线,分别确定可以分离st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率,要求滤波器的通带最大衰减为0.1db,阻带最小衰减为60db;

3)编程调用matlab滤波器设计函数分别设计这三个数字滤波器,并绘图显示其幅频特性曲线;

4)调用滤波函数filter,用所设计的三个滤波器分别对复合信号st进行滤波,分离出st中的三路不同载波频率的调幅信号,并绘图显示滤波后信号的时域波形和频谱,观察分离效果。

⑷心电信号的处理 主要要求:

1)在matlab软件平台下,给原始的心电信号叠加上噪声或干扰,干扰类型分为如下几种:白噪声、工频干扰(50hz)、谐波干扰(二次、三次谐波为主,分别为100hz、150hz)绘出叠加噪声后的心电信号时域和频谱图,在视觉上与原始心电信号图形对比,分析频域基本特征变化。

2)给定滤波器的规一化性能指标(参考指标,实际中依据每个同学所叠加噪声情况而定),例如:通带截止频率wp=0.25*pi, 阻通带截止频率ws=0.3*pi;通带最大衰减rp=1 db;阻带最小衰减rs=15 db

3)采用窗函数法设计各型fir滤波器(低通、高通、带通、带阻中的至少2种类型),来对叠加干扰前后的心电信号进行滤波处理,绘出滤波器的频域响应及滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;在相同的性能指标下比较各方法的滤波效果,并从理论上进行分析或解释;

4)采用双线性变换法利用不同的原型低通滤波器(butterworth型与切比雪夫i型)来设计各型iir滤波器(低通、高通、带通、带阻中的至少2种类型)绘出滤波器的频域响应,并用这些数字滤波器对含噪心电信号分别进行滤波处理;比较不同方法下设计出来的数字滤波器的滤波效果,并从理论上进行分析或解释;

5)心电信号波形观察、频谱观察,对滤波后的心电信号观察其时域、频域特征变化。

3、具体要求

⑴、使用 matlab(或其它开发工具)编程实现上述内容,写出课程设计报告。

⑵、课程设计报告的内容包括:

①课程设计题目和题目设计要求;

②设计思想和系统功能结构及功能说明;

③设计中关键部分的详细描述和介绍,采用流程图描述关键模块的设计思路;

④总结,包括设计过程中遇到的问题和解决方法,心得体会等;

⑤参考文献;

⑥程序源代码清单。

4、考核方式

课程考核分三部分,一部分是上机率,占 20%;第二部分是检查成绩,最后两次上机为

检查时间,占 50%;第三部分为课程设计报告,占 30%。注意:

⑴、使用 gui 界面或混合编程实现仿真程序,酌情加分; ⑵、若发现程序或课程设计报告雷同,一律不及格。⑶、主要参考资料

[1] l signal processing: a computer based approach, 3rd edition [m], new york, usa: mcgraw-hill, 2000 [2] tanding digital signal processing, 2nd edition [m].new jersey, usa: prentice hall, 2005 [3] 程佩青.数字信号处理教程, 第二版[m].北京: 清华大学出版社, 2001 [4] 赵树杰等.数字信号处理[m].西安: 西安电子科技大学出版社, 1997 [5] 丁玉美等.数字信号处理—时域离散随机信号处理[m].西安: 西安电子科技大学出版社, 2002 [6] 及在电子信息课程中的应用[m], 北京: 电子工业出版社出版, 2002 ⑷、课程设计进度安排

序号 阶段内容 合计(天)一 设计准备 1 二 方案选择及初步设计 2 三 目标项目设计实现及调试 3 四 撰写课程设计报告 2 五 上机检查成绩 2 总计(2 周)10

二.设计过程

第一题、语音信号去噪处理

1.设计要求:

(1)在windows系统下的录音机录制一段1s左右的语音信号作为原声信号,在matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数;

(2)画出语音信号的时域波形,对采样后的语音进行fft变换,得到信号的频谱特性;对语音信号分别加入正弦噪声和白噪声,画出加噪信号的时域波形和频谱图;

(3)根据对加噪语音信号谱分析结果,确定滤除噪声滤波器的技术指标,设计合适的数字滤波器,并画出滤波器的频域响应;

(4)用所设计的滤波器对加噪的信号进行滤波,在同一个窗口画出滤波前后信号的时域图和频谱图,对滤波前后的信号进行对比,分析信号变化;(5)利用sound(x)回放语音信号,验证设计效果。

2.设计步骤:

(1)找到7s的语音信号,利用函数wavread对语音信号进行信号读取;(2)计算样本时刻和频谱图的频率,并进行n+1点fft变换;(3)加噪声为5000hz的正弦信号正弦噪声,采用awgn函数加信噪比为10的高斯白噪声;

(4)设计滤波器;

(5)绘出相应的时域、频域图;

(6)利用sound函数进行原始信号的语音播放,加噪声音播放,以及滤波之后的语言播放。

3.设计实现:

(1)时域图与频谱图(加正弦)

录入原始信号的时域图:

加入正弦信号后的时域图: 滤波后的时域图:

录入原始信号的频域图:

加入正弦信号后的频率图:

滤波后的频域图:

采用巴斯低通滤波器滤除正弦波:

(2)具体代码实现:

[x,fs,bits]=wavread('e:');%原信号

n=size(x,1);

%提取采样信号的长度 t=(0:length(x)-1)/fs;

%计算样本时刻

f=fs*(0:(n+1)/2-1)/n+1;

%计算频域图的频率

x=fft(x,n+1);

%进行n+1点fft变换

ts=0:1/fs:(size(x)-1)/fs;

%将所加噪声信号的点数调整到与原始信号相同 s=x+0.05*sin(2*pi*5000*ts)';

%加噪声为5000hz的正弦信号正弦噪声 s=fft(s,n+1);

%加正弦噪声后的频域 %正弦滤波

wp=2000/fs*2*pi;

%2000为通带截止频率

ws=3000/fs*2*pi;

%3000为阻带下限截止频率

rp=4;

%通带波纹

rs=25;

%阻带波纹

t=1/fs;fs=1/t;

%定义采样间隔

wp=2/t*tan(wp/2);

%计算对应的数字频率

ws=2/t*tan(ws/2);[n,wn]=buttord(wp,ws,rp,rs,'s');

%计算滤波器介数和截止频率

[c,d]=butter(n,wn,'s');

%计算滤波器系统函数分子分母系数

[b,a]=bilinear(c,d,fs);

%双线性变换得到数字滤波器系统函数分子分母系数 [hb,wc]=freqz(b,a);sf=filter(b,a,s);

%对加噪信号进行滤波

sf=fft(sf,n+1);

%对滤波后进行n+1点fft变换

%绘图部分 figure(3);plot(fs*wc/(2*pi),20*log10(abs(hb)));title('巴斯低通滤波器频域响应图');xlabel('频率(hz)');ylabel('幅度');figure(1);subplot(3,1,1);plot(t,x);title('原信号时域')xlabel('时间(s)');ylabel('幅度');figure(2);subplot(3,1,1);plot(f,abs(x(1:(n+1)/2)));title('原信号频域')xlabel('频率(hz)');ylabel('幅度');figure(1);subplot(3,1,2);plot(t,s);title('加正弦信号后的时域')xlabel('时间(s)');ylabel('幅度');figure(2);subplot(3,1,2);plot(f,abs(s(1:(n+1)/2)));title('加正弦信号后的频域图')xlabel('频率(hz)');ylabel('幅度');figure(1)subplot(3,1,3);plot(t,sf);title('滤波后的时域图');xlabel('时间(s)');ylabel('幅度');figure(2)subplot(3,1,3);plot(f,abs(sf(1:(n+1)/2)));title('滤波后的频域图');xlabel('频率(hz)');ylabel('幅度');sound(x);sound(s);sound(sf);

(3)时域图与频域图(加白噪声)

加白噪声后的时域图和滤除之后的时域图:

加白噪声和滤除之后的频域图:

采用blackman函数滤波:

具体代码实现:

[x,fs,bits]=wavread('e:');n=size(x,1);t=(0:length(x)-1)/fs;f=fs*(0:(n+1)/2-1)/n+1;x=fft(x,n+1);%加高斯白噪声

z=awgn(x,20);

%对信号加信噪比为10的高斯白噪声 n1=size(z,1);

%提取采样信号的长度 t=(0:length(z)-1)/fs;

%计算样本时刻 f=fs*(0:(n1+1)/2-1)/n1+1;z=fft(z,n1+1);wp=2500/fs*2*pi;ws=3000/fs*2*pi;

%计算对应的数字频率 b=ws-wp;n=ceil(1*pi/b);wc=(wp+ws)/2;b=fir1(n-1,wc/pi,'stop',blackman(n));%blackman窗函数滤波 [h,w]=freqz(b,1);y=fftfilt(b,z);

t1=(0:length(y)-1)/fs;

y=fft(y,n1+1);subplot(2,2,1);

plot(t,z);title('加高斯白噪声后时域图');subplot(2,2,2);plot(f,abs(z(1:(n1+1)/2)));title('滤波前信号频谱图')figure

plot(fs*w/(2*pi),20*log10);title('blackman函数频域响应图');title('频率响应')xlabel('频率(hz)');ylabel('幅度');subplot(2,2,3);

plot(t1,y)title('滤波后信号时域图');xlabel('时间(s)');ylabel('幅度');subplot(2,2,4);plot(f,abs(y(1:(n1+1)/2)));title('滤波后信号频谱图')xlabel('频率(hz)');ylabel('幅度');

sound(y,fs)

第二题、语音信号的延时和混响

1.设计要求:

(1)利用windows下的录音机或其他软件,录制一段自己的语音信号,时间控制在1s左右,并对录制的信号进行采样;

(2)语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图; 将信号加入延时和混响,再分析其频谱,并与原始信号频谱进行比较;

(3)设计几种特殊类型的滤波器:单回声滤波器,多重回声滤波器,全通结构的混响器,并画出滤波器的频域响应;

(4)用自己设计的滤波器对采集的语音信号进行滤波;

(5)分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;(6)回放语音信号。

2.设计步骤:

(1)录入原始声音信号;

(2)计算样本时刻和频谱图的频率,并进行n+1点fft变换;(3)加入单回声;

(4)设计单回声滤波器幅频响应函数;(5)绘出相应时域与频域图;

(6)利用sound函数进行原始信号的语音播放,加单回声后语言播放,以及滤除之后的语言播放;

3.设计实现:

(1)时域图和频域图(加单回声)

原始信号时域图:

滤波后的时域图:

原始信号频域图:

滤波后频域图:

单回声滤波器幅频响应:

(2)具体代码实现(单回声):

[x,fs,bits]=wavread('e:');%原声音信号 n=size(x,1);t=(0:length(x)-1)/fs;f=fs*(0:(n+1)/2-1)/n+1;x=fft(x,n+1);a=0.6;%单回声滤波 r=fs*a;b=[1,zeros(1,r-2),a];a=[1,zeros(1,r-1)];y = filter(b,a,x);y=fft(y,n+1);[h,w]=freqz(b,a);

%求单回声滤波器幅频响应函数 %绘图部分 figure(2);plot(fs*w/(2*pi),20*log10(abs(h)));title('频率响应');xlabel('频率(hz)');ylabel('幅度');figure(1);subplot(4,1,1);plot(t,x);title('原信号时域');xlabel('时间(s)');ylabel('幅度');subplot(4,1,2);plot(f,abs(x(1:(n+1)/2)));title('原信号频域');xlabel('频率(hz)');ylabel('幅度');figure(1);subplot(4,1,3);plot(t,y);title('滤波后时域图');xlabel('时间(s)');ylabel('幅度');figure(1);subplot(4,1,4);plot(f,abs(y(1:(n+1)/2)));title('滤波后频域图');xlabel('频率(hz)');ylabel('幅度');sound(x,fs,bits);sound(y,fs,bits);

(3)时域图与频域图(多重回声)

原始信号时域图与多重信号时域图:

原始信号时域图与多重信号频域图:

多重回声滤波器幅频响应:

(4)具体代码实现(多回声)

%原声音信号

[x,fs,bits]=wavread('e:');n=size(x,1);t=(0:length(x)-1)/fs;f=fs*(0:(n+1)/2-1)/n+1;%多重回声 a=0.5;r=fs*a;b=[1,zeros(1,r-2)];a=[1,zeros(1,r-1),a];yd = filter(b,a,x);

%滤波器函数 %频率响应

[hb,wc]=freqz(b,a);

%求多重回声滤波器幅频响应函数 %绘图部分 figure(2);plot(fs*wc/(2*pi),20*log10(abs(hb)));title('多重滤波器频域响应图')xlabel('频率(hz)');ylabel('幅度');figure(1);subplot(4,1,1);plot(t,x);title('原信号时域');xlabel('时间(s)');ylabel('幅度');x=fft(x,n+1);subplot(4,1,3);plot(f,abs(x(1:(n+1)/2)));title('原信号频域');xlabel('频率(hz)');ylabel('幅度');figure(1);subplot(4,1,2);plot(t,yd);title('多重信号时域图')xlabel('时间(s)');ylabel('幅度');yd=fft(yd,n+1);

%多重回声滤波后信号fft变换 subplot(4,1,4);plot(f,abs(yd(1:(n+1)/2)));title('多重信号频域图');xlabel('频率(hz)');ylabel('幅度');sound(x);sound(yd);

(5)时域图与频域图(全通滤波器)

原始信号时域图与全通滤波器时域图:

原始信号时域图与全通滤波器频域图:

全通滤波器的频域响应图:

(6)具体代码实现(全通滤波器):

%原声音信号

[x,fs,bits]=wavread('e:');n=size(x,1);t=(0:length(x)-1)/fs;f=fs*(0:(n+1)/2-1)/n+1;%全通结构混响 a=0.5;r=fs*a;b=[a,zeros(1,r-2),1];a=[1,zeros(1,r-2),a];yd = filter(b,a,x);%频率响应

[hb,wc]=freqz(b,a);

%求全通滤波器幅频响应函数 figure(2);plot(fs*wc/(2*pi),20*log10(abs(hb)));title('全通结构频域响应图')xlabel('频率(hz)');ylabel('幅度');figure(1);subplot(4,1,1);plot(t,x);title('原信号时域');xlabel('时间(s)');ylabel('幅度');x=fft(x,n+1);subplot(4,1,3);plot(f,abs(x(1:(n+1)/2)));title('原信号频域');xlabel('频率(hz)');ylabel('幅度');figure(1);subplot(4,1,2);plot(t,yd);title('全通滤波器时域图');xlabel('时间(s)');ylabel('幅度');yd=fft(yd,n+1);subplot(4,1,4);plot(f,abs(yd(1:(n+1)/2)));title('全通滤波器频域图');xlabel('频率(hz)');ylabel('幅度');sound(x);sound(yd);(7)时域图与频域图(延时与混响)

原始信号时域图:

延时时域图:

混响时域图:

原始信号频域:

延时信号频域图:

混响信号频域图:

(8)具体代码实现(延时与混响):

[x,fs,bits]=wavread('e:');n=size(x,1);t=(0:length(x)-1)/fs;f=fs*(0:(n+1)/2-1)/n+1;xd=[zeros(300,1);x];%信号延时 td=(0:length(xd)-1)/fs;xd=fft(xd);

xd1=fftshift(xd);

dfs =fs/length(xd);

xd1=[x;zeros(300,1)];%信号混响 x1=xd1+xd;xhun=fft(x1);%混响信号fft变换

xh2=fftshift(x1);%平移,中心为0频率 dfs = fs/length(x1);%绘图部分 figure(1);subplot(4,1,1);plot(t,x);title('原信号时域');xlabel('时间(s)');ylabel('幅度');x=fft(x,n+1);subplot(4,1,2);plot(f,abs(x(1:(n+1)/2)));title('原信号频域');xlabel('频率(hz)');ylabel('幅度');subplot(4,1,3);

plot(td,xd);title('延时信号时域图')xlabel('时间(s)');ylabel('幅度');subplot(4,1,4);

plot([-fs/2:dfs: fs/2-dfs],abs(xd));title('延时信号频域图')xlabel('频率(hz)');ylabel('幅度');figure(2);subplot(2,1,1);plot(td,x1);title('混响信号时域图');xlabel('时间(s)');ylabel('幅度');figure(2);subplot(2,1,2);plot([-fs/2:dfs: fs/2-dfs],abs(xh2));title('混响信号频域图');xlabel('频率(hz)');ylabel('幅度');sound(x);sound(xd);sound(x1);第三题、数字滤波器的设计及实现

1.设计要求:

(1)调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,观察st的时域波形和幅频特性曲线;

(2)要求将st中的三路调幅信号分离,通过观察st的幅频特性曲线,分别确定可以分离st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率,要求滤波器的通带最大衰减为0.1db,阻带最小衰减为60db;(3)编程调用matlab滤波器设计函数分别设计这三个数字滤波器,并绘图显示其幅频特性曲线;

(4)调用滤波函数filter,用所设计的三个滤波器分别对复合信号st进行滤波,分离出st中的三路不同载波频率的调幅信号,并绘图显示滤波后信号的时域波形和频谱,观察分离效果。

2.设计步骤:

(1)产生三路调幅信号;

(2)三路信号相加组成复合信号;

(3)分别设计低通、带通、高通滤波器,对三路信号滤波;(4)绘出相应的时域、频域图;(5)观察分离效果;

3.设计实现:

(1)时域图与频域图(第一路):

第二路:

第三路:

4.具体代码实现:

n=1600;

%n为信号st的长度。

fs=10000;t=1/fs;tp=n*t;%采样频率fs=10khz,tp为采样时间 t=0:t:(n-1)*t;k=0:n-1;f=k/tp;fc1=fs/10;

%第1路调幅信号的载波频率fc1=1000hz, fm1=fc1/10;

%第1路调幅信号的调制信号频率fm1=100hz fc2=fs/20;

%第2路调幅信号的载波频率fc2=500hz fm2=fc2/10;

%第2路调幅信号的调制信号频率fm2=50hz fc3=fs/40;

%第3路调幅信号的载波频率fc3=250hz, fm3=fc3/10;

%第3路调幅信号的调制信号频率fm3=25hz xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t);%产生第1路调幅信号 xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t);%产生第2路调幅信号 xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t);%产生第3路调幅信号 st=xt1+xt2+xt3;

%三路调幅信号相加 fxt=fft(st,n);

%计算信号st的频谱 figure(1);subplot(2,1,1);plot(t,st);title('三路调幅信号时域图')grid;xlabel('t/s');ylabel('s(t)');axis([0,tp/2,min(st),max(st)]);title('(a)s(t)的波形');subplot(2,1,2);stem(f,abs(fxt)/max(abs(fxt)),'.');grid;title('(b)s(t)的频谱');axis([0,fs/5,0,1.2]);xlabel('f/hz');ylabel('幅度');

fs=10000;t=1/fs;

%采样频率

%调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st

%低通滤波器设计与实现

fp=280;fs=450;wp=2*fp/fs;ws=2*fs/fs;rp=0.1;rs=60;

[n,wp]=ellipord(wp,ws,rp,rs);[b,a]=ellip(n,rp,rs,wp);

y1t=filter(b,a,st);

[hb,wc]=freqz(b,a);

figure(2);subplot(2,1,1);plot(fs*wc/(2*pi),20*log10(abs(hb)));title('低通滤波器频域响应图')subplot(2,1,2);plot(t,y1t);title('第一路低频信号时域图')

%带通滤波器设计与实现

fpl=440;fpu=560;fsl=275;fsu=900;wp=[2*fpl/fs,2*fpu/fs];ws=[2*fsl/fs,2*fsu/fs];rp=0.1;rs=60;[n,wp]=ellipord(wp,ws,rp,rs);

[b,a]=ellip(n,rp,rs,wp);y2t=filter(b,a,st);[hb1,wc1]=freqz(b,a);figure(3);subplot(2,1,1);plot(fs*wc1/(2*pi),20*log10(abs(hb1)));title('带通滤波器频域响应图')subplot(2,1,2);plot(t,y2t);title('第二路中频信号时域图')

%高通滤波器设计与实现 fp=890;fs=600;wp=2*fp/fs;ws=2*fs/fs;rp=0.1;rs=60;

%df指标(低通滤波器的通、阻带边界频)[n,wp]=ellipord(wp,ws,rp,rs);

%调用ellipord计算椭圆df阶数n和通带截止频率wp [b,a]=ellip(n,rp,rs,wp,'high');%调用ellip计算椭圆带通df系统函数系数向量b和a y3t=filter(b,a,st);

%滤波器软件实现 [hb2,wc2]=freqz(b,a);figure(4);subplot(2,1,1);plot(fs*wc2/(2*pi),20*log10(abs(hb2)));title('高通滤波器频域响应图')subplot(2,1,2);plot(t,y3t);title('第三路高频信号时域图')第四题、心电信号的处理

1.设计要求:

(1)在matlab软件平台下,给原始的心电信号叠加上噪声或干扰,干扰类型分为如下几种:白噪声、工频干扰(50hz)、谐波干扰(二次、三次谐波为主,分别为100hz、150hz)绘出叠加噪声后的心电信号时域和频谱图,在视觉上与原始心电信号图形对比,分析频域基本特征变化。

(2)给定滤波器的规一化性能指标(参考指标,实际中依据每个同学所叠加噪声情况而定),例如:通带截止频率wp=0.25*pi, 阻通带截止频率ws=0.3*pi;通带最大衰减rp=1 db;阻带最小衰减rs=15 db

(3)采用窗函数法设计各型fir滤波器(低通、高通、带通、带阻中的至少2种类型),来对叠加干扰前后的心电信号进行滤波处理,绘出滤波器的频域响应及滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;在相同的性能指标下比较各方法的滤波效果,并从理论上进行分析或解释;(4)采用双线性变换法利用不同的原型低通滤波器(butterworth型与切比雪夫i型)来设计各型iir滤波器(低通、高通、带通、带阻中的至少2种类型)绘出滤波器的频域响应,并用这些数字滤波器对含噪心电信号分别进行滤波处理;比较不同方法下设计出来的数字滤波器的滤波效果,并从理论上进行分析或解释;

(5)心电信号波形观察、频谱观察,对滤波后的心电信号观察其时域、频域特征变化。

2.设计步骤:

(1)读取原始心电信号;

(2)心电信号加50hz工频信号;(3)心电信号加入谐波;(4)心电信号加入白噪声;

(5)设计相应的滤波器进行不同噪声的滤除;(6)绘出相应的时域频域图;

3.设计实现:

(1)各时域频域图:

原始心电信号时域图以及加入个噪声后的时域图:

原始心电信号频域图以及加入个噪声后的时频域图:

(2)具体代码实现:

%原心电信号

xl=load('e:');x=xl(:,2);n=size(x,1);fs=1000;t=(0:length(x)-1)/fs;f=fs/n*(0:(n+1)/2-1)+1;x=fft(x,n);%加50hz工频干扰 y=x+sin(2*50*pi*t)';y=fft(y,n);%加100hz、150hz谐波干扰

y1=x+sin(2*100*pi*t)'+cos(2*150*pi*t)';y1=fft(y1,n);%加白噪声 yb=awgn(x,20);yd=fft(yb,n);figure(1);subplot(4,1,1);plot(t,x);title('原信号时域图')xlabel('时间(s)');ylabel('幅度');figure(2);subplot(4,1,1)plot(f,abs(x(1:(n+1)/2)));title('原信号频域图')xlabel('频率(hz)');ylabel('幅度');figure(1);subplot(4,1,2);plot(t,y);title('加50hz工频信号时域图')xlabel('时间(s)');ylabel('幅度');figure(2);subplot(4,1,2);plot(f,abs(y(1:(n+1)/2)));title('加50hz工频信号频域图')xlabel('频率(hz)');ylabel('幅度');figure(1)subplot(4,1,3);plot(t,y1);title('加谐波后的时域图')xlabel('时间(s)');ylabel('幅度');figure(2)subplot(4,1,3);plot(f,abs(y1(1:(n+1)/2)));title('加谐波后的频域图')xlabel('频率(hz)');ylabel('幅度');figure(1);subplot(4,1,4);plot(t,y1);title('加白噪后的时域图');figure(2);subplot(4,1,4);plot(f,abs(y1(1:(n+1)/2)));title('加白噪后的频域图');

(3)滤除部分:

滤除50hz信号后的时域图(blackman低通滤波器):

滤除50hz信号后的频域图: blackman低通滤波器滤波:

具体代码:

%原心电信号

xl=load('e:');x=xl(:,2);n=size(x,1);fs=1000;t=(0:length(x)-1)/fs;f=fs/n*(0:(n+1)/2-1)+1;%f=fs/n*(0:n-1);x=fft(x,n);%加50hz工频干扰 y=x+sin(2*50*pi*t)';y=fft(y,n);%blackman低通滤波器 wp=30/fs*pi;ws=40/fs*pi;b=ws-wp;m=ceil(12*pi/b)-1;bl=fir1(m,(ws+wp)/2/pi,'low',blackman(m+1));yl=fftfilt(bl,y);yl=fft(yl,n);figure(1);subplot(3,1,1);plot(t,x);title('原信号时域图')figure(2);subplot(3,1,1)plot(f,abs(x(1:(n+1)/2)));%plot(f,abs(x));title('原信号频域图')figure(1);subplot(3,1,2);plot(t,y);title('加50hz工频信号时域图')figure(2);subplot(3,1,2);plot(f,abs(y(1:(n+1)/2)));%plot(f,abs(y));title('加50hz工频信号频域图')figure(1);subplot(3,1,3);plot(t,yl);title('滤波后信号时域图')figure(2)subplot(3,1,3);plot(f,abs(yl(1:(n+1)/2)));%plot(f,abs(yl));title('滤波后信号频域图')figure(3)[h2,w2]=freqz(bl,1);plot(w2/(2*pi)*fs,20*log10(abs(h2)));title('blackman低通滤波器频率响应图');

滤除50hz信号后的时域图(切比雪夫滤波器):

滤除50hz信号后的频域图(切比雪夫滤波器):

切比雪夫滤波器:

具体代码实现:

%原心电信号

xl=load('e:');x=xl(:,2);n=size(x,1);fs=1000;t=(0:length(x)-1)/fs;f=fs/n*(0:(n+1)/2-1)+1;x=fft(x,n);%加50hz工频干扰 y=x+sin(2*50*pi*t)';y=fft(y,n);%切比雪夫滤波器

wp=20/fs*2*pi;ws=30/fs*2*pi;wp1=2*fs*tan(wp/2);ws1=2*fs*tan(ws/2);rp=1;rs=15;[n1,w]=cheb1ord(wp1,ws1,rp,rs,'s');[b1,a1]=cheby1(n1,1,w,'low','s');[b,a]=bilinear(b1,a1,fs);[hk,wk]=freqz(b,a);yf=filter(b,a,y);yf=fft(yf,n);figure(1);subplot(3,1,1);plot(t,x);title('原信号时域图')figure(2);subplot(3,1,1)plot(f,abs(x(1:(n+1)/2)));title('原信号频域图')figure(1);subplot(3,1,2);plot(t,y);title('加50hz工频信号时域图')figure(2);subplot(3,1,2);plot(f,abs(y(1:(n+1)/2)));title('加50hz工频信号频域图')figure(1);subplot(3,1,3)plot(t,yf);title('滤波后信号时域图')figure(2);subplot(3,1,3)plot(f,abs(yf(1:(n+1)/2)));title('滤波后信号频域图')figure(3)plot(fs*wk/(2*pi),20*log10(abs(hk)));title('切比雪夫滤波器频域响应图');

滤除白噪声后的时域图(blackman低通滤波器):

滤除白噪声后的频域图(blackman低通滤波器):

blackman低通滤波器:

具体代码实现:

%原心电信号

xl=load('e:');x=xl(:,2);n=size(x,1);fs=1000;t=(0:length(x)-1)/fs;f=fs/n*(0:(n+1)/2-1)+1;x=fft(x,n);%加白噪声 yb=awgn(x,20);yd=fft(yb,n);%blackman低通滤波器 wp=70/fs*pi;ws=90/fs*pi;bl=ws-wp;ml=ceil(12*pi/bl)-1;bl=fir1(ml,(ws+wp)/2/pi,'low',blackman(ml+1));yl=fftfilt(bl,y1);yl=fft(yl,n);%绘图部分 figure(1);subplot(3,1,1);plot(t,x);title('原信号时域图')figure(2);subplot(3,1,1)plot(f,abs(x(1:(n+1)/2)));title('原信号频域图')figure(1);subplot(3,1,2);plot(t,y1);title('加白噪后的时域图');figure(2);subplot(3,1,2);plot(f,abs(y1(1:(n+1)/2)));title('加白噪后的频域图');figure(1);subplot(3,1,3);plot(t,yl);title('滤波后信号时域图')figure(2)subplot(3,1,3);plot(f,abs(yl(1:(n+1)/2)));%plot(f,abs(yl));title('滤波后信号频域图')figure(3)[h2,w2]=freqz(bl,1);plot(w2/(2*pi)*fs,20*log10(abs(h2)));title('blackman低通滤波器频率响应图');

三、设计总结与心得体会

在课程设计的这段时间,我获益匪浅。不但进一步掌握了数字信号处理的基础知识及matlab的基本操作,还使我了解了信号的产生、采样及频谱分析的方法。我进一步了解到凡事都需要耐心,细心仔细是成功的保证。虽然在做的过程中遇到了一些问题,但是我都通过自己的努力解决了它们,证明了自己的能力。这次课程设计对我各方面的综合能力有了很大的提高,对我以后的工作,实践都有很大的帮助。

在此次课程设计当中,我经常把c语言的语法知识照搬到matalab设计中,从而导致调试失败,所以下次用此类语言做课程设计时,应事先学习下这类语言的基本语法,以免与其他语言相混淆。还有就是有些不定参数存在时,可先取定值,用于调试,这样可以节约调试时间,从而提高效率。

本次课程设计不但让我又学到了一些知识,而且也提高了我的综合能力。使我在各个方面都得到了锻炼,以后有这样的机会一定会更加的很好利用,它不仅可以提高学习的针对性而且可以很好的锻炼动手能力以及自己的逻辑设计能力和处理问题的能力,希望在以后这方面的能力会很好的加强。

四、课程设计指导书

[1] 《数字信号处理(第二版)》.丁玉美等 西安电子科技大学出版社 [2] 《数字信号处理及其matlab实现》,陈怀琛等译,电子工业出版社; [3] 《matlab及在电子信息课程中的应用》,陈怀琛等,电子工业出版社

现代信号处理课程设计报告篇五

目录

一、课程设计目的要求 ………………………………………… 1

二、课程设计选题 ……………………………………………… 1

三、程序分析及运行果 …………………………………………

1、第一题 ……………………………………………………

2、第三题 ……………………………………………………

3、第五题 ……………………………………………………

4、第七题 ……………………………………………………

四、课程设计总结 ………………………………………………

参考文献 …………………………………………………………

附.程序源代码 ……………………………………………………

2 4 6 9 12 13 14

一、课程设计目的要求

1.全面复习课程所学理论知识,巩固所学知识重点和难点,将理论与实践很好地结合起来。

2.提高综合运用所学知识独立分析和解决问题的能力; 3.熟练使用一种高级语言进行编程实现。

二、课程设计选题

本次课程设计,按任务书要求选择了1、3、5、7题,第8题为选作,因为能力有限,所以并未选择,现将题目及要求摘录如下:

1.给定模拟信号:xa(t)aeatsin(0t)u(t),式中a444.128,502,0502 rad/s。对xa(t)进行采样,可得采样序列

x(n)xa(nt)aeantsin(0nt)u(nt)1)选择采样频率fs=1 khz,观测时间tp50ms,观测所得序列x(n)及其幅频特性|x(ejw)|

2)改变采样频率fs=300hz,观测此时|x(ejw)|的变化 3)令采样频率fs=200hz,观测此时|x(ejw)|的变化

要求分析说明原理,绘出相应的序列及其它们对应的幅频特性曲线,指出|x(ejw)|的变化,说明为什么?

3.一个连续信号含两个频率分量,经采样得

x(n)=sin2π*0.125n+cos2π*(0.125+δf)n n=0,1……,n-1 已知n=16,δf分别为1/16和1/64,观察其幅频特性;当n=128时,δf不变,其结果有何不同,为什么?分析说明原因,并打印出相应的幅频特性曲线

119n)cos(n),使用fft分析其频谱: 5.一个序列为x(n)0.5cos(20201)使用不同宽度的矩形窗截短该序列为m点长度,取m分别为: a)m=20 b)m=40 c)m=160 ;观察不同长度的窗对谱分析结果的影响; 2)使用汉宁窗、哈明窗重做1)

3)对三种窗的结果进行理论分析及比较。并绘出相应的幅频特性曲线

df的设计

分别利用矩形窗、汉宁窗、哈明窗设计一个n=11的线性相位fir 低通和高通数字滤波器,截止频率c3rad,要求:求出各滤波器的单位脉冲响应h(n);绘出各滤波器的幅频及相频响应曲线;观察各滤波器的通带波纹和阻带波纹;比较不同窗函数对滤波特性的影响。

三、程序分析及运行结果

程序综述及gui界面:程序全部利用matlab语言写成,通过与gui模块的按钮控件pushbutton链接,使之能够通过按动按钮跳出显示窗口来实现程序的运行以及最后结果的呈现,简洁明了。程序最终的gui界面如下图所示:

1、第一题:

设计思想:此程序按第一题题目要求,预先给定了模拟信号at(t)aesin(0t)u(t),同时给出了相关参数,a444.128,502,xa0502按照题目要求直接在程序中定义相关变量并赋值。题目还rad/s。要求采取三种不同的采样频率分别为1khz、300hz和200hz,所以t1=0.001,t2=1/300,t3=0.005。fft函数对序列进行傅立叶变换,得到幅频特性曲线。程序通过subplot、stem、plot等函数将结果显示在弹出的窗口中。这样第一题的要求就基本实现了。程序代码:

a=444.128;%设定参数 w=50*sqrt(2)*pi;a=50*sqrt(2)*pi;t1=0.001;n1=50;n=0:49;x1=a*exp(-a*n*t1).*sin(w*n*t1);%所给信号 figure;subplot(3,2,1);stem(x1,'.');%坐标函数及现实函数 xlabel('n');ylabel('x(n)');title('x(n)序列1');y1=fft(x1,n1);%傅立叶变换 subplot(3,2,2);plot(abs(y1));xlabel('(n=50 wk=2pik/n)k');ylabel('|x1(jw)|');title('幅频特性|x1(jw)|');

t2=1/300;n2=15;n=0:14 x2=a*exp(-a*n*t2).*sin(w*n*t2);subplot(3,2,3);stem(x2,'.');xlabel('n');ylabel('x(n)');title('x(n)序列2');y2=fft(x2,n2);subplot(3,2,4);plot(abs(y2));xlabel('(n=15 wk=2pik/n)k');ylabel('|x2(jw)|');title('幅频特性|x2(jw)|');t3=0.005;n3=10;n=0:9;x3=a*exp(-a*n*t3).*sin(w*n*t3);subplot(3,2,5);stem(x3,'.');xlabel('n');ylabel('x(n)');title('x(n)序列3');y3=fft(x3,n3);subplot(3,2,6);plot(abs(y3));xlabel('(n=10 wk=2pik/n)k');ylabel('|x3(jw)|');title('幅频特性|x3(jw)|');

运行结果:

结果分析:从运行结果看,随着采样频率的减少,幅频特性的失真越明显。所以采样频率越低,越容易失真。

2、第三题:

设计思想:用fft进行谱分析时,首先必须对信号进行采样,使之变成离散信号,然后就可按照前面的方法用fft来对连续信号进行谱分析。按采样定理,采样频率fs应大于2倍信号的最高频率,为了满足采样定理,一般在采样之前要设置一个抗混叠低通滤波器。

按题目要求,讲程序分为n=16和n=128两部分。首先定义出n、f1、f2等参数,接着列出题目所要求的信号,然后利用傅立叶变换函数,最后通过坐标以及输出函数得出相应幅频特性曲线。程序代码:

%第三题(n=16)n=16;n=0:15;f1=1/16;f2=1/64;

x1=sin(2*pi*0.125*n)+cos(2*pi*(0.125+f1)*n);y1=fft(x1,16);%傅立叶变换函数 figure;

subplot(2,2,1);stem(n,abs(y1),'.');

axis([0 15 0 8]);%标注坐标长度

xlabel('(n=16 wk=2pik/n)k');ylabel('|x1(k)|');

title('幅频特性|x1(k)|');

x2=sin(2*pi*0.125*n)+cos(2*pi*(0.125+f2)*n);y2=fft(x2,16);

subplot(2,2,2);stem(n,abs(y2),'.');axis([0 15 0 8]);

xlabel('(n=16 wk=2pik/n)k');ylabel('|x2(k)|');title('幅频特性|x2(k)|');%第三题(n=128)n=128;n=0:127;f1=1/16;f2=1/64;

x1=sin(2*pi*0.125*n)+cos(2*pi*(0.125+f1)*n);y3=fft(x1,128);figure;

subplot(2,2,1);stem(n,abs(y3),'.');axis([0 127 0 65]);

xlabel('(n=128 wk=2pik/n)k');ylabel('|x3(k)|');title('幅频特性|x3(k)|');

x2=sin(2*pi*0.125*n)+cos(2*pi*(0.125+f2)*n);y4=fft(x2,128);

subplot(2,2,2);stem(n,abs(y4),'.');axis([0 127 0 65]);

xlabel('(n=128 wk=2pik/n)k');ylabel('|x4(k)|');title('幅频特性|x4(k)|');

运行结果: n=16:

n=128:

结果分析:由实验运行结果可得出当采样点数n不同时,信号的幅频特性是不同的,这是因为x(k)是x(n)的傅里叶变换x(ejw)在频率区间[0,2π]上的n点等间隔采样,这就是dft的物理意义,由此可见,dft的变换长度n不同,表示对x(ejw)在[0,2π]区间上的采样间隔和采样点数不同,所以dft的变换结果不同。

3、第五题:

设计思想:本题给定了一个序列,要求用窗函数截短。通过调整窗口长度可以有效的控制过渡段的宽度。其中题目中要求的汉宁窗是升余弦窗,能够使能量更集中在主瓣中;哈明窗是改进的升余弦窗,能使能量更加集中在主瓣中。本程序定义了窗长度,给出相应的序列之后,用窗函数去截短相应的长度,最后通过窗口输出截短后的序列。程序代码:

%第五题(矩形窗)

m1=20;m2=40;m3=160;%定义窗长度 n1=0:19;n2=0:39;n3=0:159;

x1=0.5*cos(11*pi*n1/20)+cos(9*pi*n1/20);%相应序列 x2=0.5*cos(11*pi*n2/20)+cos(9*pi*n2/20);x3=0.5*cos(11*pi*n3/20)+cos(9*pi*n3/20);b1=boxcar(m1)'.*x1;%用窗函数截短 b2=boxcar(m2)'.*x2;b3=boxcar(m3)'.*x3;figure;

subplot(3,1,1);stem(abs(fft(b1)),'.');subplot(3,1,2);stem(abs(fft(b2)),'.');subplot(3,1,3);stem(abs(fft(b3)),'.');%第五题(汉宁窗)

m1=20;m2=40;m3=160;%定义窗长度 n1=0:19;n2=0:39;n3=0:159;

x1=0.5*cos(11*pi*n1/20)+cos(9*pi*n1/20);

x2=0.5*cos(11*pi*n2/20)+cos(9*pi*n2/20);x3=0.5*cos(11*pi*n3/20)+cos(9*pi*n3/20);y1=hanning(m1)'.*x1;%窗函数截短 y2=hanning(m2)'.*x2;y3=hanning(m3)'.*x3;figure;

subplot(3,1,1);stem(abs(fft(y1)),'.');subplot(3,1,2);stem(abs(fft(y2)),'.');subplot(3,1,3);stem(abs(fft(y3)),'.');%第五题(哈明窗)

m1=20;m2=40;m3=160;%定义窗长度 n1=0:19;n2=0:39;n3=0:159;

x1=0.5*cos(11*pi*n1/20)+cos(9*pi*n1/20);x2=0.5*cos(11*pi*n2/20)+cos(9*pi*n2/20);x3=0.5*cos(11*pi*n3/20)+cos(9*pi*n3/20);h1=hamming(m1)'.*x1;%窗函数截短 h2=hamming(m2)'.*x2;h3=hamming(m3)'.*x3;figure;

subplot(3,1,1);stem(abs(fft(h1)),'.');subplot(3,1,2);stem(abs(fft(h2)),'.');subplot(3,1,3);stem(abs(fft(h3)),'.');

运行结果: 矩形窗:

汉宁窗:

哈明窗:

结果分析:信号的截短产生了能量泄漏,不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样,用fft算法计算频谱又产生了栅栏效应,所以不同的窗函数对信号频谱的影响是不一样的。从运行结果中可以看出矩形窗主瓣比较集中,旁瓣较高,并有负旁瓣;汉宁窗和哈明窗结果从图上粗看基本一样,但哈明窗加权的系数能使旁瓣达到更小。

4、第七题: 设计思想:

题目要求分别利用矩形窗、汉宁窗、哈明窗设计一个n=11的线性相位fir 低通和高通数字滤波器。fir滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。fir滤波器设计的任务是选择有限长度的h(n),使传输函数h(ejw)满足技术要求。本题中要求设计的线性相位fir滤波器的,可利y用fir1函数设计出滤波器,再利用freqz函数得出其频率响应。程序代码:

%第七题(矩形窗)n=10;wn=1/3;b1lp=fir1(n,wn,boxcar(n+1));%用fir1函数设计低通滤波器

b1hp=fir1(n,wn,'high',boxcar(n+1));%用fir1函数设计高通滤波器 m=1024;w=0:(m-1);t=0:10;

h1lp=freqz(b1lp,1,w/m*2*pi);%得出频率响应 h1hp=freqz(b1hp,1,w/m*2*pi);figure;

subplot(3,2,1);stem(t,b1lp,'.');subplot(3,2,2);stem(t,b1hp,'.');subplot(3,2,3);

plot(w(1:(m/2))/m*2,abs(h1lp(1:(m/2))));subplot(3,2,4);

plot(w(1:(m/2))/m*2,abs(h1hp(1:(m/2))));subplot(3,2,5);

plot(w/m*2,angle(h1lp));subplot(3,2,6);

plot(w/m*2,angle(h1hp));%第七题(汉宁窗)n=10;wn=1/3;

b2lp=fir1(n,wn,hanning(n+1));

b2hp=fir1(n,wn,'high',hanning(n+1));m=1024;

w=0:(m-1);t=0:10;

h2lp=freqz(b2lp,1,w/m*2*pi);h2hp=freqz(b2hp,1,w/m*2*pi);figure;

subplot(3,2,1);stem(t,b2lp,'.');subplot(3,2,2);stem(t,b2hp,'.');subplot(3,2,3);

plot(w(1:(m/2))/m*2,abs(h2lp(1:(m/2))));subplot(3,2,4);

plot(w(1:(m/2))/m*2,abs(h2hp(1:(m/2))));subplot(3,2,5);

plot(w/m*2,angle(h2lp));subplot(3,2,6);

plot(w/m*2,angle(h2hp));

%第七题(哈明窗)n=10;wn=1/3;

b3lp=fir1(n,wn,hamming(n+1));

b3hp=fir1(n,wn,'high',hamming(n+1));m=1024;w=0:(m-1);t=0:10;

h3lp=freqz(b3lp,1,w/m*2*pi);h3hp=freqz(b3hp,1,w/m*2*pi);figure;

subplot(3,2,1);stem(t,b3lp,'.');subplot(3,2,2);stem(t,b3hp,'.');subplot(3,2,3);

plot(w(1:(m/2))/m*2,abs(h3lp(1:(m/2))));subplot(3,2,4);

plot(w(1:(m/2))/m*2,abs(h3hp(1:(m/2))));subplot(3,2,5);

plot(w/m*2,angle(h3lp));subplot(3,2,6);

plot(w/m*2,angle(h3hp));

运行结果:

矩形窗:

汉宁窗:

哈明窗:

结果分析:如运行结果所示,通过三个窗口设计出的滤波器,得到的频率响应特性是不同的。此题再次验证了第五题的结论:矩形窗主瓣比较集中,旁瓣较高,并有负旁瓣;汉宁窗和哈明窗都有使能量集中在主瓣中的作用,但哈明窗加权的系数能使旁瓣达到更小。

四、课程设计总结:

随着课程设计报告的基本完成,本次课程设计终于接近了尾声。本次课程设计要求我们利用上学期所学的现代信号处理课程的知识结合matlab编程工具,完成几道信号处理以及滤波器设计的题目,通过实际操作,回顾所学内容,夯实基础,强化理论知识,并体验理论与实际相结合的过程。

设计过程中遇到的第一个问题便是对于matlab语言的不熟悉,其实现在想想这个本不应该成为问题。虽然本专业并没有开设matlab程序设计这门课,但是在上学期上现代信号处理课时老师已经向我们强调过matlab语言的重要性,并且也在课堂上通过ppt的形式向我们展示了其部分功能。同时,老师还在上学期结课时特别提醒过课程设计会用到matlab语言,要求我们在暑假里去熟悉它。可惜的是,老师的的话并没有引起我的足够重视,才导致等到要真正设计的时候一头雾水,无从下手。通过这件事,我明白了对于一件事情,想要做得很好,提前做功课和准备是必不可少的,机会只垂青有准备的人。

当然,通过本次课程设计,我还是基本熟悉了一些matlab模块以及与本课程有关的一些函数的用法。但是由于上学期先代信号处理课程学得不是很好,所以也就是在懂的同学的指导下按部就班的写了一些代码,也没有什么创新,但还是很好的回顾的所学的频谱分析以、傅立叶变换以及滤波器设计的内容。也实际设计了一个滤波器,虽然借助与matlab函数,但也算一个不错的结果。老师在任务书中提到的目的要求,我自认为多多少少完成到达了一些。但不可否认的是还有很多没有达到。总之,很多东西还是需要自己在不断的摸索中找到答案。

另外,通过这次课程设计让我认识了一门新的语言———matlab,它在以后的学习中还会用到,相信在以后学习的过程的中,我会比较好的掌握并运用它。

参考文献

1、《数字信号处理》第二版,丁玉美 高西全等,西安电子科技大学出版社,2001.1

2、《matlab及在电子信息课程中的应用》,陈怀琛等,电子工业出版社出版,2002.4

3、《matlab数字信号处理与应用》,张德丰等,清华大学出版社,2010

4、《matlab数字信号处理》,王彬等,机械工业出版社,2010

5、《信号与信息处理基础》,彭军 李宏等,中国铁道出版社,2009.2

附.程序源代码

function varargout = untitled(varargin)%untitled m-file for

% untitled, by itself, creates a new untitled or raises the existing % singleton*.%

% h = untitled returns the handle to a new untitled or the handle to % the existing singleton*.%

% untitled('property','value',...)creates a new untitled using the % given property value gnized properties are passed via % varargin to calling syntax produces a % warning when there is an existing singleton*.%

% untitled('callback')and untitled('callback',hobject,...)call the % local function named callback in untitled.m with the given input % arguments.%

% *see gui options on guide's tools “gui allows only one % instance to run(singleton)”.%

% see also: guide, guidata, guihandles

% edit the above text to modify the response to help untitled

% last modified by guide v2.5 21-oct-2011 14:29:04

% begin initialization codedo not edit

%---executes just before untitled is made on untitled_openingfcn(hobject, eventdata, handles, varargin)% this function has no output args, see outputfcn.% hobject handle to figure

% eventdata reservedto be defined in a future version of matlab % handles structure with handles and user data(see guidata)

% get default command line output from handles structure varargout{1} = ;

%---executes on button press in on pushbutton1_callback(hobject, eventdata, handles)% hobject handle to pushbutton1(see gcbo)

% eventdata reservedto be defined in a future version of matlab % handles structure with handles and user data(see guidata)

%第三题(n=16)n=16;n=0:15;f1=1/16;f2=1/64;

x1=sin(2*pi*0.125*n)+cos(2*pi*(0.125+f1)*n);y1=fft(x1,16);%傅立叶变换函数 figure;

subplot(2,2,1);stem(n,abs(y1),'.');axis([0 15 0 8]);%标注坐标长度

xlabel('(n=16 wk=2pik/n)k');ylabel('|x1(k)|');title('幅频特性|x1(k)|');

x2=sin(2*pi*0.125*n)+cos(2*pi*(0.125+f2)*n);y2=fft(x2,16);

subplot(2,2,2);stem(n,abs(y2),'.');axis([0 15 0 8]);

xlabel('(n=16 wk=2pik/n)k');ylabel('|x2(k)|');title('幅频特性|x2(k)|');

%---executes on button press in on pushbutton11_callback(hobject, eventdata, handles)% hobject handle to pushbutton11(see gcbo)

% eventdata reservedto be defined in a future version of matlab

% handles structure with handles and user data(see guidata)

%第五题(矩形窗)

m1=20;m2=40;m3=160;%定义窗长度 n1=0:19;n2=0:39;n3=0:159;

x1=0.5*cos(11*pi*n1/20)+cos(9*pi*n1/20);%相应序列 x2=0.5*cos(11*pi*n2/20)+cos(9*pi*n2/20);x3=0.5*cos(11*pi*n3/20)+cos(9*pi*n3/20);b1=boxcar(m1)'.*x1;%用窗函数截短 b2=boxcar(m2)'.*x2;b3=boxcar(m3)'.*x3;figure;

subplot(3,1,1);stem(abs(fft(b1)),'.');subplot(3,1,2);stem(abs(fft(b2)),'.');subplot(3,1,3);stem(abs(fft(b3)),'.');

%---executes on button press in on pushbutton5_callback(hobject, eventdata, handles)% hobject handle to pushbutton5(see gcbo)

% eventdata reservedto be defined in a future version of matlab% handles structure with handles and user data(see guidata)

%第五题(哈明窗)

m1=20;m2=40;m3=160;%定义窗长度 n1=0:19;n2=0:39;n3=0:159;

x1=0.5*cos(11*pi*n1/20)+cos(9*pi*n1/20);x2=0.5*cos(11*pi*n2/20)+cos(9*pi*n2/20);x3=0.5*cos(11*pi*n3/20)+cos(9*pi*n3/20);h1=hamming(m1)'.*x1;%窗函数截短 h2=hamming(m2)'.*x2;h3=hamming(m3)'.*x3;figure;

subplot(3,1,1);stem(abs(fft(h1)),'.');subplot(3,1,2);stem(abs(fft(h2)),'.');subplot(3,1,3);stem(abs(fft(h3)),'.');

%---executes on button press in on pushbutton7_callback(hobject, eventdata, handles)

% hobject handle to pushbutton7(see gcbo)

% eventdata reservedto be defined in a future version of matlab % handles structure with handles and user data(see guidata)

%第七题(矩形窗)n=10;wn=1/3;

b1lp=fir1(n,wn,boxcar(n+1));%用fir1函数设计低通滤波器

b1hp=fir1(n,wn,'high',boxcar(n+1));%用fir1函数设计高通滤波器 m=1024;w=0:(m-1);t=0:10;

h1lp=freqz(b1lp,1,w/m*2*pi);%得出频率响应 h1hp=freqz(b1hp,1,w/m*2*pi);figure;

subplot(3,2,1);stem(t,b1lp,'.');subplot(3,2,2);stem(t,b1hp,'.');subplot(3,2,3);

plot(w(1:(m/2))/m*2,abs(h1lp(1:(m/2))));subplot(3,2,4);

plot(w(1:(m/2))/m*2,abs(h1hp(1:(m/2))));subplot(3,2,5);

plot(w/m*2,angle(h1lp));subplot(3,2,6);

plot(w/m*2,angle(h1hp));

%---executes on button press in on pushbutton9_callback(hobject, eventdata, handles)% hobject handle to pushbutton9(see gcbo)

% eventdata reservedto be defined in a future version of matlab % handles structure with handles and user data(see guidata)

%第七题(哈明窗)n=10;wn=1/3;

b3lp=fir1(n,wn,hamming(n+1));

b3hp=fir1(n,wn,'high',hamming(n+1));m=1024;w=0:(m-1);t=0:10;

h3lp=freqz(b3lp,1,w/m*2*pi);h3hp=freqz(b3hp,1,w/m*2*pi);figure;

subplot(3,2,1);stem(t,b3lp,'.');subplot(3,2,2);stem(t,b3hp,'.');subplot(3,2,3);

plot(w(1:(m/2))/m*2,abs(h3lp(1:(m/2))));subplot(3,2,4);

plot(w(1:(m/2))/m*2,abs(h3hp(1:(m/2))));subplot(3,2,5);

plot(w/m*2,angle(h3lp));subplot(3,2,6);

plot(w/m*2,angle(h3hp));

猜你喜欢 网友关注 本周热点 软件
musicolet
2025-08-21
BBC英语
2025-08-21
百度汉语词典
2025-08-21
精选文章
基于你的浏览为你整理资料合集
现代信号处理课程设计报告(五篇) 文件夹
复制