如何利用matlab处理音频信号(4)

2020-05-23 14:29

subplot(326);plot(Z);title('FIR滤波后信号的频谱');

得到结果如图:

(6)小结:以上几种滤波,我们都可以从信号滤波前后的波形图以及频谱图上看出变化。当然,也可以用sound()函数来播放滤波后的语音,从听觉上直接感受语音信号的变化,但由于人耳听力的限制,有些情况下我们是很难听出异同的。

同样,通过函数的调用,也可以将信号的频谱进行“分离观察”,如显出信号的幅值或相位。下面,通过改变系统函数的分子与分母系数比,来观察信号滤波前后的幅值与相位。并且使结果更加明显,使人耳得以很容易的辨听。

x=wavread('ding.wav');

sound(x);

b=100;a=5;

y=filter(b,a,x);

X=fft(x,4096);

subplot(221);plot(x);title('滤波前信号的波形');

subplot(222);plot(abs(X));title('滤波前信号的幅值');

Y=fft(y,4096);

subplot(223);plot(y);title('滤波后信号的波形');

subplot(224);plot(abs(Y));title('滤波后信号的幅值');

结果如图:

>> sound(y);

可以听到声音明显变得高亢了。从上面的波形与幅值(即幅频)图,也可看出,滤波后的幅值变成了滤波前的20倍。

>> figure,

subplot(211);plot(angle(X));title('滤波前信号相位');

subplot(212);plot(angle(Y));title('滤波后信号相位');

得图:

可以看到相位谱没什么变化。 (四)、界面设计:

直接用M文件编写GUI程序很繁琐,而使用GUIDE设计工具可以大大提高工作效率。GUIDE相当于一个控制面板,从中可以调用各种设计工具以辅助完成界面设计任务,例如控件的创建和布局、控件属性的编辑和菜单设计等。

使用GUIDE设计GUI程序的一般步骤如下:

1. 将所需控件从控件面板拖拽到GUIDE的设计区域;

2. 利用工具条中的工具(或相应的菜单和现场菜单),快速完成界面布局;

3. 设置控件的属性。尤其是tag属性,它是控件在程序内部的唯一标识;

4. 如果需要,打开菜单编辑器为界面添加菜单或现场菜单;

5. 保存设计。GUIDE默认把GUI程序保存为两个同名文件:一个是.fig文件,用来保存窗体布局和所有控件的界面信息;一个是.m文件,该文件的初始内容是GUIDE自动产生的程序框架,其中包括了各个控件回调函数的定义。该M文件与

一般的M文件没有本质区别,但是鉴于它的特殊性,MATALAB把这类文件统称为GUI-M文件。保存完后GUI-M文件自动在编辑调试器中打开以供编辑。

6. 为每个回调函数添加代码以实现GUI程序的具体功能。这一步与一般函数文件的编辑调试过程相同。

设计过程及内容:

在MATLAB版面上,通过键入GUIDE弹出一个菜单栏进入gui制作界面(或者在File到new来进入gui),从而开始应用界面的制作。

该界面主要实现了以下几个功能:

①打开wav格式的音频文件,并将该音频信号的值读取并赋予某一向量;

②播放音频文件,可以选择性的显示该音频信号的波形、频谱、幅值以及相位;

③对音频信号进行IIR与FIR的5阶固定滤波处理,可以选择性的显示滤波前后信号的波形、频谱、幅值以及相位,以及播放滤波后的声音。

界面如图所示:

通过该界面,可以方便用户进行语音信号的处理。

界面主程序见附件。

(五)、校验:

1、本设计圆满的完成了对语音信号的读取与打开,与课题的要求十分相符;

2、本设计也较好的完成了对语音信号的频谱分析,通过fft变换,得出了语音信号的频谱图;

3、在滤波这一块,课题主要是从巴特沃斯滤波器入手来设计滤波器,也从一方面基本实现了滤波;

4、初略的完成了界面的设计,但也存在相当的不足,只是很勉强的达到了打开语音文件、显示已定滤波前后的波形等图。

四、 结论:

语音信号处理是语音学与数字信号处理技术相结合的交叉学科,课题在这里不讨论语音学,而是将语音当做一种特殊的信号,即一种“复杂向量”来看待。也就是说,课题更多的还是体现了数字信号处理技术。

从课题的中心来看,课题是希望将数字信号处理技术应用于某一实际领域,这里就是指对语音的处理。作为存储于计算机中的语音信号,其本身就是离散化了的向量,我们只需将这些离散的量提取出来,就可以对其进行处理了。

在这里,用到了处理数字信号的强有力工具MATLAB,通过MATLAB里几个命令函数的调用,很轻易的在实际化语音与数字信号的理论之间搭了一座桥。

课题的特色在于它将语音看作了一个向量,于是语音数字化了,则可以完全利用数字信号处理的知识来解决。我们可以像给一般信号做频谱分析一样,来给语音信号做频谱分析,也可以较容易的用数字滤波器来对语音进行滤波处理。

最后,还利用了MATLAB的另一强大功能——gui界面设计。设计出了一个简易的用户应用界面,可以让人实现界面操作。更加方便的进行语音的频谱分析与滤波处理。


如何利用matlab处理音频信号(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018年新目标人教版七年级英语下册Unit3单元检测卷含答案 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: