数字信号处理课程设计语音信号的处理与滤波.doc

上传人:文库蛋蛋多 文档编号:4143188 上传时间:2023-04-07 格式:DOC 页数:17 大小:242.50KB
返回 下载 相关 举报
数字信号处理课程设计语音信号的处理与滤波.doc_第1页
第1页 / 共17页
数字信号处理课程设计语音信号的处理与滤波.doc_第2页
第2页 / 共17页
数字信号处理课程设计语音信号的处理与滤波.doc_第3页
第3页 / 共17页
数字信号处理课程设计语音信号的处理与滤波.doc_第4页
第4页 / 共17页
数字信号处理课程设计语音信号的处理与滤波.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《数字信号处理课程设计语音信号的处理与滤波.doc》由会员分享,可在线阅读,更多相关《数字信号处理课程设计语音信号的处理与滤波.doc(17页珍藏版)》请在三一办公上搜索。

1、 数字信号处理课程设计题目:语音信号的处理与滤波 系 别: 计算机系 专 业 : 通 信 工 程 班 级: 学 号 : 姓 名 : 指导教师: 日 期: 2012-1-3 目 录摘要:3一:设计目的3二:设计内容3三:基本步骤3四:相关原理知识51.录音原理 5 2.滤波器的设计原理及设计方法 5 3.IIR数字滤波器 8五:实现过程91录制声音92分别取8000个和16000个数据进行频谱分析,得到幅度和相位谱,比较二者异同并分析原因113滤波器的设计134对声音进行滤波145把处理后的所有数据存储为声音文件,与原始声音进行比较15六、心得体会17七、参考文献17 摘要: 本次设计主要是利用

2、MATLAB工具对自己的语音进行录制,然后通过自己设计IIR滤波器进行语音信号滤波以及分析等,从而对以前所学的知识进行一个系统的归纳和理解,从实际应用操作当中体会数字信号处理这门课程的相关乐趣及其重要的知识点。一、课程设计目的:综合运用本课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。二、课程设计内容:设计题目一: 语音信号的处理与滤波 1熟悉并掌握MATLAB中有关声音(wave)录制、播放、存储和读取的函数。2在MATLAB环境中,使用声

3、音相关函数录制2秒左右自己的声音,抽样率是8000Hz/s。(考虑如何解决一个实际问题:录制刚开始时,常会出现实际发出声音落后录制动作半拍的现象,如何排除对这些无效点的采样?)3分别取8000个和16000个数据进行频谱分析,得到幅度和相位谱,比较二者异同并分析原因。4针对电话信道(最高3500Hz),设计一个FIR或IIR滤波器进行滤波,把抽样率转变为7000Hz/s,并进行频谱分析,得到幅度和相位谱。5把处理后的所有数据储存为声音文件,与原始声音进行比较。三、基本步骤:1语音信号的采集熟悉并掌握MATLAB中有关声音(wave)录制、播放、存储和读取的函数,在MATLAB环境中,使用声音相

4、关函数录制3秒左右自己的声音。(考虑如何解决一个实际问题:录制刚开始时,常会出现实际发出声音落后录制动作半拍的现象,如何排除对这些无效点的采样?)2语音信号的频谱分析要求首先画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性,从而加深对频谱特性的理解。3设计数字滤波器并画出其频率响应给出各滤波器的性能指标:(1)低通滤波器性能指标:fb1000 Hz,fc1200 Hz,As100dB,Ap1dB。(2)高通滤波器性能指标:fc4800 Hz,fb5000 Hz As100dB,Ap1dB。(3)带通滤波器性能指标:fp11200 Hz,fp23000 Hz,fsc11

5、000 Hz,fsc23200Hz,As100dB,Ap1dB。要求用窗函数法和双线性变换法设计上面要求的3种滤波器。在Matlab中,使用函数butter,cheby1等函数设计IIR滤波器;利用Matlab中的函数freqz画出各滤波器的频率响应。4用滤波器对信号进行滤波要求用自己设计的各种滤波器分别对采集的信号进行滤波,在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。5比较滤波前后语音信号的波形及频谱要求在一个窗口同时画出滤波前后的波形及频谱。6回放语音信号在Matlab中,使用相关声音函数对声音进行回放。辨别滤波前后的

