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

下载本文档

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

文档简介

1、 摘要:数字滤波器和IIR滤波器是滤波器设计的重要组成部分。Matlab 功能强大、编程效率高, 特别是Matlab 具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分析、处理和设计。基于MATLAB有噪音语音信号处理的设计与实现,综合用窗函数法来设计FIRIIR数字滤波器,并利用MATLAB作为辅助工具完成设计中的计算与图形的绘制。关键词:Abstract:Filter design in digital signal processing plays an extremelyimportant role, FIR digital filters and IIR filte

2、r isan important part of filterdesign. Matlab is powerful, programming efficiency, Matlab also has aparticular signal analysis toolbox, it need not have strong programmingskillscan be easily signal analysis, processing and design. MATLAB basedon the noise issue speech signal processing design and im

3、plementationof digital signal processing integrated use of the theoretical knowledgeof the speech signal plusnoise, time domain, frequency domain analysisand filtering. The corresponding results obtained through theoreticalderivation, and then use MATLAB as aprogramming tool for computerimplementati

4、on.Implemented in the design process, using the window1function method to design FIR digital filters with Butterworth,Chebyshev and bilinear Reform IIR digital filter design and use ofMATLAB as a supplementary tool to complete the calculation andgraphic design Drawing.Keywords:digital filter; MATLAB

5、; Chebyshev语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数些功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。语音是语言的声学表现,是人类交流信息最自然、最有效、最方便的手段。2人们的关注和广泛的研究。1.1 语音信号处理的概念最重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。1.2 语音信号处理的现状20 世

6、纪 60 器、快速傅立叶变换(FFT)等是语音信号数字处理的理论和技术基础。随着信息科学技术的飞速发展,语音信号处理取得了重大的进展:进入 70 年代之后,提出了用于语音信号的信息压缩和特征提取的线性预测技术( 域,以及用于输入语音与参考样本之间时间匹配的动态规划方法;80 年代初一种新的基于聚类分析的高效数据压缩技术矢量量化(VQ)应用于语音信号处理中;而用隐马尔可夫模型(HMM)描述语音信号过程的产生是 80 年代语音 HMM 已构成了现代语音识别研究的重要基石。各项技术之中。32.1语音信号处理的内容用Matlab对含噪的语音信号同时在时域和频域进行滤波处理和分析,在条件下的各种语音信号

7、的处理。语音信息存储为.wav 格式文件,用 matlab 读取语音文件,运用数字信号学基本原理实现语音信号的处理,在matlab环境下综合运用信号提取,幅频变换以其进行各种处理,达到简单的语音信号处理的目的。2.2语音信号处理的方法 User GUI,又称图形用户接界面相比,图形界面对于用户来说在视觉上更易于接受。GUI 的广泛应用是当今计算机发展的重大成就之一,他极大地方便了非专业用户的使用人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作。基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理 MATLAB 4使用窗函数法来设计

8、FIR IIR 数字滤波器,并利用 MATLAB 作为辅助工具完成设计中的计算与图形的绘制。通过对对所设计滤波器的仿真和频率特性分析,可知利用 MATLAB信号处理工具箱可以有效快捷地设计 FIR和 IIR 数字滤波器。3.1 原始语音信号采集与处理在电脑中,语音信息文件为 *.wav 格式。语音信号的处理主要包括信号的提取、信号的语音进行播放,试听处理后的效果。语音信号采集过程如图 3-1 所示。声音Ws 图 (1)语音信号的时域分析息。语音信号分析的目的就在与方便有效的提取并表示语音信号所携带的信息。语音信号分析可以分为时域和变换域等处理方法,其中时域分析是最简单的方量,短时平均过零率,短

9、时自相关函数等。5 提取:通过图形用户界面上的菜单功能按键采集电脑设备上的一段音频信号,完成音频信号的频率,幅度等信息的提取,并得到该语音信号的波形图。 调整:在设计的用户图形界面下对输入的音频信号进行各种变化,如变化幅度、改变频率等操作,以实现对语音信号的调整。(2)语音信号的频域分析更明显,因此,它能更深入地说明信号的各项红物理现象。音信号可以认为在短时间内,近似不变,因而可以采用短时分析法。 变换:在用户图形界面下对采集的语音信号进行 Fourier 等变换,并画出变换前后的频谱图和变换后的倒谱图。 滤波:滤除语音信号中的噪音部分,可采用低通滤波、高通滤波、带通滤波和帯阻滤波,并比较各种

10、滤波后的效果。(3)语音信号处理流程图图如图 3-2 所示。6语音信号采集信息提取信号调整信号变换信号滤波效果显示图3-3所示:图 示。3.2语音的录入与打开在MATLAB 值放在向量y 从N1点到N2点的值(若只有一个N的点则表示读取前N点的采样值)。7sound(x,fs,bits); y 音信号。3.3 时域信号的FFT分析FFT 即为快速傅氏变换, 是离散傅氏变换的快速算法, 它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。在 MATLAB 的信号处理工具箱中函数 FFT 和 IFFT 用于快速傅立叶变换和逆变换。函数 FFT 用于序列快速傅立叶变换,

11、其调用格式为 y=fft(x),其中,x 是序列的 可以为一向量或矩阵,若x 是 x 的 FFT且和 x 相同长度;若x 为一矩阵,则y 是对矩阵的每一列向量进行 FFT。如果x长度是 2 的幂次方,函数fft 执行高速基2FFT 算法,否则fft 执行一种混合基的离散傅立叶变换算法,计算速度较慢。函数FFT 的另一种调用格式为y=fft(x,N),式中,x,y 意义同前,N 为正整数。函数执行 N 点的 x为向量且长度小于 N,则函数将 x 补零至长度 N;若向量 x 的长度大于 函数截短 x 使之长度为 x 为矩阵,按相同方法对 x 进行处理。3.4 数字滤波器设计原理数字滤波器的作用是利

12、用离散时间系统的特性对输入信号波形 (或频谱)进行加工处理,或者说利用数字方法按预定的要求对信号进行变换。8字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR) 滤波器传输函数的极点可位于单位圆内的任何地方,因此可用较低的阶数获得高的选择性,所用的存贮单元少,所以经济而效率高。 滤波器却可以得到严格的线性相位,然而由于FIR滤波器传输函数的计指标,FIR 滤波器所要求的阶数可以比 IIR 滤波器高 510 倍,结果,成本较高,信号延时也较大;如果按相同的选择性和相同的线性要求来说,则IIR滤波器就必须加全通网络进行相位较正,同样要大增加滤波器的节数和复杂性。整体来看,I

