中南大学《数字信号处理》课程设计报告(最终定稿)

时间:2019-05-12 07:09:28下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《中南大学《数字信号处理》课程设计报告》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《中南大学《数字信号处理》课程设计报告》。

第一篇:中南大学《数字信号处理》课程设计报告

中南大学

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

学 院: 专业班级:

姓 名:

学 号:

指导老师:

设计时间:

前 言

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

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

目 录

前 言............................................................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)序列的傅里叶变换')

%2.figure(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('滤波后的序列');

%4.figure(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]陈怀琛,吴大正,高西全.MATLAB在电子信息课程中的应用.第三版.北京:电子工业出版社,2006 [6]董长虹.MATLAB信号处理与应用.北京:国防工业出版社,2005

第二篇:中南大学数字信号处理课程设计报告2

中南大学

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

专业班级:

指导老师:

名:

号:

一、课程设计要求

二、设计过程

(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] S.K.Mitra.Digital Signal Processing: A Computer Based Approach, 3rd Edition [M], New York, USA: McGraw-Hill, 2000 [2] R.G.Lyons.Understanding Digital Signal Processing, 2nd Edition [M].New Jersey, USA: Prentice Hall, 2005 [3] 程佩青.数字信号处理教程, 第二版[M].北京: 清华大学出版社, 2001 [4] 赵树杰等.数字信号处理[M].西安: 西安电子科技大学出版社, 1997 [5] 丁玉美等.数字信号处理—时域离散随机信号处理[M].西安: 西安电子科技大学出版社, 2002 [6] 陈怀琛等.MATLAB 及在电子信息课程中的应用[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:mcpass.wav');%原信号

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:hbsong.wav');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:mcpass.wav');%原声音信号 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:mcpass.wav');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:mcpass.wav');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:mcpass.wav');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:心电信号-新.txt');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:心电信号-新.txt');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:心电信号-新.txt');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:心电信号-新.txt');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及在电子信息课程中的应用》,陈怀琛等,电子工业出版社

第三篇:数字信号处理课程设计..

课程设计报告

课程名称: 数字信号处理 课题名称: 语音信号的处理与滤波

姓 名: 学 号: 院 系: 专业班级: 指导教师: 完成日期: 2013年7月2日

目录

第1部分 课程设计报告………………………………………3 一.设计目的……………………………………………3 二.设计内容……………………………………………3 三.设计原理……………………………………………3 四.具体实现……………………………………………5 1.录制一段声音…………………………………5 2.巴特沃斯滤波器的设计………………………8 3.将声音信号送入滤波器滤波…………………13 4.语音信号的回放………………………………19 5.男女语音信号的频谱分析……………………19 6.噪声的叠加和滤除……………………………22 五. 结果分析……………………………………………27 第2部分 课程设计总结………………………………28 一. 参考文献……………………………………………28

第1部分 课程设计报告

一.设计目的

综合运用本课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。

二.设计内容

录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换法设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;换一个与你性别相异的人录制同样一段语音内容,分析两段内容相同的语音信号频谱之间有什么特点;再录制一段同样长时间的背景噪声叠加到你的语音信号中,分析叠加前后信号频谱的变化,设计一个合适的滤波器,能够把该噪声滤除;

三.设计原理

1.在Matlab软件平台下,利用函数wavrecord(),wavwrite(),wavread(),wavplay()对语音信号进行录制,存储,读取,回放。

2.用y=fft(x)对采集的信号做快速傅立叶变换,并用[h1,w]=freqz(h)进行DTFT变换。

3.掌握FIR DF线性相位的概念,即线性相位对h(n)、H()及零点的约束,了解四种FIR DF的频响特点。

4.在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波。

5.抽样定理

连续信号经理想抽样后时域、频域发生的变化(理想抽样信号与连续信号频谱之间的关系)

理想抽样信号能否代表原始信号、如何不失真地还原信号即由离散信号恢复连续信号的条件(抽样定理)

理想采样过程描述: 时域描述:

ˆa(t)xa(t)T(t)xa(t)(tnT)xa(nT)(tnT)xnnT(t)频域描述:利用傅氏变换的性质,时域相乘频域卷积,若

n(tnT)ˆa(t)Xa(j)xXa(j)xa(t)T(j)T(t)

则有

ˆ(j)1X(j)(j)XaaT2121ˆXa(j)Xa(jjk)Xa(jjks)TkTTkˆ(j)与X(j)的关系:理想抽样信号的频谱是连续信号频谱的Xaa

周期延拓,重复周期为s(采样角频率)。如果:

X(j)Xa(j)a0s/2s/2即连续信号是带限的,且信号最高频率不超过抽样频率的二分之一,则可不失真恢复。

奈奎斯特采样定理:要使实信号采样后能够不失真还原,采样频率必须大于信号最高频率的两倍:s2h 或 fs2fh

四.具体实现

1.录制一段声音

1.1录制并分析

在MATLAB中用wavrecord、wavread、wavplay、wavwrite对声音进行录制、读取、回放、存储。

程序如下:

Fs=8000;%抽样频率 time=3;%录音时间 fprintf('按Enter键录音%ds',time);%文字提示 pause;%暂停命令 fprintf('录音中......');x=wavrecord(time*Fs,Fs,'double');%录制语音信号 fprintf('录音结束');%文字提示 fprintf('按Enter键回放录音');pause;%暂停命令

wavplay(x,Fs);%按任意键播放语音信号

wavwrite(x,Fs,'C:UsersacerDesktop数字信号sound.wav');%存储语音信号

N=length(x);%返回采样点数 df=fs/N;%采样间隔 n1=1:N/2;f=[(n1-1)*(2*pi/N)]/pi;%频带宽度 figure(2);subplot(2,1,1);plot(x);%录制信号的时域波形 title('原始信号的时域波形');%加标题 ylabel('幅值/A');%显示纵坐标的表示意义 grid;%加网格

y0=fft(x);%快速傅立叶变换 figure(2);subplot(2,1,2);plot(f,abs(y0(n1)));%原始信号的频谱图 title('原始信号的频谱图');%加标题 xlabel('频率w/pi');%显示横坐标表示的意义 ylabel('幅值 ');%显示纵坐标表示的意义 title('原始信号的频谱图');%加标题

grid;%加网格