6、声音有何变化。7男女声语音信号频谱特点分析换一个与你性别相异的人录制同样一段语音内容,分析两段内容相同的语音信号频谱之间有什么特点。8. 背景噪声滤除再录制一段同样长时间的背景噪声(频谱能量集中在某个小范围内)叠加到你的语音信号中,分析叠加前后信号频谱的变化,设计一个合适的滤波器,能够把该噪声滤除。9设计系统界面(用MATLAB中GUIDE工具,要求自学)为了使编制的程序操作方便,要求有能力的同学,设计处理系统的用户界面。在所设计的系统界面上可以选择滤波器的类型,输入滤波器的参数,显示滤波器的频率响应,选择信号等。四、相关原理知识1、录音原理采用Matlab中的两个函数可以用于实现录音功能 ,

7、一个是waverecord函数调用windows音频设备进行录音,主要用于实时语音采集。第二个是使用Matlab 中的wavread函数也可以进行语音采集。不过wavread函数只能读取计算机中已经有的“.wav” 文件,因此必须事先使用windows的录音机等设备把要用的语音录制并存为“.wav” 文件格式。显然wavread函数不能用于实时语音信号采集。另外语音采集的频率和精度不能改变。 回放同样也有两个函数Sound函数和wavplay,而后者的功能比前者少。但在本设计中主要是对已有的信号进行处理,所以选用wavread函数。但,由于信号的时域描述只能反映信号的幅值随时间的变化情况,除只

8、有一个频率分量的简谐波外一般很难明确揭示信号的频率组成和各频率分量的大小,因此,我们要把它转换成频域来分析,它能够提供比时域信号波形更直观,丰富的信息。2、滤波器的设计原理及设计方法FIR滤波器的设计问题在于寻求一系统函数,使其频率响应逼近滤波器要求的理想频率响应,其对应的单位脉冲响应。1、用窗函数设计FIR滤波器的基本方法设计思想:从时域从发,设计逼近理想。设理想滤波器的单位脉冲响应为。以低通线性相位FIR数字滤波器为例。 一般是无限长的,且是非因果的,不能直接作为FIR滤波器的单位脉冲响应。要想得到一个因果的有限长的滤波器h(n),最直接的方法是截断,即截取为有限长因果序列,并用合适的窗函

9、数进行加权作为FIR滤波器的单位脉冲响应。按照线性相位滤波器的要求,h(n)必须是偶对称的。对称中心必须等于滤波器的延时常数,即 用矩形窗设计的FIR低通滤波器,所设计滤波器的幅度函数在通带和阻带都呈现出振荡现象,且最大波纹大约为幅度的9%,这个现象称为吉布斯(Gibbs)效应。为了消除吉布斯效应,一般采用其他类型的窗函数。2、典型的窗函数(1)矩形窗(Rectangle Window) 其频率响应和幅度响应分别为:, (2)三角形窗(Bartlett Window) 其频率响应为: (3)汉宁(Hanning)窗,又称升余弦窗 其频率响应和幅度响应分别为:(4)汉明(Hamming)窗,又称

10、改进的升余弦窗 其幅度响应为: (5)布莱克曼(Blankman)窗,又称二阶升余弦窗 其幅度响应为: (6)凯泽(Kaiser)窗 其中:是一个可选参数,用来选择主瓣宽度和旁瓣衰减之间的交换关系,一般说来,越大,过渡带越宽,阻带越小衰减也越大。I0()是第一类修正零阶贝塞尔函数。 若阻带最小衰减表示为,的确定可采用下述经验公式: 若滤波器通带和阻带波纹相等即p=s时,滤波器节数可通过下式确定: 式中:3利用窗函数设计FIR滤波器的具体步骤如下:(1)按允许的过渡带宽度及阻带衰减AS,选择合适的窗函数,并估计节数N:其中A由窗函数的类型决定。(2)由给定的滤波器的幅频响应参数求出理想的单位脉冲

