基于matlab对语音信号进行分析和处理

基于matlab对语音信号进行分析和处理

ID:12064826

大小:881.50 KB

页数:18页

时间:2018-07-15

基于matlab对语音信号进行分析和处理_第1页
基于matlab对语音信号进行分析和处理_第2页
基于matlab对语音信号进行分析和处理_第3页
基于matlab对语音信号进行分析和处理_第4页
基于matlab对语音信号进行分析和处理_第5页
资源描述:

《基于matlab对语音信号进行分析和处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于MATLAB对语音信号进行分析和处理一、设计目的1.学会MATLAB的使用,掌握MATLAB的程序设计方法;2.掌握在Windows环境下语音信号采集的方法;3.掌握数字信号处理的基本概念、基本理论和基本方法;4.掌握MATLAB设计FIR和IIR数字滤波器的方法;5.学会用MATLAB对信号进行分析和处理。二、设计过程1、语音信号采集与分析运用windows下的录音机,录制一段自己的话音,时间为两秒。然后在MATLAB软件平台下,利用函数wavread对语音信号进行采样,再运用plot函数画出语音信号的时域波形,最后在语音信号频谱分析时运用fft对信号进行

2、快速傅里叶变换,得到频谱特性图形。人为设计一个固定频率5500Hz的噪声干扰信号。噪声信号通常为随机序列,在本设计中用正弦序列代替,干扰信号构建命令函数为d=[Au*sin(2*pi*5500*t)]',给出的干扰信号为一个正弦信号,针对上面的语音信号,采集了其中一段。再对噪音信号进行频谱变换得到其频谱图。2、滤波器设计和运用滤波器进行滤波1)窗函数和等波纹逼近法设计FIR滤波器及滤波首先根据阻带最小衰减选定窗口类型,然后调用fir1函数设计线性相位FIR数字滤波器,再用freqz函数画出其频谱图形,最后运用fftfilt函数对信号进行滤波。而等波纹逼近法中则运

3、用remez和remezord直接设计FIR滤波器,然后运用fftfilt函数对信号进行滤波。2)双线性变换法社设计IIR数字滤波器及滤波首先将数字滤波器的技术指标运用预畸校正法转换成模拟滤波器的设计指标:Ωph=2/T*tan(wp/2),然后用butter、cheby1设计各种模拟滤波器,再用bilinear函数进行模拟滤波器和数字滤波器之间的转换,最后用filter函数对语音信号进行滤波,并运用函数sound播放滤波后语音。三、结果及分析1、用MATLAB对原始语音信号进行分析,画出它的时域波形和频谱时域波形和频谱:图1原始语音信号图2语音信号频率响应图图

4、3原始语音信号FFT与信号频谱2、给原始的语音信号加上一个高频余弦噪声,频率为5500hz。对加噪后的语音进行分析,并画出其信号时域和频谱图。与原始信号对比,区别:先原始信号没加噪音之前0到2000有幅值,在4000到6000之间没有幅值,但是在加了噪音之后4000到6000之间出现最大幅值12,超出正常值。如图5原始信号与加噪后信号频谱对比图所示。3、设计IIR数字低通、高通滤波器1)butter设计数字低通滤波器2)butter设计数字高通滤波器3)cheby1设计模拟低通滤波器再经双线性变换法设计成低通数字滤波器4)cheby1设计模拟高通滤波器再经双线性

5、变换法设计成高通数字滤波器3、设计FIR数字低通、高通滤波器1)用凯瑟窗设计FIR低通滤波器2)用凯瑟窗设计FIR高通滤波器3)等波纹逼近法设计FIR低通滤波器及滤波4)等波纹逼近法设计FIR高通滤波器及滤波4、实验结论通过对比分析可知,滤波后的输出波形和原始语音加噪声信号的图形发生了一些变化:滤波后的输出波形明显在对应时间幅度比原语音加噪声信号的要小,而且滤波的效果也与滤波器的选择有关,可以看出滤波器的性能差异以及参数的调节会对滤波器产生一定的影响,并且通过回放可以发现滤波前后的声音有变化.低通滤波后,已很接近原来的声音。从频谱图中我们还可以看出声音的能量信号

6、主要集中在低频部分,说明高频语音信号被滤出,滤波器达到既定要求。在采样时要注意音频要为单声道,否则会提示出错,无法利用freqz绘制原始语音信号的频率响应图。由结果可知实验中的各种数字低通滤波器(butter设计模拟滤波器再经双线变化法设计的数字低通滤波器除外)在相同采样频率下,对语音信号都有较好的过滤作用,让声音变得低沉、圆润,音质较好;而实验中各种数字高通滤波器则对高音部分有较好的保留作用,滤掉了低音部分,让声音变得嘶哑、高亢。总之,无论是哪种数字滤波器都有自己独特的作用,要根据实际需要选择。一、程序附录(1)时域波形和频谱fs=22050;%语音信号采样频

7、率为22050x1=wavread('E:数字信号处理recording.wav');%读取语音信号的数据,赋给变量x1,sound(x1,22050);%播放语音信号y1=fft(x1,1024);%对信号做1024点FFT变换f=fs*(0:511)/1024;%将0到511,步长为1的序列的值与fs相乘并除以1024的值,赋值给ffigure(1)%创建图形窗1plot(x1)%做原始语音信号的时域图形title('原始语音信号');xlabel('timen');%x轴的名字是“timen”ylabel('fuzhin');%y轴的名字是“fuzhi

8、n”figure(2)f

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。