图1.1 原始信号的时域与频谱图

1.2滤除无效点

针对实际发出声音落后录制动作半拍的现象,如何拔除对无效点的采样的问题: 出现这种现象的原因主要是录音开始时,人的反应慢了半拍,导致出现了一些无效点,而后而出现的无效的点,主要是已经没有声音的动作,先读取声音出来,将原始语音信号时域波形图画出来,根据己得到的信号,可以在第二次读取声音的后面设定采样点,取好有效点,画出滤除无效点后的语音信号时域波形图,对比可以看出。这样就可以解决这个问题。

x=wavread('C:UsersacerDesktop数字信号sound.wav', 7

[4000,24000]);%从4000点截取到24000结束 plot(x);%画出截取后的时域图形 title('截取后的声音时域图形');%标题 xlabel('频率');ylabel('振幅');grid;%画网格

图1.2 去除无效点

2.巴特沃斯滤波器的设计

2.1设计巴特沃思低通滤波器

MATLAB程序如下。滤波器图如图3.3所示。

%低通滤波

fp=1000;fs=1200;Fs=22050;rp=1;rs=100;wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;Fs1=1;wap=2*tan(wp/2);was=2*tan(ws/2);[N,wc]=buttord(wap,was,rp,rs,'s');[B,A]=butter(N,wc,'s');[Bz,Az]=bilinear(B,A,Fs1);figure(1);[h,w]=freqz(Bz,Az,512,Fs1*22050);plot(w,abs(h));title('巴特沃斯低通滤波器');xlabel('频率(HZ)');ylabel('耗损(dB)');gridon;9

图2.1 巴特沃思低通滤波器

2.2设计巴特沃思高通滤波器

MATLAB程序如下。滤波器图如图3.5所示。%高通滤波

fp=4800;fs=5000;Fs=22050;rp=1;rs=100;wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;T=1;Fs1=1;wap=2*tan(wp/2);was=2*tan(ws/2);10

[N,wc]=buttord(wap,was,rp,rs,'s');[B,A]=butter(N,wc,'high','s');[Bz,Az]=bilinear(B,A,Fs1);figure(1);[h,w]=freqz(Bz,Az,512,Fs1*22050);plot(w,abs(h));title('巴特沃斯高通滤波器');xlabel('频率(HZ)');ylabel('耗损(dB)');grid on;

图2.2巴特沃思高通滤波器

2.3设计巴特沃思带通滤波器

MATLAB程序如下。滤波器图如图3.7所示。%带通滤波

fp=[1200,3000];fs=[1000,3200];Fs=8000;rp=1;rs=100;wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;T=1;Fs1=1;wap=2*tan(wp/2);was=2*tan(ws/2);[N,wc]=buttord(wap,was,rp,rs,'s');[B,A]=butter(N,wc,'s');[Bz,Az]=bilinear(B,A,Fs1);figure(4);[h,w]=freqz(Bz,Az,512,Fs1*1000);plot(w,abs(h));title('巴特沃斯带通滤波器');xlabel('频率(HZ)');ylabel('耗损(dB)');grid on;12

图2.3巴特沃思带通滤波器

3.将声音信号送入滤波器滤波

x=wavread('C:UsersacerDesktop数字信号sound.wav');%播放原始信号

wavplay(x,fs);%播放原始信号 N=length(x);%返回采样点数 df=fs/N;%采样间隔 n1=1:N/2;f=[(n1-1)*(2*pi/N)]/pi;%频带宽度 figure(4);subplot(4,2,1);plot(x);%录制信号的时域波形

title('原始信号的时域波形');%加标题 ylabel('幅值/A');%显示纵坐标的表示意义 grid;%加网格

y0=fft(x);%快速傅立叶变换 subplot(4,2,3);plot(f,abs(y0(n1)));%原始信号的频谱图 title('原始信号的频谱图');%加标题 xlabel('频率w/pi');%显示横坐标表示的意义 ylabel('幅值 ');%显示纵坐标表示的意义 title('原始信号的频谱图');%加标题 grid;%加网格

3.1低通滤波器滤波 fs=8000;beta=10.056;wc=2*pi*1000/fs;ws=2*pi*1200/fs;width=ws-wc;wn=(ws+wc)/2;n=ceil(12.8*pi /width);h=fir1(n,wn/pi,'band',kaiser(n+1,beta));[h1,w]=freqz(h);

ys=fftfilt(h,x);%信号送入滤波器滤波,ys为输出 fftwave=fft(ys);%将滤波后的语音信号进行快速傅立叶变换 figure(4);subplot(4,2,2);%在四行两列的第二个窗口显示图形 plot(ys);%信号的时域波形

title('低通滤波后信号的时域波形');%加标题 xlabel('频率w/pi');ylabel('幅值/A');%显示标表示的意义 grid;%网格

subplot(4,2,4);%在四行两列的第四个窗口显示图形 plot(f, abs(fftwave(n1)));%绘制模值 xlabel('频率w/pi');ylabel('幅值/A');%显示标表示的意义

title('低通滤波器滤波后信号的频谱图');%标题 grid;%加网格

wavplay(ys,8000);%播放滤波后信号

3.2高通滤波器滤波 fs=8000;beta=10.056;ws=2*5000/fs;wc=2*4800/fs;

width=ws-wc;wn=(ws+wc)/2;n=ceil(12.8*pi/width);h=fir1(n,wn/pi, 'high',kaiser(n+2,beta));[h1,w]=freqz(h);ys=fftfilt(h,x);%将信号送入高通滤波器滤波 subplot(4,2,5);%在四行两列的第五个窗口显示图形 plot(ys);%信号的时域波形 xlabel('频率w/pi');ylabel('幅值/A');%显示标表示的意义 title('高通滤波后信号的时域波形');%标题 ylabel('幅值/A');%显示纵坐标的表示意义 grid;%网格

fftwave=fft(ys);%将滤波后的语音信号进行快速傅立叶变换 subplot(4,2,7);%在四行两列的第七个窗口显示图形 plot(f,abs(fftwave(n1)));%绘制模值 axis([0 1 0 50]);xlabel('频率w/pi');ylabel('幅值/A');%显示标表示的意义

title('高通滤波器滤波后信号的频谱图');%标题 grid;%加网格