13、IR 滤波器达到同样效果阶数少,延迟小,但是有稳定性问题,非线性相位;FIR滤波器没有稳定性问题,线性相位,但阶数多,延迟大。3.5 倒谱的概念定义:倒谱定义为信号短时振幅谱的对数傅里叶反变换。特点:具有可近似地分离并能提取出频谱包络信息和细微结构信息的特点参数而应用于语音识别。于语音识别。求法:9 CxnADPTxDPTDDPTE峰值检测F时间窗 F:基本周期4. 语音信号处理实例分析4.1图形用户界面设计在MATLAB File菜单中的NewGUI命令,就会显示图形用户界面的设计模板。MATLAB为GUI设计一共准备了4种模板,分别是 Blank GUI(默认) 、GUI with Uic

14、ontrols(带控件对象的 GUI模板) 、GUI with Axes and Menu(带坐标轴与菜单的 GUI 模板)与 ModalQuestion Dialog(带模式问话对话框的GUI模板)。设计语音信号处理系统的用户图形操作界面(GUI)SoundProcess,其中菜单主要包括和Output三大主要部分,其中File菜单包括输入 菜单主要包括提取菜单包含低通滤波(BandpassFilter)和帯阻滤波(BandstopFilter)等功能菜单。104.2信号的采集该系统是以一段简短的的语音信号做为分析样本,通过计算机系统将一段4.3语音信号的处理设计(1)语音信号的提取在Mat

15、lab中使用Wavread函数,可得出信号的采样频率为22500,并且声音是单声道的。利用Sound函数可以清晰的听到“主人,信息收到了”的语音。采集数据并画出波形图。其中声音的采样频率为采样 表示量化阶数。部分程序如下:fn=input( Enter WAV filename:,s); %获取一个*.wav的文件x,fs,nb=wavread(fn);ms2=floor(fs*0.002);ms10=floor(fs*0.01);ms20=floor(fs*0.02);ms30=floor(fs*0.03);t=(0:length(x)-1)/fs;subplot(2,1,1);%计算样本时

