0040王永源语音信号的处理与滤波资料.docx

上传人:b****6 文档编号:7844081 上传时间:2023-01-26 格式:DOCX 页数:22 大小:167.26KB
下载 相关 举报
0040王永源语音信号的处理与滤波资料.docx_第1页
第1页 / 共22页
0040王永源语音信号的处理与滤波资料.docx_第2页
第2页 / 共22页
0040王永源语音信号的处理与滤波资料.docx_第3页
第3页 / 共22页
0040王永源语音信号的处理与滤波资料.docx_第4页
第4页 / 共22页
0040王永源语音信号的处理与滤波资料.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

0040王永源语音信号的处理与滤波资料.docx

《0040王永源语音信号的处理与滤波资料.docx》由会员分享,可在线阅读,更多相关《0040王永源语音信号的处理与滤波资料.docx(22页珍藏版)》请在冰豆网上搜索。

0040王永源语音信号的处理与滤波资料.docx

0040王永源语音信号的处理与滤波资料

广西科技大学

课程设计说明书

 

课题名称:

语音信号的处理与滤波

 

院(系):

计算机学院

专业:

通信工程

班级:

121班

学生姓名:

王永源

学号:

指导教师:

2014年7月12日

摘要

数字信号处理是随着信息学科和计算机学科的发展而高速发展起来的一门交叉学科,已被广泛应用于通信与电子工程、航天工程、生物医学等诸多领域,成为推动现代社会和科技发展的重要技术之一。

它以算法为核心,理论性强,实用性也强。

MATLAB集数学计算、可视化编程等功能于一体,是当前最流行的、功能强大的科学与技术应用工具软件之一,是许多科研领域工作者及高校师生从事科学研究的有力助手。

本论文将介绍MATLAB在数字信号处理中语音信号处理与滤波方面的应用。

语音是人们进行思维、交际的形式,在通信领域有着重要的地位,所以,本设计用MATLAB对语音信号的处理与滤波有着重要的作用。

本设计将基于MATLAB用声卡进行声音的录制,并熟悉使用MATLAB中的函数进行声音的回放、存取、读取以及进行时域和频域的滤波分析,并设计IIR滤波器进行滤波,把抽样率转变为7000Hz/s,并进行频谱分析,得到幅度和相位谱。

关键词:

MATLAB,语音信号,处理,滤波

Abstract

数字信号处理是随着信息学科和计算机学科的发展而高速发展起来的一门交叉学科,已被广泛应用于通信与电子工程、航天工程、生物医学等诸多领域,成为推动现代社会和科技发展的重要技术之一。

它以算法为核心,理论性强,实用性也强。

Digitalsignalprocessingisalongwiththedevelopmentofinformationscienceandcomputerscienceandthedevelopmentofhighspeedofacrossdiscipline,hasbeenwidelyusedincommunicationandelectronicengineering,aerospaceengineering,biomedicalandotherfields,hasbecomeoneofthemostimportanttechnologiestopromotethemodernsocietyandthedevelopmentofscienceandtechnology.Thealgorithmasthecore,thetheoryisstrong,practicalityisalsostrong.

MATLAB集数学计算、可视化编程等功能于一体,是当前最流行的、功能强大的科学与技术应用工具软件之一,是许多科研领域工作者及高校师生从事科学研究的有力助手。

MATLABisamathematicalcalculation,programmingandotherfunctionsinone,iscurrentlythemostpopular,powerfulfunctionofscienceandtechnologyofapplicationsoftware,manyscientificresearchworkersandcollegestudentstoengageinscientificresearchassistant.

本论文将介绍MATLAB在数字信号处理中语音信号处理与滤波方面的应用。

语音是人们进行思维、交际的形式,在通信领域有着重要的地位,所以,本设计用MATLAB对语音信号的处理与滤波有着重要的作用。

ThispaperwillintroducetheapplicationofMATLABspeechsignalprocessingandfilteringindigitalsignalprocessing.Speechisoneofthethinking,aformofcommunication,playsanimportantroleinthefieldofcommunication,so,thisdesignusingMATLABprocessingandfilteringofthespeechsignalplaysanimportantrolein.

本设计将基于MATLAB用声卡进行声音的录制,并熟悉使用MATLAB中的函数进行声音的回放、存取、读取以及进行时域和频域的滤波分析,并设计IIR滤波器进行滤波,把抽样率转变为7000Hz/s,并进行频谱分析,得到幅度和相位谱。

