ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:209.09KB ,
资源ID:8312643      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8312643.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(吹管音乐滤波去噪使用BARTHANNWIN窗设计方案的FIR滤波器.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

吹管音乐滤波去噪使用BARTHANNWIN窗设计方案的FIR滤波器.docx

1、吹管音乐滤波去噪使用BARTHANNWIN窗设计方案的FIR滤波器大学数字信号处理课程设计报告王二 校徽学 院 XXX 专 业 通信工程 班 级 XXX 学 号 XX 学生姓名 王二 指导教师 XXX 课程成绩 完成日期 2012年3月2日 课程设计成绩评定学 院 XXX 专 业 通信工程 班 级 XXX 学 号 XX 学生姓名 王二 指导教师 XXX 完成日期 XXXX 年 X月 X 日 指导教师对学生在课程设计中的评价评分项目优良中及格不及格课程设计中的创造性成果学生掌握课程内容的程度课程设计完成情况课程设计动手能力文字表达学习态度规范要求课程设计论文的质量指导教师对课程设计的评定意见综合

2、成绩 指导教师签字 XXXX年X月 X日课程设计任务书 XXX 系 XXX 专业 课程名称数字信号处理课程设计时间XXXXXX学年第X学期XX周学生姓名王二指导老师XXX题 目吹管音乐滤波去噪使用BARTHANNWIN设计的FIR滤波器主要内容: 从网站上下载一段吹管乐器演奏音乐,绘制波形并观察其频谱特点,加入一个带外单频噪声,用BARTHANNWIN窗设计一个满足指标的FIR滤波器,对该含噪音乐信号进行滤波去噪处理,比较滤波前后的波形和频谱并进行分析,根据结果和学过的理论得出合理的结论。与不同信源相同滤波方法的同学比较各种信源的特点,与相同信源不同滤波方法的同学比较各种滤波方法性能的优劣。要

3、求:(1)滤波器指标必须符合工程实际。(2)设计完后应检查其频率响应曲线是否满足指标。(3)处理结果和分析结论应该一致,而且应符合理论。(4)独立完成课程设计并按要求编写课程设计报告书。应当提交的文件:(1)课程设计学年论文。(2)课程设计附件(主要是源程序)。吹管音乐滤波去噪使用BARTHANNWIN窗设计的FIR滤波器学生姓名:王二 指导老师:XXX摘 要 本课程设计主要是利用Barthannwin窗设计满足指标的FIR滤波器对一段含噪吹管乐器音频进行滤波去噪处理。以Matlab为设计平台,利用wavread函数对音频信号进行采样,获取参数,对音频信号进行读取和加噪,根据相应技术指标,设计

4、Barthannwin FIR滤波器,对该音频信号进行滤波去噪处理,还原原始信号。通过比较滤波前后的波形和频谱图并进行分析,回放滤波后音乐信号,滤波后音乐信号与原始音乐信号一样清晰。本课程设计成功地对吹管音乐音频信号进行了滤波去噪,初步完成了设计指标。关键词 课程设计;滤波去噪;FIR滤波器;Barthannwin窗;MATLAB目录1 引 言 31.1课程设计目的 31.2 课程设计的要求 41.3 设计平台 42 设计原理 52.1 FIR滤波器 52.2窗口设计法 62.3 BARTHANNWIN窗 83 设计步骤 93.1设计流程图 93.2录制语音信号 103.3 滤波器设计 113

5、.4 信号滤波处理 133.5 结果分析 144 出现的问题及解决方法 165 结束语 17参考文献 19附录1:吹管音乐音频信号提取和加噪源程序清单 20附录2:使用BARTHANNWIN窗设计的FIR滤波器源程序清单 22附录3:信号滤波处理源程序清单 24附录4:freqz_m的定义源程序清单 25附录5:ideal_lp的定义源程序清单 261 引 言本课程设计是采用Barthannwin窗设计的FIR滤波器对含噪吹管音乐信号进行滤波去噪。通过课程设计了解FIR滤波器设计的原理和步骤,掌握用MATLAB语言设计滤波器的方法,了解DSP对FIR滤波器的设计及编程方法。通过观察音乐信号滤波

6、前后的时域波形的比较,加深对滤波器作用的理解。通过对比滤波前后波形图的比较和放滤波前后音乐信号的对比,可以看出滤波器对有用信号无失真放大具有重大意义。1.1课程设计目的在本次课程设计中,最主要的设计是设计FIR滤波器,FIR滤波器的设计方法主要分为两类:第一类是基于逼近理想滤波器器特性的方法包括窗函数法、频率采样法、和等波纹最佳逼近法;第二类是最优设计法。本次的课程设计主要采用的是第一类设计方法,是利用Barthannwin窗函数法设计FIR滤波器对一段语音进行滤波去噪,并绘制滤波前后的时域波形形和频谱图,对滤波前后波形进行对比分析得到结论。通过这一过程能够熟悉MATLAB语言环境,掌握MAT

7、LAB语言的编程规则。通过本次课程设计熟悉利用Barthannwin窗函数法设计FIR滤波器的过程增强自己独立解决问题的能力,提高自己独立解决问题的动手能力同时加深对理论知识联系实际的理解,为以后的工作奠定坚实的基础。1.2 课程设计的要求下载一段吹管乐器演奏音乐,绘制观察波形及其频谱图特点,加入一个带外单频噪声,用Barthannwin窗设计一个满足指标的FIR滤波器,对该含噪音乐信号进行滤波去噪处理,比较滤波前后的波形和频谱图并进行分析。再回放音乐信号对比原音乐信号,看滤波器是否对音乐信号进行了滤波去噪。(1)滤波器指标必须符合工程实际。(2)设计完后应检查其频率响应曲线是否满足指标。(3

8、)处理结果和分析结论应该一致,而且应符合理论。(4)独立完成课程设计并按要求编写课程设计报告书。1.3 设计平台本课程设计的主要设计平台式MATLAB7.0,MATLAB是矩阵实验室(Matrix Laboratory)的简称。MATLAB是由美国MathWorks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran

9、)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域1。MATLAB在信号与系统中的应用主要包括符号运算和数值计算仿真分析。由于信号与系统课程的许多内容都是基于公式演算,而MATLAB借助符号数学工具箱提供的符号运算功能能基本满足信号与系统课程的需求。例如,解微分方程、傅里叶正反变换、拉普拉斯正