16、刻%确定显示位置%画波形图plot(t,x);legend(Waveform);xlabel(Time(s);ylabel(Amplitude);运行后弹出语音信号处理系统的操作界面如图4-1:11图图图图 的比较大,那样的话就可以得到效果相当明显的语音信号了。(3)语音信号的傅里叶变换离并提取出频谱包络信息和细微结构信息的特点。对语音信号进行频谱分析,在Matlab中可以利用函数fft对信号行快速傅里叶变换,得到信号的频谱图,并进行倒谱分析,得到倒谱图。傅里叶变换的部分程序如下:x=y(44101:55050,1);t=(0:length(x)-1)/fs;subplot(3,1,1);%提

17、取原语音信号的一部分%计算样本时刻%确定显示位置plot(t,x);%画波形图legend(波形图);xlabel(Time(s);ylabel(Amplitude);Y=fft(x,hamming(length(x); %做加窗傅里叶变换fm=5000*length(Y)/fs;f=(0:fm)*fs/length(Y);subplot(3,1,2);%限定频率范围%确定频率刻度plot(f,20*log10(abs(Y(1:length(f)+eps);legend(频谱图);ylabel(幅度(db);xlabel(频率(Hz);%画频谱图15plot(q,abs(c(ms1:ms20)

18、;legend(倒谱图);图 图 图图图4.4 语音信号的输出图 1 余胜威,吴婷,罗建桥MATLAB GUI 设计入门与实践北京:清华大学出版社,20162 高西全,丁玉美数字信号处理第3版西安:西安电子科技大学出版社,20083 罗华飞MATLAB GUI设计学习手记第3版北京:北京航空航天大学出版社,20144 刘泉,阙大顺数字信号处理原理与实现北京:电子工业出版社,20105 张磊,毕靖,郭莲英MATLAB实用教程北京:人民邮电出版社,20086 张威MATLAB基础与编程入门西安:西安电子科技大学出版社,20137 刘帅奇,李会雅,赵杰MATLAB 程序设计基础与应用北京:清华大学出

19、版社,20168 丁伟雄MATLAB R2015a数字图像处理北京:清华大学出版社,20169 刘维精通 MATLAB与 C/C+混合程序设计第 4 版北京:北京航空航天大学出版社,201522附录(I) 和 %=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);num11,den11=bilinear(b11,a11,0.5);h,w=

20、freqz(num11,den11);figure;plot(w*8000*0.5/pi,abs(h);23legend(IIRgrid;程序结果如下图:100%=IIR=Fp1=1200;带通滤波器Fp2=3000;Fs1=1000;Fs2=3200;Ft=8000;wp1=tan(pi*Fp1/Ft);wp2=tan(pi*Fp2/Ft);ws1=tan(pi*Fs1/Ft);24ws2=tan(pi*Fs2/Ft);w=wp1*wp2/ws2;bw=wp2-wp1;%有效通带频率wp=1;ws=(wp1*wp2-w.2)/(bw*w);n12,wn12=buttord(wp,ws,1,5

21、0,s);b12,a12=butter(n12,wn12,s);num2,den2=lp2bp(b12,a12,sqrt(wp1*wp2),bw);num12,den12=bilinear(num2,den2,0.5);h,w=freqz(num12,den12);figure;plot(w*8000*0.5/pi,abs(h);axis(0 4500 0 1.5);legend(IIRgrid;程序结果如下图:251.510.50050010001500200025003000350040004500%=IIR=Ft=8000;高通滤波器Fp=4000;Fs=3500;wp1=tan(pi*

22、Fp/Ft);ws1=tan(pi*Fs/Ft);wp=1;ws=wp1*wp/ws1;n13,wn13=cheb1ord(wp,ws,1,50,s);b13,a13=cheby1(n13,1,wn13,s);num,den=lp2hp(b13,a13,wn13);num13,den13=bilinear(num,den,0.5);h,w=freqz(num13,den13);26figure;plot(w*21000*0.5/pi,abs(h);legend(IIRaxis(0 11000 0 1.5);grid;程序结果如下图:1.510.5001000 2000 3000 4000 50

23、00 6000 7000 8000 9000 10000 11000%*FIR低通滤波*Ft=8000;Fp=1000;Fs=1200;wp=2*Fp/Ft;ws=2*Fs/Ft;rp=1;rs=50;27p=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);figure;plot(w*8000*0.5/pi,abs(h);title(FIR

24、grid;程序结果如下图:FIR 低 通 滤 波 器1.41.210.80.60.40.2005001000150020002500300035004000%*FIR带通滤波器*28Fp1=1200;Fp2=3000;Fs1=1000;Fs2=3200;Ft=8000;%通带边界频率%阻带截止频率wp1=tan(pi*Fp1/Ft);wp2=tan(pi*Fp2/Ft);ws1=tan(pi*Fs1/Ft);ws2=tan(pi*Fs2/Ft);w=wp1*wp2/ws2;bw=wp2-wp1;wp=1;ws=(wp*wp2-w.2)/(bw*w);n22,wn22=buttord(wp,ws

25、,1,50,s);b22,a22=butter(n22,wn22,s);num2,den2=lp2bp(b22,a22,sqrt(wp1*wp2),bw);num22,den22=bilinear(num2,den2,0.5);h,w=freqz(num22,den22);figure;plot(w*8000*0.5/pi,abs(h);axis(0 4500 0 1.5);legend(FIR29grid;程序结果如下图:1.510.50050010001500200025003000350040004500%*%FIR高通滤波器*Ft=8001;Fp=4000;Fs=3500;wp=2*F

26、p/Ft;ws=2*Fs/Ft;rp=1;%通带边界频率%阻带截止频率rs=50;p=1-10.(-rp/20);s=10.(-rs/20);fpts=ws wp;30mag=0 1;dev=p s;n23,wn23,beta,ftype=kaiserord(fpts,mag,dev);b23=fir1(n23,wn23,high,kaiser(n23+1,beta);h,w=freqz(b23,1);figure;plot(w*12000*0.5/pi,abs(h);title(FIRaxis(2500 5500 0 1.2);grid;程序结果如下图:FIR高 通 滤 波 器10.80.6

27、0.40.20250030003500400045005000550031附录(II)比较滤波前后语音信号的波形及频谱%= 双 线 性 变 换 法=%*低通滤波器*y,fs,nbits=wavread %IIR低通n =length (y) ;%求出语音信号的长度Noise=0.2*randn(n,2); %随机函数产生噪声s=y+Noise;S=fft(s);%语音信号加入噪声Ft=8000;Fp=1000;Fs=1200;wp=2*pi*Fp/Ft;ws=2*pi*Fs/Ft; S域的频率响应的参数num11,den11=bilinear(b11,a11,0.5); %利用双线性变换实现频

28、率响应 S 域到Z域的变换z11=filter(num11,den11,s);sound(z11);m11=fft(z11); %求滤波后的信号figure;32subplot(2,2,1);plot(abs(S),g);axis( 0 150000 0 4000);grid;subplot(2,2,2);plot(abs(m11),r);axis( 0 150000 0 4000);grid;subplot(2,2,3);plot(s);axis(95000 100000 -1 1);grid;subplot(2,2,4);plot(z11);axis(95000 100000 -1 1);

29、grid;程序结果如下图:33滤 波 前 信 号 的 频 谱滤 波 后 信 号 的 频 谱4000300020001000040003000200010000051015x 104051015x 104滤 波 前 信 号 的 波 形滤 波 后 的 信 号 波 形10.5010.50-0.5-1-0.5-19.5 9.6 9.79.8 9.9109.5 9.69.7 9.89.910 x 104x 104附 %*带通滤波器*y,fs,nbits=wavread %IIR带通n =length (y) ;%求出语音信号的长度Noise=0.2*randn(n,2); %随机函数产生噪声s=y+No

30、ise;S=fft(s);%语音信号加入噪声%傅里叶变换Ft=8000;Fp=1000;Fs=1200;wp=2*Fp/Ft;ws=2*Fs/Ft;34rp=1;rs=50;p=1-10.(-rp/20);q=10.(-rs/20);fpts=wp ws;mag=1 0;dev=p q;%通带阻带波纹n21,wn21,beta,ftype=kaiserord(fpts,mag,dev);%由 kaiserord 求滤波器的阶数和截止频率b21=fir1(n21,wn21,kaiser(n21+1,beta); %由fir1设计滤波器z21=fftfilt(b21,s);sound(z21);m

31、21=fft(z21); %求滤波后的信号figure(4);subplot(2,2,1);plot(abs(S),g);axis(0 150000 0 4000);grid;subplot(2,2,2);plot(abs(m21),r);35axis(0 150000 0 4000);grid;subplot(2,2,3);plot(s);axis(95000 100000 -1 1);grid;subplot(2,2,4);plot(z21);axis(95000 100000 -1 1);grid;程序结果如下图:滤 波 前 信 号 的 频 谱滤 波 后 信 号 的 频 谱4000300

32、020001000040003000200010000051015x104051015x104滤 波 前 信 号 的 波 形滤 波 后 的 信 号 波 形10.5010.50-0.5-1-0.5-19.5 9.6 9.79.8 9.9109.5 9.69.7 9.89.910 x104x10436附 %*高通滤波器*y,fs,nbits=wavread %IIR高通n =length (y) ;%求出语音信号的长度Noise=0.2*randn(n,2); %随机函数产生噪声s=y+Noise;%语音信号加入噪声S=fft(s); %傅里叶变换Fp1=1200;Fs1=1000;Ft=8000

33、;wp1=tan(pi*Fp1/Ft);ws1=tan(pi*Fs1/Ft);wp=1;ws=wp1*wp/ws1; %求模拟的低通滤波器阶数和截止频率 %求S域的频率响应的参数num,den=lp2hp(b13,a13,wn13);%将S域低通参数转为高通的num13,den13=bilinear(num,den,0.5); %利用双线性变换实现频率响应S域到Z域转换z13=filter(num13,den13,s);37sound(z13);m13=fft(z13);figure;%求滤波后的信号subplot(2,2,1);plot(abs(S),g);axis(0 150000 0 4

34、000);grid;subplot(2,2,2);plot(abs(m13),r);axis(0 150000 0 4000);grid;subplot(2,2,3);plot(s);axis(95000 100000 -1 1);grid;subplot(2,2,4);plot(z13);axis(95000 100000 -1 1);38grid;程序结果如下图滤 波 前 信 号 的 频 谱滤 波 后 信 号 的 频 谱4000300020001000040003000200010000051015x 104051015x 104滤 波 前 信 号 的 波 形滤 波 后 的 信 号 波 形

35、10.5010.50-0.5-1-0.5-19.5 9.6 9.79.8 9.9109.5 9.69.7 9.89.910 x 104x 104附 %=窗函数法%*低通滤波器*y,fs,nbits=wavread %FIR低通n =length (y) ;%求出语音信号的长度Noise=0.2*randn(n,2); %随机函数产生噪声s=y+Noise;S=fft(s);%语音信号加入噪声%傅里叶变换Ft=8000;39Fp=1000;Fs=1200;wp=2*Fp/Ft;ws=2*Fs/Ft;rp=1;rs=50;p=1-10.(-rp/20);q=10.(-rs/20);fpts=wp

36、ws;mag=1 0;dev=p q;%通带阻带波纹n21,wn21,beta,ftype=kaiserord(fpts,mag,dev);%由 kaiserord 求滤波器的阶数和截止频率b21=fir1(n21,wn21,kaiser(n21+1,beta); %由fir1设计滤波器z21=fftfilt(b21,s);sound(z21);m21=fft(z21); %求滤波后的信号figure(4);subplot(2,2,1);plot(abs(S),g);axis(0 150000 0 4000);40grid;subplot(2,2,2);plot(abs(m21),r);axi

37、s(0 150000 0 4000);grid;subplot(2,2,3);plot(s);axis(95000 100000 -1 1);grid;subplot(2,2,4);plot(z21);axis(95000 100000 -1 1);grid;41滤 波 前 信 号 的 频 谱滤 波 后 信 号 的 频 谱4000300020001000040003000200010000051015x 104051015x 104滤 波 前 信 号 的 波 形滤 波 后 的 信 号 波 形10.5010.50-0.5-1-0.5-19.59.69.79.89.9109.59.69.79.89

38、.910 x 104x 104附 %*带通滤波器*y,fs,nbits=wavread (OriSound);n =length (y) ;%求出语音信号的长度Noise=0.2*randn(n,2); %随机函数产生噪声s=y+Noise;S=fft(s);%语音信号加入噪声%傅里叶变换Fp1=1200;Fp2=3000;Fs1=1000;Fs2=3200;Ft=2200;42wp1=tan(pi*Fp1/Ft); %带通到低通滤波器参数转换wp2=tan(pi*Fp2/Ft);ws1=tan(pi*Fs1/Ft);ws2=tan(pi*Fs2/Ft);w=wp1*wp2/ws2;bw=wp2-wp1;wp=1;ws=(wp*wp2-w.2)/(bw*w);n22,wn22=buttord(wp,ws,1,50,s); %求低通滤波器阶数和截止频率b22,a22=butter(n22,wn22,s);%求S域的频率响应的参数z22=fftfilt(b22,s);sound(z22);m22=fft(z22); %求滤波后的信号figure;subplot(2,2,1);plot(abs(S),g);title(滤波前

温馨提示

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

评论

0/150

提交评论