您的当前位置:首页正文

MATLAB课设之MATLAB用于语音信号的处理

来源:个人技术集锦


MATLAB用于语音信号的处理

一.

设计目的

通过该设计,要求对语音信号的采集、处理、传输、显示、和存储等有一个系统的掌握和理解。理解信号采样频率的概念,掌握对语音信号进行时域和频域分析方法,了解滤波器的概念及原理。 二.

设计内容

1.语音信号的采集 2.语音信号的频谱分析 3.设计数字滤波器

4.用滤波器对信号进行滤波

5. 分析滤波后得到的语音信号的频谱,画出滤波后信号的时域波形和频

谱,并对滤波前后的信号进行对比,分析信号的变化 6.回放语音信号 三.

总体方案设计

1.利用Windows下的录音机,录制一段语音,时间在1s以内,然后在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。理解采样频率、采样位数的概念。

MATLAB函数:Wavread功能对语音信号进行采样,wavread函数的格式为:y=wavread('施玉彬1.wav',[n1,n2]),返回文件中语音信号从n1到n2之间的样本。

2. 先画出语音信号的时域波形,然后对语音信号进行快速傅里叶变换,得到信号的频谱特性。从而加深对频谱特性的理解。

MATLAB函数:fft功能是实现快速傅里叶变换,fft函数的格式为:y=fft(x),返回向量x的不连续fourier变换。

1/7

3.设计数字滤波器 低通滤波器的性能指标:

fb=1000Hz,fc=1200Hz,Rs=100dB,Rp=1Db.

MATLAB函数:ellipord功能是要求低通滤波器的参数,ellipord函数的格式为:[N,Wn]=ellipord(Wp,Ws,Rp,Rs),返回设计滤波器的阶数和截止频率。

ellip功能是设计IIR滤波器,ellip函数的格式为:[b,a]=ellip(N,Rp,Rs,Wn),返回设计滤波器的低通滤波器的参数。

4.用设计的滤波器对采集的语音信号进行滤波。

MATLAB函数:filter功能对信号进行滤波,filter函数的格式为:y=filter(b,a,x),由给定的滤波器对x进行滤波。

5.回放语音信号

对滤波后的语音信号进行回放,对比滤波前后声音的变化。

MATLAB函数:sound转化向量为音符的发声指令,sound函数的格式为:

sound(y,fs),把以采样频率fs的语音信号y以声音的形式播放。

2/7

四.

源程序:

五.仿真结果

3/7

0.15采样后语音信号时域波形0.10.050-0.05-0.1-0.15-0.2020040060080010001200

35采样语音信号频谱图302520151050020040060080010001200

4/7

10.90.80.70.60.50.40.30.20.1000.511.522.5x 104滤波器幅频响应图

200150100500-50-100-150-200滤波器相频响应图00.511.522.5x 104

5/7

0.15滤波后语音信号时域波形0.10.050-0.05-0.1-0.15-0.2020040060080010001200

30滤波后语音信号频谱图2520151050020040060080010001200

六. 实验总结

6/7

本次课题的特色在于它将语音看作了一个向量,于是语音数字化了,则可以完全利用数字信号处理的知识来解决。我们可以像给一般信号做频谱分析一样,来给语音信号做频谱分析,也可以较容易的用数字滤波器来对语音进行滤波处理。用处理数字信号的强有力工具MATLAB,通过MATLAB里几个命令函数的调用,很轻易的在实际化语音与数字信号的理论之间搭了一座桥。

语音信号处理是语音学与数字信号处理技术相结合的交叉学科。作为存储于计算机中的语音信号,其本身就是离散化了的向量,我们只需将这些离散的量提取出来,就可以对其进行处理了。

在课设过程中每每编写程序及操作时出现问题,我都会通过查阅资料,仔细检查解决问题,经过一次次的修缮,才出现最终的最优结果。不过我觉得还是不够完美、面对问题不急不躁,请教了很多人,从而能培养良好的心态和习惯。 每次课设都会给我一种新的体验与感受,这次课设也一样,平时都是啃课本,很单调很乏味,但是,这次课设给了我们自己动手的机会,我自己录了音,把自己录的声音进行处理还是很有意思的,当然,遇到困难是不可避免的,当时也会很困惑、沮丧,但问题总要解决的,所以自己还是会去想办法,我想着也是一种收获。还有,经过了这次课设,我也深刻体会到了MATLAB功能的强大以及学好它的重要性,在今后的学习生活中,我会继续学习使用它。

7/7

因篇幅问题不能全部显示,请点此查看更多更全内容