11、响应。(3)确定延时值 (4)计算滤波器的单位取样响应,。(5)验算技术指标是否满足要求。3.IIR数字滤波器IIR数字滤波器的系统是Z的有理数,可表示为系统的设计就是要确定系数,以使滤波器达到要求.设计方法为,用模拟滤波器理论来设计数字滤波器.在IIR数字滤波器的设计中较多的采用这种方法.用计算机助设计,优化技术设计.针对电话信道我们可以设计一个IIR低通滤波器来过滤我们录制的语音,用fftfilt函数可以把我们录制的语音放到设计好的滤波器进行滤波.然后angle函数求出滤波后语音的相位谱,用abs求出幅度谱. 然后再用wavwrite对滤波后的语音保存为声音文件.五、实现过程1录制自己的声

12、音文件(wav格式),内容为“恭喜发财 ”其实现代码:fs=8000; %抽样频率channel=1; %1信道t=3; %设定录音时间为3秒钟fprintf(按任意键后开始 %d 秒录音:,t); %提示按任意键后开始 t 秒录音 pause; %暂停命令fprintf(录音中.); %显示当前正在录音当中x=wavrecord(t*fs,fs,channel,double); %调用录制自己的声音信号函数fprintf(录音结束n); %显示录音已经结束wavwrite(x,fs,F:数字信号处理数字信号课程设计 CEG和弦音.wav );%存储录音信号的文件夹fprintf(按任意键后回

13、放:); %提示文字pause; %作用是暂停wavplay(x,fs); %播放录制的声音函数 下面读取原有声音文件,画出它的时域图形,实现代码:y=wavread(F:数字信号处理数字信号课程设计 CEG和弦音.wav,1 20000); %读取原有声音文件及取点范围plot(y); %画出声音时域图形title(原始声音信号时域图形); %标题xlabel(时间); %x轴坐标ylabel(幅值); %y轴坐标grid; %添加网格线通过观察图形,发现在录制刚开始时,出现实际发出声音落后录制动作半拍的现象即一些无效点,结束时也出现一些无效的点。原因是录音开始时,人的反应慢于录音节奏,而出

