基于MATLAB的语音信号的分析与处理_第1页
基于MATLAB的语音信号的分析与处理_第2页
基于MATLAB的语音信号的分析与处理_第3页
基于MATLAB的语音信号的分析与处理_第4页
基于MATLAB的语音信号的分析与处理_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于MATLAB的语音信号分析与处理 摘要语音信号的处理是一门非常重要的学科,如今普遍应用在电话通信、助听器等方面。本次设计主要是为了在MATLAB软件的帮助下处理一段加噪的声音信号,该过程会涉及到采样定理,傅立叶变换等理论和算法在设计过程中的实际应用。在本次设计中,我们关注的是在驱除噪声污染是所需要的滤波器的选择,充分比较各种优缺点后,再利用滤波器来驱除杂音。通过滤波前后的声音的频谱图的比较,来了解滤波器的特性和作用,并得到本次设计的结果。关键词:语音信号;MATLAB;傅立叶变换;滤波器目 录摘要1 绪论11.1 课题的研究背景及意义11.1 设计任务12 语音信号处理的基本理论知识12.

2、1 采样频率和采样位数12.2 采样定理12.3 IIR数字滤波器22.4 FIR数字滤波器22.5 IIR数字滤波器和FIR数字滤波器的比较32.6 倒谱33 语音信号处理和理论方案33.1 语音信号的采集33.2 语音信号的处理43.3 系统框图44 语音信号处理的实例分析.54.1语音文件在MATLAB平台上的录入与打开54.2原始语音信号频谱分析及仿真54.3加噪语音信号频谱分析及仿真84.4去噪及仿真134.5 语音信号的回放184.6结合去噪后的频谱图对比两种方式滤波的优缺点185 总结.196 致谢.19参考文献201绪论1.1课题的研究背景及意义语言是我们人类所特有的功能,它是

3、传承和记载人类几千年文明史,没有语言就没有我们今天人类的文明。语音是语言最基本的表现形式,是相互传递信息最重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。语音信号处理属于信息科学的一个重要分支,大规模集成技术的高度发展和计算机技术的飞速前进,推动了这一技术的发展;它是研究用数字信号处理技术对语音信号进行处理的一门新兴学科,同时又是综合性的多学科领域和涉及面很广的交叉学科,因此我们进行语言信号处理具有时代的意义。1.2设计任务本设计先完成语音信号的采集,然后设计低通,带通等滤波器对采集到的语音信号进行滤波处理,分析语音信号各频率段的特性。并对所采集的语音信号加入不同的干扰噪声,

4、对加入噪声的信号进行频谱分析,针对受干扰语音信号的特点设计不同的滤波器,对加噪信号进行滤波,恢复原信号。把原始语音信号、加噪语音信号和滤波后的信号进行时域变换和频域变换,画出它们的时域波形和频域波形图,从视觉角度比较分析滤波的效果。2语音信号处理的基本理论知识2.1采样频率和采样位数采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。采样频率与声音频率之间有一定的关系,根据奎斯特理论,只有采样频率高于声音信号最高频率的两倍时,才能把数字信

5、号表示的声音还原成为原来的声音。这就是说采样频率是衡量声卡采集、记录和还原声音文件的质量标准。采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。采样位数和采样率对于音频接口来说是最为重要的两个指标,也是选择音频接口的两个重要标准。无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。每增加一个采样位数相当于力度范围增加了6dB。采样位数越多则捕捉到的信号越精确。2.2 采样定理在进行模拟/数字信号的转换过程中,当采样频率fs.

6、max大于信号中,最高频率fmax的2倍时,即:fs.max>=2fmax,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的510倍;采样定理又称奈奎斯特定理。 1924年奈奎斯特(Nyquist)就推导出在理想低通信道的最高大码元传输速率的公式:理想低通信道的最高大码元传输速率=2W*log2 N (其中W是理想低通信道的带宽,N是电平强度)2.3 IIR数字滤波器IIR(Infinite Impulse Response)数字滤波器,又名“无限脉冲响应数字滤波器”,或“递归滤波器”。递归滤波器,也就是IIR数字滤波器,顾名思义,具有反馈,一