wavplay(ys,8000);%播放滤波后信号

3.3带通滤波器 fs=8000;beta=10.056;wc1=2*pi*1000/fs;wc2=2*pi*3200/fs;ws1=2*pi*1200/fs;ws2=2*pi*3000/fs;width=ws1-wc1;wn1=(ws1+wc1)/2;wn2=(ws2+wc2)/2;wn=[wn1 wn2];n=ceil(12.8/width*pi);h=fir1(n,wn/pi,'band',kaiser(n+1,beta));[h1,w]=freqz(h);ys1= fftfilt(h,x);%将信号送入高通滤波器滤波 figure(4);subplot(4,2,6);%在四行两列的第六个窗口显示图形 plot(ys1);%绘制后信号的时域的图形 title('带通滤波后信号的时域波形');%加标题 xlabel('频率w/pi');ylabel('幅值/A');%显示纵坐标表示的意义 grid;%网格

fftwave=fft(ys1);%对滤波后的信号进行快速傅立叶变换 subplot(4,2,8);%在四行两列的第八个窗口显示图形

plot(f, abs(fftwave(n1)));%绘制模值 axis([0 1 0 50]);xlabel('频率w/pi');ylabel('幅值/A');%显示标表示的意义 title('带通滤波器滤波后信号的频谱图');%加标题 grid;%网格

wavplay(ys1,8000);%播放滤波后信号 图形如下:

原始信号的时域波形幅值/A0-1012x 10原始信号的频谱图34幅值/A1低通滤波后信号的时域波形0.50-0.5012频率w/pi3400.51频率w/pi高通滤波后信号的时域波形幅值/A0幅值/A0幅值/Ax 10高通滤波器滤波后信号的频谱图5012频率w/pi34幅值/A0.20-0.2幅值/A2001000x 10低通滤波器滤波后信号的频谱图200100000.51频率w/pi带通滤波后信号的时域波形0.50-0.501234频率w/pix 10带通滤波器滤波后信号的频谱图50幅值 00.5频率w/pi1000.5频率w/pi1

分析:三个滤波器滤波后的声音与原来的声音都发生了变化。其中低

通的滤波后与原来声音没有很大的变化,其它两个都又明显的变化

4.语音信号的回放

sound(xlow,Fs,bits);%在Matlab中,函数sound可以对声音进行回放,其调用格式: sound(xhigh, Fs,bits);%sound(x, Fs, bits);sound(xdaitong, Fs,bits);5.男女语音信号的频谱分析

5.1 录制一段异性的声音进行频谱分析

Fs=8000;%抽样频率 time=3;%录音时间 fprintf('按Enter键录音%ds',time);%文字提示 pause;%暂停命令 fprintf('录音中......');x=wavrecord(time*Fs,Fs,'double');%录制语音信号 fprintf('录音结束');%文字提示 fprintf('按Enter键回放录音');pause;%暂停命令 wavplay(x,Fs);%按任意键播放语音信号

wavwrite(x,Fs,'C:UsersacerDesktop数字信号sound2.wav');%存储语音信号

5.2 分析男女声音的频谱

x=wavread(' C:UsersacerDesktop数字信号sound2.wav ');%播放原始信号,解决落后半拍

wavplay(x,fs);%播放原始信号 N=length(x);%返回采样点数 df=fs/N;%采样间隔 n1=1:N/2;

f=[(n1-1)*(2*pi/N)]/pi;%频带宽度 figure(1);subplot(2,2,1);plot(x);%录制信号的时域波形

title('原始女生信号的时域波形');%加标题 ylabel('幅值/A');%显示纵坐标的表示意义 grid;%加网格

y0=fft(x);%快速傅立叶变换 subplot(2,2,2);plot(f,abs(y0(n1)));%原始信号的频谱图 title('原始女生信号的频谱图');%加标题 xlabel('频率w/pi');%显示横坐标表示的意义 ylabel('幅值 ');%显示纵坐标表示的意义 grid;%加网格

[y,fs,bits]=wavread(' C:UsersacerDesktop数字信号sound.wav ');% 对语音信号进行采样

wavplay(y,fs);%播放原始信号 N=length(y);%返回采样点数 df=fs/N;%采样间隔 n1=1:N/2;f=[(n1-1)*(2*pi/N)]/pi;%频带宽度 subplot(2,2,3);plot(y);%录制信号的时域波形

title('原始男生信号的时域波形');%加标题 ylabel('幅值/A');%显示纵坐标的表示意义 grid;%加网格

y0=fft(y);%快速傅立叶变换

subplot(2,2,4);%在四行两列的第三个窗口显示图形 plot(f,abs(y0(n1)));%原始信号的频谱图 title('原始男生信号的频谱图');%加标题 xlabel('频率w/pi');%显示横坐标表示的意义 ylabel('幅值 ');%显示纵坐标表示的意义 grid;%加网格

5.3男女声音的频谱图

原始女生信号的时域波形0.50-0.5-1150100原始女生信号的频谱图幅值/A幅值 012345000x 10原始男生信号的时域波形0.50.5频率w/pi原始男生信号的频谱图1300200幅值/A0幅值 012x 1034100-0.5000.5频率w/pi1

图5.3男女声音信号波形与频谱对比

分析:就时域图看,男生的时域图中振幅比女生的高,对于频谱图女生的高频成分比较多

6.噪声的叠加和滤除

6.1录制一段背景噪声

Fs=8000;%抽样频率 time=3;%录音时间 fprintf('按Enter键录音%ds',time);%文字提示 pause;%暂停命令 fprintf('录音中......');x=wavrecord(time*Fs,Fs,'double');%录制语音信号

fprintf('录音结束');%文字提示 fprintf('按Enter键回放录音');pause;%暂停命令 wavplay(x,Fs);%按任意键播放语音信号 wavwrite(x,Fs,'C:UsersacerDesktop数字信号噪音.wav');%存储语音信号

6.2 对噪声进行频谱的分析

[x1,fs,bits]=wavread(' C:UsersacerDesktop数字信号噪音.wav ');%对语音信号进行采样

wavplay(x1,fs);%播放噪声信号 N=length(x1);%返回采样点数 df=fs/N;%采样间隔