10、反变换、z正反变换等。MATLAB在信号与系统中的另一主要应用是数值计算与仿真分析,主要包括函数波形绘制、函数运算、冲激响应与阶跃响应仿真分析、信号的时域分析、信号的频谱分析、系统的S域分析、零极点图绘制等内容。数值计算仿真分析可以帮助学生更深入理解信号与系统的理论知识,并为将来使用MATLAB进行信号处理领域的各种分析和实际应用打下基础2。2 设计原理2.1 FIR滤波器数字滤波器根据其冲激响应函数的时域特性,可分为2种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,是数字信号系统中

11、最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。FIR系统有自己突出的优点:(1)可以很容易地设计线性相位的滤波器。线性相位滤波器延时输入信号,却并不扭曲其相位。(2)实现简单。在大多数DSP处理器,只需要对一个指令积习循环就可以完成FIR计算。(3)适合于多采样率转换,它包括抽取(降低采样率),插值(增加采样率)操作。无论是抽取或者插值,运用FIR滤波器可以省去一些计算,提高计算效率。相反,如果使用IIR滤波器,每个输出都要逐一计算,不能省略,即使输出

12、要丢弃。(4)具有理想的数字特性。在实际中,所有的DSP滤波器必须用有限精度(有限bit数目)实现,而在IIR滤波器中使用有限精度会产生很大的问题,由于采用的是反馈电路,因此IIR通常用非常少的bit实现,设计者就能解决更少的与非理想算术有关的问题。(5)可以用小数实现。不像IIR滤波器,FIR滤波器通常可能用小于1的系数来实现。(如果需要,FIR滤波器的总的增益可以在输出调整)。当使用定点DSP的时候,这也是一个考虑因素,它能使得实现更加地简单3。FIR数字滤波器设计的基本步骤如下:(1)确定技术指标 在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数

13、字滤波器常被用来实现选频操作。因此,指标的形式一般在频域中给出幅度和相位响应。幅度指标主要以2种方式给出。第一种是绝对指标。他提供对幅度响应函数的要求,一般应用于FIR滤波器的设计。第二种指标是相对指标。他以分贝值的形式给出要求。本文中滤波器的设计就以线性相位FIR滤波器的设计为例。(2)逼近 确定了技术指标后,就可以建立一个目标的数字滤波器模型(通常采用理想的数字滤波器模型)。之后,利用数字滤波器的设计方法(窗函数法、频率采样法等),设计出一个实际滤波器模型来逼近给定的目标。 (3)性能分析和计算机仿真 上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。根据这个描述就可以分析其频率特

14、性和相位特性,以验证设计结果是否满足指标要求;或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。FIR滤波器的设计问题实际上是确定能满足所要求的转移序列或脉冲响应的常数的问题,设计方法主要有窗函数、频率响应法和等波纹最佳逼近法等。FIR滤波器的缺点在于它的性能不如同样阶数的IIR滤波器,不过由于数字计算硬件的飞速发展,这一点已经不成为问题。再加上引入计算机辅助设计,FIR滤波器的设计也得到极大的简化。基于上述原因,FIR滤波器比IIR滤波器的应用更广4。2.2窗口设计法FIR滤波器的设计方法有许多种,如窗函数设计法、频率采样设计法和最优化设计法等。窗函数法是设计FIR数字滤波器的最简单

15、的方法。它在设计FIR数字滤波器中有很重要的作用,正确地选择窗函数可以提高设计数字滤波器的性能,或者在满足设计要求的情况下,减小FIR数字滤波器的阶次。常用的窗函数有以下几种:矩形窗(Rectangular window)、三角窗(Triangular window)、汉宁窗(Hanning window)、汉明窗(Hamming window)、布拉克曼窗(Blackman window)等等。窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,主要设计步骤为:(1)通过傅里叶逆变换获得理想滤波器的单位脉冲响应hd(n)。 (2-1)(2)由性能指标确定窗函

16、数W(n)和窗口长度N。(3)求得实际滤波器的单位脉冲响应h(n), h(n)即为所设计FIR滤波器系数向量b(n)。 (2-2)(4)检验滤波器性能常见的窗函数性能如表2-1所示:表2-1 常见窗函数性能表名称滤波器过渡带宽最小阻带衰减名称滤波器过渡带宽最小阻带衰减矩形1.8/M21dBPARZENWIN6.6/M56dB巴特利特6.1/M25dBFLATTOPWIN19.6/M108dB汉宁6.2/M44dBGAUSSWIN5.8/M60dB汉明6.6/M51dBBARTHANNWIN5.6/M40dB布莱克曼11/M74dBBLACKMANHARRIS16.1/M109dBBOHMANW

17、IN5.8/M51.5dBCHEBWIN15.2/M113dBNUTTALLWIN15.4/M108dBTUKEYWIN2.4/M22dB2.3 BARTHANNWIN窗BARTHANNWIN窗是修正的BARTLETT-HANN窗,它的最小阻带衰减为40dB,过度带宽为5.6/M(M为滤波器阶数),公式给出如下5:(2-3)在MATLAB中的调用格式为:w=barthannwin(M);相应的程序段:M=64;n=0:M-1;w_barth=barthannwin(M);hd_bs=ideal_lp(0.45*pi,M);h_bs=hd_bs.*w_barth;db,mag,pha,grd,w

18、=freqz_m(h_bs,1); 用绘图命令画出的窗函数时域频域图如图2-1所示:图2-1 Barthannwin窗时域频域响应图3 设计步骤3.1设计流程图吹管音乐音频信号滤波去噪使用Bathannwin窗设计的FIR滤波器的设计流程如图3-1所示: N Y 图3-1 使用Bathannwin窗设计的FIR滤波器对吹管音乐音频信号去噪流程图3.2录制语音信号在网上下载一段吹管乐器演奏音乐,时间在2s左右,在转换过程中,将音乐格式设置为wav格式,属性设置为16000Hz,8位,单声道,128KB/秒,然后保存在目录e:下,命名为Taihuajiao.wav,最后在Matlab软件平台下调用

19、函数wavread对音乐信号进行采样,记录采样频率和采样点数。具体调用如下: x,fs,bits=wavread(e:wang.wav); %读取音乐信号运行后得出fs=16000,bits=8。输出的第一个参数x是每个样本的值,fs是生成该波形文件时的采样率,bits是波形文件每样本的编码位数。sound(x,fs,bits); % 按指定的采样率和每样本编码位数回放N=length(x); % 计算信号x的长度 fn=3500; % 单频噪声频率t=0:1/fs:(N-1)/fs; %计算时间范围,样本数除以采样频率 x=x(:,1);y=x+0.5*sin(fn*2*pi*t); %加入