7、般认为具有无限的脉冲响应。IIR滤波器有以下几个特点:(1)封闭函数:IIR数字滤波器的系统函数可以写成封闭函数的形式。 (2)IIR数字滤波器采用递归型结构:IIR数字滤波器采用递归型结构,即结构上带有反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。 (3)借助成熟的模拟滤波器的成果:IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要

8、求不高。在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,再通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。(4)需加相位校准网络:IIR数字滤波器的相位特性不好控制,对相位要求较高时,需加相位校准网络。2.4 FIR数字滤波器FIR数字滤波器(finite impulse response filter)又名“有限脉冲响应数字滤波器”,这类滤波器对于脉冲输入信号的响应最终趋向于0,因此而得名。有限脉冲响应滤波器(FIR filter)的优点:(1) 脉冲响应(impulse response)为有限长:造成当输入数位讯号为有限长的时候,输出数位讯号也为有限长。(2)

9、 比无限脉冲响应滤波器(IIR filter)较容易最佳化(optimize)。(3) 线性相位(linear phase):造成h(n),是偶对称(even)或奇对称(odd)且有限长。(4)一定是稳定的(stable):因为Z转换(Z transform)后所有的极点(pole)都在单位圆内2.5 IIR数字滤波器和FIR数字滤波器的比较 不论是IIR滤波器还是FIR滤波器的设计都包括三个步骤:(1)按照实际任务的要求,确定滤波器的性能指标。(2)用一个因果、稳定的离散线性时不变系统的系统函数去逼近这一性能指标。根据不同的要求可以用IIR系统函数,也可以用FIR系统函数去逼近。(3)利用有

10、限精度算法实现系统函数,包括结构选择、字长选择等。但IIR滤波器和FIR滤波器的设计方法完全不同。IIR滤波器设计方法有间接法和直接法,间接法是借助于模拟滤波器的设计进行的。其设计步骤是:先设计过渡模拟滤波器得到系统函数H(s),然后将H(s)按某种方法转换成数字滤波器的系统函数H(z)。FIR滤波器比鞥采用间接法,常用的方法有窗函数法、频率采样发和切比雪夫等波纹逼近法。对于线性相位滤波器,经常采用FIR滤波器。2.6 倒谱定义:倒谱定义为信号短时振幅谱的对数傅里叶反变换。特点:具有可近似地分离并能提取出频谱包络信息和细微结构信息的特点用途:提取声道特征信息:提取频谱包络特征,以此作为描述音韵

11、的特征参数而应用于语音识别。提取音源信息:提取基音特征,以此作为描述音韵特征的辅助参数而应用于语音识别。求法:DPTLogIDPT样值检测DPT时间窗时间窗(lifter)ABCDEFX(n)A:短时信号;B:短时频谱;C:对数频谱; D:倒谱系数;E:对数频谱包络; F:基本周期图2-1倒谱框图3 语音信号处理和理论方案3.1 语音信号的采集利用PC机上的声卡和WINDOWS操作系统可以进行数字信号的采集。将话筒输入计算机的语音输入插口上,启动录音机。按下录音按钮,接着对话筒说话“课程设计”,说完后停止录音,屏幕左侧将显示所录声音的长度。点击放音按钮,可以实现所录音的重现。以文件名“kech

12、engsheji.wav”保存入F : 中。可以看到,文件存储器的后缀默认为. wav ,这是WINDOWS操作系统规定的声音文件存的标准。为了方便比较,需要在安静、无噪音、干扰小的环境下录。3.2 语音信号的处理语言信号的处理包括信号的采集和提取,信号的调整,信号的变换,信号的滤波。语音信号是一个随时会变化的随机信号,它的变化是不具备规律性的。语音信号的时域分析:语音信号的变化有一个过程,在一个较短的时间内语音信号的特征基本保持不变,即语音的短时平稳性。因而出现了短时分析技术,就是把语音信号分成一段一段来处理,这个一段所包含的的时间比较短,一般是20ms,在这么短的时间内,信号的特征一般不会