n1=1:N/2;f=[(n1-1)*(2*pi/N)]/pi;%频带宽度 figure(5);subplot(3,2,1);plot(x1);%信号的时域波形 title('噪声信号的时域波形');grid;ylabel('幅值/A');y0=fft(x1);%快速傅立叶变换

subplot(3,2,2);plot(f,abs(y0(n1)));%噪声信号的频谱图 ylabel('幅值');title('噪声信号的频谱图');

6.3原始信号与噪音的叠加

fs=8000;[x,fs,bits]=wavread(' C:UsersacerDesktop数字信号sound.wav ');%对录入信号进行采样

[x1,fs,bits]=wavread(' C:UsersacerDesktop数字信号噪音.wav ');%对噪声信号进行采样

yy=x+x1;%将两个声音叠加

6.4叠加信号的频谱分析:

wavplay(yy,fs);%播放叠加后信号 N=length(yy);%返回采样点数 df=fs/N;%采样间隔 n1=1:N/2;f=[(n1-1)*(2*pi/N)]/pi;%频带宽度 figure(5);subplot(3,2,3);plot(yy,'LineWidth',2);%信号的时域波形

title('叠加信号的时域波形');xlabel('时间/t');ylabel('幅值/A');grid;y0=fft(yy);%快速傅立叶变换 subplot(3,2,4);plot(f,abs(y0(n1)));%叠加信号的频谱图 title('叠加信号的频谱图');xlabel('频率w/pi');ylabel('幅值/db');grid;

6.5 设计一个合适的滤波器将噪声滤除 fs=18000;%采样频率 Wp=2*1000/fs;%通带截至频率 Ws=2*2000/fs;%阻带截至频率 Rp=1;%最大衰减 Rs=100;%最小衰减

[N,Wn]=buttord(Wp,Ws,Rp,Rs);%buttord函数(n为阶数,Wn为截至频率)

[num,den]=butter(N,Wn);%butter函数(num为分子系数den为分母系数)

[h,w]=freqz(num,den);%DTFT变换

ys=filter(num,den,yy);%信号送入滤波器滤波,ys为输出 fftwave=fft(ys);%将滤波后的语音信号进行快速傅立叶变换 figure(5);subplot(3,2,5);plot(ys);%信号的时域波形

title('低通滤波后信号的时域波形');%加标题 ylabel('幅值/A');%显示标表示的意义 grid;%网格 subplot(3,2,6);plot(f, abs(fftwave(n1)));%绘制模值 title('低通滤波器滤波后信号的频谱图');%标题 xlabel('频率w/pi');ylabel('幅值/A');%显示标表示的意义 grid;%加网格

wavplay(ys,8000);%播放滤波后信号 grid;图形如下:

噪声信号的时域波形1100噪声信号的频谱图幅值/A0-1幅值0123450000.5叠加信号的频谱图1x 10叠加信号的时域波形10-101时间/t2200幅值/db34幅值/A100000.5频率w/pi1x 10低通滤波后信号的时域波形0.5低通滤波器滤波后信号的频谱图200幅值/A0-0.5幅值/A012x 1034100000.5频率w/pi1

图6.1噪音的叠加与滤除前后频谱对比

7.结果分析

1.录制刚开始时,常会出现实际发出声音落后录制动作半拍,可在[x,fs,bits]=wavread('d:matlavworkwomamaaiwo.wav')加 窗[x,fs,bits]=wavread('d:matlavworkwomamaaiwo.wav',[100 10000]),窗的长度可根据需要定义。

2.语音信号通过低通滤波器后,把高频滤除,声音变得比较低沉。当通过高通滤波器后,把低频滤除,声音变得比较就尖锐。通过带通滤波器后,声音比较适中。

3.通过观察男生和女生图像知:时域图的振幅大小与性别无关,只与说话人音量大小有关,音量越大,振幅越大。频率图中,女生高 27

频成分较多。

4.叠加噪声后,噪声与原信号明显区分,但通过低通滤波器后,噪声没有滤除,信号产生失真。原因可能为噪声与信号频率相近无法滤除。

第2部分 课程设计总结

通过本次课程设计,使我们对数字信号处理相关知识有了更深刻的理解,尤其是对各种滤波器的设计。在设计的过程中遇到了很多问题,刚刚开始时曾天真的认为只要把以前的程序改了参数就可以用了,可是问题没有我想象中的那么简单,单纯的搬程序是不能解决问题的。通过查阅资料和请教同学收获了很多以前不懂的理论知识。再利用所学的操作,发现所写的程序还是没有能够运行,通过不断地调试,运行,最终得出了需要的结果。整个过程中学到了很多新的知识,特别是对Matlab的使用终于有些了解。在以后的学习中还需要深入了解这方面的内容。在这次的课程设计中让我体会最深的是:知识来不得半点的马虎。也认识到自己的不足,以后要进一步学习。

八.参考文献

[1]数字信号处理教程(第三版)程佩青 清华大学出版社 [2]MATLAB信号处理 刘波 文忠 电子工业出版社 [3]MATLAB7.1及其在信号处理中的应用 王宏 清华大学出版社

[4]MATLAB基础与编程入门 张威 西安电子科技大学出版社

[5] 数字信号处理及其MATLAB实验 赵红怡 张常 化学工业出版社

[6]MATLAB信号处理详解 陈亚勇等 人民邮电出版社 [7] 数字信号处理

钱同惠 机械工业出版社 29

第四篇:数字信号处理课程设计

目 录

摘要...........................................................................................................................................1 1 绪论..............................................................................................................................................2

1.1 DSP系统特点和设计基本原则......................................................................................2 1.2 国内外研究动态.............................................................................................................2 2系统设计........................................................................................................................................3 3硬件设计........................................................................................................................................5

3.1 硬件结构...........................................................................................................................5 3.2 硬件电路设计...................................................................................................................7

3.2.1 总输入电路...........................................................................................................7 3.2.2 总输出电路...........................................................................................................7 3.2.3 语音输入电路.......................................................................................................9 3.2.4 语音输出电路.......................................................................................................9 实验结果及分析.........................................................................................................................10 4.1 实验结果.........................................................................................................................10 4.2 实验分析.........................................................................................................................12 5 总结与心得体会.........................................................................................................................13 参考文献.........................................................................................................................................14 致谢................................................................................................................................................15

摘要

