基于MATLAB的个人语音信号处理课程设计说明书_第1页
基于MATLAB的个人语音信号处理课程设计说明书_第2页
基于MATLAB的个人语音信号处理课程设计说明书_第3页
基于MATLAB的个人语音信号处理课程设计说明书_第4页
基于MATLAB的个人语音信号处理课程设计说明书_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于 matlab 的个人语音信号处理课程设计说明书1目目 录录摘要.1abstract.21 matlab 简介 .31.1 matlab 的概况 .31.2 matlab 的语言特点 .32 语音信号的采集.53 语音信号的频谱分析.74 设计数字滤波器和画出其频率响应.84.1 fir 滤波器的分析与设计.84.1.1 窗函数法设计 fir 滤波器.84.1.2 fir 低通滤波器.9 4.1.2.1 程序设计及流程图.9 4.1.2.2 输出结果仿真.104.1.3 fir 高通滤波器.10 4.1.3.1 程序设计及流程图.10 4.1.3.2 输出结果仿真.114.1.4 fir

2、带通滤波器.12 4.1.4.1 程序设计及流程图.12 4.1.4.2 输出结果仿真.134.2 iir 滤波器的分析与设计.134.2.1 双线性变换法设计 iir 滤波器.134.2.2 iir 低通滤波器.14 4.2.2.1 程序设计及流程图.14 4.2.2.2 输出结果仿真.154.2.3 iir 高通滤波器.16 4.2.3.1 程序设计及流程图.16 4.2.3.2 输出结果仿真.174.2.4 iir 带通滤波器.18基于 matlab 的个人语音信号处理课程设计说明书2 4.2.4.1 程序设计及流程图.18 4.2.4.2 输出结果仿真.205 声音信号的滤波.215.

3、1 对信号进行滤波的流程.215.2 对信号进行滤波的仿真.215.2.1 滤波前后的时域对比.215.2.2 滤波前后的频域对比.236 总结及心得体会.257 参考文献.267 附录.27基于 matlab 的个人语音信号处理课程设计说明书1摘摘 要要 matlab 语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,matlab 功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。特别是matlab 还具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分析、处理和设计。 matlab 为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。

4、根据它提供的 500 多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或编程以完成各自的计算。 matlab 中集成了功能强大的语音信号处理工具箱。由于 matlab 语言的语法特征与 c 语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式,而且这种语言可移植性好、可扩展性强,再加上其中有丰富的语音信号处理函数,所以 matlab 在语音信号处理的应用中具有很大的优势。 为了巩固所学的数字信号处理理论知识,使学生对信号的采集、处理、传输、显示和存储等有一个系统的掌握和理解,精心地安排了课程设计的内容:录制一段个人自己的语音信号,并对录制的信号进行采样;画出采

5、样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;最后,设计一个信号处理系统界面。关键词:matlab,语音信号处理基于 matlab 的个人语音信号处理课程设计说明书2abstractmatlab language is a widely used in engineering calculation and numerical analysis domain new languages, and

6、 matlab powerful functions, easy to operate, programming, high efficiency, favored by the vast number of scientific and technical workers welcome. especially matlab also has signal analysis toolbox, without the need to have strong ability of programming, it can be easily signal analysis, processing

7、and design.matlab for data analysis and data visualization, algorithm and application development provides the most core of math and advanced graphical tool. according to provide it with the more than 500 math and engineering function, engineering and technical personnel and scientific workers may i

8、n its integration environment interactive or programming to complete their calculations. matlab integration of the powerful speech signal processing toolbox. because of matlab language grammatical features and c language is very similar, and simpler, more in line with the scientific and technical pe

9、rsonnel to the mathematical expression of the written form, and the language portability good, extensible, plus one is rich in speech signal processing function, so matlab in speech signal processing applications of great advantage.in order to strengthen the learning of digital signal processing the

10、ory knowledge, enables the student to the signal collection, processing and transmission, display and storage, etc have a system of mastery and understanding, meticulously arranged curriculum design of content: making a video personal own voice signal, and then the recording of signal sampling, draw

