数字信号课程设计.docx
- 文档编号:24752246
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:14
- 大小:1.27MB
数字信号课程设计.docx
《数字信号课程设计.docx》由会员分享,可在线阅读,更多相关《数字信号课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
数字信号课程设计
数字信号课程设计
数字信号课程设计1
一、设计题目2
二、设计目的2
三、设计内容2
1.语音信号的采集2
2.语音信号的频谱分析2
3.设计数字滤波器和画出其频率响应2
4.用滤波器对信号进行滤波3
5.比较滤波前后语音信号的波形及频谱3
6.回放语音信号3
7.设计系统界面3
四、设计结果分析3
1.双线性变换法IIR4
2.窗函数FIR9
五、设计心得体会12
六、参考文献13
一、设计题目
应用Matlab对语音信号进行频谱分析及滤波。
二、设计目的
为了巩固所学的数字信号处理理论知识,使学生对信号的采集、处理、传输、显示和存储等有一个系统的掌握和理解。
三、设计内容
录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;最后,设计一个信号处理系统界面。
1.语音信号的采集
利用Windows下的录音机,录制一段自己的话音,时间在1s内。
然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。
2.语音信号的频谱分析
画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性。
3.设计数字滤波器和画出其频率响应
给出各滤波器的性能指标:
(1)低通滤波器性能指标fb=1000Hz,fc=1200Hz,As=100dB,Ap=1dB。
fb是通带频率fc是阻带截止频率
(2)高通滤波器性能指标fc=4800Hz,fb=5000HzAs=100dB,Ap=1dB。
(3)带通滤波器性能指标fb1=1200Hz,fb2=3000Hz,fc1=1000Hz,fc2=3200Hz,As=100dB,Ap=1dB。
要求学生用窗函数法和双线性变换法设计上面要求的3种滤波器。
在Matlab中,可以利用函数fir1设计FIR滤波器,可以利用函数butte,cheby1和ellip设计IIR滤波器;利用Matlab中的函数freqz画出各滤波器的频率响应。
4.用滤波器对信号进行滤波
要求学生用自己设计的各滤波器分别对采集的信号进行滤波,在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。
5.比较滤波前后语音信号的波形及频谱
要求学生在一个窗口同时画出滤波前后的波形及频谱。
6.回放语音信号
在Matlab中,函数sound可以对声音进行回放。
其调用格式:
sound(x,fs,bits);可以感觉滤波前后的声音有变化。
7.设计系统界面
为了使编制的程序操作方便,要求有能力的学生,设计处理系统的用户界面。
在所设计的系统界面上可以选择滤波器的类型,输入滤波器的参数,显示滤波器的频率响应,选择信号等。
四、设计结果分析
系统界面
1.双线性变换法IIR
1.低通,参数为fp=1000Hz,fc=1200Hz,As=100dB,Ap=1dB;
第一步:
载入语音信号,如图所示:
第二步:
点击此按钮
,生成原始信号的频谱图:
第三步:
依次选择,如图:
接着输入相关参数fp=1000Hz,fc=1200Hz,As=100dB,Ap=1dB;,如图
然后点击
,可以得到滤波器特性及滤波后语音信号的频谱图:
点击
,则能听到滤波后的语音信号,声音很浑浊低沉。
对比滤波前后频谱:
在时域上看变化不大,但在频域可以看出中高频被过滤掉了。
分析完毕后,点击
,进行下一项参数的分析。
接下来就不具体说步骤了。
2.高通,参数为fc=2800Hz,fp=3000HzAs=100dB,Ap=1dB;
对比滤波前后频谱:
滤波前后对比,可以看出无论在时域和频域都有所变化。
在频域部分,低频部分被过滤掉了。
回放时,说话速度很快,频率很高,感觉音调很高。
3.带通,参数为fp1=1200Hz,fp2=3000Hz,fc1=1000Hz,fc2=3200Hz,As=100dB,Ap=1dB;
对比滤波前后频谱:
滤波前后对比,可以看出无论在时域和频域都有所变化。
在频域部分,可以看到高频和低频部分被过滤掉了。
回放时,声音很清脆。
2.窗函数FIR
1.低通,参数为fp=1000Hz,fc=1200Hz,As=100dB,Ap=1dB;
依次选择后,填入参数。
对比滤波前后频谱:
可以看到:
在时域上看变化不大,但在频域可以看出中高频被过滤掉了。
回放时,声音浑浊低沉。
2.高通,参数为fc=2800Hz,fp=3000HzAs=100dB,Ap=1dB;
对比滤波前后频谱:
滤波前后对比,可以看出无论在时域和频域都有所变化。
在频域部分,低频部分被过滤掉了。
回放时,说话速度很快,频率很高,感觉音调很高。
3.带通,参数为fp1=1200Hz,fp2=3000Hz,fc1=1000Hz,fc2=3200Hz,As=100dB,Ap=1dB;
对比滤波前后频谱:
滤波前后对比,可以看出无论在时域和频域都有所变化。
在频域部分,可以看到高频和低频部分被过滤掉了。
回放时,声音很清脆。
五、设计心得体会
经过几天的设计和调试,终于把程序搞定了,在这个过程,遇到相当多的困难。
刚接触到这个课程设计时,对MATLAB的GUI一点概念都没有,自己只有去网上查找有关这方面的资料,并结合资料编写了一个很简单的GUI,并调试运行正确,当时有些激动,但当真正做起一个复杂的GUI时,感到困难重重。
一开始自己制作的简单的GUI,进行参数传递时只是在Callback函数里进行传递,没有涉及到在函数之间的传递,故在制作课程时,发现很多错误,究其原因,是自己的参数传递不对,当时自己一头雾水,一点都不知道函数之间的参数要怎么传递,只有上网查资料,顺便说一下,这次课程设计还锻炼了自己上网查询资料的能力和技巧,花了很长时间终于找到了,耐着性子看完了资料,就自己试着编写程序,我首先用的是global定义全局变量的方法,运行了下程序,发现能传递参数了,但很快我发现这种方法传递参数很不好,最好少用,经常出现运行错误,然后我就用了另外的一种方法,用setappdata()和getappdata()这两个语句配合使用进行参数的传递,虽说这种方法比较麻烦,但经多次测试没有发现什么错误,因此我在本课程设计中就用这种方法进行参数的传递。
参数问题解决了,就要进行滤波器的设计,自己首先看书了解了下滤波器的设计过程,参照了从图书馆借来的书,采用了滤波器的完全设计法进行了滤波器的设计,并编写了相应的程序代码,在这个过程中,自己没注意到的问题是滤波器的采样点数N要与fft进行变换的点数对应,不然程序不能正确执行。
对于带通和带阻滤波器的设计,要注意参数的二维性。
从书中我们了解到,带通和带阻滤波器的设计需要通带上限频率、通带下限频率、阻带上限频率、阻带下限频率、通带波纹、阻带衰减和采样频率,然而低通和高通滤波器的设计只需要通带截止频率、阻带截止频率、通带波纹、阻带衰减和采样频率,所以我设计了相应的屏蔽代码。
同时,为了方便我们能看到各种类型的滤波器,设计了下拉菜单,并设计了查看滤波器的特性的选择框,极大地符合使用者的偏好。
经过了一天左右的时间,我完成了GUI的大部分,第二天我接着做时,我想加入新的功能,我发现了GUI设计的一些漏洞,即新加入的控件它自己顺着编号,不顾我以前所删控件的编号,这给我编写程序造成了极大的不方便,我不得不重新创建新的,把旧的复制过来重新命名各个控件的tag,有过这次经验,我发现只要在Tools中的GUIOptions选择GenerateFIG-fileonly就可以避免这个问题,等自己确定界面布局好了之后,再把之前改变的选项改为原来的,这样生成的代码就能一一对应起来了。
马马虎虎地做完了,周五的时候老师给我们全班具体地讲了设计中的一些问题,我发现老师告诉我们的传递参数的方法是很方便和简单的,即handles.xx的方法。
但自己试了下这种方法偶尔会出现错误,和同学们交流下,他们也有同样的问题,大家都有点怀疑是自己的MATLAB的版本没有老师的高级,故不能正常运行,具体原因到现在也依然想不出个所以然来。
之后几天,逐步完善了自己的程序,发现没什么重大问题了,至此,课程设计可以说是完成了。
回首整个设计过程,刚开始的时候,自己对MATLAB的GUI的设计一窍不通,一想头就大,都不想去做,但只要自己真正动手去做,知行合一的时候,觉得并不太困难,碰到一个难题就解决一个难题,终究是车到山前必有路,只要自己付出了,终还是会有所收获的。
经过这次课程设计,自己对所学知识有了更好的了解,对MATLAB的操作也更熟练了,并且觉得自己学的知识能学有所用,感觉到很欣慰。
六、参考文献
数字信号处理教程程佩青
数字信号处理及其MATLAB实现万永革
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 课程设计