14、现无效点,而结束的无效点,主要是录音者声音的动作结束了。可以用截取有效长度消除这些点。如以下就是运用了以上方法:y=wavread(F:数字信号处理数字信号课程设计 CEG和弦音.wav,4500 16000 ); %从3000点开始截取到18000点结束plot(y); %画出截取后的时域图形title(截取后的声音时域图形); %标题xlabel(时间); %x轴坐标ylabel(幅值); %y轴坐标grid; %添加网格线2分别取8000个和16000个数据进行频谱分析,得到幅度和相位谱,比较二者异同并分析原因。%取8000点频谱分析y=wavread(F:数字信号处理数字信号课程设计

15、CEG和弦音.wav); %读取原始语音信号d=fft(y,8000); %对语音信号做8000点的FFT变换subplot(2,2,1); plot(abs(d); %绘出语音信号的幅度谱 xlabel(频率); %X轴频率ylabel(幅值); %Y轴幅值 title(8000点幅度谱); %标题8000点幅度谱 grid; %添加网格 subplot(2,2,2); %分割窗口plot(angle(d); %绘出语音信号的相位谱 xlabel(频率); %X轴频率ylabel( angle(d); %Y轴angle(d) title(8000点相位谱); %标题8000点相位谱 grid

16、; %添加网格%.取16000点进行频谱分析y=wavread(F:数字信号处理数字信号课程设计 CEG和弦音.wav); %读取原始语音信号d=fft(y,16000); %对语音信号做16000点的FFT变换subplot(2,2,3); plot(abs(d); %绘出语音信号的幅度谱 xlabel(频率); %X轴频率ylabel(幅值); %Y轴幅值 title(16000点幅度谱); %标题16000点幅度谱 grid; %添加网格 subplot(2,2,4); %分割窗口plot(angle(d); %绘出语音信号的相位谱 xlabel(频率); %X轴频率ylabel(ang

17、le(d); %Y轴angle(d) title(16000点相位谱); %标题16000点相位谱 grid 观察图可以看出取8000点和取16000点所得的幅度谱和相位谱的图形基本上是相同的;不同之处只有8000点图形线比16000点的图形线梳松。抽样频率相同情况下,对不同点数进行频谱分析得出的幅度谱和相位谱线疏密是不同,点数越多,线越密。3滤波器的设计:针对电话信道我们设计一个IIR低通滤波器对我们录制的语音进行滤波,具体程序如下:%低通滤波器设计待添加的隐藏文字内容1wp=2*1200/7000; %归一化通带数字频率wpws=2*1000/7000; %归一化阻带数字截止频率wsRp=

18、0.5; %通带波纹系数RpRs=100; %最小阻带衰减RsN,Wn=buttord(wp,ws,Rp,Rs); %求阶数N和滤波器截止频率Wnnum,den=butter(N,Rp); %传输分子和分母的系数h,w=freqz(num,den); %求频率响应subplot(2,1,1); %窗口分成2行1列绘图区,第1个区为当前活动区plot(w/pi,abs(h); %二维连续图形grid; %添加网格title(巴特沃思型低通滤波器的幅频响应); %加图形说明xlabel(omega/pi); %加X轴说明(/后表示转义字符)ylabel(振幅(幅值); %加Y轴振幅(幅值subpl

19、ot(2,1,2); %窗口分成2行1列绘图区,第2个区为当前活动区plot(w/pi,20*log10(abs(h); %二维连续图形grid; %添加网格title(巴特沃思型低通滤波器的幅频响应); %加图形说明xlabel(omega/pi); %加X轴说明(/后表示转义字符)ylabel(振幅(分贝); %加Y轴振幅(分贝) 4对声音进行滤波:把我们上面录制的语音放到滤波器里进行滤波,具体程序如下:%滤滤后的幅度、相位谱图fs=8000;y=wavread(F:数字信号处理数字信号课程设计 CEG和弦音.wav); %读取原始语音信号f=filter(1,1,y); %滤波f1=ff

20、t(f,1000);subplot(2,1,1)plot(abs(f1); %画出滤波后的时域图title(滤波后的幅度谱);grid;subplot(2,1,2)plot(angle(f1); %画出滤波后的时域图title(滤波后的相位谱);grid;wavwrite(f,fs,F:数字信号处理数字信号课程设计CEG和弦音1.wav);5把处理后的所有数据存储为声音文件,与原始声音进行比较程序如下:%原始语音与滤波后的信号比较fs=8000;y=wavread(F:数字信号处理数字信号课程设计 CEG和弦音.wav); %读取原始语音信号y1=wavread(F:数字信号处理数字信号课程设

21、计CEG和弦音1.wav); %读取滤波后语音信号yx=fft(y);yx1=fft(y1);subplot(2,1,1)plot(20*log10(abs(yx); title(滤波前的相对幅度谱);subplot(2,1,2);plot(20*log10(abs(yx1); title(滤波后的相对幅度谱);结论:通过滤波前后两种信号的比较, 它们的幅度谱基本上是一样的,只是有些地方不同。还有原始声音信号比滤波后的信号清晰,滤波后的声音显得比较低沉,因为原始信号经过低通滤波器后,低通滤波器已经把信号高频部分滤掉了,只剩下低频部分六、心得体会: 通过学习数字信号处理教程这门通信专业的专业课,

22、它是以数学为基础且推理性很重的一门学科。因此我们在学习这门课的时候需要足够的细心和耐心。课程设计是通过用刚学的数字信号处理教程为依据,并用已学过的MATLAB实现代码编程;这次课程设计,让我感触很深,我们在课本所学的的东西太少了,不过也学到了很多东西。为了完成这次的课程设计,从网上找了很多相关的设计参考资料,并对参考资料有关内容进行了分析,了解了一些函数的用法。也通过本次课程设计,让我对信号的采集,处理,传输,显示,存储和分析等知识有了一定了解。看到了滤波器在语音处理的重要用处,学到了怎样对滤波器的设计方法,通过自己实践巩固了在数字信号处理课程中所学的理论知识,从此次课程设计中也提升了我对问题的发现、分析和解决的能力。不过课程设计的过程中也遇到了各种困难,但我还是坚持下来了。所以我得到了一个结论:无论做什么课程设计,都需要要有一定的理论知识作为基础,并通过查阅资料,找出你所需的,运用到实验中不仅可以验证你的猜想,且又丰富你的课外知识。成功正在尽头。七、参考文献: 1MATLAB6x.数字信号处理教程(第三版) 清华大学出版社, 2007年2月 程佩青 编著 2MATLAB在信号处理中的应用(第二版 ) 清华大学出版社,2008年1月薛年喜编著

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号