11、 after speech signal sampling time domain waveform and spectrum diagrams, given filter performance index, the window function method and bilinear transformation design filter, and draw the filter frequency response, then use the design of your own filters to sampled signal for filter and draw the fi

12、ltered signal waveform and spectrum, and time domain to filter the signal, compared before and after the analysis of signal changes, playback speech signal, finally, design a signal processing system interface.keywords: matlab, the speech signal processing基于 matlab 的个人语音信号处理课程设计说明书31 matlab 简介1.1 ma

13、tlab 的概况matlab 是矩阵实验室(matrixlaboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。matlab 的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用 matlab 来解算问题要比用 c、fortran 等语言完相同的事情简捷得多。matlab 包括拥有数百个内部函数的主包和三十几种工具包(toolbox)。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充 matlab 的符号计算、可视化建模仿真、文字处理及实时控制等功能。学科工具包是专业性比较强的工具包、控制

14、工具包、信号处理工具包、通信工具包等都属于此类。开放性使 matlab 广受用户欢迎.除内部函数外,所有 matlab 主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。1.2 matlab 的语言特点matlab 最突出的特点就是简洁。matlab 用更直观的,符合人们思维习惯的代码,代替了 c 和 fortran 语言的冗长代码。matlab 给用户带来的是最直观,最简洁的程序开发环境。以下简单介绍一下 matlab 的主要特点:1语言简洁紧凑,使用方便灵活,库函数极其丰富。matlab 程序书写形式自由,利用起丰富的库函数避开繁杂的子程

15、序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。2运算符丰富。由于 matlab 是用 c 语言编写的,matlab 提供了和 c 语言几乎一样多的运算符,灵活使用 matlab 的运算符将使程序变得极为简短。3matlab 既具有结构化的控制语句(如 for 循环,while 循环,break 语句和 if 语句),又有面向对象编程的特性。4程序限制不严格,程序设计自由度大。例如,在 matlab 里,用户无需对矩阵预定义就可使用。基于 matlab 的个人语音信号处理课程设计说明书45程序的可移植性很好,基本上不做修改就可以在各种型号的计算

16、机和操作系统上运行。6matlab 的图形功能强大。在 fortran 和 c 语言里,绘图都很不容易,但在matlab 里,数据的可视化非常简单。matlab 还具有较强的编辑图形界面的能力。7matlab 的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于matlab 的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。8功能强大的工具箱是 matlab 的另一特色。matlab 包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又分为两类:功能性工具箱和学科性工具箱。9源程序的开放性。开放性也许是 matlab 最受人们欢迎的特

17、点。除内部函数以外,所有 matlab 的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。基于 matlab 的个人语音信号处理课程设计说明书52 语音信号的采集首先利用 windows 下的录音机,录制一段自己的话音,时间在 1 s 内,存为文件:music.wav。然后在 matlab 软件平台下,利用函数 wavread 对语音信号进行采样,记下采样频率和采样点数为:pcm 44.100 khz, 16 位。通过 wavread 函数的使用,我们能很快理解采样频率、采样位数等概念。 利用函数 wavread 对语音信号的采集的程序如下:

18、 close all; i=1; x,fs,bits=wavread(music.wav); %x:语音数据;fs:采样频率;bits:采样点数 sound(x,fs,bits); %话音回放 n=length(x); n=0:n-1; figure(i); subplot(2,1,1); plot(n,x); %画出原始语音信号的波形 xlabel(n); ylabel(x(n); title(原始语音信号); subplot(2,1,2); h,f=freqz(x,1,512,fs); plot(f,20*log10(abs(h); %画出原始语音信号的频谱 xlabel(n); ylab

19、el(x(n); title(原始语音信号的频谱);文件名 ywavread运行结果:fs = 22.050 khz bits =16基于 matlab 的个人语音信号处理课程设计说明书6图 1 原始语音信号及其频谱基于 matlab 的个人语音信号处理课程设计说明书73 语音信号的频谱分析先画出语音信号的时域波形,然后对语音号进行快速傅里叶变换,得到信号的频谱特性。语音信号的 fft 频谱分析程序如下: f=fft(x,n); %对语音号进行快速傅里叶变换,得出频谱 i=i+1; figure(i); plot(abs(n),abs(f); xlabel(k); ylabel(|y(k)|)

20、; title(fft后的波形); 运行结果:图 2 傅里叶变换后的频谱基于 matlab 的个人语音信号处理课程设计说明书84 设计数字滤波器和画出其频率响应要求用窗函数法和双线性变换法设计以下三种数字滤波器,其性能指标如下:a.低通滤波器性能指标 fb=1000hz ,fc=1200hz ,最大衰减 as=100db ,最小衰减 ap=1db ;b.高通滤波器性能指标 fs=4800hz,fb=5000hz, 最大衰减 as=100db ,最小衰减ap=1db ; c.带通滤波器性能指标 fb1=1200hz,fb2=3000hz , fc1=1000hz, fc2=3200hz,最大衰减

21、 as=100db ,最小衰减 ap=1db ; 4.1 fir 滤波器的分析与设计iir 滤波器的最大缺点是不容易实现线性相位,而在语音、图像、数据通信等系统中普遍都要求数字滤波器具有线性相位特性,fir 滤波器正是因为具有线性相位特性因而在各个科技领域都获得了广泛的应用。设计 fir 常用方法有窗函数法、频率采样法等,本次课程设计采用的是窗函数法。4.1.1 窗函数法设计 fir 滤波器fir 滤波器的设计目标就是通过傅里叶变换,得到理想滤波器与近似数字滤波器在频域上的对应关系为 , 就称为窗函数。用实际的系统函数逼近理想的系统函数时,其精确程度取决于窗函数的频率特性。经过截取后,会带来误

22、差,在频域上引起截断效应,称为吉布斯效应(gibbs)。为了改善这种情况,需要窗函数的主瓣宽度尽可能窄,以获得最小的过渡带;旁瓣相对值尽可能小,以使通带波纹小,并且阻带衰减大。实际上,这两个要求并不能同时满足,如何设计尽量满足这两个条件的窗函数就是用窗函数的关键所在。用窗函数设计 fir 滤波器,需要根据给定的滤波器指标选择适当的窗函数和窗函数的宽度 n。利用窗函数法设计 fir 滤波器的步骤为:(1)根据设计的技术要求确定待求滤波器的单位脉冲响应或频域响应。(2)根据实际中对过渡带和阻带衰减的要求,选择窗函数的形式,并估计窗长度 n。 jjdjeweheh*21 nw基于 matlab 的个

23、人语音信号处理课程设计说明书9(3)计算滤波器的单位脉冲响应。(4)检验所设计的滤波器的性能,根据是否达到设计指标重复上述步骤。4.1.2 fir 低通滤波器4.1.2.1 程序设计及流程图(1)程序设计fp=1000;fs=1200;as=120;fs=22050; %确定技术指标wp=2*pi*fp/fs; ws=2*pi*fs/fs; %求归一化频率wo=ws-wp; %求过渡带beta=0.1102*(as-0.87); %求凯泽窗函数参数n=ceil(as-8)/2.285/wo); %由过渡带决定 n 的值wc=(wp+ws)/2/pi; b=fir1(n,wc,kaiser(n+

24、1,beta); hw,w=freqz(b,1);figure(1);plot(w*fs/2/pi,20*log10(abs(hw); %绘制频率响应曲线grid ;title(fir 低通滤波器);(2)程序流程图凯泽窗低通滤波器设计流程图如图 3 所示:开始确定模拟低通滤波器的技术指标技术指标从模拟到数字转换利用 fir1 函数确定滤波器的实际单位脉冲响应h(n)利用 freqz 函数确定幅频响应作出凯泽窗低通滤波器的幅频响应曲线计算中心频率、过渡带宽,设定旁瓣高度 alfa结束基于 matlab 的个人语音信号处理课程设计说明书10图 3 凯泽窗低通滤波器设计流程图4.1.2.2 输出结

25、果仿真图 4 凯泽窗低通滤波器的幅频特性4.1.3 fir 高通滤波器4.1.3.1 程序设计及流程图(1)程序设计fp=5000;fs=4800;fs=22050;as=135; %确定技术指标wp=2*pi*fp/fs;ws=2*pi*fs/fs; %求归一化频率wo=wp-ws; %求过渡带beta=0.1102*(as-0.87); %求凯泽窗函数参数n=ceil(as-8)/2.285/wo); %由过渡带决定 n 的值wc=(wp+ws)/2/pi;b=fir1(n,wc,high,kaiser(n+1,beta);hw,w=freqz(b,1);figure(1);plot(w*

26、fs/2/pi,20*log10(abs(hw);grid ;title(fir 高通滤波器的幅频特性);基于 matlab 的个人语音信号处理课程设计说明书11(2)程序流程图凯泽窗高通滤波器设计流程图如图 5 所示:图 5 凯泽窗高通滤波器设计流程图4.1.3.2 输出结果仿真图 6 凯泽窗高通滤波器的幅频特性开始确定模拟高通滤波器的技术指标技术指标从模拟到数字转换利用 fir1 函数确定滤波器的实际单位脉冲响应 h(n)利用 freqz 函数确定幅频响应作出凯泽窗高通滤波器的幅频响应曲线计算中心频率、过渡带宽,设定旁瓣高度 alfa结束基于 matlab 的个人语音信号处理课程设计说明书

27、124.1.4 fir 带通滤波器4.1.4.1 程序设计及流程图(1)程序设计fb1=1000;fc1=1200;fb2=3000;fc2=3200; %确定技术指标rs=120;fs=22050;wp1=2*pi*fc1/fs;ws1=2*pi*fb1/fs; %求归一化频率wp2=2*pi*fb2/fs;ws2=2*pi*fc2/fs;wo1=wp1-ws1;wo2=ws2-wp2; wo=max(wo1,wo2); %求过渡带beta=0.1102*(rs-0.87); %求凯泽窗函数参数n=ceil(rs-8)/2.285/wo); %由过渡带决定 n 的值wn1=(fb1+fc1)

28、/fs;wn2=(fb2+fc2)/fs;wn=wn1,wn2;b=fir1(n,wn,band,kaiser(n+1,beta);hw,w=freqz(b,1,512,fs);figure(1);plot(w,20*log10(abs(hw); %绘制频率响应曲线grid ;title(fir 带通滤波器);(2)程序流程图凯泽窗带通滤波器设计流程图如图 7 所示:开始确定模拟带通滤波器的技术指标技术指标从模拟到数字转换利用 fir1 函数确定滤波器的实际单位脉冲响应 h(n)利用 freqz 函数确定幅频响应作出凯泽窗带通滤波器的幅频响应曲线计算中心频率、过渡带宽,设定旁瓣高度 alfa结

29、束基于 matlab 的个人语音信号处理课程设计说明书13图 7 凯泽窗带通滤波器设计流程图4.1.4.2 输出结果仿真图 8 凯泽窗带通滤波器的幅频特性4.2 iir 滤波器的分析与设计4.2.1 双线性变换法设计 iir 滤波器利用模拟滤波器来设计 iir 数字滤波器是最常见的方法,其设计过程是按照技术要求设计模拟滤波器,得到其系统函数,然后经过一定的变换,得到满足要求的数字 sha滤波器的。这种设计方法的优点是模拟滤波器的设计理论很成熟,有很多现成的公 zh式、表格、图形、和曲线可以直接使用,从而使 iir 数字滤波器的设计变得很简单。iir 数字滤波器的设计有两种方法:脉冲响应不变法和

30、双线性变换法。本次课设采用的是双线性变换法。基于 matlab 的个人语音信号处理课程设计说明书144.2.2 iir 低通滤波器4.2.2.1 程序设计及流程图(1)程序设计fp=1000;fs=1200;fs=22050; %确定技术指标ap=1;as=10;wp=2*pi*fp/fs; %归一化,求得数字边缘频率ws=2*pi*fs/fs;ts=1/fs;wap=2/ts*tan(wp/2); %将数字指标转换成模拟指标was=2/ts*tan(ws/2); n,wc=buttord(wap,was,ap,as,s); %选择滤波器的最小阶数z,p,k=buttap(n); %创建 bu

31、tterworth 模拟滤波器bap,aap=zp2tf(z,p,k);b,a=lp2lp(bap,aap,wc); bz,az=bilinear(b,a,fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换h,w=freqz(bz,az); figure(1);plot(w*fs/(2*pi),20*log10(abs(h); %绘制频率响应曲线grid;axis(0,3000,-20,2);xlabel(频率hz);ylabel(幅度/db);title(巴特沃兹低通滤波器);(2)程序流程图巴特沃兹低通滤波器设计流程图如图 9 所示:基于 matlab 的个人语音信号处理课程设计说

32、明书15图 9 巴特沃兹低通滤波器设计流程图4.2.2.2 输出结果仿真开始结束确定模拟低通滤波器的技术指标归一化,求数字边缘频率技术指标从数字到模拟转换确定滤波器的阶数 n 和 wc计算归一化滤波器的零点,极点和增益模拟低通滤波器的系统函数模拟低通到模拟低通:令 wc=wap,反归一化双线性变换法:实现 h(s)到 h(z)的转化h(z)的幅频特性作出 h(z)的幅频特性曲线基于 matlab 的个人语音信号处理课程设计说明书16图 10 巴特沃兹低通滤波器的幅频特性4.2.3 iir 高通滤波器4.2.3.1 程序设计及流程图(1)程序设计fp=5000;fs=4800;fs=22050;

33、 %确定技术指标ap=1;as=10;wp=2*pi*fp/fs; %归一化,求得数字边缘频率ws=2*pi*fs/fs;ts=1/fs;wap=2/ts*tan(wp/2); %将数字指标转换成模拟指标was=2/ts*tan(ws/2); n,wc=buttord(wap,was,ap,as,s); %选择滤波器的最小阶数z,p,k=buttap(n); %创建 butterworth 模拟滤波器bap,aap=zp2tf(z,p,k);b,a=lp2hp(bap,aap,wc); bz,az=bilinear(b,a,fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换h,w=fr

34、eqz(bz,az); figure(1);基于 matlab 的个人语音信号处理课程设计说明书17plot(w*fs/(2*pi),20*log10(abs(h); %绘制频率响应曲线grid;axis(3000,6000,-20,2);xlabel(频率hz);ylabel(幅度/db);title(巴特沃兹高通滤波器);(2)流程图巴特沃兹高通滤波器设计流程图如图 11 所示:图 11 巴特沃兹高通滤波器设计流程图4.2.3.2 输出结果仿真开始结束确定模拟高通滤波器的技术指标归一化,求数字边缘频率技术指标从数字到模拟转换确定滤波器的阶数 n 和 wc计算归一化滤波器的零点,极点和增益模

35、拟高通滤波器的系统函数模拟低通到模拟高通:令 wc=wap,反归一化双线性变换法:实现 h(s)到 h(z)的转化h(z)的幅频特性作出 h(z)的幅频特性曲线基于 matlab 的个人语音信号处理课程设计说明书18图 12 巴特沃兹低通滤波器的幅频特性4.2.4 iir 带通滤波器4.2.4.1 程序设计及流程图(1)程序设计fp1=1200;fp2=3000;fs1=1000;fs2=3200;fs=22050;%确定技术指标ap=1;as=10; wp1=2*pi*fp1/fs;wp2=2*pi*fp2/fs; %归一化,求得数字边缘频率ws1=2*pi*fs1/fs;ws2=2*pi*

36、fs2/fs;ts=1/fs;wap1=2/ts*tan(wp1/2);wap2=2/ts*tan(wp2/2);%将数字指标转换成模拟指标was1=2/ts*tan(ws1/2);was2=2/ts*tan(ws2/2);wap=wap1,wap2;was=was1,was2;w1=(wap1+was1)/2;w2=(wap2+was2)/2;bw=w2-w1; %求带宽wo=sqrt(w1*w2);n,wc=buttord(wap,was,ap,as,s); %选择滤波器的最小阶数z,p,k=buttap(n); %创建 butterworth 模拟滤波器bap,aap=zp2tf(z,p

37、,k);基于 matlab 的个人语音信号处理课程设计说明书19b,a=lp2bp(bap,aap,wo,bw); bz,az=bilinear(b,a,fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换h,w=freqz(bz,az); figure(1);plot(w*fs/(2*pi),20*log10(abs(h); %绘制频率响应曲线grid;axis(800,5000,-20,2);xlabel(频率hz);ylabel(幅度/db);title(巴特沃兹带通滤波器);(2)流程图巴特沃兹带通滤波器设计流程图如图 11 所示:开始结束确定模拟带通滤波器的技术指标归一化,求数

38、字边缘频率技术指标从数字到模拟转换确定滤波器的阶数 n 和 wc计算归一化滤波器的零点,极点和增益模拟低通滤波器的系统函数模拟低通到模拟带通:令 wc=wap,反归一化双线性变换法:实现 h(s)到 h(z)的转化h(z)的幅频特性作出 h(z)的幅频特性曲线基于 matlab 的个人语音信号处理课程设计说明书20图 13 巴特沃兹带通滤波器设计流程图4.2.4.2 输出结果仿真图 14 巴特沃兹带通滤波器的幅频特性基于 matlab 的个人语音信号处理课程设计说明书215 声音信号的滤波滤波是把信号的某些频率分量分离出来或去掉的过程,能完成这种功能的器件就称为滤波器。利用前面设计好的各种滤波

39、器来实现对某些声音信号的滤波,从而改变输入信号所包含的频率成分的相对比例或滤出某些频率成分。5.1 对信号进行滤波的流程(1)利用 wavread 函数把指定路径下的 wav 格式的声音文件读入矢量中,采用自己录制的音乐,采样率是 22050hz。x=wavread(f:ewb512jie.wav);(2)利用 sound 函数对原始语音信号进行回放。sound(x,22050);(3)利用 filter 函数对样本信号进行滤波处理,以设计好的 iir 滤波器为例,y=filter(bz,az,x);(4) 利用 sound 函数对原始语音信号进行回放。sound(y,fs);(5)利用 pl

40、ot 函数分别作出信号在滤波前后的时域波形图并比较。plot(x); plot(y)(6)利用 fft 函数对滤波前后的信号进行 1024 点的快速傅里叶变换 fft,采用一次基2 按时间抽取。x=fft(x,1024);y=fft(y,1024);f=fs*(0:511)/1024;(7)利用 plot 函数分别作出信号在滤波前后的频域波形图并进行比较。plot(f,abs(x(1:512); plot(f,abs(y(1:512);具体程序见附录。5.2 对信号进行滤波的仿真由于使用的是同一个原始语音信号,所以无论经 iir 还是经 fir 滤波器滤波后的波形都一样。以下分别作出了信号在滤

41、波前后的时域和频域的波形,通过观察图形,我们可以判断:使用不同类型的滤波器,则声音信号的相应频段上的能量被过滤掉了,其余部分则保留下来,所以设计的滤波器基本满足技术要求。5.2.1 滤波前后的时域对比基于 matlab 的个人语音信号处理课程设计说明书22低通滤波前后的时域波形如图 15 所示:图 15 低通滤波前后的时域波形高通滤波前后的时域波形如图 16 所示:图 16 高通滤波后的时域波形基于 matlab 的个人语音信号处理课程设计说明书23带通滤波前后的时域波形如图 17 所示:图 17 带通滤波后的时域波形5.2.2 滤波前后的频域对比原始语音信号滤波前的频谱图如图 18 所示:图

42、 18 原始语音信号滤波前的频谱图低通滤波后的频谱图如图 19 所示:基于 matlab 的个人语音信号处理课程设计说明书24图 19 低通滤波后的频谱图高通滤波后的频谱图如图 21 所示:图 21 高通滤波后的频谱图带通滤波后的频谱图如图 20 所示:图 20 带通滤波后的频谱图基于 matlab 的个人语音信号处理课程设计说明书256 总结及心得体会通过这次的课程设计,我对 matlab 这个软件有了新的更深的认识, 也进一步熟悉了 matlab 的使用,感觉到 matlab 软件功能的强大,大大增加了我对 matlab的兴趣。这次个人语音信号处理里,比较重要的函数有 wavread 函数

43、、sound 函数等,通过上网和在图书馆查找相关书籍,了解了他们的基本用法。关于滤波也是很重要的一部分,有 fir 滤波器和 iir 滤波器的设计。通过自主学习,我很快地掌握编程方法和解决实际问题的技巧,取得了良好的效果,同时加强了理论和实际结合的能力,培养了我们的综合设计能力与实际工作能力。它可以让我们把平时所学到的知识真正的运用于实际,让我们体会到专业课学习的乐趣。课程设计的过程中,我们通过交流和讨论,可以发现自身的不做,找出差距,共同进步。总的来说,这次课设使自己进一步巩固了 matlab 和信号系统方面的知识,加强了理论与实践的联系,为以后的学习打下了坚实的基础。虽然并未得到让自己很满

44、意的效果,但是我也从中学到了很多在课本中学不到的东西。通过这次的课程设计,让我对课本上较少涉及的东西有了进一步的了解,也对 matlab 设计产生了浓厚的兴趣,这对我们的思考能力和动手能力有了很大帮助。基于 matlab 的个人语音信号处理课程设计说明书267 参考文献1数字信号处理原理及 matlab 实现 丛玉良 北京:电子工业出版社,20092数字信号处理与应用 李正周 北京:清华大学出版社,20083matlab 信号处理与应用 董长虹,余啸海 北京:国防工业出版社,20054matlab7.0 辅助信号处理技术及应用 电子工业出版社 20055数字信号处理教程matlab 释义与实现

45、 陈怀琛主编 电子工业出版社 2004.066matlab 语言以及在电子信息工程中的应用 王洪元主编 清华出版社 2004.12基于 matlab 的个人语音信号处理课程设计说明书27附 录声音信号的滤波部分程序fir 低通滤波器:ylabel(幅度/db);xlabel(频率/hz);axis(0,8000,-200,10);x=wavread(f:applicationsmatlab7workmusic.wav);%利用函数 wavread 对原始语音信号进行采样 sound(x,22050); %回放原始语音信号pause;y=filter(b,1,x); %语音信号经滤波器滤波sou

46、nd(y,22050); %播放滤波后的信号figure(2);subplot(2,1,1);stem(x); %输出原始语音信号的脉冲响应title(输入信号时域波形);xlabel(f/hz);ylabel(幅度);subplot(2,1,2);stem(y); %输出原始语音信号经滤波器滤波后的脉冲响应title(输出信号时域波形);xlabel(f/hz);ylabel(幅度);pause;figure(3);x=fft(x,1024); %对滤波后的信号进行傅里叶变换并进行 1024 点采样y=fft(y,1024); %对原始语音信号进行傅里叶变换并进行 1024 点采样f=fs*

47、0:1023/1024;subplot(2,1,1);plot(f,abs(x); %输出原始语音信号频谱图title(原始语音信号的 fft 波形);ylabel(幅度);xlabel(频率/hz);axis(0,8000,0,1);subplot(2,1,2);plot(f,abs(y); %输出原始语音信号经滤波器滤波后的频谱图title(原始语音信号经滤波器滤波后的 fft 波形);ylabel(幅度);xlabel(频率/hz);axis(0,8000,0,1);fir 高通滤波器:ylabel(幅度/db);xlabel(频率/hz);axis(0,10000,-200,10);x

48、=wavread(f:applicationsmatlab7workmusic.wav);%利用函数 wavread 对原始语音信号进行采样 sound(x,22050); %回放原始语音信号pause;基于 matlab 的个人语音信号处理课程设计说明书28y=filter(b,1,x); %语音信号经滤波器滤波sound(y,22050); %播放滤波后的信号figure(2);subplot(2,1,1);stem(x); %输出原始语音信号的脉冲响应title(输入信号时域波形);xlabel(f/hz);ylabel(幅度);subplot(2,1,2);stem(y); %输出原始

49、语音信号经滤波器滤波后的脉冲响应title(输出信号时域波形);xlabel(f/hz);ylabel(幅度);pause;figure(3);x=fft(x,1024); %对滤波后的信号进行傅里叶变换并进行 1024 点采样y=fft(y,1024); %对原始语音信号进行傅里叶变换并进行 1024 点采样f=fs*0:1023/1024;subplot(2,1,1);plot(f,abs(x); %输出原始语音信号频谱图title(原始语音信号的 fft 波形);ylabel(幅度);xlabel(频率/hz);axis(0,10000,0,1);subplot(2,1,2);plot(

50、f,abs(y); %输出原始语音信号经滤波器滤波后的频谱图title(原始语音信号经滤波器滤波后的 fft 波形);ylabel(幅度);xlabel(频率/hz);axis(0,10000,0,0.1);fir 带通滤波器:ylabel(幅度/db);xlabel(频率/hz);axis(0,8000,-200,10);x=wavread(f:applicationsmatlab7workmusic.wav);%利用函数 wavread 对原始语音信号进行采样 sound(x,22050); %回放原始语音信号pause;y=filter(b,1,x); %语音信号经滤波器滤波sound(

51、y,22050); %播放滤波后的信号figure(2);subplot(2,1,1);stem(x); %输出原始语音信号的脉冲响应title(输入信号时域波形);xlabel(f/hz);ylabel(幅度);subplot(2,1,2);stem(y); %输出原始语音信号经滤波器滤波后的脉冲响应title(输出信号时域波形);xlabel(f/hz);ylabel(幅度);基于 matlab 的个人语音信号处理课程设计说明书29pause;figure(3);x=fft(x,1024); %对滤波后的信号进行傅里叶变换并进行 1024 点采样y=fft(y,1024); %对原始语音信

52、号进行傅里叶变换并进行 1024 点采样f=fs*0:1023/1024;subplot(2,1,1);plot(f,abs(x); %输出原始语音信号频谱图title(原始语音信号的 fft 波形);ylabel(幅度);xlabel(频率/hz);axis(0,8000,0,1);subplot(2,1,2);plot(f,abs(y); %输出原始语音信号经滤波器滤波后的频谱图title(原始语音信号经滤波器滤波后的 fft 波形);ylabel(幅度);xlabel(频率/hz);axis(0,8000,0,1);iir 低通滤波器:x1=wavread(f:applicationsm

53、atlab7workmusic.wav);%利用函数 wavread 对原始语音信号进行采样 sound(x1,22050); %回放原始语音信号pause;figure(2)f1=filter(bz,az,x1); %语音信号经滤波器滤波 sound(f1,22050); %播放滤波后的信号subplot(2,1,1);plot(x1); %画出滤波前的时域图title(滤波前的时域波形);xlabel(f/hz);ylabel(幅度);subplot(2,1,2);plot(f1); %画出滤波后的时域图title(滤波后的时域波形);xlabel(f/hz);ylabel(幅度);pause;figure(3)y=fft(f1,1024); %对滤波后的信号进行傅里叶变换并进行 1024 点采样f=fs*(0:511)/1024;y1=fft(x1,1024); %对原始语

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论