13、变化。所以可以把语音信号当做一个平稳过程来分析和处理语音信号。通过短时的能量分析手段,可以知道信号的能量分布,区分信号信号中的浊音短和清音短段。(1)提取:通过MATLAB软件中的wavread函数提取下载来的声音信号,完成该音频信号的频率,幅度等信息的提取,并得到该语音信号的波形图。(2)调整:对原始语音信号添加一个随机函数,以此作为噪音,达到语音信号的加噪。语音信号的频域分析:研究语音信号的频率,可以明白频率与声音的关系,一般来说,声音的高低与频率的大小有直接的关系,当然,这只是从粗浅的方面来看。频域分析不只是研究声音与信号的频率。还研究频率与信号功率之间的关系,这就是功率谱估计。通过语音

14、信号的功率谱,可以看出功率与声音信号的关系,具体应用到雷达方面的话,可以预判出分级的航行轨迹。频域分析的方法一般有三种,其中利用傅里叶函数来研究是最常用的的方法,对一个语音信号进行快速傅立叶变换,就能得到频谱图,对信号的频谱取对数后再进行傅里叶逆变换,就能得到倒谱图。通过对倒谱图的研究,可以解决语音识别技术中的语速变化识别的问题。通过对语音信号频域的研究,可以充分了解信号的各种特征,知道频率与声音的联系。(1)变换:在MATLAB软件中,对语音信号进行傅立叶变换,得到信号的频谱图。(2)滤波:我们可以采用低通滤波、高通滤波器、带通滤波和带阻滤波的方式,来滤除语音信号中的噪声部分,并比较各种滤波

15、之后的效果。最后,通过用户图形界面,把滤波后的信号进行播放,进行观察,并比较前后的图形,得出结论。3.3程序框图语音信号处理的流程如图3-1所示。信号采集效果显示信号滤波信号加噪信号变换信号提取图3-1程序框图我们先进行信号的采集,采集来的信号进行四步处理,即信号提取,信号调整,信号交换,信号滤波,最后将效果显示出来。4 语音信号分析处理和滤波4.1语音文件在MATLAB平台上的录入与打开单击自己的电脑开始程序,选择所有程序,接着选择附件,再选择娱乐,最后选择录音。自己录入“课程设计”语音信号,然后保存在MATLAB文件夹里面,命名为“kechengsheji.wav”。利用MATLAB中的w

16、avread命令来读入(采集)语音信号,将它赋值给某一向量。y,fs,bits=wavread(' N1 N2);用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。N1 N2表示读取从N1点到N2点的值(若只有一个N的点则表示读取前N点的采样值)。4.2 原始语音信号频谱分析及仿真利用MATLAB中的wavread命令来读入(采集)语音信号,将它赋值给某一向量。再将该向量看作一个普通的信号,对其进行FFT变换实现频谱分析,再依据实际情况对它进行滤波。对于波形图与频谱图(包括滤波前后的对比图)都可以用 MATLAB画出。我们还可以通过sound命令来对语音

17、信号进行回放,以便在听觉上来感受声音的变化。选择设计此方案,是对数字信号处理的一次实践。在数字信号处理的课程学习过程中,我们过多的是理论学习,几乎没有进行实践方面的运用。这个课题正好是对数字语音处理的一次有利实践,而且语音处理也可以说是信号处理在实际应用中很大众化的一方面。这个方案用到的软件也是在数字信号处理中非常通用的一个软件MATLAB软件。所以这个课题的设计过程也是一次数字信号处理在MATLAB中应用的学习过程。课题用到了较多的MATLAB语句,而由于课题研究范围所限,真正与数字信号有关的命令函数却并不多。sound(x,fs,bits); 用于对声音的回放。向量y则就代表了一个信号(也

18、即一个复杂的“函数表达式”)也就是说可以像处理一个信号表达式一样处理这个声音信号。FFT的MATLAB实现:在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)式中

19、,x,y意义同前,N为正整数。函数执行N点的FFT。若x为向量且长度小于N,则函数将x补零至长度N。若向量x的长度大于N,则函数截短x使之长度为N。若x 为矩阵,按相同方法对x进行处理。经函数fft求得的序列y一般是复序列,通常要求其幅值和相位。MATLAB提供求复数的幅值和相位函数:abs,angle,这些函数一般和 FFT同时使用。函数abs(x)用于计算复向量x的幅值,函数angle(x)用于计算复向量的相角,介于 和 之间,以弧度表示。函数unwrap(p)用于展开弧度相位角p ,当相位角绝对变化超过 时,函数把它扩展至 。用MATLAB工具箱函数fft进行频谱分析时需注意:(1)函数