基于DSP的语音信号处理系统,该系统采用TMS320VC5509作为主处理器,TLV320AIC23B作为音频芯片,在此基础上完成系统硬件平台的搭建和软件设计,从而实现对语音信号的采集、滤波和回放功能,它可作为语音信号处理的通用平台。

语音是人类相互之间进行交流时使用最多、最自然、最基本也是最重要的信息载体。在高度信息化的今天,语音信号处理是信息高速公路、多媒体技术、办公自动化、现代通信及智能系统等新兴领域应用的核心技术之一。通常这些信号处理的过程要满足实时且快速高效的要求,随着DSP技术的发展,以DSP为内核的设备越来越多,为语音信号的处理提供了良好的平台。本文设计了一个基于TMS320VC5509定点的语音信号处理系统,实现对语音信号的采集、处理与回放等功能,为今后复杂的语音信号处理算法的研究和实时实现提供一个通用平台。

关键词:语音处理;DSP;TMS320VC5509;TLV320AIC23B

1 绪论

语音是人类相互间所进行的通信的最自然和最简洁方便的形式,语音通信是一种理想的人机通信方式。语音通信的研究涉及到人工智能、数字信号处理、微型计算机技术、语言声学、语言学等许多领域,所以说语音的通信是一个多学科的综合研究领域,其研究成果具有重要的学术价值。另外通过语音来传递信息是人类最重要的、最有效、最常用的交换信息的形式。语言是人类特有的功能,声音是人类常用的工具,是相互传递信息的主要手段。同时也是众构成思想交流和感情沟通的最主要的途径。

1.1 DSP系统特点和设计基本原则

