为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于MATLAB的FIR滤波器语音信号去噪

2017-12-11 25页 doc 213KB 72阅读

用户头像

is_436595

暂无简介

举报
基于MATLAB的FIR滤波器语音信号去噪基于MATLAB的FIR滤波器语音信号去噪 ***************** 实践教学 ****************** 计算机与通信学院 2013年春季学期 《信号处理》课程设计 题 目:基于MATLAB的FIR滤波器语音信号去噪 专业班级: 姓 名: 学 号: 指导教师: 成 绩: 摘要 本次课程设计是基于MATLAB的FIR滤波器语音信号去噪,在设计过程中,首先录制一段不少于10秒的语音信号,并对录制的信号进行采样;其次使用MATLAB会出采样后的语音信号的时域波形和频谱图;然后在给原始的语音信号...
基于MATLAB的FIR滤波器语音信号去噪
基于MATLAB的FIR滤波器语音信号去噪 ***************** 实践教学 ****************** 计算机与通信学院 2013年春季学期 《信号处理》课程设计 题 目:基于MATLAB的FIR滤波器语音信号去噪 专业班级: 姓 名: 学 号: 指导教师: 成 绩: 摘要 本次课程设计是基于MATLAB的FIR滤波器语音信号去噪,在设计过程中,首先录制一段不少于10秒的语音信号,并对录制的信号进行采样;其次使用MATLAB会出采样后的语音信号的时域波形和频谱图;然后在给原始的语音信号叠加上噪声,并绘出叠加噪前后的时域图及频谱图;再次设计FIR滤波器,针对语音信号的性质选取一种适合的窗函数设计滤波器进行滤波;最后对仿真结果进行分析。设计出的滤波器可以满足要求。 关键词: FIR滤波器;语音信号;MATLAB仿真 目录 一 FIR滤波器设计的基本原理 ................................................................................................... 1 1.1滤波器的相关介绍 ............................................................................................................ 1 1.1.1数字滤波器的概念 ................................................................................................... 1 1.1.2 IIR和FIR滤波器 .................................................................................................... 1 1.2利用窗函数法设计FIR滤波器 ........................................................................................ 1 1.2.1窗函数法设计FIR滤波器的基本思想 .................................................................... 1 1.2.2窗函数法设计FIR滤波器的步骤 ............................................................................ 2 1.2.2窗函数法设计FIR滤波器的要求 ............................................................................ 2 1.2.3常用窗函数的性质和特点 ....................................................................................... 3 1.2.4 语音处理中的采样原理 .......................................................................................... 3 二 语音信号去噪实现框图 ............................................................................................................ 5 三 详细设计 ................................................................................................................................... 7 3.1 信号的采集 ...................................................................................................................... 7 3.2 语音信号的读入与打开 ................................................................................................... 7 3.3 语音信号的FFT变换 ....................................................................................................... 8 3.4含噪信号的合成 ............................................................................................................... 9 3.5 FIR滤波器的设计 .......................................................................................................... 10 3.6 利用FIR滤波器滤波 ..................................................................................................... 11 3.7 结果分析 ........................................................................................................................ 14 总结 .............................................................................................................................................. 15 参考文献 ...................................................................................................................................... 16 附录 .............................................................................................................................................. 17 致谢 .............................................................................................................................................. 21 一 FIR滤波器设计的基本原理 1.1滤波器的相关介绍 1.1.1数字滤波器的概念 数字滤波器(Digital Filter,简称为DF)是指用来对输入信号进行滤波的硬件和软件。所谓数字滤波器,是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。数字滤波器和模拟滤波器相比,因为信号的形式和实现滤波的方式不同,数字滤波器具有比模拟滤波器精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配等优点。一般用两种方法来实现数字滤波器:一是采用通用计算机,把滤波器所要完成的运算编成程序通过计算机来执行,也就是采用计算机软 [1]件来实现;二是采用实际专用的数字处理硬件。 1.1.2 IIR和FIR滤波器 数字滤波器在数字信号处理的各种应用中发挥着十分重要的作用。它是通过对采样数据信号进行数学运算处理来达到滤波的目的。数字滤波器从实现的网络结构或者从单位脉冲响应可分为无限脉冲响应(IIR)滤波器和有限脉冲响应(FIR)滤波器。FIR滤波器的设计方法和IIR滤波器的设计方法有很大的不同,FIR滤波器设计任务是选择有限长度的h(n),使传输函数H(ejw)满足技术要求,FIR数字滤波器设计的方法有三种,第一种是窗函数法,第二种是频率采样法,第三种是切比雪夫等波逼近法。 从性能上说,IIR滤波器以非线性相位为代价以较低的阶数获得较高的选择性。而FIR滤波器想要获得相同的选择性阶数是IIR滤波器的5-10倍,结果成本较高、信号时延也较大:从结构上说,IIR采用递归结构,FIR采用非递归结构;从设计工具上说;IIR可以借助于模拟滤波器的成果,FIR滤波器一般采用没有封闭形式的设计公式;从使用场合上来看,在对相位要求不敏感的场合,如语音通讯等,选用IIR较为合适,可以充分发挥经济高效的特点。对图像处理、数据传输等以波形携带信息的系统,使用FIR较好。 1.2利用窗函数法设计FIR滤波器 1.2.1窗函数法设计FIR滤波器的基本思想 窗函数法的基本思想是要选取某一种合适的理想频率选择性滤波器,这种滤波器总是有一个非因果,无限长的脉冲响应,然后将它的脉冲响应截断(或加窗)以得到一个线性 [1] 相位和因果的FIR滤波器,因为必须设计一个因果可实现的FIR滤波器。 1 jw需要注意的是,数字滤波器的传输函数H(e)都是以2π为周期的,滤波器的低通频带处于2π的整数倍处,而高频频带处于π的奇数被附近,这一点和模拟滤波器是有区别的。 因为录制的语音信号是模拟信号,要想使用数字滤波器对叠加了噪声的信号进行滤波,则在设计数字滤波器之前首先要进行模数转换,将模拟信号转换为数字信号。 1.2.2窗函数法设计FIR滤波器的步骤 主要设计步骤为: (1)根据技术要求确定待求FIR滤波器的单位取样响应hd(n)。如果给出待求FIR滤波器 jw[1]的频率响应为Hd(e),那么单位取样响应使用(1-1)的公式求出: ,jwjwH(n)=1/2H(e)edw ( 1-1 ) ,dd,,, (2) 据过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度N(或阶数M=N-1),窗函数类型可根据最小阻带衰减As独立选择,因为窗口长度N对最小阻带衰减As没有影响,在确定窗函数类型以后,可根据过渡带宽小于给定指标确定所拟用的窗函数的窗口长度N,设待求滤波器的过渡带宽为Δw,它与窗口长度N近似成反比,窗函数类型确定后,其计算公式也确定了,不过这些公式是近似的,得出的窗口长度还要在计算中逐步修正,原则是在保证阻带衰减满足要求的情况下,尽量选择较小的N,在N和窗函数类型确定后, 即可调用MATLAB中的窗函数求出窗函数w(n)。 (3) 计算滤波器的单位取样响应h(n),使用(1-2)的公式求出: h(n)= hd(n)w(n) ( 1-2 ) [1] (4) 验算技术指标是否满足要求。 1.2.2窗函数法设计FIR滤波器的要求 在使用窗函数法设计FIR滤波器时要满足以下两个条件: (1)窗谱主瓣尽可能地窄,以获得较陡的过渡带; (2)尽量减少窗谱的最大旁瓣的相对幅度,也就是使能量尽量集中于主瓣,减小峰肩和纹波,进而增加阻带的衰减。 在实际工程中常用的窗函数有五种,即矩形窗(Rectangular)、三角窗(Triangular)、汉宁窗(Hanning)、汉明窗(Hamming)及凯塞窗(Kaiser)。 2 1.2.3常用窗函数的性质和特点 (1)矩形窗 矩形窗属于时间变量的零次幂窗。矩形窗使用最多,习惯上不加窗就是使信号通过了矩形窗。这种窗的优点是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,导致变换中带进了高频干扰和泄露漏,甚至出现负谱现象。 (2)三角形窗 三角形窗又称费杰窗,是幂窗的一次文形式。与矩形窗比较,主瓣宽约等于矩形窗的两倍,但旁瓣小,而且无负旁瓣。 (3)汉宁窗 汉宁窗又称升余弦窗,汉宁窗可以看作是3个矩形时间窗的频谱之和。汉宁窗优于矩形窗,但汉宁窗主瓣加宽,相当于分析带宽加宽,频率分辨力下降。 (4)哈明窗 哈明窗与汉宁窗都是余弦窗,只是加权系数不同,哈明窗加权的系数能使旁瓣达到更小,所以哈明窗又称为改进的升余弦窗。它的能量更加集中在主瓣中主瓣的能量约占99.96%第一主瓣的峰值比主瓣小40dB,但主瓣宽度和汉宁窗相同仍为8*π/N,哈明窗与汉宁窗都是很有用的窗函数。 (5)凯塞窗 以上几种窗函数是各以一定主瓣加宽为代价,来换取某种程度的旁瓣抑制,窗函数的主瓣宽度和旁瓣峰值衰耗是矛盾的,一项指标的提高总是以另一项指标的下降为代价,窗口选择实际上是对两项指标作权衡。而两项指标是跳变的,于是有人提出可调整窗,适当修改参数,可在这两项指标间作连续的选择。常用的可调整窗是凯塞(Kaiser)窗。而凯窗则是全面地反映主瓣与旁瓣衰减之间的交换关系,可以在它们两者之间自由地选择它们的比重。 1.2.4 语音处理中的采样原理 因为录制的语音信号是模拟信号,要想使用数字滤波器对叠加了噪声的信号进行滤波,则在设计数字滤波器之前首先要进行模数转换,将模拟信号转换为数字信号。 在进行模数转换的过程中,当最高采样频率fs大于信号中最高频率f的2倍时,即:fsmax?2fmax,采样之后的数字信号可以完整地保留原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5,10倍;采样定理又称奈奎斯特定理。 频带为F的连续信号 f(t)可用一系列离散的采样值f(t1),f(t1?Δt),f(t1?2Δt),...来示,只要这些采样点的时间间隔Δt?1/2F,便可根据各采样值完全恢复原来的 3 信号f(t)。这是时域采样定理的一种表述方式。时域采样定理的另一种表述方式是:当时间信号函数f(t)的最高频率分量为fm时,f(t)的值可由一系列采样间隔小于或等于1/2fm的采样值来确定,即采样点的重复频率f?2fm。 采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率的倒数是采样周期或者叫采样时间,它是采样之间的时间间隔。通俗的讲采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。 采样位数和采样率对于音频接口来说是最为重要的两个指标,也是选择音频接口的两个重要标准。无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。 [2] 。采样位数越多则捕捉到的信号越精确。每增加一个采样位数相当于力度范围增加了6dB 4 二 语音信号去噪实现框图 本次课程设计先完成语音信号的采集,并对所采集的语音信号加入不同的干扰噪声,对加入噪声的信号进行频谱分析,针对受干扰语音信号的特点设计不同的滤波器,然后利用窗函数法设计低通,高通,带通等滤波器对采集到的语音信号进行滤波处理,分析语音信号各频率段的特性。对加噪信号进行滤波,恢复原信号。把原始语音信号、加噪语音信号和滤波后的信号进行时域变换和频域变换,画出它们的时域波形和频域波形图,从视觉角度比较分析滤波的效果。实现框图如图2-1所示: 信号的采集 语音信号分析 含噪信号合成 数字滤波器的设计 滤 波 结果显示及分析 图2-1 整体设计流程图 要求录制一段语音信号,要求长度不小于10秒,并对录制的信号进行采样,在MATLAB中可以使用wavrecord()函数完成。 语音信号是一种非平稳的时变信号,它携带着各种信息。语音信号分析的目的就在与方便有效的提取并表示语音信号所携带的信息。语音信号分析主要是在时域和频域进行的。FFT为快速傅里叶变换,是离散傅里叶变换的快速算法,对语音信号进行FFT变换就是为了得到它的频域的图形,便于从图中观察出信号的幅度等特性。 在MATLAB软件平台下,给原始的语音信号叠加上噪声,绘制出叠加噪声之后的语音 5 信号时域图形及频域图形,可以在视觉上与原始信号图形对比。 这时的这语音信号已经是包含了噪声的合成信号,这些噪声的频率一般较高。所以可以利用MATLAB软件中设计的FIR滤波器进行滤波处理。根据信号的特性,计算出技术指标,利用凯瑟窗设计FIR滤波器。 利用设计好的凯瑟窗的低通FIR滤波器和高通FIR滤波器对合成的含噪信号进行滤波,绘制出FIR滤波器的频率响应,绘出滤波后的时域波形和频谱图,并对滤波前后的信号进行对比,分析信号的变化。 6 三 详细设计 本次课程设计中语音信号的录制以及进一步处理分析都选用了MATLAB平台。MATLAB是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB 将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,不断完善 MATLAB 产品以提高产品自身的竞争能力。MATLAB的数据分析和处理功能十分强大,运用它来进行语音信号的分析、处理和可视化相当便捷。而且编程易学、直观,代码非常符合人们的思维习惯。MATLAB几乎可以在各种机型和操作系统上运行,所以在可移植性和可扩充性上MATLAB远优越于其他的高级编程语言。MATLAB语言具有强大的数值计算能力和视图能力,其偏微分方程工具箱提供了有限元求解的一个强大而灵活的环境,并且有限元网格可做精细划 [3] 分以满足要求。 3.1 信号的采集 要求录制一段语音信号,要求长度不小于10秒,并对录制的信号进行采样。 在MATLAB中可以使用wavrecord()函数完成,例如:y=wavrecord(13*fs,fs,);可以用来录制13秒的语音,wavplay(y,fs); 用来播放录制的语音,wavwrite(y,fs,'aa.wav'); [5] wavwrite(y,'aa.wav');两句则是将录制的语音保存下来。 3.2 语音信号的读入与打开 在MATLAB中,[y,fs,bits]=wavread('aa.wav');用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。 wavplay(y,fs);用于语音的播放,也可以使用sound(y); 用于对声音的回放。向量y则就代表了一个信号,也即一个复杂的“函数表达式”,也可以说像处理一个信号的表达式一样处理这个声音信号。 在MATLAB中,实现语音的读入,并绘出了语音信号的原始信号图可采用fs=11025; 语音信号的采样频率为11025,x1=wavread('aa.wav'); 读取语音信号的数据赋给变量,sound(x1,11025); 用于播放语音信号。 语音信号是一种非平稳的时变信号,它携带着各种信息。在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。语音信号分析 7 的目的就在与方便有效的提取并表示语音信号所携带的信息。语音信号分析可以分为时域和变换域等处理方法,其中时域分析是最简单的方法,直接对语音信号的时域波形进行分析,提取的特征参数主要有语音的短时能量,短时平均过零率,短时自相关函数等。 原始语音信号图如图3-2-1所示: 图3-2-1 原始语音信号图 如图中提取的语音的波形图所示,整段音频数据中得声音高低起伏与录入的声音信号基本一致。 3.3 语音信号的FFT变换 FFT即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。在MATLAB的信号处理工具箱中函数FFT和IFFT用于快速傅立叶变换和逆变换。函数FFT用于序列快速傅立叶变换,其调用格式为y=fft(x),其中,x是序列,y是序列的FFT,x可以为一向量或矩阵,若x为一向量,y是x的FFT且和x相同长度;若x为一矩阵,则y是对矩阵的每一列向量进行FFT。如果x长度是2的幂次方,函数fft执行高速基,2FFT算法,否则fft执行一种混合基的离散傅立叶变换算法,计算速度较慢。函数FFT的另一种调用格式为y=fft(x,N),式中,x,y意义同前,N为正整数。函数执行N点的FFT,若x为向量且长度小于N,则函数将x补零至长度N;若向量x的长度大于N,则函数截短x使之长度为N;若x 为矩阵,按相同方法对x进行处理。 对语音信号进行FFT变换就是为了得到它的频域的图形,便于从图中观察出信号的幅 8 度等特性。如图3-3-1所示即为原始信号幅值图: 图3-3-1 原始信号幅值图 信号的傅立叶表示在信号的分析与处理中起着重要的作用。因为对于线性系统来说,可以很方便地确定其对正弦或复指数和的响应,所以傅立叶分析方法能完善地解决许多信号分析和处理问题。语音信号经过FFT变换之后,就可以得到信号的频域图形,另外,傅立叶表示使信号的某些特性变得更明显,因此,它能更深入地说明信号的各项宏物理现象。从图中可以看出语音信号的截止频率为4000Hz。 3.4含噪信号的合成 在MATLAB软件平台下,给原始的语音信号叠加上噪声,噪声类型分为如下几种:白噪声、单频噪声(正弦干扰)、多频噪声(多正弦干扰)、其他干扰,可设置为低频、高频、带限噪声、Chirp干扰、冲激干扰。 绘制出叠加噪声之后的语音信号时域图形及频域图形,在视觉上与原始信号图形对比,也可以通过Windows播放软件或者是利用MATLAB中的sound()函数从听觉上进行对比,分析并体会含噪语音信号频谱和时域波形的改变。 加噪后语音信号时域及频域图如图3-4-1所示: 9 图3-4-1 加噪后信号的时域及频域图 与原始信号对比,加入噪声后的波形与原始信号相比出现了一些区别:先原始信号没加噪音之前0到2000有幅值,在4000到6000之间没有幅值,但是在加了噪音之后4000到6000之间出现超过最大幅值15,超出了正常值。图3-3-1所示的原始信号幅度谱与加噪后图3-4-1所示的信号频谱对比可看出。 3.5 FIR滤波器的设计 数字滤波器的作用是利用离散时间系统的特性对输入信号波形(或频谱)进行加工处理,或者说利用数字方法按预定的要求对信号进行变换。 数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。数字滤波器有多种分类,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。从性能上来说,IIR滤波器传输函数的极点可位于单位圆内的任何地方,因此可用较低的阶数获得高的选择性,所用的存贮单元少,所以经济而效率高。但是这个高效率是以相位的非线性为代价的。选择性越好,则相位非线性越严重。相反,FIR滤波器却可以得到严格的线性相位,然而由于FIR滤波器传输函数的极点固定在原点,所以只能用较高的阶数达到高的选择性;对于同样的滤波器设计指标,FIR滤波器所要求的阶数可以比IIR滤波器高5~10倍,结果,成本较高, 10 信号延时也较大;如果按相同的选择性和相同的线性要求来说,则IIR滤波器就必须加全通网络进行相位较正,同样要大增加滤波器的节数和复杂性。 整体来看,IIR滤波器达到同样效果阶数少,延迟小,但是有稳定性问题,非线性相位;FIR滤波器没有稳定性问题,线性相位,但阶数多,延迟大。 给出滤波器的归一化性能指标,采用窗函数法设计各种类型的滤波器(低通、高通、 [4] 带通、带阻)来对叠加噪声后的与语音信号进行滤波处理。 3.6 利用FIR滤波器滤波 利用凯瑟窗设计低通FIR滤波器,利用凯瑟窗设计高通FIR滤波器对合成的含噪信号进行滤波,绘制出FIR滤波器的频率响应,绘出滤波后的时域波形和频谱图,并对滤波前后的信号进行对比,分析信号的变化;在相同的性能指标下比较个方法的滤波效果,并从理论上进行分析。 语音信号中包含背景噪声,这些噪声的频率一般较高。所以可以利用MATLAB软件中设计的FIR滤波器进行滤波处理,得到较为理想的语音信号。 从以上各种数字滤波器经过滤波后得出的语音信号相比较,使用低通滤波器滤波以后,声音稍微有些发闷,但是很接近原来录制的声音;使用高通滤波器滤波后则听不到人的声音。 (1) 用凯瑟窗设计FIR低通滤波器 利用凯瑟窗设计的FIR低通滤波器,滤波器的性能指标为:fp=1000;fs=1200;rs=100;Fs=8000。 凯瑟窗是全面地反映主瓣与旁瓣衰减之间的交换关系,可以在它们两者之间自由地选择主瓣与旁瓣衰减的比重。图示的3-6-1及3-6-2分别为利用凯瑟窗设计的低通滤波器和滤波前后的语音信号图: 11 图3-6-1 凯瑟窗设计低通滤波器的频谱图 -6-2 滤波前后的信号的比较 图3 从图3-6-1与3-6-2看出,加噪声后的语音信号经过FIR滤波器滤波后,时域和频域图与原始信号几乎一样,说明噪声几乎都被滤掉了,也说明FIR滤波器设计很理想,能满足所需要求。 使用凯瑟窗设计的FIR低通滤波器滤波以后,听到的声音稍微有些发闷、低沉,原因是高频分量被FIR低通滤波器衰减。但是得到的已经是很接近原来的声音了。 12 图3-6-3及3-6-4分别为利用凯瑟窗设计的高通滤波器和滤波前后的语音信号图: (2)用凯瑟窗设计FIR高通滤波器 图3-6-3 凯瑟窗设计的高通滤波器的频谱 图3-6-4 滤波前后信号的比较 利用凯瑟窗设计高通滤波器,滤波器的性能指标为:fp=3000;fs=2800;FS=8000;as=100。 高通滤波器滤波以后,此时只有少许杂音,原因是低频分量被高通滤波器衰减,而人声部分正好是低频部分,所以只剩下杂音,或者发出高频杂音但人的耳朵听不到。 13 3.7 结果分析 通过对比分析可知,滤波后的输出波形和原始语音加噪声信号的图形发生了一些变化:滤波后的输出波形明显在对应时间幅度比原语音加噪声信号的要小,而且滤波的效果也与滤波器的选择有关,可以看出滤波器的性能差异以及参数的调节会对滤波器产生一定的影响,并且通过回放可以发现滤波前后的声音有变化.低通滤波后,已很接近原来的声音。从频谱图中我们还可以看出声音的能量信号主要集中在低频部分,说明高频语音信号被滤出,滤波器达到既定要求。在采样时要注意音频要为单声道,否则会提示出错,无法利用freqz绘制原始语音信号的频率响应图。 14 总结 要求录制一段语音信号,要求长度不小于10秒,并对录制的信号进行采样。 在MATLAB中可使用wav()函数完成录制一段语音,在MATLAB中[y,fs,bits]=wavread(); 用于读取语音,wavplay(y,fs);用于语音播放,也可以使用函数sound()。 语音信号是一种非平稳的时变信号,它携带着各种信息。语音信号分析的目的就在与方便有效的提取并表示语音信号所携带的信息。语音信号分析可以分为时域和变换域等处理方法,其中时域分析是最简单的方法,直接对语音信号的时域波形进行分析,提取的特征参数。语音信号经过FFT变换之后,就可以得到信号的频域图形,另外,频域图形使信号的某些特性变得更明显,信号的傅立叶表示在信号的分析与处理中起着重要的作用。因为对于线性系统来说,可以很方便地确定其对正弦或复指数和的响应,所以傅立叶分析方法能完善地解决许多信号分析和处理问题。 应用MATLAB 根据给定的技术指标进行FIR 数字滤波器设计时,可根据设计要求随时改变参数,以使滤波器达到最优化。 使用凯瑟窗设计低通、高通滤波器,并对叠加噪声后的语音信号进行滤波。比较滤波前后的时域波形和频谱并进行分析。在频域波形中,我们可以明显的看到设计的滤波器对语音信号进行了滤波处理,将噪声进行了滤除。此次滤波基本达到了要求,完成了设计指标。 总之,加噪声的后的语音信号经过FIR滤波器的滤波处理,时域和频域图与原始信号都几乎一样,这说明噪声几乎全被滤掉了,同时也说明FIR滤波器设计还算理想,能满足所需要求。也可看出滤波之后仍有一小段噪声没有滤除,后面经过调试滤波器的参数发现当fp、fs参数的数值相差增大时,剩余噪声便会减少,于是通过进一步调试得到了较好的效果。 低通滤波后,声音稍微有些发闷、低沉,原因是高频分量被低通滤波器衰减。但是很接近原来的声音。高通滤波器滤波以后,此时只有少许杂音,原因是低频分量被高通滤波器衰减,而人声部分正好是低频部分,所以只剩下杂音,或者发出高频杂音但人的耳朵听不到。 本课程设计的主要目的是在MATLAB环境下,使用窗函数设计法设计一个FIR滤波器,并对叠加了噪声后的语音信号进行滤波去噪。此次滤波基本达到了要求,完成了设计指标。 15 参考文献 [1]丁美玉. 数字信号处理. 西安电子科技大学出版社 151:222 [2]朱冰莲 .数字信号处理. 电子工业出版社 87:93 [3]李勇、徐震,MATLAB辅助现代工程数字信号处理,西安电子科技大学出版社 48:56 [4]刘树棠译.数字信号处理——使用MATLAB.西安:西安交通大学出版社 42:49 [5]罗军辉等编著.MATLAB7.0在数字信号处理中的应用.北京:机械工业出版社.28:34 16 附录 %声音采集及绘制原始语音信号的时域波形和FFT频谱图 [x,fs]=wavread('aa.wav') x=x(:,1); FS=length(x); f=0;fs/FS;(FS-1)*fs/FS; sound(x); %播放语音信号 X=fft(x,4096); magX=abs(X); angX=angle(X); y1=fft(x,1024); %对信号做1024点FFT变换 f=fs*(0:511)/1024; figure(1) subplot(211);plot(magX);title('原始信号幅值'); grid on; subplot(212);plot(angX);title('原始信号相位'); grid on; figure(2) subplot(211); plot(x); %绘制原始语音信号的时域波形图 title('原始语音信号时域波形图'); xlabel('time n'); ylabel('fuzhi n'); grid on; Subplot(212); %绘制原始语音信号的频率响应图 plot(f,abs(y1(1:512))); title('原始语音信号频谱图') xlabel('Hz'); ylabel('fudu'); grid on; 17 %添加随机噪声及添加噪声后的时域图和频谱图 noise_mu=0; noise_var=0.05; x0=randn(size(x)).*sqrt(noise_var)+noise_mu; x1=x+x0; ts=1/fs; % 绘制在原始信号上加随机噪声的信号图 ta=(length(x)-1)/fs; t=0:ts:ta; figure(3); subplot(211); plot(t,x1); title('加随机噪声后语音信号时域图'); xlabel('t'); ylabel('x1'); grid on; y2=fft(x1,1024); %对信号做1024点FFT变换 f=fs*(0:511)/1024; Subplot(212); %绘制原始语音信号的频率响应图 plot(f,abs(y2(1:512))); title('加随机噪声后的语音信号频谱图') xlabel('Hz'); ylabel('fudu'); grid on; sound(x1); %用凯瑟窗设计FIR低通滤波器 fp=1000;fs=1200;rs=100;Fs=8000; %kaiser滤波器设计 wp=2*pi*fp/Fs;ws=2*pi*fs/Fs; Bt=ws-wp; alph=0.112*(rs-8.7); M=ceil((rs-8)/2.285/Bt); wc=(wp+ws)/2/pi; hn=fir1(M,wc,kaiser(M+1,alph)); 18 figure(4); freqz(hn); [y,fn,nbits]=wavread('mn.wav'); Y=fft(y); y1=fftfilt(hn,y); %利用 kaiser滤波器对语音信号滤波 Y1=fft(y1); n=0:length(y)-1; figure(5); subplot(221);plot(y);title('未滤波语音波形'); subplot(222);plot(y1);title('滤波后语音波形'); subplot(223);plot(n,Y);title('未滤波语音频谱'); subplot(224);plot(n,Y1);title('滤波后语音频谱'); sound(y1,fn,nbits); %滤波后语音回放 %用凯瑟窗设计FIR数字高通滤波器 clear all;close all;clc; fp=3000;fs=2800;FS=8000;as=100; wp=2*pi*fp/FS;ws=2*pi*fs/FS; Bt=wp-ws; alph=0.112*(as-8.7); M=ceil(as-8/2.285/Bt); wc=(wp+ws)/2/pi; hn=fir1(M,wc,'high',kaiser(M+1,alph)); figure(1); freqz(hn) [y,fn,nbits]=wavread('暗暗.wav'); Y=fft(y); y1=fftfilt(hn,y); %用kaiser滤波器进行滤波 Y1=fft(y1); n=0:length(y)-1; figure(2); subplot(221);plot(y);title('未滤波语音波形'); subplot(222);plot(y1);title('滤波后语音波形'); 19 subplot(223);plot(n,Y);title('未滤波语音频谱'); subplot(224);plot(n,Y1);title('滤波后语音频谱'); sound(y1,fn,nbits); %滤波后语音回放 20 致谢 通过本次信号处理课程设计,我了解到了做任何事都要有耐心、更要细心做事。这次的课程设计让我也意识到自己的理论知识还是不够好,在今后的学习中我们需要更努力的学习课本的专业知识。课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。我学到了许多东西,体会到了从书本学习与实际应用中的不同,这种感同身受必将对我们今后的学习与生活带来很大的帮助。 虽然我们每个人都有自己的题目,但是我们还是充分发挥了我们的团结合作能力,有什么错误的大家一起讨论,一起找资料解决,特别是题目相似的同学,大家有资料都一起研究,而且还有我们指导老师陈老师的精心指导,大家合作得都很愉快。 最后,在这里我还要感谢陈海燕老师给予我的帮助,以前很少与她进行交流,但是通过这次课程设计,在她的指导下她我学到了很多以前没有学到的东西也让我明白了自己的不足,在以后的日子里,我会不断的努力学习,把专业学好,并锻炼自己独立思考、解决问题的能力,理论联系实际学以致用,真正地达到锻炼自己能力的目的,取得更大的进步! 21
/
本文档为【基于MATLAB的FIR滤波器语音信号去噪】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索