DSP 课程设计
——基于 MATLAB 的声音信号频谱分析
1. 课程设计目的
综合运用数学信号处理的理论知识进行语音信号的频谱分析,通过理论推导得出相应
结论,再利用 MATLAB 作为编程工具进行计算机实现,从而加深对所学知识的理解,建立
概念。
2. 理解设计基本要求
1) 熟悉离散信号和系统的时域特性。
2) 熟悉线性卷积和相关的计算编程方法。
3) 掌握序列傅里叶变换的计算机实现方法,利用序列傅里叶变换对离散信号、系统
和系统的响应进行频域分析。
4) 学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法。
5) 利用 MATLAB 对 wav 文件进行频谱分析。
6) 分别用不同的滤波器对加噪语音信号进行滤波,选择最佳滤波器。
3. 课程设计内容
选择一个 wav 文件作为分析的对象,或录制一段语音信号,对其进行频谱分析,分别
对加噪前后的语音信号进行频谱分析,再通过不同滤波器根据信号的频谱特点重构语音信
号,选出最佳滤波方案。
4. 课程设计实现步骤
(1)语音信号的获取
选择一个 wav 文件作为分析的对象,可以利用 Windows 下的录音机或其他软件,录制
一段自己的话音,在 MATLAB 中,[y,fs,bits]=wavread('Blip',[N1 N2]);用于读取语音,
采样值放在向量 y 中,fs 表示采样频率(Hz),bits 表示采样位数。[N1 N2]表示读取的值
从 N1 点到 N2 点的值。
sound(y); 用于对声音的回放。向量 y 则就代表了一个信号,也即一个复杂的“函数表
达式”,也可以说像处理一个信号的表达式一样处理这个声音信号。
下面是语音信号在 MATLAB 中的语言程序,它实现了语音的读入与打开,并绘出了语
音信号时域波形,然后对语音信号进行频谱分析。在 MATLAB 中,可以利用函数 fft 对信
号进行快速傅里叶变化,得到信号的频谱特性。
在频谱特性中分析最大值的位置(可能有几个),它代表的频率和时域的采样时间有
关,相邻的两点之间的距离为。其中,N 是离散傅里叶变换用的点数,是采样的时间,前
面在读取 wav 文件时得到了采样频率。
既然知道了该声波的频谱,按频率就可以反演它的时域值,利用以上分析的主要峰值
来重构声波。由于没有考虑相位和其他的频谱分量,所以波形和原来的波形相差甚大,但
大体的频率是没有错的。