基于matlab的语音信号滤波处理
摘要:本课程设计的主要目的是在MATLAB环境下,使用窗口设计法设计一个滤波器,并对语音信号进行滤波去噪。开发平台为MATLAB,设计方法为窗口设计法。用麦克风采集一段语音信号,绘制波形并观察其频谱,给定相应技术指标,用凯塞窗设计一个满足指标的FIR滤波器,对该语音信号进行滤波去噪处理,比较滤波前后的波形和频谱并进行分析。在滤波前后语音信号波形的变化中,由于我们录制的语音信号噪声不大,所以观察并不明显,但在频域波形中,我们可以明显的看到设计的滤波器对语音信号进行了滤波处理,将噪声进行了滤除。此次滤波基本达到了要求,完成了设计指标。
关键词:滤波去噪;FIR滤波器;凯塞窗;MATLAB
目录
1 课程设计研究内容 1
1.1课程设计研究内容 1
1.2课程设计步骤及流程图 1
1.3课程设计要求 3
2 设计原理 3
2.1 MATLAB简介 3
2.2 滤波器 3
3 设计与实现过程 3
3.1实现方法 3
3.1.1 FIR滤波器 4
3.1.2窗口设计法 4
3.1.3凯塞窗 4
3.2 设计过程 4
3.2.1录制语音信号 4
3.2.2 对原信号加入噪声 5
3.2.2 滤波器的设计 7
3.2.2信号的滤波处理 9
3.3 仿真结果与分析 10
4 调试问题与解决方案 11
5总结与展望 11
致谢 12
参考文献 12
附录 12
附录1. 滤波器脉冲响应源程序 12
附录2. 理想低通滤波器计算源程序 13
1 设计研究内容
1.1设计研究内容
1.语音信号的采集
在Windows下录制一段格式为.wav的语音,利用函数wavread对语音信号进行采样。
2.语音信号的频谱分析
用MATLAB程序对原始语音信号进行采样、频谱分析,并绘制出采样后语言信号时域波形图和频谱图,并针对此图分析语音信号特点。
3.语音信号加噪与频谱分析
利用MATLAB程序产生信号噪声,并加入到语音信号中,模仿语音信号被污染,并对其频谱分析,与原始语音信号进行对比,分析差异。
4.设计数字滤波器
根据语音信号的特点,设计数字滤波器,对加噪后的语音信号进行滤波处理。
5.验证滤波器的滤波效果
对滤波后的语音信号进行时域、频域分析,并将滤波前后的时域波形、频谱波形进行相比较,分析信号的变化,从而验证所设计滤波器的滤波效果是否达到了滤除高频噪音、保留低频原始语音信号的目的。
6.回放语音信号
利用函数sound对滤波后语音信号进行回放。
1.2设计步骤及流程图
设计本课题的流程为:采集一段语音信号。将语音信号的文件名命名为input18.wav,再用MATLAB中的wavread函数求出语音信号的三个参数,分别为:每个样本的值,生成该语音波形文件时的采样频率,波形文件样本的码数,再对信号及加入单频干扰后的语音信号做傅立叶变化,绘制出时域和频域的波形。最后通过滤波绘制滤波前后时域波形对比图和幅频特性对比图,并回放滤波前后的语音信号来验证是否达到去噪的目的。课程的设计流程图如图1-1所示:
![36fbd4d2aebeb24cfbe7700ecf2fa574.png](https://img-blog.csdnimg.cn/img_convert/36fbd4d2aebeb24cfbe7700ecf2fa574.png)
2 设计原理
2.1 MATLAB简介
MATLAB是一个为科学和工程计算专门设计的交互式大型软件,是一个可以完成各种精确计算和数据处理的,可视化的,强大的计算工具。它具有丰富的函数资源和工具箱资源,语言精练,代码灵活,面向对象,控制功能优良,图形工能也强大。并且它的兼容性很好,几乎能在所有的PC机和大型计算机上运行,适用于Windows,UNIX和多种系统平台。MATLAB形形色色的工具箱中包括控制系统&