logo资料库

语音信号滤波去噪——使用凯塞窗设计的FIR滤波器.doc

第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
资料共21页,剩余部分请下载后查看
《语音信号滤波去噪——使用凯塞窗设计的 FIR 滤波器》 第 1 页 共 21 页 语音信号滤波去噪—— 使用凯塞窗设计的 FIR 滤波器 摘 要 本课程设计的主要目的是在 MATLAB 环境下,使用窗口设计法设计一个滤波 器,并对语音信号进行滤波去噪。开发平台为 MATLAB7.0,设计方法为窗口设计法。 用麦克风采集一段语音信号,绘制波形并观察其频谱,给定相应技术指标,用凯塞窗设 计一个满足指标的 FIR 滤波器,对该语音信号进行滤波去噪处理,比较滤波前后的波形 和频谱并进行分析。在滤波前后语音信号波形的变化中,由于我们录制的语音信号噪声 不大,所以观察并不明显,但在频域波形中,我们可以明显的看到设计的滤波器对语音 信号进行了滤波处理,将噪声进行了滤除。此次滤波基本达到了要求,完成了设计指标。 关键词 滤波去噪;FIR 滤波器;凯塞窗;MATLAB 1 引 言 本课程设计是采用凯塞窗设计的 FIR 滤波器对语音信号滤波去噪。通过课程设计 了解 FIR 滤波器的原理及使用方法,了解使用 MATLAB 语言设计 FIR 滤波器的方法, 了解 DSP 对 FIR 滤波器的设计及编程方法。通过观察滤波前后的时域图形,加深对 FIR 滤波器作用的理解。通过对比滤波器前后的波形及回放滤波前后的语音信号,可以看出 滤波器对有用信号的无失真放大具有重要作用。语音信号是基于时间轴上的一维数字信 号,在这里主要是对语音信号进行频域上的分析。在信号分析中,频域往往包含了更多 的信息。对于频域来说,大概有 8 种波形可以让我们分析:矩形方波,锯齿波,梯形波, 临界阻尼指数脉冲波形,三角波,余旋波,余旋平方波,高斯波。对于各种波形,我们 都可以用一种方法来分析,就是傅立叶变换:将时域的波形转化到频域来分析。于是, 本课题就从频域的角度对一段频率为 22050Hz,16k 的语音信号进行分析,并通过分析 频谱来设计出合适的滤波器。由于 MATLAB 软件在数字信号处理上有巨大的优势,本 课程设计除了录制语音信号外基本都在 MATLAB 上实现[1]。本课程设计主要解决在一
《语音信号滤波去噪——使用凯塞窗设计的 FIR 滤波器》 第 2 页 共 21 页 个综合型超市中,进行某种商品(如某一品牌的服装)的采购、领料、库存与成本等管 理的程序设计。 1.1 课程设计目的 综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出 相应结论,再利用 MATLAB 作为编程工具进行计算机实现,从而加深对所学知识的理 解,建立概念。本次使学生加深对理论知识理解的同时增强其逻辑斯维的能力,另一方 面对课堂教学中的理论知识做一个总结和补充。熟悉和巩固数字滤波器的设计方法和原 理 ,掌握窗口设计法设计 FIR 滤波器 ,实现滤波器设计的有关算法,熟练掌握使用 MATLAB 语言设计各种要求的数字滤波器,加深对数字信号处理理论方面的理解,使 学生了解数字信号处理 FIR 滤波器的设计和掌握用 MATLAB 实现 FIR 滤波器的设计方 法、过程,可综合运用这些知识解决一定的实际问题,使学生在所学知识的综合运用能 力上以及分析问题、解决问题能力上得到一定的提高[2]。 1.2 课程设计的要求 (1)滤波器指标必须符合工程实际。 (2)设计完后应检查其频率响应曲线是否满足指标。 (3)处理结果和分析结论应该一致,而且应符合理论。 (4)独立完成课程设计并按要求编写课程设计报告书。 1.3 设计平台 MATLAB 是一个为科学和工程计算专门设计的交互式大型软件,是一个可以完成 各种精确计算和数据处理的,可视化的,强大的计算工具。它具有丰富的函数资源和工 具箱资源,语言精练,代码灵活,面向对象,控制功能优良,图形工能也强大。并且它 的兼容性很好,几乎能在所有的 PC 机和大型计算机上运行,适用于 Windows,UNIX 和多种系统平台。MATLAB 形形色色的工具箱中包括控制系统,信号处理,小波分析, 统计,优化等,能够很好的运用于语音信号的滤波去噪[3]。 MATLAB 包含的内容非常丰富,功能强大,可以概括为以下几个方面: (1) 可以在多种操作系统下运行,如 DOS、Windows 95/98/2000/2000/NT、Compaq
《语音信号滤波去噪——使用凯塞窗设计的 FIR 滤波器》 第 3 页 共 21 页 Alpha、LinuxSun Solaris 等。 (2) 有超过 500 种的数学、统计、科学及工程方面的函数,使用简单快捷,并且有 很强的用户自定义函数的能力。 (3) 有强大的图形绘制和可视化功能,可以进行视觉数据处理和分析,进行图形、 图像的显示及编辑,使用户可以制作高质量的图形,从而写出图文并茂的文章。 (4) 有从外部文件及外部硬件设备读入数据的能力。 (5) 有丰富的工具箱(toolbox)。各个领域的专家学者将众多学科领域中常用的算法 编写为一个个子程序,即 m 文件,这些 m 文件包含在一个个工具箱中。其工具箱可以 分为两大类,即功能性工具箱和科学性工具箱。功能性工具箱主要用来扩充 MATLAB 的符号计算、图形可视化、建模仿真、文字处理等功能以及与硬件实时交互的功能。学 科性工具箱是按学科领域来分类的,如信号处理、控制、通信、神经网络图像处理、系 统辨识、鲁棒控制、模糊逻辑、小波等工具箱。 MATLAB 中的信号处理工具箱内容丰富,使用简便。在数字信号处理中常用的算 法,如 FFT,卷积,相关,滤波器设计,参数模型等,几乎都只用一条语句即可用。数 字信号处理常用的函数有波形的产生、滤波器的分析和设计、傅里叶变换、Z 变换等[4]。 2 设计原理 数字滤波器在数字信号处理的各种应用中发挥着十分重要的作用。它是通过对采样 数据信号进行数学运算处理来达到滤波的目的。FIR 数字滤波器设计的方法有三类,一 类是窗口设计法(时间窗口法),第二类是频率采样法,第三类是等波纹优化设计。时 间窗口设计法是从单位脉冲响应序列着手,使 h(n)逼近理想的单位脉冲响应序列 hd(n); 频率采样法是使所设计的 FIR 数字滤波器的频率特性在某些离散频率点上的值准确地 等于所需滤波器在这些频率点处的值,在其它频率处的特性则有较好的逼近。等波纹优 化设计也叫最佳一致逼近准则,最佳一致逼近即选择 N 个频率采样值(或时域 h(n) 值), 在给定频带范围内使频响的最大逼近误差达到最小。可保证局部频率点的性能也是最优 的,误差分布均匀,相同指标下,可用最少的阶数达到最佳化。本次课程设计采用的就 是窗口设计法。 2.1 FIR 滤波器 数字滤波器(Digital Filter,简称为 DF)是指用来对输入信号进行滤波的硬件和软件。
《语音信号滤波去噪——使用凯塞窗设计的 FIR 滤波器》 第 4 页 共 21 页 所谓数字滤波器,是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含 频率成分的器件。数字滤波器和模拟滤波器相比,因为信号的形式和实现滤波的方法不 同,数字滤波器具有比模拟滤波器精度高、稳定、体积小、重量轻、灵活、不要求阻抗 匹配等优点。一般用两种方法来实现数字滤波器:一是采用通用计算机,把滤波器所要完 成的运算编成程序通过计算机来执行,也就是采用计算机软件来实现;二是采用实际专用 的数字处理硬件[5]。 数字滤波器按照冲激响应的时域特性可分为:无限长单位冲响应滤波器(IIR)和有 限长单位冲击响应滤波器(FIR),但与 IIR 相比,在满足同样阻带衰减的情况下需要的 阶数较高,滤波器的阶数越高,占用的运算时间就越多,因此在满足指标要求的情况下 应尽量减少滤波器的阶数。 FIR 滤波器的基本结构可以理解为一个分节的延时线,把每一节的输出加权累加, 可得到滤波器的输出,FIR 滤波器的冲激响应 h(n)是有限长的,数学上 M 阶 FIR 滤波器 可以表示为: ( ) y n  N 1   i  0 ( ) ( h i x n i  ) ( ) H z N 1    n  0 ( ) h n z n (2-1) (2-2) FIR 数字滤波器设计的基本步骤如下: (1) 确定指标 在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在 很多实际应用中,数字滤波器常常被用来实现选频操作。因此,指标的形式一般在频域 中给出幅度和相位响应。幅度指标主要以两种方式给出。第一种是绝对指标。它提供对 幅度响应函数的要求,一般应用于 FIR 滤波器的设计。第二种指标是相对指标,它以分 贝值的形式给出要求。在工程实际中,这种指标最受欢迎。对于相位响应指标形式,通 常希望系统在通频带中能有线性相位。运用线性相位响应指标进行滤波器设计具有如下 优点:①只包含实数算法,不涉及复数运算;②不存在延迟失真,只有固定数量的延迟;③ 长度为 N 的滤波器(阶数为 N-1),计算量为 N/2 数量级。 (2)逼近 确定了技术指标后,就可以建立一个目标的数字滤波器模型。通常采用理想的数字 滤波器模型。之后,利用数字滤波器的设计方法,设计出一个实际滤波器模型来逼近给 定的目标。
《语音信号滤波去噪——使用凯塞窗设计的 FIR 滤波器》 第 5 页 共 21 页 (3)性能分析和计算机仿真 上两步的结果是得到以差分方程或系统函数或冲激响应描述的滤波器。根据这个描 述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求;或者利用计算 机仿真实现设计的滤波器,再分析滤波结果来判断。 FIR 滤波器的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数 的问题,设计方法主要有窗函数,频率采样法和等波纹最佳逼近法等。 2.2 窗口设计法 窗口设计法的基本思想是要选取某一种合适的理想频率选择性滤波器(这种滤波器 总是有一个非因果,无限长的脉冲响应),然后将它的脉冲响应截断(或加窗)以得到 一个线性相位和因果的 FIR 滤波器。主要设计步骤为: (1) 据过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度 N(或阶数 M=N-1),窗函数类型可根据最小阻带衰减 As 独立选择,因为窗口长度 N 对最小阻带 衰减 As 没有影响,在确定窗函数类型以后,可根据过渡带宽小于给定指标确定所拟用 的窗函数的窗口长度 N,设待求滤波器的过渡带宽为Δw,它与窗口长度 N 近似成反比, 窗函数类型确定后,其计算公式也确定了,不过这些公式是近似的,得出的窗口长度还 要在计算中逐步修正,原则是在保证阻带衰减满足要求的情况下,尽量选择较小的 N, 在 N 和窗函数类型确定后,即可调用 MATLAB 中的窗函数求出窗函数 w(n)。 (2) 根据待求滤波器的理想频率响应求出理想单位脉冲响应 hd(n),如果给出待求滤 波器频率应为 Hd,则理想的单位脉冲响应可以用下面的傅里叶反变换式求出: ( ) h n d  1 2      ( H e d j j n )   d e   sin[ )]    ( )   ( n c n  (2-3) 在一般情况下,hd(n)是不能用封闭公式表示的,需要采用数值方法表示;从 w=0 到 w=2π采样 N 点,采用离散傅里叶反变换(IDFT)即可求出。 (3) 由性能指标确定窗函数 w(n)和窗口长度 N,再用窗函数 w(n)将 hd(n)截断,并进 行加权处理,得到 ( ) h n  h n d ( ). ( ) n 如果要求线性相位特性, 则 h(n)还必须满足: ( ) h n   ( h N 1   n ) (2-4) (2-5) 根据上式中的正、 负号和长度 N 的奇偶性又将线性相位 FIR 滤波器分成四类。 要
《语音信号滤波去噪——使用凯塞窗设计的 FIR 滤波器》 第 6 页 共 21 页 根据所设计的滤波特性正确选择其中一类。 例如, 要设计线性相位低通特性可选择 ( ) h n  ( h N   一类,而不能选 ( ) 1 h n n )   ( h N 1   一类。 n ) (4)验算技术指标是否满足要求,为了计算数字滤波器在频域中的特性,可调用 freqz 子程序,如果不满足要求,可根据具体情况,调整窗函数类型或长度,直到满足 要求为止。 使用窗函数法设计时要满足以下两个条件: (1)窗谱主瓣尽可能地窄,以获得较陡的过渡带; (2)尽量减少窗谱的最大旁瓣的相对幅度,也就是使能量尽量集中于主瓣,减小 峰肩和纹波,进而增加阻带的衰减。 在 实 际 工 程 中 常 用 的 窗 函 数 有 五 种 , 即 矩 形 窗(Rectangular window) 、 三 角 窗 (Triangular window) 、汉 宁窗(Hanning window) 、汉 明窗(Hamming window)及凯 塞窗 (Kaiser window)。 下面介绍这五种常用窗函数的性质和特点: (1)矩形窗 矩形窗属于时间变量的零次幂窗。矩形窗使用最多,习惯上不加窗就是使信号通过 了矩形窗。这种窗的优点是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,导致变换中 带进了高频干扰和泄露漏,甚至出现负谱现象。 (2)三角窗 三角窗又称费杰窗,是幂窗的一次文形式。与矩形窗比较,主瓣宽约等于矩形窗的 两倍,但旁瓣小,而且无负旁瓣。 (3)汉宁窗 汉宁窗又称升余弦窗,汉宁窗可以看作是 3 个矩形时间窗的频谱之和,或者说是 3 个 sine(t)型函数之和,而括号中两项相对于第一个谱窗向左、右各移动了/T,从而旁 瓣互相抵消,消去高频干扰和漏能。可以看出,汉宁窗主瓣加宽并降低,旁瓣则显著减 小,从减小泄漏观点,汉宁窗优于矩形窗,但汉宁窗主瓣加宽,相当于分析带宽加宽, 频率分辨力下降。 (4)汉明窗 汉明窗与汉宁窗都是余弦窗,只是加权系数不同,汉明窗加权的系数能使旁瓣达到 更小。分析表明,汉明窗的第一旁瓣衰减为 42dB。汉明窗的频谱也是由 3 个矩形时窗 的频谱合成,但其旁瓣衰减速度为 20dB/(10oct),这比利时汉宁窗衰减速度慢。汉明窗
《语音信号滤波去噪——使用凯塞窗设计的 FIR 滤波器》 第 7 页 共 21 页 与汉宁窗都是很有用的窗函数。 (5) 凯塞窗 以上几种窗函数是各以一定主瓣加宽为代价,来换取某种程度的旁瓣抑制,而凯窗 则是全面地反映主瓣与旁瓣衰减之间的交换关系,可以在它们两者之间自由地选择它们 的比重。 2.3 凯塞窗 窗函数的主瓣宽度和旁瓣峰值衰耗是矛盾的,一项指标的提高总是以另一项指标的 下降为代价,窗口选择实际上是对两项指标作权衡。而两项指标是跳变的,于是有人提 出可调整窗,适当修改参数,可在这两项指标间作连续的选择。常用的可调整窗是凯塞 (Kaiser)窗。凯塞(Kaiser)窗全面地反映主瓣与旁瓣衰减之间的交换关系,可以在它 们两者之间自由地选择它们的比重。 凯塞窗的表达式是  ( ) n  I 0 [  1 (  2 n N  1  2 1) ]/ I ( )  0 (0   n N 1  ) (2-6) 式中, (.) 0I 是第一类修正的零阶贝塞尔函数,可以用级数展开来计算它的值。  I x 0 [ ] 1    k 1  ( x [ 2 ] k / 2) ! k (2-7) 一般取 15~25 次计算,便可达到足够精度。 0[ ] I x 在[0, ] 是单调增函数, 0[0] 1  。 I 是决定窗函数形状从而决定窗函数特性的参数。不管 多少,窗口的中心点 Nn  1 处总是 1: (   2  N I  1 ) ( ) /   2 。越大, 0( 0 I (  ) 1  。而在窗的两边 0 n  和 n N 1  处, 0 (   (0) N 1) 1/   I ( )  0 I  就越大。改变值,就能得到不同特性的窗: ) =0 是得凯塞窗相当矩形窗;=5.44 时相当汉明窗;=8.5 时接近于布莱克曼窗。 3 设计步骤 3.1 设计流程图
《语音信号滤波去噪——使用凯塞窗设计的 FIR 滤波器》 第 8 页 共 21 页 设计本课题的流程为:采集一段语音信号。将语音信号的文件名命名为 wudan.wav, 再用 MATLAB 中的 wavread 函数求出语音信号的三个参数,分别为:每个样本的值, 生成该语音波形文件时的采样频率,波形文件样本的码数,再对信号及加入单频干扰后 的语音信号做傅立叶变化,绘制出时域和频域的波形[6]。最后通过滤波绘制滤波前后时 域波形对比图和幅频特性对比图,并回放滤波前后的语音信号来验证是否达到去噪的目 的。流程图如图 3-1 所示: 开 始 采 集 一 段 语 音 信 号 , 命 名 为 wudan.wav,绘制出其画时域图时 域波形和频谱图 根据频谱图设定滤波器性能指 标,fp1=900;fs1=950; fs2=1050; fp2=1100;Rp=1;As=60; 比较滤波前后语音信号的波形 及频谱图,并回放,验证是否过 到去噪效果 用凯塞窗设计 FIR 滤波器 将 语 音 信 号 通 过 自 己 所 设 计 的 FIR 滤波器,进行滤波处理 是 结 束 图 3-1 用凯塞窗设计 FIR 滤波器对语音信号去噪流程图 3.2 录制语音信号 用 windows 工具中的录音机录制一段语音信号,语音为“大家好,我是吴丹”,时 间长度约为 2.95s。将语音信号的文件名设置为 wudan.wav,并将文件保存在 MATLAB 下的 WORK 文件夹里面。然后在 MATLAB 平台上,用 wavread 函数调出此语音信号, 并得到其采样率 fs 和比特数 bits。 具体调用格式如下:
分享到:
收藏