DSP(digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。

1.2 国内外研究动态

语音信号处理作为一个重要的研究领域,已经有很长的研究历史。但是它的快速发展可以说是从1940年前后Dudley的声码器和Potter等人的可见语音开始的;20世纪60年代中期形成的一系列数字信号处理的理念和技术基础;到了80年代,由于矢量量化、隐马尔可夫模型和人工神经网络等相继被应用于语音信号处理,并经过不断改进与完善,使得语音信号处理技术产生了突破性的进展。一方面,对声学语音学统计模型的研究逐渐深入,鲁棒的语音识别、基于语音段的建模方法及隐马尔可夫模型与人工神经网络的结合成为研究的热点。另一方面,为了语音识别实用化的需要,讲者自适应、听觉模型、快速搜索识别算法以及进一步的语言模型的研究等课题倍受关注。

在通信越来越发达的当今世界,尤其最近几十年,语音压缩编码技术在移动 通信、IP电话通信、保密通信、卫星通信以及语音存储等很多方面得到了广泛的应用。因此,语音编码一直是通信和信号处理的研究热点,并其取得了惊人的进展,目前在PC机上的语音编码已经趋于成熟,而如何在嵌入式系统中实时实现语音压缩编码则是近些年来语音信号处理领域的研究热点之一。

2系统设计

在实际生活中,当声源遇到物体时会发生反射,反射的声波和声源声波一起传输,听者会发现反射声波部分比声源声波慢一些,类似人们面对山体高声呼喊后可以在过一会儿听到回声的现象。声音遇到较远物体产生的反射会比遇到较近的反射波晚些到达声源位置,所以回声和原声的延迟随反射物体的距离大小改变。同时,反射声音的物体对声波的反射能力,决定了听到的回声的强弱和质量。另外,生活中的回声的成分比较复杂,有反射、漫反射、折射,还有回声的多次反射、折射效果。

当已知一个数字音源后,可以利用计算机的处理能力,用数字的方式通过计算模拟回声效应。简单的讲,可以在原声音流中叠加延迟一段时间后的声流,实现回声效果。当然通过复杂运算,可以计算各种效应的混响效果。如此产生的回声,我们称之为数字回声。

本次实验的程序流程图如下:

图2.1 程序流程图

本次实验的系统框图如下:

图2.2 系统框图

3硬件设计

3.1 硬件结构

图3.1是系统的硬件结构框图, 系统主要包括VC5509和A IC23 两个模块。

图3.1系统硬件结构框图

利用VC5509 的片上外设I2C(Inter-Integrated Circuit, 内部集成电路)模块配置AIC23 的内部寄存器;通过VC5509 的McBSP(Multi channel Buffered Serial Ports, 多通道缓存串口)接收和发送采样的音频数据。控制通道只在配置AIC23 的内部寄存器时工作, 而当传输音频数据时则处于闲置状态。

AIC23通过麦克风输入或者立体声音频输入采集模拟信号, 并把模拟信号转化为数字信号, 存储到DSP的内部RAM中,以便DSP处理。

当DSP完成对音频数据的处理以后, AIC23再把数字信号转化为模拟信号, 这样就能够在立体声输出端或者耳机输出端听到声音。

AIC23能够实现与VC5509 DSP的McBSP端口的无缝连接, 使系统设计更加简单。接口的原理框图, 如下图所示。

图3.2 AIC23与VC5509接口原理图

系统中A IC23的主时钟12 MHz直接由外部的晶振提供。MODE接数字地, 表示利用I2 C控制接口对AIC23传输控制数据。CS接数字地, 定义了I2 C总线上AIC23的外设地址, 通过将CS接到高电平或低电平, 可以选择A IC23作为从设备在I2 C总线上的地址。SCLK和SDIN是AIC23控制端口的移位时钟和数据输入端,分别与VC5509的I2C模块端口SCL和SDA相连。

收发时钟信号CLKX1和CLKR1由A IC23的串行数据输入时钟BCLK提供, 并由A IC23的帧同步信号LRCIN、LRCOUT启动串口数据传输。DX1和DR1分别与A IC23 的D IN 和DOUT 相连, 从而完成VC5509与AIC23间的数字信号通信。

3.2 硬件电路设计

3.2.1 总输入电路

图3.3 总输入电路

从左到右各部分电路为:

话筒,开关,语音输入电路,UA741高增益放大电路,有源二阶带 通滤波器。

3.2.2 总输出电路

图3.4 总输出电路

从左到右各部分电路为:

LM386高频功率放大器及其外围器件连接电路,语音输出电路,开关,扬声器。

3.2.3 语音输入电路

图3.5语音输入电路

3.2.4 语音输出电路

图3.6 语音输出电路

语音信号通道包括模拟输入和模拟输出两个部分。模拟信号的输入输出电路如图所示。上图中MICBIAS 为提供的麦克风偏压,通常是3/4 AVDD,MICIN为麦克风输入,可以根据需要调整输入增益。下图中LLINEOUT 为左声道输出,RLINEOUT为右声道输出。用户可以根据电阻阻值调节增益的大小,使语音输入输出达到最佳效果。从而实现良好的模拟语音信号输入与模拟信号的输出。4 实验结果及分析

4.1 实验结果

按“F5”键运行,注意观察窗口中的bEcho=0,表示数字回声功能没有激活。这时从耳机中能听到麦克风中的输入语音放送。将观察窗口中bEcho的取值改成非0值。这时可从耳机中听到带数字回声道语音放送。

分别调整uDelay和uEffect的取值,使他们保持在0-1023范围内,同时听听耳机中的输出有何变化。

当uDelay和uEffect的数值增大时,数字回声的效果就会越加的明显。

图4.1 修改前程序图

图4.2 修改前程序图

图4.3 频谱分析

图4.4 左声道及右声道波形 4.2 实验分析

所以,从本实验可知当已知一个数字音源后,可以利用计算机的处理能力,用数字的方式通过计算模拟回声效应。简单的讲,可以在原声音流中叠加延迟一段时间后的声流,实现回声效果。当然通过复杂运算,可以计算各种效应的混响效果。

声音放送可以加入数字回声,数字回声的强弱和与原声的延迟均可在程序中设定和调整。5 总结与心得体会

通过本次课程设计,我明白了细节决定成败这句话的道理,在实验中,有很多注意的地方,都被忽视了,导致再花费更多的时间去修改,这严重影响了试验的进度。同时,在本次实验中我了解了ICETEK – VC5509 – A板上语音codec芯片TLV320AIC23的设计和程序控制原理,并进一步掌握了数字回声产生原理、编程及其参数选择、控制,以及了解了VC5509DSP扩展存储器的编程使用方法。

这一学期的理论知识学习加上这次课程设计,使我对DSP有了更加深刻的了解,对数字信号的处理功能,软硬件相结合,语音信号的采集与放送等等方面都有了很深的了解,相信本次课程设计,无论是对我以后的学习,还是工作等方面都有一个很大的帮助。因此,本次课程设计让我受益匪浅。

参考文献

[1]李利.DSP原理及应用[M].北京:中国水利水电出版社,2004.[2]王安民,陈明欣,朱明.TMS320C54xxDSP实用技术[M].北京:清华大学出版社,2007 [3]彭启琮,李玉柏.DSP技术[M].成都:电子科技大学出版社,1997 [4]李宏伟,等.基于帧间重叠谱减法的语音增强方法[J].解放军理工大学学报,2001(1):41~44 [5]TexasInstrumentsIncorporated.TMS320C54x系列DSP的CPU与外设[M].梁晓雯,裴小平,李玉虎,译.北京:清华大学出版社,2006 [6]赵力.语音信号处理[M].北京:机械工业出版社,2003比较图4和图5,可以看到1200Hz以上的频谱明显得到了抑制。

[7]江涛,朱光喜.基于TMS320VC5402的音频信号采集与系统处理[J].电子技术用,2002,28(7):70~72[8]TexasInstrumentsIncorporated:TMS320VC5402Datasheet,2001

致谢

在本次课程设计的即将完成之际,笔者的心情无法平静,本文的完成既是笔者孜孜不倦努力的结果,更是指导老师樊洪斌老师亲切关怀和悉心指导的结果。在整个课程设计的选题、研究和撰写过程中,老师都给了我精心的指导、热忱的鼓励和支持,他的精心点拨为我开拓了研究视野,修正了写作思路,对课程设计的完善和质量的提高起到了关键性的作用。另外,导师严谨求实的治学态度、一丝不苟的工作作风和高尚的人格魅力,都给了学生很大感触,使学生终生受益。在此,学生谨向老师致以最真挚的感激和最崇高的敬佩之情。

另外,还要感谢这段时间来陪我一起努力同学,感谢我们这个小团队,感谢每一个在学习和生活中所有给予我关心、支持和帮助的老师和同学们,几年来我们一起学习、一起玩耍,共同度过了太多的美好时光。我们始终是一个团结、友爱、积极向上的集体。

第五篇:数字信号处理(DSP)课程设计报告

中南大学

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

专业班级: 通信工程1201

指导老师:李宏

名:

号:

完成日期:2014年10月18日

现代信号处理是将信号表示并处理的理论和技术,而数字信号处理与模拟信号处理是信号处理的子集。在本次课程设计中主要以数字信号处理来解决问题。数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波,因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。

数字信号处理的算法需要利用计算机或专用处理设备如数字信号处理器(DSP)和专用集成电路(ASIC)等。数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。数字信号处理的核心算法是离散傅立叶变换(DFT),是DFT使信号在数字域和频域都实现了离散化,从而可以用通用计算机处理离散信号。而使数字信号处理从理论走向实用的是快速傅立叶变换(FFT),FFT的出现大大减少了DFT的运算量,使实时的数字信号处理成为可能、极大促进了该学科的发展。

MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户接口、连接其它编程语言的程序等。

一、课程设计目的:

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

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

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

二、课程设计题目:

(一):

1)生成信号发生器:能产生频率(或基频)为10Hz的周期性正弦波、三角波和方波信号。绘出它们的时域波形

2)为避免频谱混叠,试确定各信号的采样频率。说明选择理由。3)对周期信号进行离散傅立叶变换,为了克服频谱泄露现象,试确定截取数据的长度,即信号长度。分析说明选择理由。4)绘出各信号频域的幅频特性和相频特性

5)以正弦周期信号为例,观察讨论基本概念(频谱混叠、频谱泄漏、整周期截取等)。

(二):

已知三个信号aip(n),经调制产生信号s(n)aip(n)cos(in/4),其中ai为

i1常数,p(n)为具有窄带特性的Hanning信号。将此已调信号通过信道传输,描述该信道的差分方程为

y(n)1.1172y(n1)0.9841y(n2)0.4022y(n3)0.2247y(n4)0.2247x(n)0.4022x(n1)0.9841x(n2)1.1172x(n3)x(n4)

