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