应用matlab对语音信号进行频谱分析报告及滤波

上传人:沈*** 文档编号:100600847 上传时间:2022-06-03 格式:DOC 页数:23 大小:515.50KB
返回 下载 相关 举报
应用matlab对语音信号进行频谱分析报告及滤波_第1页
第1页 / 共23页
应用matlab对语音信号进行频谱分析报告及滤波_第2页
第2页 / 共23页
应用matlab对语音信号进行频谱分析报告及滤波_第3页
第3页 / 共23页
点击查看更多>>
资源描述
word数 字 信 号 处 理综合实验报告综合实验名称:应用MatLab对语音信号进展频谱分析与滤波系 :学生某某:班 级:学 号:成 绩:指导教师:开课时间 学年 学期21 / 23 目 录 一综合实验题目1二、综合实验目的和意义12.1 综合实验目的12.2 综合实验的意义1三综合实验的主要内容和要求13.2 综合实验的要求:2四实验的原理24.1 数字滤波器的概念24.2 数字滤波器的分类21根据单位冲激响应h(n)的时间特性分类2五实验的步骤335.2 语音信号的频谱分析;35.3 设计数字滤波器和画出其频率响应55.3.1设计数字滤波器的性能指标:55.3.2 用Matlab设计数字滤波器65.6 设计系统界面19六、心得体会20参考文献:21一综合实验题目应用MatLab对语音信号进展频谱分析与滤波二、综合实验目的和意义2.1 综合实验目的为了巩固所学的数字信号处理理论知识,使学生对信号的采集、处理、传输、显示和存储等有一个系统的掌握和理解,再者,加强学生对Matlab软件在信号分析和处理的运用综合运用数字信号处理的理论知识进展频谱分析和滤波器设计,通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进展计算机实现,从而加深对所学知识的理解,建立概念。2.2 综合实验的意义语言是我们人类所特有的功能,它是传承和记载人类几千年文明史,没有语言就没有我们今天人类的文明。语音是语言最根本的表现形式,是相互传递信息最重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。语音信号处理属于信息科学的一个重要分支,大规模集成技术的高度开展和计算机技术的飞速前进,推动了这一技术的开展;它是研究用数字信号处理技术对语音信号进展处理的一门新兴学科,同时又是综合性的多学科领域和涉与面很广的交叉学科,因此我们进展语言信号处理具有时代的意义。三综合实验的主要内容和要求: 录制一段个人自己的语音信号,并对录制的信号进展采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进展滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进展比照,分析信号的变化;回放语音信号;综合实验应完成的工作:(1语音信号的采集;(2语音信号的频谱分析;(3数字滤波器的设计;(4对语音信号进展滤波处理;(5对滤波前后的语音信号频谱进展比照分析;3.2 综合实验的要求:(1学生能够根据设计内容积极主动查找相关资料;(2滤波器的性能指标可以根据实际情况作调整;(3对设计结果进展独立思考和分析;(4设计完成后,要提交相关的文档;综合实验报告书(纸质和电子版各一份,具体格式参照学校课程设计管理规定),报告内容要涵盖设计题目、设计任务、详细的设计过程、原理说明、频谱图的分析、调试总结、心得体会、参考文献在报告中参考文献要做标注,不少于5篇。可运行的源程序代码(电子版)(5在根本要求的根底上,学生可以根据个人对该综合实验的理解,添加一些新的内容。四实验的原理4.1 数字滤波器的概念:假如滤波器的输入、输出都是离散时间信号,那么该滤波器的单位冲激响应h(n)也必然是离散的,这种滤波器称为数字滤波器DF。【1】数字滤波器实质上是一种运算过程用来描述离散系统输入与输出关系的差分方程的计算或卷积计算。数字滤波器的实质是用一有限精度算法实现的离散时间线性时不变系统,以完成对信号进展滤波处理的过程。它是数字信号处理的一个重要分支,具有稳定性好、精度高、灵活性强、体积小、质量轻等诸多优点。【2】4.2 数字滤波器的分类:数字滤波器根据不同的分类标准可以将滤波器分成不同的类别。1根据单位冲激响应h(n)的时间特性分类 无限冲激响应IIR数字滤波器 有限冲激响应FIR数字滤波器12根据实现方法和形式分类 递归型数字滤波器 非递归型数字滤波器 快速卷积型3根据频率特性分类低通数字滤波器、高通数字滤波器、带通数字波器4.3 滤波器的作用:滤波器是一种用来消除干扰杂讯的器件,将输入或输出经过过滤而得到纯净的直流电【3】。对特定频率的频点或该频点以外的频率进展有效滤除的电路,就是滤波器,其功能就是得到一个特定频率或消除一个特定频率。五实验的步骤录制一段个人自己的语音信号,并对录制的信号进展采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进展滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进展比照,分析信号的变化;回放语音信号;最后,设计一个信号处理系统界面。下面对各步骤加以具体说明。 : 利用 PC机上的声卡和 Windows操作系统可以进展数字信号的采集。将话筒插入计算机的语音输入插口上,启动录音机。按下录音按钮,对话筒读一段话,读完后停止录音,屏幕左侧将显示所录声音的长度。【1】5.2 语音信号的频谱分析: (1)首先画出由wavread函数采样后的信号的时域波形和它的频域响应波形;语音信号的程序如下:x1,fs,bits=wavread(c:wudan2.wav); %读取语音信号的数据,赋给变量x1figure(20)title(原始语音采样后时域信号);xlabel(时间轴 n);ylabel(幅值 A);figure(21)freqz(x1) %绘制原始语音信号采样后的频率响应图title(原始语音信号采样后频率响应图);运行结果:图1图2 2) 对语音信号进展FFT变换,得到FFT频谱特性曲线,与原语音信号的频谱特性曲线进展比拟。语音信号FFT的程序如下:x1,fs,bits=wavread( c:wudan2.wav); %读取语音信号的数据,赋给变量x1y1=fft(x1,1024); %对采样后信号做1024点FFT变换f=fs*(0:511)/1024;figure(19)subplot(2,1,1);plot(f,abs(y1(1:512);title(原始语音信号频谱)xlabel(频率/Hz);ylabel(幅值)subplot(2,1,2);plot(abs(y1(1:1024) %采样后信号的FFT频谱图title(原始语音信号FFT频谱)xlabel(点数N);ylabel(幅值);运行结果:图35.3 设计数字滤波器和画出其频率响应5.3.1设计数字滤波器的性能指标: 低通滤波器性能指标fb=1000Hz,fc1200Hz, As100db,Ap1db。 高通滤波器性能指标 fs4800Hz,fb5000Hz,As100db,Ap1db。 带通滤波器性能指标 fb11200Hz,fb23000Hz,fc11000Hz,fc23200Hz,As100db,Ap1db。5.3.2 用Matlab设计数字滤波器用双线性变换法设计上面要求的3种滤波器。在Matlab中,可以利用函数butter,cheby1和ellip设计IIR滤波器;利用Matlab中的函数frepz画出各滤波器的频率响应。【2】用窗函数法设计上面要求的3种滤波器。在Matlab中,可以利用函数fir1设计FIR滤波器;利用Matlab中的函数freqz画出各滤波器的频率响应。用自己设计的各滤波器分别对采集的信号进展滤波,在Matlab中,FIR滤波器利用函数fftfilt对信号进展滤波,IIR滤波器利用函数filter对信号进展滤波。并比拟滤波前后语音信号的波形与频谱。【4】IIR低通滤波器程序如下:fs=22050;x2=wavread(c:wudan2.wav);Ts=1/fs;R1=10;wp=2*pi*1000/fs;ws=2*pi*1200/fs;Rp=1;Rl=100;wp1=2/Ts*tan(wp/2); %将模拟指标转换成数字指标ws1=2/Ts*tan(ws/2); N,Wn=buttord(wp1,ws1,Rp,R1,s); %选择滤波器的最小阶数Z,P,K=buttap(N); %创建butterworth模拟滤波器Bap,Aap=zp2tf(Z,P,K);b,a=lp2lp(Bap,Aap,Wn); bz,az=bilinear(b,a,fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换H,W=freqz(bz,az); %绘制频率响应曲线figure(16)plot(W*fs/(2*pi),abs(H)gridxlabel(频率Hz)ylabel(频率响应幅度)title(IIR低通滤波器)f1=filter(bz,az,x2);figure(17)subplot(2,1,1)plot(x2) %画出滤波前的时域图title(IIR低通滤波器滤波前的时域波形);subplot(2,1,2)plot(f1); %画出滤波后的时域图title(IIR低通滤波器滤波后的时域波形);sound(f1,44100); %播放滤波后的信号F0=fft(f1,1024);f=fs*(0:511)/1024;figure(18)y2=fft(x2,1024);subplot(2,1,1);plot(f,abs(y2(1:512); %画出滤波前的频谱图title(IIR低通滤波器滤波前的频谱)xlabel(频率/Hz);ylabel(幅值);subplot(2,1,2)F1=plot(f,abs(F0(1:512); %画出滤波后的频谱图title(IIR低通滤波器滤波后的频谱)xlabel(频率/Hz);ylabel(幅值);【5】运行结果:图4图5图6IIR高通滤波器程序如下:fs=22050;x1=wavread(c:wudan2.wav);Fs=22050;Ts=1/Fs;R1=50;Wp=2*pi*5000/fs;Ws=2*pi*4800/fs;Rp=1;Rl=100;Wp1=2/Ts*tan(Wp/2); %将模拟指标转换成数字指标Ws1=2/Ts*tan(Ws/2); N,Wn=cheb2ord(Wp1,Ws1,Rp,Rl,s); %选择滤波器的最小阶数Z,P,K=cheb2ap(N,Rl); %创建切比雪夫模拟滤波器Bap,Aap=zp2tf(Z,P,K);b,a=lp2hp(Bap,Aap,Wn); bz,az=bilinear(b,a,Fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换H,W=freqz(bz,az); %绘制频率响应曲线figure(13)plot(W*fs/(2*pi),abs(H)gridxlabel(频率Hz)ylabel(频率响应幅度)title(IIR高通滤波器)f1=filter(bz,az,x1);figure(14)subplot(2,1,1)plot(x1) %画出滤波前的时域图title(IIR高通滤波器滤波前的时域波形);subplot(2,1,2)plot(f1); %画出滤波后的时域图title(IIR高通滤波器滤波后的时域波形);sound(f1,44100); %播放滤波后的信号F0=fft(f1,1024);f=fs*(0:511)/1024;figure(15)y2=fft(x1,1024);subplot(2,1,1);plot(f,abs(y2(1:512); %画出滤波前的频谱图title(IIR高通滤波器滤波前的频谱)xlabel(频率/Hz);ylabel(幅值);subplot(2,1,2)plot(f,abs(F0(1:512); %画出滤波后的频谱图title(IIR高通滤波器滤波后的频谱)xlabel(频率/Hz);ylabel(幅值);运行结果:图7 图8图9IIR带通滤波器程序如下:fs=22050;x1=wavread(c:wudan2.wav);Fs=22050;Ts=1/Fs;R1=30;fb1=1200;fb2=3000;fc1=1000;fc2=3200;fs=22050;W1=2*fb1*pi/fs;W2=2*fc1*pi/fs;W3=2*fb2*pi/fs;W4=2*fc2*pi/fs;Wp=W1,W3;Ws=W2,W4;Rp=1;Rl=100;Wp1=2/Ts*tan(Wp/2); %将模拟指标转换成数字指标Ws1=2/Ts*tan(Ws/2); N,Wn=cheb2ord(Wp1,Ws1,Rp,R1,s); %选择滤波器的最小阶数Z,P,K=cheb2ap(N,Rl); %创建切比雪夫模拟滤波器Bap,Aap=zp2tf(Z,P,K);b,a=lp2bp(Bap,Aap,2100*2*pi,1800*2*pi); bz,az=bilinear(b,a,Fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换H,W=freqz(bz,az); %绘制频率响应曲线figure(10)plot(W*fs/(2*pi),abs(H)gridxlabel(频率Hz)ylabel(频率响应幅度)title(IIR带通滤波器)f1=filter(bz,az,x1);figure(11)subplot(2,1,1)plot(x1) %画出滤波前的时域图title(IIR带通滤波器滤波前的时域波形);subplot(2,1,2)plot(f1); %画出滤波后的时域图title(IIR带通滤波器滤波后的时域波形);sound(f1,44100); %播放滤波后的信号F0=fft(f1,1024);f=fs*(0:511)/1024;figure(12)y2=fft(x1,1024);subplot(2,1,1);plot(f,abs(y2(1:512); %画出滤波前的频谱图title(IIR带通滤波器滤波前的频谱)xlabel(频率/Hz);ylabel(幅值);subplot(2,1,2)plot(f,abs(F0(1:512); %画出滤波后的频谱图title(IIR带通滤波器滤波后的频谱)xlabel(频率/Hz);ylabel(幅值); 【6】运行结果: 图10图11图12FIR低通滤波器程序如下:fs=10000;x1=wavread(c:wudan2.wav);wp=2*pi*1000/fs;ws=2*pi*1200/fs;Rp=1;Rs=100;wdelta=ws-wp;N=ceil(8*pi/wdelta); %取整wn=(wp+ws)/2;b,a=fir1(N,wn/pi,hamming(N+1); %选择窗函数,并归一化截止频率figure(7)freqz(b,a,512);title(FIR低通滤波器);f2=filter(b,a,x1);figure(8)subplot(2,1,1)plot(x1)title(FIR低通滤波器滤波前的时域波形);subplot(2,1,2)plot(f2);title(FIR低通滤波器滤波后的时域波形);sound(f2,44100); %播放滤波后的语音信号F0=fft(f2,1024);f=fs*(0:511)/1024;figure(9)y2=fft(x1,1024);subplot(2,1,1);plot(f,abs(y2(1:512);title(FIR低通滤波器滤波前的频谱)xlabel(频率/Hz);ylabel(幅值);subplot(2,1,2)F2=plot(f,abs(F0(1:512);title(FIR低通滤波器滤波后的频谱)xlabel(频率/Hz);ylabel(幅值); 【7】运行结果:图13图14图15FIR高通滤波器程序如下:fs=22050;x1=wavread(c:wudan2.wav);wp=2*pi*5000/fs;ws=2*pi*4800/fs;Rp=1;Rs=100;wdelta=wp-ws;N=ceil(8*pi/wdelta); %取整wn=(wp+ws)/2;b,a=fir1(N,wn/pi,high); figure(4)freqz(b,a,512);title(FIR高通滤波器);f2=filter(b,a,x1);figure(5)subplot(2,1,1)plot(x1)title(FIR高通滤波器滤波前的时域波形);subplot(2,1,2)plot(f2);title(FIR高通滤波器滤波后的时域波形);sound(f2,44100); %播放滤波后的语音信号F0=fft(f2,1024);f=fs*(0:511)/1024;figure(6)y2=fft(x1,1024);subplot(2,1,1);plot(f,abs(y2(1:512);title(FIR高通滤波器滤波前的频谱)xlabel(频率/Hz);ylabel(幅值);subplot(2,1,2)F2=plot(f,abs(F0(1:512);title(FIR高通滤波器滤波后的频谱)xlabel(频率/Hz);ylabel(幅值); 【9】运行结果:图16图17图18FIR带通滤波器程序如下:fs=22050;x1=wavread(c:wudan2.wav);wp1=2*pi*1200/fs;wp2=2*pi*3000/fs;ws1=2*pi*1000/fs;ws2=2*pi*3200/fs;Rp=1;Rs=100;wp=(wp1+ws1)/2;ws=(wp2+ws2)/2;wdelta=wp1-ws1;N=ceil(8*pi/wdelta); %取整wn=wp ws;b,a=fir1(N,wn/pi,bandpass); figure(1)freqz(b,a,512);title(FIR带通滤波器);f2=filter(b,a,x1);figure(2)subplot(2,1,1)plot(x1)title(FIR带通滤波器滤波前的时域波形);subplot(2,1,2)plot(f2);title(FIR带通滤波器滤波后的时域波形);sound(f2,44100); %播放滤波后的语音信号F0=fft(f2,1024);f=fs*(0:511)/1024;figure(3)y2=fft(x1,1024);subplot(2,1,1);plot(f,abs(y2(1:512);title(FIR带通滤波器滤波前的频谱)xlabel(频率/Hz);ylabel(幅值);subplot(2,1,2)plot(f,abs(F0(1:512);title(FIR带通滤波器滤波后的频谱)xlabel(频率/Hz);ylabel(幅值);运行结果:图19图20图215.5 回放语音信号 在Matlab中,函数sound可以对声音进展回放。其调用格式:sound(x,fs,bits);可以感觉滤波前后的声音有变化。 回放语音程序:x1,fs,bits=wavread(c:wudan2.wav); %读取语音信号的数据,赋给变量x1sound(x1,fs); %播放语音信号 【8】5.6 设计系统界面 本系统界面主要采用ifelse语句和menu菜单函数进展设计。程序如下:b=menu(请选择选项,原始信号采样后时域图和频谱图,FIR滤波器,IIR滤波器,退出);if b=4 b=0;endif b=1 temp=menu(请选择选项,播放原始语音,原始语音时域图和频率响应图,原始语音频谱图与做FFT变换后频谱图,返回); if temp=1 voice; main; elseif temp=2 time; main; elseif temp=3 pingpu; main; else main; endelseif b=2 temp=menu(请选择选项,FIR低通滤波器,FIR高通滤波器,FIR带通滤波器,返回); if temp=1 FIR_LP; main; elseif temp=2 FIR_HP; main; elseif temp=3 FIR_BP; main; else main; end elseif b=3 temp=menu(请选择选项,IIR低通滤波器,IIR高通滤波器,IIR带通滤波器,返回); if temp=1 IIR_LP; main; elseif temp=2 IIR_HP; main; elseif temp=3 IIR_BP; main; else main endEnd 【10】运行结果:图22 图23图24 图25六、心得体会通过做应用Matlab对语音信号进展谱分析与滤波这个课程设计,加深了我对数字信号处理理论知识,尤其是采样频率,频谱特性和数字滤波器的设计;另一方面,使我在原来熟悉控制系统在Matlab运用的根底上进一步学习Matlab软件在信号分析和处理的运用。在整个课程设计过程中,从分析设计题目到设计程序框图再到具体的程序代码编写,是我对课程设计有了更深刻的理解。分析课题题目:应用Matlab对语音信号进展谱分析与滤波,考虑到几个方面的内容:1加强对Matlab根底知识的学习,尤其是Matlab在信号处理方面的学习,这就需要多方面查找资料,如上互联网,图书馆等;2加强学习信号处理知识理论,尤其是FFT频谱变换理论和各种数字滤波器设计理论;3要突出重点,其重点是谱分析和数字滤波器的设计和分析结果。明确设计步骤,设计程序框图,按照框图编写程序代码,调试修改与完善。在具体编写代码的过程中,遇到了不少问题,比如设计数字滤波器所需函数的使用,归一化与非归一化的问题,各种参数确实定等等,但是通过对资料仔细的通阅和不断的调试修改,终于将课程设计完成,自己个人觉得质量还算优秀。参考文献:1徐欢,胡津津,袁媛.基于MATLAB的FIR数字滤波器的窗函数法设计与仿真J.某某师X学院学报,2013,(4)2(美) 维纳K恩格尔, (美) 约翰G普罗克斯.数字信号处理M.某某:某某交通大学,2002.3 韩泽欣,杨雪松.基于Matlab的数字滤波器设计J.某某科技,2013,(5)4 李兰英,王志超,王峰,高明,侣铁强.FIR数字滤波器设计仿真J.某某理工大学学报,2013,(3)5 韩纪庆,X磊,X铁然.语音信号处理M.:清华大学,2004.6 易克初,田斌,付强.语音信号处理M.:国防工业,2000.7 周辉,董正宏.数字信号处理根底与MATLAB实现M.:希望电子 ,2006.8 严慧,于继明.基于Matlab的IIR数字滤波器设计J.软件导刊,2013,(1)9程佩青.数字信号处理教程第二版)M.:清华大学,2001.10万永革.数字信号处理的MATLAB实现第二版M.:科学,2012.
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!