20、fft返回值y的数据结构对称性一般而言,对于N点的x(n)序列的FFT是N点的复数序列,其点n=N/2+1对应Nyquist频率,作频谱分析时仅取序列X(k)的前一半,即前N/2点即可。X(k)的后一半序列和前一半序列时对称的。(2)频率计算 若N点序列x(n)(n=0,1,N-1)是在采样频率 下获得的。它的FFT也是N点序列,即X(k)(k=0,1,2,N-1),则第k点所对应实际频率值为f=k*f /N.(3)作FFT分析时,幅值大小与FFT选择点数有关,但不影响分析结果。下面的一段程序是语音信号在MATLAB中的最简单表现,它实现了语音的读入打开,以及绘出了语音信号的波形频谱图。x,f

21、s,bits=wavread('wangqingtian.wav);sound(x,fs,bits);X=fft(x,4096);magX=abs(X);angX=angle(X);subplot(221);plot(x);title('原始信号波形');subplot(222);plot(X); title('原始语音信号采样后的频谱图)subplot(223);plot(magX);title('原始信号幅值');subplot(224);plot(angX);title('原始信号相位');程序运行可以听到声音,得到的图形为

22、:(图4-1、图4-2、图4-3、图4-4)图4-1 原始信号波形图4-2 原始语音信号采样后频谱图图4-3 原始信号幅值图4-4 原始信号相位4.3 加噪语音信号频谱分析及仿真(1)正弦波信号加入原始语音信号前面已经介绍了MATLAB软件相关知识,那么我们怎么在NATLAB平台上实现对一段原始语音信号加入一个正弦波信号呢? 下面一段程序实现了在原始语音信号加入正弦波信号。 y,fs,bits=wavread('wangqingtian.wav');sound(y,fs)n=length(y)y_p=fft(y,n);f=fs*(0:n/2-1)/n;figure(1)subp

