****音乐信号滤波去噪——使用PARZENWIN窗设计的FIR滤波器第1页共17页音乐信号滤波去噪——使用PARZENWIN窗设计的FIR滤波器学生姓名:****指导老师:黄红兵摘要本课程设计主要使用Parzenwin窗设计的FIR滤波器对音乐信号进行滤波去噪。课程设计的的平台为MATLAB。采集一段音乐信号,绘制波形并观察其频谱,给定相应技术指标,用窗函数法设计一个满足指标的FIR滤波器,对该音乐信号进行滤波去噪处理。根据滤波后的时域图和原始音乐信号时域图的比较,以及滤波后信号的频谱图和原始音乐信号频谱图的比较,最后回放滤波后音乐信号,滤波后的音乐信号与原始音乐信号一样清晰,成功地实现了滤波,达到了设计的要求。关键词课程设计;FIR滤波器;音乐信号;滤波去噪;Parzenwin窗设计;MATLAB1引言本课程设计是采用Parzenwin窗设计的FIR滤波器对语音信号进行滤波去噪。通过课程设计了解FIR滤波器设计的原理和步骤,掌握用Matlab语言设计滤波器的方法,了解DSP对FIR滤波器的设计及编程方法。通过观察音乐信号滤波前后的时域波形的比较,加深对滤波器作用的理解。通过对比滤波前后波形图的比较和放滤波前后音乐信号的对比,可以看出滤波器对有用信号无失真放大具有重大意义。1.1课程设计目的熟悉Matlab语言环境,掌握Matlab语言的编程规则,利用Parzenwin窗函数设计法来设计符合要求的FIR滤波器来实现音乐信号的滤波去噪。并绘制滤波前后的时域波****音乐信号滤波去噪——使用PARZENWIN窗设计的FIR滤波器第2页共17页形和频谱图。根据图形分析判断滤波器设计的正确性。通过本次课程设计熟悉利用Parzenwin窗函数法设计FIR滤波器的过程。增强自己独立解决问题的能力,提高自己的动手能力。加深对理论知识联系实际问题的理解。为以后的工作奠定坚实的基础。1.2课程设计要求下载一段音乐信号,绘制观察波形及频谱图。根据Parzenwin的性能指标合理设计FIR滤波器,对音乐信号加入干扰,再用滤波器对干扰音乐信号进行滤波去噪,比较滤波前后的频谱图并进行分析。再回放音乐信号对比原音乐信号。看滤波器是否对音乐信号进行了滤波去噪。1.3课程设计平台MATLAB名字由MATrix和LABoratory两词的前3个字母组合而成。20世纪70年代后期,时任美国新墨西哥大学计算机科学系主任的CleveMoler教授出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB[1]。MATLAB软件包括五大通用功能:数值计算功能(Nemeric);符号运算功能(Symbolic);数据可视化功能(Graphic);数据图形文字统一处理功能(Notebook)和建模仿真可视化功能(Simulink)。其中,符号运算功能的实现是通过请求MAPLE内核计算并将结果返回到MATLAB命令窗口。该软件有三大特点:一是功能强大;二是界面友善、语言自然;三是开放性强。目前,Mathworks公司已推出30多个应用工具箱。MATLAB在线性代数、矩阵分析、数值及优化、数理统计和随机信号分析、电路与系统、系统动力学、信号和图像处理、控制理论分析和系统设计、过程控制、建模和仿真、通信系统、以及财政金融等众多领域的理论研究和工程设计中得到了广泛应用。MATLAB在信号与系统中的应用主要包括符号运算和数值计算仿真分析。由于信号与系统课程的许多内容都是基于公式演算,而MATLAB借助符号数学工具箱提供的符号运算功能能基本满足信号与系统课程的需求。例如,解微分方程、傅里叶正反变换、拉普拉斯正反变换、z正反变换等。MATLAB在信号与系统中的另一主要应用是数值计算与仿真分析,主要包括函数波形绘制、函数运算、冲激响应与阶跃响应仿真分析、信号的时域分析、信号的频谱分析、系统的S域分析、零极点图绘制等内容。数值计算仿真分析可以帮助学生更深入理解信号与系统的理论知识,并为将来使用MATLAB进行****音乐信号滤波去噪——使用PARZENWIN窗设计的FIR滤波器第3页共17页信号处理领域的各种分析和实际应用打下基础[2]。2基本理论2.1FIR滤波器FIR滤波器:有限长单位冲激响应滤波器,是数字信号系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。FIR数字滤波器设计的基本步骤如下:(1)确定指标在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数字滤波器常常被用来实现选频操作。因此,指标的形式一般在频域中给出幅度和相位响应。幅度指标主要以两种方式给出。第一种是绝对指标。它提供对幅度响应函数的要求,一般应用于FIR滤波器的设计。第二种指标是相对指标。它以分贝值的形式给出要求。(2)逼近确定了技术指标后,就可以建立一个目标的数字滤波器模型。通常用理想的数字滤波器模型。之后,利用数字滤波器的设计方法,设计出一个实际滤波器模型来逼近给定的目标。(3)性能分析和计算机仿真上两步的结果是得到以差分或冲激响应描述的滤波器。根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求;或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。FIR滤波器的设计问题实际上是确定能满足所要求的转移序列或脉冲响应的常数的问题,设计方法主要有窗函数、频率响应法和等波纹最佳逼近法等。2.2窗口设计法窗口设计法是一种通过截断和计权的方法使无限长非因果序列成为有限长脉冲响****音乐信号滤波去噪——使用PARZENWIN窗设计的FIR滤波器第4页共17页应序列的设计方法。通常在设计滤波器之前,应该先根据具体的工程应用确定滤波器的技术指标。在大多数实际应用中,数字滤波器常常被用来实现选频操作,所以指标的形式一般为在频域中以分贝值给出的相对幅度响应和相位响应。窗口设计法步骤如下:(1)根据过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度N。窗函数的类型可根据最小阻带衰减AS独立选择。(2)根据待求滤波器的理想频率响应求出理想单位脉冲响应hd(n)。(3)由性能指标确定窗函数W(n)和长度N。(4)求得实际滤波器的单位脉冲响应h(n),h(n)即为所设计FIR滤波器系数向量b(n)。()().()dhnhnWn(2.1)常见的窗函数性能表如下图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.5dBCHEBWIN15.2π/M113dBNUTTALLWIN15.4π/M108dBTUKEYWIN2.4π/M22dB2.3PARZENWIN窗w=parzenwin(n)返回N-点Parzen(日内瓦莱-普桑)窗口中列向量。Parzenwin窗分****音乐信号滤波去噪——使用PARZENWIN窗设计的FIR滤波器第5页共17页段立方米近似高斯窗口。Parzenwin窗的滤波器的过渡带宽为6.6π/M,最小阻带衰减56db。3设计步骤3.1设计流程图根据设计的要求,首先从网上下载一段音乐信号,对音乐信号加入噪声干扰,再利用Parzenwin窗设计合理的FIR滤波器。最后用滤波器对干扰后的音乐信号进行滤波去噪。具体设计流程图如下图3.1所示:NOYES开始下载一段音乐信号,命名为“jt.wav”,绘制出其时域波形和频谱图。加入噪声干扰,绘制干扰后的时域波形和频谱图。利用Parenwin窗设计合理的FIR滤波器。将干扰后的音乐信号通过自己设计的滤波器,进行滤波去噪。比较滤波前后的时域波形和频谱图,并回放音乐信号,验证是否达到去噪效果。结束是否达到去噪效果?****音乐信号滤波去噪——使用PARZENWIN窗设计的FIR滤波器第6页共17页图3.1设计流程图3.2录制音乐信号从网上下载一段音乐信号,并命名为“jt.wav”。其采样率fs为8000HZ,在Matlab平台下调用wavread函数可采集到下载的音乐信号。具体调用如下:[x,fs,bits]=wavread('c:\MATLAB\WORK\jt.wav');%读取音乐信号运行后得出fs=8000,bits=16。输出的第一个参数x是每个样本的值,fs是生成该波形文件时的采样率,bits是波形文件每样本的编码位数。sound(x,fs,bits);%播放音乐信号N=length(x);%计算音乐信号的长度fn=2200;%单频噪声频率t=0:1/fs:(N-1)/fs;%计算时间范围,样本数除以采样频率x=x(:,1)';y=x+sin(fn*2*pi*t);plot(t,x);xlabel('tins');ylabel('x');画原始音乐信号的时域波形图sound(y,fs,bits);%播放干扰后的音乐信号,应该可以明显听出有尖锐的单频啸叫声运行程序后得到的波形图如图3.2所示:00.511.522.533.54-1-0.8-0.6-0.4-0.200.20.40.60.81tinsx图3.2原始音乐信号时域波形图****音乐信号滤波去噪——使用PARZENWIN窗设计的FIR滤波器第7页共17页画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性,并将原始音乐信号的波形图与加干扰后的波形图进行比较,实现程序如下:X=abs(fft(x));Y=abs(fft(y));%对原始信号和加噪信号进行fft变换,取幅度谱X=X(1:N/2);Y=Y(1:N/2);%截取前半部分deltaf=fs/N;%计算频谱的谱线间隔f=0:deltaf:fs/2-deltaf;%计算频谱频率范围subplot(2,2,1);plot(t,x);xlabel('时间(t)');ylabel('幅度');title('原始音乐信号');subplot(2,2,2);plot(f,X);xlabel('频率(f)');ylabel('幅度谱');title('原始音乐信号幅度谱');axis([0,8000,0,600]);subplot(2,2,3);plot(t,y);xlabel('时间(t)');ylabel('幅度');title('加干扰后的音乐信号');subplot(2,2,4);plot(f,Y);xlabel('频率(f)');ylabel('幅度谱');title('加干扰后的音乐信号幅度谱');axis([0,8000,0,600]);运行程序后我们所得的波形图如图3.3所示:01234-1-0.500.51时间(t)幅度原始音乐信号020004000600080000200400600频率(f)幅度谱原始音乐信号幅度谱01234-2-1012时间(t)幅度加干扰后的音乐信号020004000600080000200400600频率(f)幅度谱加干扰后的音乐信号幅度谱图3.3干扰前后信号时域图与频谱图的比较3.3滤波器设计滤波器的设计就是要找到一组能满足特定滤波要求的系数向量a和b,其中b为系****音乐信号滤波去噪——使用PARZENWIN窗设计的FIR滤波器第8页共17页统函数的分子系数,a为系统函数分母系数。在本次的课程设计中我所采用的就是利用Parzenwin窗函数来设计FIR滤波器。设计的程序如下:fpd=2100;fsd=2