1、目 录摘 要1前 言2第一章 设计要求及环境31.1课程设计的要求31.2 工作平台简介3第二章、设计原理52.1数字信号处理简介52.2 FIR滤波器52.3 窗口设计法62.4 kaiser窗8第三章、实现框图113.1 设计流程图11第四章、基于MATLAB仿真结果及结果分析124.1 采集部分设计124.2 加噪部分设计144.3 滤波部分设计164.4 结果分析20总 结21参考文献22致 谢2323摘 要 本课程设计主要是对一段语音信号,加入噪声后,用汉宁窗设计出的FIR滤波器对加入噪声后的语音信号进行滤波去噪处理。在此次课程设计中,系统操作平台为Windows 7,程序设计的操作
2、软件为MATLAB 7.0。此课程设计首先是用麦克风采集一段语音信号,加入噪声,然后采用kaiser窗函数法设计出FIR滤波器,再用设计出的滤波器对这段加噪后的语音信号进行滤波去噪,最后对前后时域和频域的波形图进行对比分析,从波形可以看出噪声被完全滤除,达到了语音不失真的效果,说明此次设计非常成功。 关键词 程序设计;FIR滤波器;kaiser窗;MATLAB 7.0 前 言语音信号在数字信号处理中占有极其重要的地位,因此选择通过对语音信号的研究来巩固和掌握数字信号处理的基本能力十分具有代表性。对数字信号处理离不开滤波器,因此滤波器的设计在信号处理中占有极其重要的地位。而MATLAB软件工具箱
3、提供了对各种数字滤波器的设计。本设计“在MATLAB平台上实现对语音信号的去噪研究与仿真”综合运用了数字信号处理的各种基本知识,进而对不带噪语音信号进行谱分析以及带噪语音信号进行谱分析和滤波处理。通过理论推导得出相应的结论,再通过利用MATLAB作为编程工具来进行计算机实现比价已验证推导出来的结论。在设计过程中,通过设计FIR数字滤波器来完成滤波处理。在设计过程中,运用了MATLAB对整个设计中的图形的绘制和一些数据的计算以及仿真。此次课程中主要的要求是用麦克风采集一段语音信号,绘制波形并观察其频谱,给定相应技术指标,用kaiser窗设计一个满足指标的FIR滤波器,对该语音信号进行滤波去噪处理
4、,比较滤波前后的波形和频谱并进行分析,根据结果和学过的理论得出合理的结论。与不同信源相同滤波方法的同学比较各种信源的特点,与相同信源不同滤波方法的同学比较各种滤波方法性能的优劣。第一章 设计要求及环境1.1课程设计的要求1、学会MATLAB的使用,掌握MATLAB的程序设计方法;2、掌握windows环境下语音信号采集方法;3、掌握数字信号处理的基本概念、基本理论和方法;4、掌握MATLAB设计FIR数字滤波器的方法; 5、学会用MATLAB对信号进行分析和处理。1.2 工作平台简介 课程设计的主要设计平台式MATLAB 7.0。如下图1-1所示:MATLAB 的名称源自 Matrix Lab
5、oratory ,它是美国MathWorks公司生产的一个为科学和工程计算专门设计的交互式大型软件,是一个可以完成各种精确计算和数据处理的、可视化的、强大的计算工具。它集图示和精确计算于一身,在应用数学、物理、化工、机电工程、医药、金融和其他需要进行复杂数值计算的领域得到广泛应用。它不仅是一个在各类工程设计中便于使用的计算工具,而且也是一个在数学、数值分析和工程计算等课程教学中的优秀的教学工具,在世界各地的高等院校中十分流行,在各类工业应用中更有不俗的表现。MATLAB可以在几乎所有的PC机和大型计算机上运行,适用于Windows、UNIX等各种系统平台。总的来说,该软件有三大特点。一是功能强
6、大。具有数值计算和符号计算、计算结果和编程可视化、数学和文字统一处理、离线和在线计算等功能;二是界面友善、语言自然。MATLAB以复数处理作为计算单元,指令表达与标准教科书的数学表达式相近;三是开放性强。当学好MATLAB的同时,会更好的帮助自己去就解决一些难题,而且MATLAB拥有非常好的发展前途,对我们未来的帮助也是不可限量的。图1-1 MATLAB 7.0设计平台第二章、设计原理2.1数字信号处理简介数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信
7、号处理技术应运而生并得到迅速的发展。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。随着信息技术的迅猛发展,数字信号处理已成为一个极其重要的学科和技术领域。在通信、语音、图像、自动控制和家用电器等众多领域得到了广泛的应用。数字滤波是数字信号处理的重要环节,它在数字信号处理中占有着重要的地位,它具有可靠性好、精度高、灵活性大、体积小、重量轻等优点。随着数字技术的发展,数字滤波器越来越受到人们的重视,广泛地应用于各个领域。数字滤波器的输入
8、输出信号都是数字信号,它是通过一定的运算过程改变输入信号所含频率成分的相对比例或者滤除某些频率成分来实现滤波的,这种运算过程是由乘法器、加法器和单位延迟器组成的。数字滤波器是数字信号处理技术的重要内容,其对数字信号进行的最常见处理是保留数字信号中的有用频率成分和去除信号中的无用频率成分。按照时间域的特性,数字滤波器可以分为无限冲激脉冲响应数字滤波器(IIR滤波器)和有限冲激脉冲响应数字滤波器(FIR滤波器)。2.2 FIR滤波器有限长单位脉冲响应数字滤波器(Finite Impulse Response Digital Filter,缩写FIRDF):有限长单位冲激响应滤波器,是数字信号处理系
9、统中最基本的元件,最大优点是可以实现线性相性滤波,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。FIR滤波器的设计方法主要分为两类:第一类是基于逼近理想滤波器器特性的方法包括窗函数法、频率采样法、和等波纹最佳逼近法;第二类是最优设计法。设FIRDF的单位脉冲响应的长度为,则其频率响应函数为 (2-1)一般将表示成如下形式: (2-2)式中,是的实函数(可以去负值)。与前面的表示形式,即相比, 与不同。与 不同。为了区别于幅频响应函数和相频响应函数,称为幅频特性函数,
10、称为相频特性函数。第一类线性相位FIRDF的相位特性函数是的严格线性函数: (2-3)第二类线性相位FIRDF的相位特性函数如下: (2-4)式中,是常数,是起始相位。在信号处理中很有实用价值(如希伯尔特变换器),这是FIRDF除了线性相位滤波外,还具有真正交变换作用。2.3 窗口设计法FIR滤波器的设计方法有许多种,如窗函数设计法、频率采样设计法和最优化设计法等。窗口设计法的基本思想是用FIRDF逼近希望的滤波特性。设希望逼近的滤波器的频率响应为,其单位脉冲响应用表示。为了设计简单方便,通常选择为具有片段常数特性的理想滤波器。因此是无限长非因果序列,不能直接作为FIRDF的单位脉冲响应。窗口
11、设计法就是截取为有限长的一段因果序列,并用合适的窗口函数进行加权作为FIRDF的单位脉冲响应。窗口设计法基本步骤如下: (1)构造希望逼近的频率响应函数。以低通线性相位FIRDF设计为例,一般选择为线性理想低通滤波器,即 (2-5)(2)求出。对进行IFT得到 (2-6)(3)加窗得到FIRDF的单位脉冲响应, (2-7)式中,称为窗口函数,其长度为。如果要求第一类线性相位FIRDF,则要求关于点偶对称。而关于点偶对称,所,同时要求关于点偶对称。常见的窗函数,可以分为以下主要类型:(1)幂窗-采用时间变量某种幂次的函数,如矩形、三角形、梯形或其它时间(t)的高次幂;(2)三角函数窗-应用三角函
12、数,即正弦或余弦函数等组合成复合函数,例如汉宁窗、海明窗、kaiser窗等;(3)指数窗-采用指数时间函数,例如高斯窗等。其性能如表2-1所示:表2-1 常见窗函数性能表名称滤波器过渡带宽最小阻带衰减名称滤波器过渡带宽最小阻带衰减矩形1.8/M21dBPARZENWIN6.6/M56dB巴特利特6.1/M25dBFLATTOPWIN19.6/M108dB汉宁6.2/M44dBGAUSSWIN5.8/M60dB汉明6.6/M51dBBARTHANNWIN3.6/M40dB布莱克曼11/M74dBBLACKMANHARRIS16.1/M109dBBOHMANWIN5.8/M51.5dBCHEBWI
13、N15.2/M113dBNUTTALLWIN15.4/M108dBTUKEYWIN2.4/M22dB2.4 kaiser窗人们研究窗函数主要是它可以有效地抑制频谱泄漏,本论文中采用的加窗插值FFT方法,窗函数的选择非常重要。在间谐波检测的频谱分析时,最好的是窗函数主瓣窄、旁瓣低且跌落快,但对于同一窗函数,以上两个要求又是互相矛盾的。因为要是增加主瓣的宽度,旁瓣就会降低,反之,若想主瓣能变得又高又窄,旁瓣就会增高。在选择窗的时候,应根据间谐波特征和研究目的来选择。目前,已经有20多种窗函数,在电力系统谐波与间谐波检测中常用的窗函数有矩形窗、海宁窗(Hanning)、汉明窗(Hamming)和布来
14、克曼窗(Blackman)。数字信号处理领域较早就提出了凯泽窗(Kaiser),它通过改变参数可以达到不同的性能,正由于其优良的窗函数特性,广泛应用于高通、低通、带通、带阻等各种滤波器的设计。凯泽窗(Kaiser)是利用贝塞尔函数来逼近需要的理想窗,其时域函数形式如式(2-8)。 (2-8)式中, 为零阶第一类修正的贝赛尔函数,可用式(2-9)的级数表示。 (2-9)凯泽窗(Kaiser)的幅度公式为: (2-10)由公式可知,凯泽窗的值与贝赛尔函数级数项数n是两个独立的参数,但都会对凯泽窗造成影响,为进一步的了解和研究凯泽窗,有必要分别对其分别介绍。随着增大,主瓣加宽,旁瓣幅度减少。图2-1
15、给出了不同值所对应的凯泽窗(Kaiser)时域和频率图形(采样点取1024)。图2-1 凯泽窗(Kaiser)时域和频域图形时域图中,从上往下, 分别为0,1.231,2.341,3.440,4.394,5.440,6.451,7.321,8.500, 9.412,10.399,为了方便比较,分别摘取为0、4.394、8.500、10.399来进行幅度特性对比, 明显看出为一个可自由选择的凯泽窗函数形状参数,能调节主瓣和旁瓣的宽度 12。利用MATLAB的求得不同的值的凯泽窗(Kaiser)详细数据(采样点数定为1024),总结出表2-2。表2-2 不同值凯泽窗(Kaiser)的详细数据(采样
16、点数为1024)Kaiser窗函数泄露系数(%)旁瓣相对衰减(dB)主瓣-3dB带宽(rad)= 09.15-13.30.001709=1.2315.48-15.40.001709=2.3411.65-20.1 0.0019531=3.4400.33-26.4 0.0021973=4.3940.07-32.6 0.0021973=5.4400.01-39.8 0.0024414=6.4510-47.1 0.0026855=7.3210-53.5 0.0029297=8.5000-62.4 0.0031738=9.4120-69.5 0.0031738=10.3990-77.30.003418根
17、据式2-8凯泽窗(Kaiser)的公式,当=0时,Kaiser窗和矩形窗函数是一样的图形。当=3.440时,Kaiser窗旁瓣相对衰减速率为-26.4dB,继续增加值,旁瓣峰值电平将继续下降,渐进衰减速率继续增加。值越大,其主瓣宽度也越大,频谱的旁瓣也随着变小。利用matlab和本文分段逼近的加窗插值算法,对信号进行间谐波检测(采样频率为5120Hz,采样点数为1024),得到结果:表2-3不同值检测幅值表实际值测量值(=5.44)测量值(=6.121)测量值(=7.865)测量值(=18)频率41.54040.000340.137941.4017幅值247276.2669274.238326
18、7.0376247.5005初始角1366.972866.960261.990316.5354值5.44、6.121、7.865分别可以近似取代汉明窗、海宁窗、布来克曼窗,结果证明在单一间谐波的情况下凯泽窗可以调节值以提高主瓣的能量比重,达到比其他常用窗更好的测试精度。同样的采样频率和采样点数对频率50Hz、幅值200V、初始相位200的基波和频率151Hz、幅值0.6V、初始相位100的间谐波的叠加电压信号进行幅值检测,见表2-3。表2-4不同值检测幅值表实际幅值测量幅值(=5)测量幅值(=10)测量幅值(=15)测量幅值(=20)基波(50Hz)200v200.1118v200.0706v
19、200.0518v199.9592v间谐波(151Hz)0.6v0.6540v0.6357v0.6103v0.6000v当频率差比较大的时候(即主瓣影响可以忽略),两信号分量的幅值的变化只与两者旁瓣影响有关,旁瓣跌落厉害则幅值测试准确,旁瓣跌落很小则幅值检测相对就不那么准确,故上表随着值的增加,旁瓣衰减变大,幅值测试准确度明显提高。间谐波检测平台完全可以利用凯泽窗可变动主瓣与旁瓣的特点来提高在特定情况下的测试精度。第三章、实现框图3.1 设计流程图 本课程设计主要是用麦克风采集一段语音信号,通过进行自编函数加入噪声,然后采用汉宁窗函数法设计FIR滤波器,并且对这段加入噪声的语音信号函数进行滤波
20、去噪,用绘图的程序画出前后时域和频域的波形图进行对比分析。程序的设计流程图如下图3-1所示: 在Windows下录制语音将语音格式改为wav为.wav 加入噪声对语音信号进行频谱分析,画出时域和频域波形图 用kaiser窗设计FIR滤波器画出其频率响应用FIR滤波器对语音信号进行滤波画出语音信号滤波前后波形并且进行比较分析开始结束图3-1 程序设计流程图第四章、基于MATLAB仿真结果及结果分析4.1 采集部分设计4.1.1信号采集程序设计fs=22050; %语音信号采集频率为22050x,fs,bits=wavread(D:4.wav);sound(x);y=fft(x,1024); %对
21、信号做1024点FFT变换magX=abs(y);%原始信号幅值angX=angle(y);%原始信号相位figure(1);subplot(211);plot(magX);title(原始信号幅值);subplot(212);plot(angX);title(原始信号相位);f=fs*(0:511)/512;figure(2);subplot(211);plot(x);title(原始语音信号时域波形图);grid on;Subplot(212); %绘制原始语音信号的频率响应图 plot(f,abs(y(1:512);title(原始语音信号频谱图);xlabel(Hz);ylabel(f
22、udu);grid on; 4.1.2仿真结果 图4-1 原始信号幅值和相位图4-2 原始信号时域图和频谱图4.2 加噪部分设计4.2.1 加噪部分程序设计fs=22050; %语音信号采集频率为22050x,fs,bits=wavread(D:4.wav);%加随机噪声并绘制时域波形和FFT频谱图,作对比L=length(x);noise=0.04*randn(L,2);x1=x+noise;y=fft(x,1024); %对信号做1024点FFT变换figure(1);subplot(211);plot(x); %做原始语音信号的时域图形title(原始语音信号的时域图)subplot(2
23、12); plot(x1); %绘制加噪语音信号的时域图形title(加噪语音信号的时域图); xlabel(t);ylabel(x1);figure(2);y1=fft(x1,1024); %对加噪信号做1024点FFT变换f=fs*(0:511)/512;subplot(211);plot(f,abs(y(1:512);title(原始语音信号频谱图);xlabel(Hz);ylabel(fudu);grid on;Subplot(212);plot(f,abs(y1(1:512); %绘制原始语音信号频率响应图title(加噪语音信号频谱图);xlabel(Hz);ylabel(fudu
24、);grid on;4.2.2 仿真结果图4-3 时域图比较图4-4 频谱图比较4.3 滤波部分设计4.3.1滤波程序设计fs=22050; %语音信号采集频率为22050x,fs,bits=wavread(D:4.wav); %加随机噪声L=length(x);noise=0.04*randn(L,2);x1=x+noise; %利用kaiser滤波器对语音信号滤波fp=1000;fm=1200;rs=100;Fs=8000; %滤波器设计wp=2*pi*fp/Fs;ws=2*pi*fm/Fs;Bt=ws-wp; %计算过渡带宽度alph=0.112*(rs-8.7);%计算kaiser窗的
25、控制参数alphM=ceil(rs-8)/2.285/Bt);%计算kaiser窗所需阶数Mwc=(wp+ws)/2/pi;hn=fir1(M,wc,kaiser(M+1,alph);%调用kaiser计算低通FIDF的h(n)figure(1);freqz(hn);y=fft(x);y1=fft(x1);x2=fftfilt(hn,x1); %利用kaiser滤波器对语音信号滤波绘图y=fft(x,1024); %对原始信号做1024点FFT变换y1=fft(x1,1024); %对加噪信号做1024点FFT变换y2=fft(x2,1024); %对加噪滤波后的信号做1024点FFT变换fi
26、gure(1);freqz(hn);grid on figure(2) %画出时域波形subplot(311); plot(x);title(原始语音信号的时域波形);subplot(312); plot(x1)title(加噪后语音信号的时域波形);subplot(313); plot(x2);title(加噪语音滤波后信号的时域波形);f=fs*(0:511)/512;figure(3) %画出频谱图y1=fft(x1,1024); subplot(311); plot(f,abs(y(1:512);%画出原始语音信号频谱图title(原始语音信号频谱图)xlabel(Hz);ylabel
27、(fuzhi);subplot(312);plot(f,abs(y1(1:512); %画出加噪后语音信号频谱图title(加噪后语音信号频谱图)xlabel(Hz);ylabel(fuzhi);subplot(313); plot(f,abs(y2(1:512); %画出滤波后的信号频谱图title(加噪语音滤波后的信号频谱图)xlabel(Hz);ylabel(fuzhi);4.3.2仿真结果图4-5 kaiser窗特性图图4-6 时域图比较图4-7 频谱图比较4.4 结果分析语音信号经过FIR滤波器的滤除噪声的处理,在Matlab中,函数sound可以对声音进行回放。其调用格式:soun
28、d (x,fs,bits)我们可以明显感觉滤波前后的声音有变化。声音中刺耳的声音没有了,几乎恢复成原始的声音,但较原始的声音更平滑一些。这说明用kaiser窗设计FIR滤波器滤掉了语音中的噪声同时,也把原始语音的很小的一部分也滤掉了,所以回放语音的时候听起来比以前的更加平滑,说明这段程序设计是成功的。总 结在此次课程中主要的要求是用麦克风采集一段语音信号,绘制波形并观察其频谱,给定相应技术指标,用kaiser窗设计一个满足指标的FIR滤波器,对该语音信号进行滤波去噪处理,比较滤波前后的波形和频谱并进行分析,根据结果和学过的理论得出合理的结论。与不同信源相同滤波方法的同学比较各种信源的特点,与相
29、同信源不同滤波方法的同学比较各种滤波方法性能的优劣。通过这次课程设计,不但巩固了以前学的知识,还学习了新内容,收获颇丰。原来滤去语音中的噪声我们运用自己学到的知识能做到,并更加巩固了MATLAB软件的使用,在从这次的课程设计中体会到,我觉得什么事都要我们真真正正用心去做了,才会使自己更加成长,没有学习就不可能有实践的机会,没有自己的实践就不会有所突破,希望这次的经历能让我们在以后的学习生活中不断成长,在以后的学习中更能与实际相结合,为自己今后在社会上能立足打好坚实的基础。 参考文献1 丁玉美,高西全. 数字信号处理(第二版)M. 西安电子科技大学出版社,2001. 2 丁玉美,高西全. 数字信
30、号处理(第三版)M. 西安电子科技大学出版社,2008.3 刘益成,孙祥娥. 数字信号处理M. 北京电子工业出版社,2004.4 陈怀琛.数字信号处理教程-MATLAB释疑与实现M.北京电子工业出版社,2004.5 陈怀琛,王朝英.数字信号处理及其MATLAB实现M.北京电子工业出版社,1998.致 谢大学生活转眼即逝,通过努力,我在学习和生活上获得了很大的收获。本次设计是在陈老师的悉心指导下完成的,在整个毕业设计的完成过程中,陈老师给予了精心的指导,每一个环节都注入了导师大量的心血。导师严谨的治学态度、大公无私的品德和为科学献身的精神都是我学习的榜样,尤其是他的认真塌实、实事求是、精益求精、刻苦耐劳的工作作风使我获益良多。学生在老师身上学到的东西不仅仅是科学知识,更多的是学到了研究的方法及做人的道理,使我终生难忘,在此向导师致以崇高的敬意和衷心的感谢!