23、lot(2,1,1);plot(y);title('原始语音信号采样后时域波形');xlabel('时间轴')ylabel('幅值 A')subplot(2,1,2);plot(f,abs(y_p(1:n/2);title('原始语音信号采样后的频谱图');xlabel('频率Hz');ylabel('频率幅值');noise=1*sin(2*pi*3000*n);y_z=y+noise;sound(y_z,fs)L=length(y_z);y_zp=fft(y_z,L);f=fs*(0:L/2-1

24、)/L;figure(2)subplot(2,1,1);plot(y_z);title('加噪语音信号时域波形');xlabel('时间轴')ylabel('幅值 A')subplot(2,1,2);plot(f,abs(y_zp(1:L/2);title('加噪语音信号频谱图');xlabel('频率Hz');ylabel('频率幅值'); 分析此段程序可知,此程序是先对原始语音信号做时域波形分析和频谱分析,然后再对加噪的语音信号做时域波形分析和频谱分析。首先通过MATLAB中调用和回放语音信号命

25、令来实现对原始语音信号的调用和回放,程序如下:y,fs,bits=wavread('wangqingtian.wav');sound(y,fs)由于在MATLAB中,如要实现两个信号的相加减,那么两个信号的长度和维度都要一样才能相加减。程序中:n=length(y) 用于计算信号的长度和选取变换的点数。然后用傅里叶变换到频域:y_p=fft(y,n);通过函数 f=fs*(0:n/2-1)/n;计算出对应点的频率,然后绘制出原始语音信号的时域波形和频谱图。图形如下:(图45)图45 原始语音信号采样后时域波形和频谱图上段程序中,函数noise是频率为3000Hz的正弦波信号噪音

26、,语句y_z=y+noise实现了两个信号的相加,然后绘制加噪后的语音信号时域波形和频谱图并回放加噪后的语音信号。加噪后的时域波形和频谱图如下:(图46)图4-6 加噪语音信号时域波形和频谱图如上所示,通过对加噪前和加噪后语音信号的图像的对比和对语音信号回放的人耳感知可以知道,加入正弦波信号后频谱图和时域波形并没有什么明显的变化,而人耳听到的声音也几乎没有什么变化。(2)随机噪音信号加入原始语音信号matlab函数randn:产生正态分布的随机数或矩阵的函数 产生均值为0,方差 2 = 1,标准差 = 1的正态分布的随机数或矩阵的函数。用法: Y = randn(n) 返回一个n*n的随机项的

27、矩阵。如果n不是个数量,将返回错误信息。Y = randn(m,n) 或 Y = randn(m n) 返回一个m*n的随机项矩阵。Y = randn(m,n,p,.) 或 Y = randn(m n p.)产生随机数组。 Y = randn(size(A) 返回一个和A有同样维数大小的随机数组。 randn返回一个每次都变化的数量。下面一段程序实现了利用randn函数把一段随机噪音信号加入原始语音信号的信号处理过程:y,fs,bits=wavread('wangqingtian.wav');sound(y,fs)n=length(y)y_p=fft(y,n);f=fs*(0:

28、n/2-1)/n;figure(1)subplot(2,1,1);plot(y);title('原始语音信号采样后的时域波形');xlabel('时间轴')ylabel('幅值A')subplot(2,1,2);plot(f,abs(y_p(1:n/2);title('原始语音信号采样后的频谱图');xlabel('频率Hz');ylabel('频率幅值');L=length(y)noise=0.1*randn(L,2);y_z=y+noise;sound(y_z,fs)n=length(y);y_

29、zp=fft(y_z,n);f=fs*(0:n/2-1)/n;figure(2)subplot(2,1,1);plot(y_z);title('加噪语音信号时域波形');xlabel('时间轴')ylabel('幅值A')subplot(2,1,2);plot(f,abs(y_zp(1:n/2);title('加噪语音信号频谱图');xlabel('频率Hz');ylabel('频率幅值');语句 L=length(y) noise=0.1*randn(L,2) y_z=y+noise;sound(

30、y_z,fs)加噪后语音信号的时域波形、频谱图(图47)图4-7 加噪语音信号时域波形和频谱图通过对两张图片的对比,很明显可以看加噪后的语音信号时域波形比原始语音信号浑浊了许多,在时间轴上可以明显看出00.5S的幅值增大了;通过对原始语音信号的频谱图与加噪后的语音信号频谱图的对比,也可以看出在频率5000Hz以后的频率幅值发生了明显的增加。再通过对原始语音信号的回放效果与加噪后的语音信号回放的效果的对比,人耳可以明显辨别出两种语音信号不一样了,加噪后的语音信号在听觉上比原始语音信号要浑浊很多,而且还有吱吱嘎嘎的混杂音。4.4 去噪及仿真(1)FIR滤波器法去噪通过对上一节中加噪语音信号和原始语

31、音信号频谱图对比可以知道,噪音大部分是Hz大于5000的部分,故设计低通滤波器进行滤波处理。接下来我们要用设计的FIR低通滤波器对上一节中加噪语音信号进行滤波处理。用自己设计的FIR数字低通滤波器对加噪的语音信号进行滤波时,在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波。函数fftfilt用的是重叠相加法实现线性卷积的计算。调用格式为:y=fftfilter(h,x,M)。其中,h是系统单位冲击响应向量;x是输入序列向量;y是系统的输出序列向量;M是有用户选择的输入序列的分段长度,缺省时,默认的输入向量的重长度M=512。用设计好的FIR数字低通滤波器对加噪语音信号的滤波程

32、序:y,fs,bits=wavread('wangqingtian.wav');sound(y,fs)n=length(y)y_p=fft(y,n);f=fs*(0:n/2-1)/n;figure(1)subplot(2,1,1);plot(y);title('原始语音信号采样后的时域波形');xlabel('时间轴')ylabel('幅值A')subplot(2,1,2);plot(f,abs(y_p(1:n/2);title('原始语音信号采样后的频谱图');xlabel('频率Hz');yla

33、bel('频率幅值');L=length(y)noise=0.1*randn(L,2);y_z=y+noise;sound(y_z,fs)n=length(y);y_zp=fft(y_z,n);f=fs*(0:n/2-1)/n;figure(2)subplot(2,1,1);plot(y_z);title('加噪语音信号时域波形');xlabel('时间轴')ylabel('幅值A')subplot(2,1,2);plot(f,abs(y_zp(1:n/2);title('加噪语音信号频谱图');xlabel(&#

34、39;频率Hz');ylabel('频率幅值');Ft=5000;Fp=1000;Fs=1200;wp=2*Fp/Ft;ws=2*Fs/Ft;rp=1;rs=50;p=1-10.(-rp/20);s=10.(-rs/20);fpts=wp ws;mag=1 0;dev=p s;n21,wn21,beta,ftype=kaiserord(fpts,mag,dev);b21=fir1(n21,wn21,Kaiser(n21+1,beta);h,w=freqz(b21,1);plot(w/pi,abs(h);title('FIR低通滤波器');x=fftfil

35、t(b21,y_z);X=fft(x,n);figure(4);subplot(2,2,1);plot(f,abs(y_zp(1:n/2);title('滤波前信号的频谱');subplot(2,2,2);plot(f,abs(X(1:n/2);title('滤波后信号的频谱');subplot(2,2,3);plot(y_z);title('滤波前信号的时域波形')subplot(2,2,4);plot(x);title('滤波后信号的时域波形')sound(x,fs,bits)得到的图像如下:(图48)图4-8 FIR滤波前和

36、滤波后波形及频谱分析:从以上四图可以很明显和直观的看出原始语音信号和加噪语音信号时域波形和频谱图的区别。加噪后的语音信号的时域波形比原始语音信号要模糊得多,频谱图则是在频率5000Hz以后出现了明显的变化。再通过滤波前的信号波形和频谱图的对比,可以明显看出滤波后的波形开始变得清晰了,有点接近原始信号的波形图了。滤波后信号的频谱图也在5000Hz以后开始逐渐接近原始语音信号的频谱图。再从对语音信号的回放,人耳可以明显辨别出加噪后的语音信号比较浑浊,还有很明显嘎吱嘎吱的杂音在里面。滤波后,语音信号较加噪后的信号有了明显的改善,基本可以听清楚了,而且杂音也没有那么强烈,但是声音依然没有原始语音信号那

37、么清晰脆耳。(2)IIR滤波器法去噪同样,也设计一个IIR低通滤波器对加噪语音信号进行内部处理。Ft=8000;Fp=1000;Fs=1200;wp=2*pi*Fp/Ft;ws=2*pi*Fs/Ft;fp=2*Ft*tan(wp/2);fs=2*Fs*tan(wp/2);n11,wn11=buttord(wp,ws,1,50,'s'); %求低通滤波器的阶数和截止频率b11,a11=butter(n11,wn11,'s'); %求S域的频率响应的参数num11,den11=bilinear(b11,a11,0.5); %双线性变换实现S域到Z域的变换h,w=fr

38、eqz(num11,den11); %根据参数求出频率响应plot(w*8000*0.5/pi,abs(h);legend('用butter设计');grid;y,fs,nbits=wavread ('BYSJ.wav');n = length (y) ; %求出语音信号的长度noise=0.01*randn(n,2); %随机函数产生噪声s=y+noise; %语音信号加入噪声S=fft(s); %傅里叶变换z11=filter(num11,den11,s);sound(z11);m11=fft(z11); %求滤波后的信号subplot(2,2,1);plo

39、t(abs(S),'g');title('滤波前信号的频谱');grid;subplot(2,2,2);plot(abs(m11),'r');title('滤波后信号的频谱');grid;subplot(2,2,3);plot(s);title('滤波前信号的波形');grid;subplot(2,2,4);plot(z11);title('滤波后的信号波形');得到下面的图形:如(图4-9)图4-9 IIR滤波前和滤波后波形及频谱4.5语音信号的回放将经过处理的语音信号放到MATLAB软件中进行回放,对比滤波后的声音与原始的声音的不同。4.6 结合去噪后的频谱图对比两种方式滤波的优缺点IIR数字滤波器采用递归型结构,即结构上带有反馈环路。IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。 (1)IIR数字滤波器的相位特性不好控制,对相位要求较高时,需加相位校准网络。FIR滤波器则要求较低。(2)IIR滤波器运算误差大,有可能出现极限环振荡,FIR相比之下运算误差较小,不会出现极限

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论