20、噪声函数sound(y,fs,bits); % 应该可以明显听出有尖锐的单频啸叫声X=fft(x); Y=fft(y); % 对原始信号和加噪信号进行fft变换,取幅度谱X=X(1:N/2); Y=Y(1:N/2); % 截取X的前半部分, 截取Y的前半部分deltaf=fs/N; % 计算频谱的谱线间隔f=0:deltaf:fs/2-deltaf; % 计算频谱频率范围然后用绘图命令分别画出加噪前后信号的时域和频域波形,运行程序后我们所得的波形图如图3-2所示:图3-2 加噪前后信号的时域图和频域比较图3.3 滤波器设计滤波器的设计就是要找到一组能满足特定滤波要求的系数向量a和b,其中b为系

21、统函数的分子系数,a为系统函数分母系数。在本次的课程设计中我所采用的就是利用Barthannwin窗函数来设计FIR滤波器。在该滤波器的设计中,我们给出该滤波器的性能指标如下:fpd=3000; fsd=3400; fsu=3600; fpu=4000;Rp=1; As=30;截止频率也可以任意自选,在单频噪声干扰附近即可。在这里,很重要的是通带截止db值的设置。这个值根据我们使用的设计滤波器的方法来设定。因为使用的是Barthannwin窗法,Barthannwin窗函数中,滤波器的过渡带宽为5.6,最小阻带衰减为40db。所以,一定要将通带截止db值设置的小于40,所以,我将其设置为30d

22、b。用窗函数法,在MATLAB中利用Barthannwin窗设计FIR滤波器利用Matlab中的函数freqz画出滤波器的频率响应。利用数字信号处理里面学过的知识,根据自己选定的参数,用指定的方法设计FIR滤波器,得到FIR滤波器的阶数M。随后调用BARTHANNWIN(M)函数产生M阶的Barthannwin窗。然后,调用自编ideal_lp函数计算理想带阻滤波器的脉冲响应。最后,再调用自编freqz_m(h_bs,1)函数即可计算得到该滤波器的频率特性6。 fpd=3000;fsd=3400;fsu=3600;fpu=4000;Rp=1;As=30; % 带阻滤波器设计指标 fcd=(fp

23、d+fsd)/2;fcu=(fpu+fsu)/2;df=min(fsd-fpd),(fpu-fsu); % 计算上下边带中心频率,和频率间隔 wcd=fcd/fs*2*pi;wcu=fcu/fs*2*pi;dw=df/fs*2*pi; wsd=fsd/fs*2*pi;wsu=fsu/fs*2*pi; % 将Hz为单位的模拟频率换算为rad为单位的数字频率 M=ceil(5.6*pi/dw)+1; % 计算BARTHANNWIN窗设计该滤波器时需要的阶数 n=0:M-1; % 定义时间范围 w_barth=BARTHANNWIN(M); % 产生M阶的BARTHANNWIN窗 hd_bs=ide

24、al_lp(wcd,M)+ideal_lp(pi,M)-ideal_lp(wcu,M);% 调用自编函数计算理想带阻滤波器的脉冲响应 h_bs=w_barth.*hd_bs; % 用窗口法计算实际滤波器脉冲响应 db,mag,pha,grd,w=freqz_m(h_bs,1); % 调用自编函数计算滤波器的频率特性然后用绘图命令分别画出窗口法设计出来的滤波器的幅度特性和相位响应图,运行程序后所得到设计的滤波器的图形如图3-3所示:图3-3 滤波器的幅度特性以及相位响应图3.4 信号滤波处理滤波器设计完成后,在MATLAB中,FIR滤波器利用函数fftfilt对信号进行滤波。程序如下: y_fi