ThedesignwillbebasedontheMATLABwiththesoundofthevoicerecording,playback,andfamiliarwiththeanalysisofaccess,readthefunctionusesMATLABsoundandfilteringintimedomainandfrequencydomain,andthedesignofIIRfilter,thesamplingrateisconvertedto7000Hz/s,andfrequencyspectrumanalysis,gettheamplitudeandphasespectrum.

关键词:

MATLAB,语音信号,处理,滤波

Keywords:

MATLAB,speechsignalprocessing,filtering

 

 

目录

摘要I

AbstractII

1绪论1

1.1课程设计的目的1

1.2课题背景1

1.3课题的主要内容1

2课程设计的总体设计3

2.1MATLAB介绍3

2.2设计思路流程图3

3总体设计实现——语音信号处理4

3.1设计主要使用的函数4

3.2语音的录制4

3.3语音的频谱分析6

4频谱分析7

4.18000点的数据频谱7

4.216000点的数据频谱8

5详细设计与实现——语音信号的滤波9

5.1IIR滤波器的原理9

5.2IIR数字滤波器——带通滤波器的设计9

5.3IIR数字滤波器——巴特沃斯滤波器的设计11

6滤波前后的对比分析14

6.1带通滤波器对语音信号滤波前后对比14

6.2巴特沃斯滤波器对语音信号滤波的前后对比15

7结束语17

致谢18

参考文献19

1绪论

1.1课程设计的目的

综合运用本课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。

1.2课题背景

数字信号处理是随着信息学科和计算机学科的发展而高速发展起来的一门交叉学科,已被广泛应用于通信与电子工程、航天工程、生物医学等诸多领域,成为推动现代社会和科技发展的重要技术之一。

它以算法为核心,理论性强,实用性也强。

MATLAB集数学计算、可视化编程等功能于一体,是当前最流行的、功能强大的科学与技术应用工具软件之一,是许多科研领域工作者及高校师生从事科学研究的有力助手。

使用MATLAB对语音信号进行处理,可以形象地对语音信号进行频谱分析,并用数字滤波器对语音信号进行滤波、检测。

未经处理的语音信号往往夹杂着噪音及无用信号成分,使用数字滤波器可以将这些干扰成分滤除。

所以,数字滤波在语音分析、国民通信等领域起着举足轻重的作用。

本文将如何进行语音信号处理及如何滤波进行详细的分析。

1.3课题的主要内容

1.熟悉并掌握MATLAB中有关声音(wave)录制、播放、存储和读取的函数。

2.在MATLAB环境中,使用声音相关函数录制2秒左右自己的声音,抽样率是8000Hz/s。