得到接收信号y(n)s(n)*h(n)

1)分析Hanning信号p(n)的时域与频域特性 2)分析已调信号s(n)的时域与频域特性 3)分析系统的单位脉冲响应h(n)4)分析接收信号y(n)的频谱

5)设计带通滤波器从接收信号y(n)中还原出三个已调信号。

3(三):图像信号相关处理

1)读入一幅彩色图像

2)将彩色图像进行三原色分解,分解出R、G、B分量,并用图像显示出来

3)将彩色图像灰度化,转换为灰度图像并显示

4)对灰度图像用几种典型的边缘检测算子进行边缘检测,显示检测出的边缘。

三、调试及结果分析(截图):

(一):

1)

频率为10Hz的周期性正弦波:

频率为10Hz的周期性三角波:

频率为10Hz的周期性方波:

2)采样频率不能过低,必须fs>=2fm,即采样频率必须大于或等于最高截止频率的二倍(对采样频率的要求,即采样频率要足够大,采样的值要足够多,才能不失真的恢复原信号)。题目中信号频率为10Hz,则采样频率应该大于或等于20Hz,这样的话采样离散信号才能够无失真的恢复到原来的连续信号。3)截取数据长度(即信号长度)N=T*fs=2 4)

频率为10Hz的周期性正弦波的幅频特性和相频特性:

频率为10Hz的周期性三角波的幅频特性和相频特性:

频率为10Hz的周期性方波的幅频特性和相频特性:

5)

频谱混叠:一个信号的最高频率比如是fmax,那它的频谱就是在-fmax~fmax之间有值。对这个信号进行时域采样(就是取离散的点),设采样率为fs。有一个定理:对信号进行时域fs的采样,信号的频谱就会在频域以fs为周期重复。那么如果fs>=2fmax,可想而知,频域宽度为fs的频带内,是可以放得下一整个完整的频谱的,所以不会混叠。如果fs<2fmax,频域每间隔fs就会出现一个频谱,必定会有相邻的频谱叠在一起的情况,就是混叠。

频谱泄露:对于频率为fs的正弦序列,它的频谱应该只是在fs处有离散谱。但是,在利用DFT求它的频谱做了截短,结果使信号的频谱不只是在fs处有离散谱,而是在以fs为中心的频带范围内都有谱线出现,它们可以理解为是从fs频率上“泄露”出去的,这种现象称 为频谱“泄露”。

整周泣截取:与周期函数一样,周期信号是每隔时间T以后,信号重复出现。T就称为信号的周期。

N取100时:

N取200时:

(二):

1)Hanning信号p(n)的时域与频域特性:

2)已调信号s(n)的时域与频域特性:

3)系统的单位脉冲响应h(n):

4)接收信号y(n)的频谱:

5)(设计带通滤波器)从接收信号y(n)中还原出三个已调信号:

(三):

1)读入一幅彩色图像:

2)将彩色图像进行三原色分解,分解出R、G、B分量,并用图像显示出来:

3)将彩色图像灰度化,转换为灰度图像并显示:

4)对灰度图像用几种典型的边缘检测算子进行边缘检测,显示检测出的边缘:

四、源程序:

(一): 1):

周期性正弦波: fs=10;w=2*pi*fs;t=0:0.01:2;y=sin(w*t);plot(t,y);grid on;axis([0 2-2 2]);title('正弦信号');

周期性三角波: t=-0.3:0.01:0.3;y=sawtooth(10*pi*t,0.5);plot(t,y);grid on;axis([-0.3 0.3-1.5 1.5]);title('三角波信号')

周期性方波: t=0:0.001:0.5;y=square(2*pi*10*t,50);plot(t,y);grid on;axis([0 0.5-1.5 1.5]);title('周期方波信号')

4):

周期性正弦波: t=0:0.001:0.999;subplot(311)a=sin(20*pi*t);plot(t,a);grid on;title('sin20pi*t');xlabel('T');b=fft(a);subplot(312);stem(t*1000,abs(b)/1000,'fill');xlabel('Hz');axis([-10 50 0 0.5]);grid on;title('幅频特性')subplot(313)stem(t*1000,angle(b)/1000,'fill');xlabel('Hz');axis([0 100-0.004 0.004])grid on;title('相频特性')

周期性三角波: t=-0.3:0.01:0.3;a=sawtooth(10*pi*t,0.5);subplot(311)plot(t,a);grid on;axis([-0.3 0.3-1.5 1.5]);title('三角波信号')b=fft(a);subplot(312)stem(t*100,abs(b)/100,'fill');axis([0 50 0 0.5]);grid on;title('幅频特性')subplot(313)stem(t*100,angle(b)/100,'fill');axis([0 25-0.04 0.04]);grid on;title('相频特性')周期性方波: t=0:0.001:0.5;a=square(2*pi*10*t,50);subplot(311)plot(t,a);grid on;axis([0 0.5-1.5 1.5]);title('周期方波信号')b=fft(a);subplot(312)stem(t*100,abs(b)/100,'fill');axis([0 50 0 4]);grid on;title('幅频特性')subplot(313)stem(t*100,angle(b)/100,'fill');axis([0 5-0.04 0.04]);grid on;title('相频特性')

5):

N=100(或:N=200);T=1;

t=linspace(0,T,N);x=sin(2*pi*10*t);dt=t(2)-t(1);f=1/dt;X=fft(x);F=X(1:N/2+1);f=f*(0:N/2)/N;subplot(2,1,1)plot(t,x)

title('x=sin(2*pi*50*t)')xlabel('t')

ylabel('Amplitude')axis([0,1,-1,1]);subplot(2,1,2)plot(f,abs(F))xlabel('Frequency');ylabel('|X(e^{jw})|')

(二): 1): N=100;n=0:99;Rn=[ones(1,N-1)zeros(1, 101-N)];pn=0.5*[1-cos((2*pi*n)/(N-1))].*Rn;subplot(211);stem(n,pn);title('汉宁信号');[H,w]=freqz(pn,1,200);magH=abs(H);length(w);length(H);magHdB=20*log10(magH);subplot(212);plot(w/pi,magHdB);2):

N=100;n=0:99;

Rn=[ones(1,N-1)zeros(1,101-N)];pn=0.5*[1-cos((2*pi*n)/(N-1))].*Rn;