25、l=filter(h_bs,1,y); % 用设计好的滤波器对y进行滤波 Y_fil= abs(fft(y_fil);Y_fil=Y_fil(1:N/2);% 计算频谱取前一半用绘图命令分别画出滤波前后音乐信号的时域波形图和频谱图对比图,如图3-4所示:图3-4 滤波前和滤波后的时域和频域波形对比图3.5 结果分析从图3-4中可以观察到,加噪信号的时域图中大部分都被加入的噪声给遮盖了,滤波后的双音频信号发生了衰减,滤波去噪信号与原信号的时域图基本相似,说明滤波器起到了滤波作用。加噪信号的频谱图中,我们可以很明显地看到与原信号频谱图相比,它在3500Hz左右处有一个尖脉冲,而滤波去噪信号的频谱图

26、中该尖脉冲已经消失,波形大致与原图相似,可见滤波去噪效果基本不错。在将三个信号的时域波形和频谱图比较之后,我们还要通过回放去滤波去噪语音信号,来跟原信号相比,以检验滤波器的效果。在MATLAB中,经过sound(x,fs,bits)函数,对经过Barthannwin窗设计的FIR滤波器滤波去噪之后的音乐信号进行回放,可以听出滤波之后的信号跟原始信号一样清晰,完全滤除掉了噪声的干扰,通过下面语句来进行语音信号回放比较:sound(x,fs,bits); %显示原始双音频信号sound(y,fs,bits); %显示滤波后的双音频信号分别听原始语音和滤波后的语音信号,发现滤波后的语音信号噪声基本消

27、失,同时原始信号强度稍有变化,基本达到了滤波的效果,所得结果证明了用Barthannwin窗设计的FIR滤波器和音乐信号去噪设计是成功的。4 出现的问题及解决方法本次课程设计中当遇到问题时我在运用自己所学的知识思考的同时还通过上网搜索资料,参考相关书籍以及询问同学和老师,集思广益,使问题尽量得到完善的解决,在整个设计中出现的主要问题及解决方法如下:(1)、起初对利用Barthannwin窗函数设计FIR滤波器的设计步骤很生疏,在采用Barthannwin窗函数设计的FIR滤波器时得不到理想的滤波器,因而信号的恢复不是特别理想,通过不断设置参数的值,最终设计出理想的滤波器,使信号得到较为理想的恢

28、复;(2)、加入单频噪声时,单频噪声为余弦信号,其系数为1,该余弦信号是n行1列的矩阵,而我所录制的语音是1行n列的矩阵,所以需要将我所录制的语音信号进行转置,并且将余弦信号的系数改为0.5或者更小,否则程序会报错或者所画出来的图形将都是一条直线;(3)、在画滤波器性能波形的时候,要横坐标要计算w/pi的值,而不是直接取w的值;(4)、在对加入噪声后的语音用FIR滤波器进行语音去噪处理时,所编写的函数出现错误,绘制不出图形,分析错误主要是调用FIR滤波器时所用的fftfilt函数改为fitler函数。filter函数主要运用于IIR滤波器,所调用的格式为filter(b,a,x),而fftfi

29、lt函数的调用为fftfilt(b,x),所以在调用时应将a删去;(5)、绘制出滤波后的波形,发现FIR滤波器没有滤掉单频噪声。通过自己的仔细检查,是单频噪声的频率改动后,FIR滤波器的频率没有改动。所以单频噪声的频率也应该自己先定义,FIR滤波器的截止频率应该以单频噪声的频率为中心,这样重新运行后,结果正确;(6)、在做课程设计的文档时,发现流程图不会绘制。然后自己查了一些相关书籍得知,绘制流程图时一般用椭圆表示“开始”与“结束”,行动方案普通工作环节用矩形表示,问题判断或判定(审核/审批/评审)环节用菱形表示 ,箭头代表工作流方向;(7)、在写报告的时候,没有仔细注意报告版式、格式的要求,

30、导致要修改的地方较多,后经仔细检查及修改最终达到报告的要求。5 结束语通过这次课程设计,我对其设计原理进行了更深一层次的理解,对书中原来学到的理论,有了用实践检验的机会,也有了更加确切的掌握,在设计中也使我对一些概念有了更深刻的理解。例如:在指标方面,我混淆了模拟指标和数字指标的概念,经过老师的点拨,自己更加明确,而且记忆深刻。还有在课程设计中每一次的数据输入都有其重要意义,用MATLAB编译程序时,可以根据滤波器指标的要求实时知道对滤波器的影响。例如,编好程序后,调试成功,任意改变输入阻带或者通带衰减,可以看到输出波形的变化,改变截止频率wc,同样可以看到输出波形的变化。由此,对理论的理解就更加简单方便,而且记忆力深刻。除此之外,由于老师只给出了部分的程序段模版,再加上设计滤波方法的不同以及信源的差异,对程序的编译不是一蹴而就的,而要经过多次的编译与调试,所以很多地方是自己,出错率也大大提高了,其中的错误原因很多

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1