语音数字信号处理与分析及Matlab实现.doc
26页数字信号处理课程设计报告 题目:语音数字信号处理与分析及Matlab实现系 别 通信工程 专业班级 学生姓名 学 号 指导教师 提交日期 摘 要 本次课程设计综合利用数字信号处理的理论知识进行语音信号的频谱分析,通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念本次课程设计要求利用MATLAB对语音信号进行分析和处理,要求学生采集语音信号后,在MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号待处理语音信号是一个在20Hz~20kHz频段的低频信号采用了高效快捷的开发工具——MATLAB,实现了语音信号的采集,对语音信号加噪声及设计滤波器滤除噪声的一系列工作。
利用采样原理设计了高通滤波器、低通滤波器、带通滤波器、带阻滤波器同学通过查阅资料自己获得程序进行滤波器的设计,能过得到很好的锻炼关键词:MATLAB 滤波器 数字信号处理目录第一章 绪论 11.1 设计的目的及意义 11.2 设计要求 11.3 设计内容 1第二章 系统方案论证 32.1 设计方案分析 32.2 实验原理 3第三章 信号频谱分析 63.1 原始信号及频谱分析 63.2 加入干扰噪声后的信号及频谱分析 7第四章 数字滤波器的设计与实现 114.1 高通滤波器的设计 114.2 低通滤波器的设计 124.3 带通滤波器的设计 154.4 带阻滤波器的设计 16第五章 课程设计总结 19参考文献 20附录Ⅰ I附录Ⅱ IIⅠ 吉林工程技术师范学院课程设计论文 第一章 绪论1.1 设计的目的及意义 综合利用数字信号处理的理论知识进行语音信号的频谱分析,通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。
本设计采用了高效快捷的开发工具——MATLAB,实现了语音信号的采集,对语音信号加噪声及设计滤波器滤除噪声的一系列工作1.2 设计要求基本要求:本次课程设计要求利用MATLAB对语音信号进行分析和处理,要求学生采集语音信号后,在MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号待处理语音信号是一个在20Hz~20kHz频段的低频信号1.3 设计内容选择一个wav文件作为分析的对象,或录制一段语音信号,对其进行频谱分析,分别对加噪前后的语音信号进行频谱分析,再通过不同滤波器根据信号的频谱特点重构语音信号,选出最佳滤波方案原理:(1)采样定理在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中,最高频率fmax的2倍时,即:fs.max>=2fmax,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍;采样定理又称奈奎斯特定理: 1924年奈奎斯特(Nyquist)就推导出在理想低通信道的最高大码元传输速率的公式:理想低通信道的最高大码元传输速率=2W*log2 N (其中W是理想低通信道的带宽,N是电平强度)(2)采样频率采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。
采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确采样频率与声音频率之间有一定的关系,根据奎斯特理论,只有采样频率高于声音信号最高频率的两倍时,才能把数字信号表示的声音还原成为原来的声音这就是说采样频率是衡量声卡采集、记录和还原声音文件的质量标准3)采样位数与采样频率采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然采样位数和采样率对于音频接口来说是最为重要的两个指标,也是选择音频接口的两个重要标准无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围每增加一个采样位数相当于力度范围增加了6dB采样位数越多则捕捉到的信号越精确对于采样率来说你可以想象它类似于一个照相机,44.1kHz意味着音频流进入计算机时计算机每秒会对其拍照达441000次显然采样率越高,计算机摄取的图片越多,对于原始音频的还原也越加精确第二章 系统方案论证2.1 设计方案分析信号的傅立叶表示在信号的分析与处理中起着重要的作用。
因为对于线性系统来说,可以很方便地确定其对正弦或复指数和的响应,所以傅立叶分析方法能完善地解决许多信号分析和处理问题另外,傅立叶表示使信号的某些特性变得更明显,因此,它能更深入地说明信号的各项红物理现象 由于语音信号是随着时间变化的,通常认为,语音是一个受准周期脉冲或随机噪声源激励的线性系统的输出输出频谱是声道系统频率响应与激励源频谱的乘积声道系统的频率响应及激励源都是随时间变化的,因此一般标准的傅立叶表示虽然适用于周期及平稳随机信号的表示,但不能直接用于语音信号由于语音信号可以认为在短时间内,近似不变,因而可以采用短时分析法本实验要求掌握傅里叶分析原理,会利用已学的知识,编写程序估计短时谱、倒谱,画出语谱图,并分析实验结果,在此基础上,借助频域分析方法所求得的参数分析语音信号的基音周期或共振峰2.2 实验原理1、短时傅立叶变换由于语音信号是短时平稳的随机信号,某一语音信号帧的短时傅立叶变换的定义为: (2-1)其中w(n-m)是实窗口函数序列,n表示某一语音信号帧令n-m=k',则得到 (2-2)于是可以得到 (2-3)假定 (2-4)则可以得到 (2-5)同样,不同的窗口函数,将得到不同的傅立叶变换式的结果。
由上式可见,短时傅立叶变换有两个变量:n和ω,所以它既是时序n的离散函数,又是角频率ω的连续函数与离散傅立叶变换逼近傅立叶变换一样,如令ω=2πk/N,则得离散的短时傅立叶吧如下: (2-6)2、语谱图水平方向是时间轴,垂直方向是频率轴,图上的灰度条纹代表各个时刻的语音短时谱语谱图反映了语音信号的动态频率特性,在语音分析中具有重要的实用价值被成为可视语言语谱图的时间分辨率和频率分辨率是由窗函数的特性决定的时间分辨率高,可以看出时间波形的每个周期及共振峰随时间的变化,但频率分辨率低,不足以分辨由于激励所形成的细微结构,称为宽带语谱图;而窄带语谱图正好与之相反宽带语谱图可以获得较高的时间分辨率,反映频谱的快速时变过程;窄带语谱图可以获得较高的频率分辨率,反映频谱的精细结构两者相结合,可以提供带两与语音特性相关的信息语谱图上因其不同的灰度,形成不同的纹路,称之为“声纹”声纹因人而异,因此可以在司法、安全等场合得到应用3、复倒谱和倒谱复倒谱是x(n)的Z变换取对数后的逆Z变换,其表达式如下: (2-7)倒谱c(n)定义为x(n)取Z变换后的幅度对数的逆Z变换,即 (2-8)在时域上,语音产生模型实际上是一个激励信号与声道冲激响应的卷积。
对于浊音,激励信号可以由周期脉冲序列表示;对于清音,激励信号可以由随机噪声序列表示声道系统相当于参数缓慢变化的零极点线性滤波器这样经过同态处理后,语音信号的复倒谱,激励信号的复倒谱,声道系统的复倒谱之间满足下面的关系: (2-9)由于倒谱对应于复倒谱的偶部,因此倒谱与复倒谱具有同样的特点,很容易知道语音信号的倒谱,激励信号的倒谱以及声道系统的倒谱之间满足下面关系: (2-10)浊音信号的倒谱中存在着峰值,它的出现位置等于该语音段的基音周期,而清音的倒谱中则不存在峰值利用这个特点我们可以进行清浊音的判断,并且可以估计浊音的基音周期第三章 信号频谱分析3.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文件时得到了采样频率 既然知道了该声波的频谱,按频率就可以反演它的时域值,利用以上分析的主要峰值来重构声波由于没有考虑相位和其他的频谱分量,所以波形和原来的波形相差甚大,但大体的频率是没错的如图3-1所示图3-1 原始信号频谱图3.2 加入干扰噪声后的信号及频谱分析 wav语音信号加噪声 在MATLAB软件平台下,给原始的语音信号叠加上噪声,噪声类型分为如下几种:(1)单频噪色(正弦干扰);(2)高斯随机噪声绘出加噪声后的语音信号时域和频谱图,在视觉上与原始语音信号图形对比,也可通过Windows播放软件从听觉上进行对比,分析并 体会含噪语音信号频谱和时域波形的改变。
本实验采用正弦干扰 clc; clear; fs=22050; %语音信号采样频率为22050 [x,fs,bits]=wavread('C:\Documents and Settings\Administrator\桌面\语音\音频.wav'); %读取语音信号的数据,赋给变量x y1=。