(考虑如何解决一个实际问题:

录制刚开始时,常会出现实际发出声音落后录制动作半拍的现象,如何排除对这些无效点的采样?

3.分别取8000个和16000个数据进行频谱分析,得到幅度和相位谱,比较二者异同并分析原因。

4.针对电话信道(最高3500Hz),设计一个FIR或IIR滤波器进行滤波,把抽样率转变为7000Hz/s,并进行频谱分析,得到幅度和相位谱。

5.把处理后的所有数据储存为声音文件,与原始声音进行比较。

2课程设计的总体设计

2.1MATLAB介绍

本次课程设计使用的是MATLAB2012,MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。

(1)友好的工作平台和编程环境

  MATLAB由一系列工具组成。

这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。

包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。

(2)简单易用的程序语言

  Matlab一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。

用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。

(3)强大的科学计算机数据处理能力

  MATLAB是一个包含大量计算算法的集合。

其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。

函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。

在通常情况下,可以用它来代替底层编程语言,如C和C++。

在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。

(4)出色的图形处理功能

  图形处理功能MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。

高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。

可用于科学计算和工程绘图。

(5)应用广泛的模块集合工具箱

  MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。

目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。

(6)实用的程序接口和发布平台

  新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。

允许用户编写可以和MATLAB进行交互的C或C++语言程序。

另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。

MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。

(7)应用软件开发(包括用户界面)

  在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5进行连接。

2.2课题设计思路流程图

图2.1设计思路流程图

3详细设计实现——语音信号处理

3.1设计主要使用的函数

1.声音录制函数wavrecord

y=wavrecord(duration*Fs,Fs);%duration*Fs是总的采样点数

2.声音播放函数wavplay

wavplay(y,Fs);

3.声音存储函数wavwrite

wavwrite(y,'数字信号课程设计专用.wav');%存储录音(包括文件名)

4.声音读取函数wavread

y=wavrecord(duration*Fs,Fs);%duration*Fs是总的采样点数

3.2语音的录制

Fs=8000;%取样频率

duration=2;%录音时间

fprintf('按任意键开始录音\n',duration);

pause;%中断,按回车键继续

fprintf('Recording...\n');

y=wavrecord(duration*Fs,Fs);%duration*Fs是总的采样点数

fprintf('Finishedrecording.\n');

fprintf('按任意键播放录音\n');

pause;%中断,按回车键继续

wavplay(y,Fs);%播放录音

wavwrite(y,'数字信号课程设计专用.wav');%存储录音(包括文件名)

3.3语音的频谱分析

>>Fs=8000

x1=wavread('数字信号课程设计专用',[10008000]);%读取所录制的语音中的1000到8000部分

sound(x1);%播放原语音

t=(0:

[10008000])/Fs;%算出1000到8000部分的时间

y1=fft(x1,4000);%4000点fft变换

f=Fs*(0:

1999)/4000;%求频谱

figure

(1);%控制窗口数量为1

subplot(2,1,1)%在窗口中生成2行1列共2个子图,当前激活第一个图

plot(x1);%画出时域图形

title('原始语音信号');%标题

xlabel('时间n');%X轴标题

ylabel('幅值n');%y轴标题

subplot(2,1,2);%激活第二个图

plot(f,abs(y1(1:

2000)));%画出幅值图(abs为求绝对值、求模函数)

title('原始语音信号频谱')

xlabel('Hz');%X轴为Hz

ylabel('幅值');%Y轴为幅值

附图:

图3.1原始声音信号频谱图

3.4无效采样点的排除

录制刚开始时,常会出现实际发出声音落后录制动作半拍的现象,为排除这些无效的采样点,我们可以通过在语音读取函数中加范围区间窗来限制读取语音信号的范围。

1.加限制范围窗:

[40008000]

2.加窗后的函数:

>>x1=wavread('数字信号课程设计专用.wav',[40008000]);

3.加窗后的频谱图

图3.2加窗除去无效采样点后的频谱图

4频谱分析

4.18000点的数据频谱

4.1.1程序源代码

>>x2=wavread('数字信号课程设计专用.wav');%读取声音信号

y2=fft(x2,8000);%对8000点做FFT变换

figure

(2)%限制为一个窗口两个图

subplot(2,1,1);%激活第一个图

plot(angle(y2));%y2的相位谱

title('相位频谱');%加图形标题

figure

(2)%限制为一个窗口两个图

subplot(2,1,2);%激活第二个图

plot(abs(y2));%8000点语音信号频谱

axis([0,4000,0,80]);

title('幅度频谱');%标题

ylabel('幅度');%名称

grid;%加网格线

4.1.2运行结果

图3.38000点语音信号频谱图

4.216000点的数据频谱

4.2.1程序源代码

>>x3=wavread('数字信号课程设计专用.wav');

y3=fft(x3,16000);%对16000点做FFT变换

figure

(2)%限制为一个窗口两个图

subplot(2,1,1);%激活第一个图

plot(angle(y3));%y3的相位谱

title('相位频谱');%加图形标题

figure

(2)

subplot(2,1,2);

plot(abs(y3));

axis([0,8000,0,150]);

title('幅度频谱');

xlabel('\omega/\pi');

ylabel('幅度');

grid;%加网格线

4.2.2运行结果

图3.416000点语音信号频谱图

5详细设计与实现——IIR滤波器对语音信号的滤波

5.1IIR滤波器的原理

(1)冲激响应不变法

  用数字滤波器的单位冲激响应序列h(n)模仿模拟滤波器的冲激响应ha(t),让h(n)正好等于ha(t)的采样值,即

h(n)=ha(nT)

其中T为采样间隔,如果以Ha(S)及H(z)分别表示ha(t)的拉式变换及h(n)的Z变换,则

(2)双线性变换法

  S平面与z平面之间满足以下映射关系:

s平面的虚轴单值地映射于z平面的单位圆上,s平面的左半平面完全映射到z平面的单位圆内。

双线性变换不存在混叠问题。

  双线性变换时一种非线性变换

,这种非线性引起的幅频特性畸变可通过预畸而得到校正。

5.2IIR数字滤波器——低通滤波器的设计

5.2.1程序源代码

>>Wp=2*pi*4000;Ws=2*pi*7000;rp=1;rs=30;%设计滤波器参数

wp=1;ws=Ws/Wp;%对参数归一化

[N,wc]=cheb1ord(wp,ws,rp,rs,'s');%计算滤波器阶数和通带截止频率

[z,p,k]=cheb1ap(N,rp);%计算零点、极点、增益

[B,A]=zp2tf(z,p,k);%计算系统函数的多项式

w=0:

0.05*pi:

2*pi;

[h,w]=freqs(B,A,w);%h为频率响应,B、A为系数,向量w

plot(w,20*log10(abs(h)),'k');%画图,宽w为20*log10*h的绝对值或模

title('归一化切比雪夫滤波器的的频率响应');

xlabel('\omega/\pi');

ylabel('振幅(分贝)');

grid;

5.2.2归一化切比雪夫滤波器的幅频响应

图5.1切比雪夫I型归一化模拟低通滤波器的频谱相应

5.2.3滤波器对语音信号的滤波

1.程序源代码

>>fs=8000;

z=wavread('数字信号课程设计专用.wav');%读取原始语音信号

f=filter(p,k,z);%滤波

f1=fft(f,7000);%7000点FFT变换

subplot(2,1,1)

plot(abs(f1));%画出滤波后的时域图

title('滤波后的幅度谱');

xlabel('w');

grid;

subplot(2,1,2)

plot(angle(f1));%画出滤波后的相位频谱图

title('滤波后的相位谱');

xlabel('w');

grid;

wavwrite(f,fs,'切比雪夫低通滤波器滤波后的语音.wav')

2.运行结果

图5.2切比雪夫I型滤波器对语音信号滤波后的频谱图

5.3IIR数字滤波器——巴特沃斯滤波器的设计

5.3.1程序源代码

>>wp=2*1200/7000;%归一化通带数字频率

ws=2*2000/7000;%归一化数字截止频率

Rp=0.5;%通带波纹洗漱

Rs=60;%最小阻带衰减

[N,Wn]=buttord(wp,ws,Rp,Rs);%求阶数N和滤波器截止频率Wn

[num,den]=butter(N,Rp);%butter为求巴特沃斯滤波器系数的函数,num.den为分子分母系数

[h,w]=freqz(num,den);%频率响应

subplot(2,1,1);

plot(w/pi,abs(h));

grid;

title('归一化巴特沃斯型低通滤波器的频率响应');

xlabel('\omega/\pi');%加X轴说明,/后表示转义字符

ylabel('振幅(幅值)');

subplot(2,1,2);

plot(w/pi,20*log10(abs(h)));%二维连续图形

grid;

title('归一化巴特沃斯型低通滤波器的频率响应');

xlabel('\omega/\pi');%加X轴说明,/后表示转义字符

ylabel('振幅(分贝)');

5.3.1归一化巴特沃斯滤波器的幅频响应

图5.3归一化巴特沃斯滤波器的频谱图

5.3.2滤波器对语音信号滤波

1.程序代码

>>fs=8000;

z=wavread('数字信号课程设计专用.wav');%读取原始语音信号

f=filter(num,den,z);%滤波

f1=fft(f,7000);

subplot(2,1,1)

plot(abs(f1));%画出滤波后的时域图

title('滤波后的幅度谱');

xlabel('w');

grid;

subplot(2,1,2)

plot(angle(f1));%画出滤波后的时域图

axis([0,3500,0,60]);

title('滤波后的相位谱');

xlabel('w');

grid;

wavwrite(f,fs,'带通滤波器滤波后的语音.wav')

2.运行结果

图5.4巴特沃斯型低通滤波器对语音信号滤波的频谱图

 

6滤波前后对比分析

6.1切比雪夫型低通滤波器对语音信号滤波前后对比

(1)程序源代码

>>fs=8000;

z=wavread('数字信号课程设计专用.wav');%读取原始语音信号

z1=wavread('切比雪夫低通滤波器滤波后的语音.wav');%读取滤波后语音信号

zx=fft(z);

zx1=fft(z1);

subplot(2,1,1)

plot(20*log10(abs(zx)));

title('滤波前的相对幅度谱');

subplot(2,1,2);

plot(20*log10(abs(zx1)));

title('滤波后的相对幅度谱');

 

(2)切比雪夫低通滤波器滤波前后的频谱图

图6.1切比雪夫I型低通滤波器对语音信号滤波前后的频谱图

6.2巴特沃斯滤波器对语音信号滤波前后对比

(1)程序源代码

>>fs=16000;

z=wavread('数字信号课程设计专用.wav');%读取原始语音信号

z1=wavread('巴特沃斯滤波器滤波后.wav');%读取滤波后语音信号

zx=fft(z);

zx1=fft(z1)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1