- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于MATLAB对语音信号进行分析和处理
设计目的
1.学会MATLAB的使用,掌握MATLAB的程序设计方法;
2.掌握在Windows环境下语音信号采集的方法;
3.掌握数字信号处理的基本概念、基本理论和基本方法;
4.掌握MATLAB设计FIR和IIR数字滤波器的方法;
5.学会用MATLAB对信号进行分析和处理。
设计过程
1、 语音信号采集与分析
运用windows下的录音机,录制一段自己的话音,时间为两秒。然后在MATLAB软件平台下,利用函数wavread对语音信号进行采样,再运用plot函数画出语音信号的时域波形,最后在语音信号频谱分析时运用fft对信号进行快速傅里叶变换,得到频谱特性图形。人为设计一个固定频率5500Hz的噪声干扰信号。噪声信号通常为随机序列,在本设计中用正弦序列代替,干扰信号构建命令函数为d=[Au*sin(2*pi*5500*t)],给出的干扰信号为一个正弦信号,针对上面的语音信号 ,采集了其中一段。再对噪音信号进行频谱变换得到其频谱图。
2、 滤波器设计和运用滤波器进行滤波
1 )窗函数和等波纹逼近法设计FIR滤波器及滤波
首先根据阻带最小衰减选定窗口类型,然后调用fir1函数设计线性相位FIR数字滤波器,再用freqz函数画出其频谱图形,最后运用fftfilt函数对信号进行滤波。而等波纹逼近法中则运用remez和remezord直接设计FIR滤波器,然后运用fftfilt函数对信号进行滤波。
2 )双线性变换法社设计IIR数字滤波器及滤波
首先将数字滤波器的技术指标运用预畸校正法转换成模拟滤波器的设计指标:
Ωph=2/T*tan(wp/2),然后用butter、 cheby1设计各种模拟滤波器,再用bilinear函数进行模拟滤波器和数字滤波器之间的转换,最后用filter函数对语音信号进行滤波,并运用函数sound播放滤波后语音。
结果及分析
用MATLAB对原始语音信号进行分析,画出它的时域波形和频谱
时域波形和频谱:
图1 原始语音信号
图2 语音信号频率响应图
图3 原始语音信号FFT与信号频谱
2、 给原始的语音信号加上一个高频余弦噪声,频率为5500hz。对加噪后的语音进行分析,并画出其信号时域和频谱图。
与原始信号对比,区别:先原始信号没加噪音之前0到2000有幅值,在4000到6000之间没有幅值,但是在加了噪音之后4000到6000之间出现最大幅值12,超出正常值。如图5原始信号与加噪后信号频谱对比图所示。
3、 设计IIR数字低通、高通滤波器
1)butter设计数字低通滤波器
2)butter设计数字高通滤波器
3)cheby1设计模拟低通滤波器再经双线性变换法设计成低通数字滤波器
4)cheby1设计模拟高通滤波器再经双线性变换法设计成高通数字滤波器
3、 设计FIR数字低通、高通滤波器
1)用凯瑟窗设计FIR低通滤波器
2)用凯瑟窗设计FIR高通滤波器
3)等波纹逼近法设计FIR低通滤波器及滤波
4)等波纹逼近法设计FIR高通滤波器及滤波
4、 实验结论
通过对比分析可知,滤波后的输出波形和原始语音加噪声信号的图形发生了一些变化:滤波后的输出波形明显在对应时间幅度比原语音加噪声信号的要小,而且滤波的效果也与滤波器的选择有关,可以看出滤波器的性能差异以及参数的调节会对滤波器产生一定的影响,并且通过回放可以发现滤波前后的声音有变化.低通滤波后,已很接近原来的声音。从频谱图中我们还可以看出声音的能量信号主要集中在低频部分,说明高频语音信号被滤出,滤波器达到既定要求。在采样时要注意音频要为单声道,否则会提示出错,无法利用freqz绘制原始语音信号的频率响应图。
由结果可知实验中的各种数字低通滤波器(butter设计模拟滤波器再经双线变化法设计的数字低通滤波器除外)在相同采样频率下,对语音信号都有较好的过滤作用,让声音变得低沉、圆润,音质较好;而实验中各种数字高通滤波器则对高音部分有较好的保留作用,滤掉了低音部分,让声音变得嘶哑、高亢。总之,无论是哪种数字滤波器都有自己独特的作用,要根据实际需要选择。
程序附录
(1)时域波形和频谱
fs=22050; %语音信号采样频率为22050
x1=wavread(E:\数字信号处理\recording.wav);
%读取语音信号的数据,赋给变量x1,
sound(x1,22050); %播放语音信号
y1=fft(x1,1024); %对信号做1024点FFT变换
f=fs*(0:511)/1024; %将0到511,步长为1的序列的值与fs相乘并除以1024的值,赋值给f
figure(1)
文档评论(0)