sn=2*pn.*(cos(pi*n/4)+4*pn.*cos(pi*n/2)+6*pn.*cos(3*pi*n/4));subplot(211);stem(n,sn);

title('已调信号');

[H,w]=freqz(sn,1,200);magH=abs(H);length(w);length(H);

magHdB=20*log10(magH);subplot(212);plot(w/pi,magHdB);

3):

a=[1-1.1172 0.9842-0.4022 0.2247];b=[0.2247-0.4022 0.9842-1.1172 1];n=1:49;

hn=impz(b,a,n);stem(n,hn,'k','f');ylabel('脉冲响应 ¨h(n)');xlabel('序号(n)');title('单位脉冲响应');

4):

a=[1-1.1172 0.9842-0.4022 0.2247];b=[0.2247-0.4022 0.9842-1.1172 1];k=0:0.1:100;p=0.5-0.5*cos(2*pi*k./74);s=p.*(cos(pi*k/4)+2*cos(pi*k/2)+3*cos(3*pi*k/4));y=filter(b,a,s);z1=fft(y,256);plot([-128:127],fftshift(abs(z1)));axis([-30 30 0 120]);grid on;

5):

wp=200;ws=200;wp1=[0.2,0.3];ws1=[0.1,0.4];wp2=[0.4,0.6];ws2=[0.3,0.7];wp3=[0.7,0.8];ws3=[0.6,0.9];ap=1;as=20;N=100;n=0:99;

Rn=[ones(1,N-1)zeros(1,101-N)];pn=0.5*[1-cos((2*pi*n)/(N-1))].*Rn;

sn=2*pn.*(cos(pi*n/4)+4*pn.*cos(pi*n/2)+6*pn.*cos(3*pi*n/4));a=[1-1.1172 0.9841-0.4022 0.2277];b=[0.2277-0.4022 0.9841-1.1172 1];yn=filter(b,a,sn);

[n,wc]=cheb1ord(wp,ws,ap,as);[bz,az]=cheby1(n,ap,wc);subplot(311)bz1=bz;az1=az;x1=filter(bz1,az1,yn);plot(x1);subplot(312)bz2=bz;az2=az;x2=filter(bz2,az2,yn);plot(x2);subplot(313)bz3=bz;az3=az;x3=filter(bz3,az3,yn);plot(x3)

(三):

1):

clc;a=imread('F:星空.jpg');imshow(a),title('原彩色图像');2):

clc;a=imread('F:星空.jpg');subplot(3,2,1),imshow(a),title('原彩色图像');

ar=a(:,:,1);ag=a(:,:,2);ab=a(:,:,3);subplot(3,2,4),imshow(ar),title('R');

subplot(3,2,5),imshow(ag),title('G');subplot(3,2,6),imshow(ab),title('B');3):

clc;a=imread('F:星空.jpg');subplot(2,1,1),imshow(a),title('原彩色图像');b=rgb2gray(a);subplot(2,1,2),imshow(b),title('灰度图像');4):

a=imread('F:星空.jpg');b=rgb2gray(a);b1=edge(b,'sobel');b2=edge(b,'prewitt');b3=edge(b,'roberts');b4=edge(b,'log');b5=edge(b,'canny');subplot(3,2,1);imshow(b);title('灰度图像');subplot(3,2,2);imshow(b1);title('Sobel边缘检测');subplot(3,2,3);imshow(b2);title('Prewitt边缘检测');subplot(3,2,4);imshow(b1);title('Roberts边缘检测');subplot(3,2,5);imshow(b1);title('LoG边缘检测');subplot(3,2,6);imshow(b1);title('Canny边缘检测');

五、总结与心得体会:

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

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

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

参考文献:

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

[3] 《MATLAB及在电子信息课程中的应用》,陈怀琛等,电子工业出版社

下载中南大学《数字信号处理》课程设计报告(最终定稿)word格式文档
下载中南大学《数字信号处理》课程设计报告(最终定稿).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    现代信号处理课程设计报告(中南大学)(汇编)

    目录 一、课程设计目的要求 ………………………………………… 1 二、课程设计选题 ……………………………………………… 1 三、程序分析及运行果 …………………………......

    数字信号处理课程设计参考题目

    数字信号处理课程设计资料 使用MATLAB(或其他开发工具)编程实现下述内容并写出课程设计报告。 一、课程设计参考题目与设计内容(也可自行选题) 设计一基于DFT的信号频谱分析 主......

    中南大学 课程设计实践报告

    中南大学 本科生课程设计(实践)任务书、设计报告 (大学计算机基础) 题 目 理想世界 学生姓名 李杰 指导教师 邵自然 学 院 湘雅医学院 临床医学与医学技术 专业班级 1105班......

    数字信号处理—课程设计(小编整理)

    广西工学院 数字信号处理课程设计 题目:语音信号的处理与滤波 系 别: 计算机系 专 业 : 通 信 工 程 班 级: 学 号 : 姓 名 : 指导教师: 日 期: 2012-1-3 - 1摘要: 本次设计主要是......

    数字信号处理课程设计教学大纲1213261

    数字信号处理课程设计教学大纲 课程设计编码:1213261 周数:1 学分:1 适用专业:通信工程、电子信息工程 一、课程设计的性质与任务 1. 课程性质: 《数字信号处理》是电子信息工程......

    数字信号处理课程设计报告(打印版)[大全五篇]

    数字信号处理课程设计 长春工业大学 计算机科学与工程学院 电子信息专业 080404班 崔宵语 一、试验题目:IIR 数字滤波器设计(Ⅰ) 二、试验内容: 设计一个数字巴特沃斯低通滤波......

    数字信号处理课程设计探索学术论文(小编整理)

    摘要:本文针对数字信号处理课程设计实践课程,提出了通过团队学习模式培养应用型人才的方法,采用团队学习模式的课程设计理念,培养学生的创新和实践能力,激发学生学习的自觉性、主......

    数字信号处理实验报告

    JIANGSU UNIVERSITY OF TECHNOLOGY 数字信号处理实验报告 学院名称: 电气信息工程学院专 业: 班 级: 姓 名: 学 号: 指导老师: 张维玺(教授) 2013年12月20日 实验一 离散时间信......