基于MATLAB的声音信号频谱分析
组号:11组
1. 课程设计目的
综合运用数学信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。
2. 理解设计基本要求
1) 熟悉离散信号和系统的时域特性。
2) 熟悉线性卷积和相关的计算编程方法。
3) 掌握序列傅里叶变换的计算机实现方法,利用序列傅里叶变换对离散信号、系统和系统的响应进行频域分析。
4) 学会MATLAB的使用,掌握MATLAB的程序设计方法。
5) 利用MATLAB对wav文件进行频谱分析。
3. 课程设计内容
选择一个wav文件作为分析的对象,或录制一段语音信号,对其进行频谱分析,根据
信号的频谱特点重构语音信号。
4. 课程设计实现步骤
(1)语音信号的获取
选择一个wav文件作为分析的对象,可以利用Windows下的录音机或其他软件,录制一段自己的话音,时间控制在1s左右,然后再MATLAB软件平台下,通过使用wavread函数,理解采样频率、采样位数等概念。
(2)wav信号的频谱分析
画出语音信号的时域波形,然后对语音信号进行频谱分析。在MATLAB中,可以利用函数fft对信号进行快速傅里叶变化,得到信号的频谱特性。
在频谱特性中分析最大值的位置(可能有几个),它代表的频率和时域的采样时间有关,相邻的两点之间的距离为f1NTs。其中,N是离散傅里叶变换用的点数,Ts是采样的时间,前面在读取 wav文件时得到了采样频率fs1Ts。
既然知道了该声波的频谱,按频率就可以反演它的时域值,利用以上分析的主要峰值来重构声波。由于没有考虑相位和其他的频谱分量,所以波形和原来的波形相差甚大,但大体的频率是没有错的。
(3)wav文件的分段傅里叶分析
语音是分音节的,应把它分段分析,而且实际运用中DSP中FFT的点数是有限的,一
般只能达到千点。
将读出的声音信号分左、右声道来显示波形,对每个声道分段处理,每段长度1024,最后一段不够时补零;然后对所有段作1024点FFT,画出三维频谱图。利用每段分析的主要峰值来重构声波,声音听起来挺刺耳的,但已经可以感觉到声音的变化;最后使用线性插值来平滑波形,再来听一下声音的效果,这时的声音就柔和多了。
参考文献
[1]周辉,董正宏,数字信号处理及MATLAB实现,北京希望出版社,2006
[2]王树勋.数字信号处理处理基础及试验.北京:机械工业出版社,1992
[3]井上伸雄.数字信号处理的应用.北京:科学出版社,1991
因篇幅问题不能全部显示,请点此查看更多更全内容