MATLAB基本运算及语音信号处理.docx

上传人:b****4 文档编号:4033079 上传时间:2022-11-27 格式:DOCX 页数:37 大小:500.31KB
下载 相关 举报
MATLAB基本运算及语音信号处理.docx_第1页
第1页 / 共37页
MATLAB基本运算及语音信号处理.docx_第2页
第2页 / 共37页
MATLAB基本运算及语音信号处理.docx_第3页
第3页 / 共37页
MATLAB基本运算及语音信号处理.docx_第4页
第4页 / 共37页
MATLAB基本运算及语音信号处理.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

MATLAB基本运算及语音信号处理.docx

《MATLAB基本运算及语音信号处理.docx》由会员分享,可在线阅读,更多相关《MATLAB基本运算及语音信号处理.docx(37页珍藏版)》请在冰豆网上搜索。

MATLAB基本运算及语音信号处理.docx

MATLAB基本运算及语音信号处理

课程设计任务书

学生姓名:

专业班级:

指导教师:

工作单位:

题目:

基于MATLAB的基本运算和语音信号的处理

初始条件:

Windows操作系统平台

Matlab应用软件

Windows自带的录音功能

1.必做题

(1)极限的计算、微分的计算、积分的计算、级数的计算、求解代数方程、求解常微分方程;

(2)矩阵的最大值、最小值、均值、方差、转置、逆、行列式、特征值的计算、矩阵的相乘、右除、左除、幂运算;

(3)多项式加减乘除运算、多项式求导、求根和求值运算、多项式的部分分式展开、多项式的拟合、插值运算;

2.选做题

(1)完成语音信号的采集,利用windows自带的录音机或其他软件,录制一段

语音,时间在1s以内,并对信号进行采样,画出采样信号的时域和频域波形;

(2)要求用窗函数法和双线性变换法设计以下三种数字滤波器,其性能指标如下:

a.低通滤波器性能指标fb=1000hz,fc=1200hz,最大衰减As=1000db,最小衰减fb=1000hz;

b.高通滤波器性能指标fs=4800hz,fb=5000hz,最大衰减As=100db,最小衰减Ap=1db;

c.带通滤波器性能指标fb1=1200hz,fb2=3000hz,fc1=1000hz,fc2=3200hz,最大衰减As=100db,最小衰减Ap=1db;

(3)用设计好滤波器的对语音信号进行滤波处理,画出处理后的时域和频域波形;

(4)对滤波前后的语音信号频谱进行对比,并对设计结果进行分析。

时间安排:

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

 

目录

摘要4

Abstract5

1.Matlab语音信号处理简介6

1.1语音课设的意义6

1.2语音课设的基本步骤6

2MATLAB的基本运算7

2.1常见基本运算7

2.1.1极限值的计算7

2.1.2微分的计算7

2.1.3积分的计算7

2.1.4级数的计算8

2.1.5求解代数方程8

2.1.6求解常微分方程8

2.2矩阵基本计算9

2.2.1矩阵最大值和最小值9

2.2.2矩阵的最小值10

2.2.3矩阵的均值11

2.2.4矩阵的方差12

2.2.5矩阵的转置13

2.2.6矩阵的逆13

2.2.7矩阵的行列式14

2.2.8矩阵特征值的计算14

2.2.9矩阵的相乘15

2.2.10矩阵的左除和右除16

2.2.11矩阵的幂运算17

2.3多项式的基本运算18

2.3.1多项式加减18

2.3.2乘除运算18

2.3.3多项式的求导19

2.3.4多项式的求根20

2.3.5多项式的求值运算20

2.3.6多项式的部分分式展开21

2.3.7多项式的拟合、插值运算21

3基于MATLAB的语音信号处理25

3.1设计原理25

3.1.1采样定理25

3.1.2采样频率25

3.1.3采样位数和采样频率26

3.2语音信号分析方法26

3.2.1语音的录制和打开26

3.2.2时域信号的FFT分析方法26

3.2.3数字滤波器27

3.3程序设计与运行结果27

3.3.1语音信号的读取27

3.3.2高通滤波器29

3.3.3低通滤波器32

3.3.4带通滤波器36

4总结41

5参考文献42

摘要

语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。

通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。

同时,语言也是人与机器之间进行通信的重要工具,它是一种理想的人机通信方式,因而可为信息处理系统建立良好的人机交互环境,进一步推动计算机和其他智能机器的应用,提高社会的信息化程度。

语音信号是一种非平稳的时变信号,它携带着各种信息。

在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。

语音信号分析的目的就在与方便有效的提取并表示语音信号所携带的信息。

语音信号分析可以分为时域和频域等处理方法。

本设计要求自己录制一段语音后,在MATLAB软件中采集语音信号,并画出语音信号的时域波形和频谱图。

在MATLAB中分别设计不同的滤波器(低通滤波器、高通滤波器、带通滤波器),对采集的语音信号进行滤波处理后,观察不同的波形,并进行时域和频域的分析。

对比处理前后的时域图和频谱图,分析各种滤波器对语音信号的影响。

关键字:

MATLAB语音信号处理滤波器

 

Abstract

Thespeechsignalprocessingisusingdigitalsignalprocessingtechnologyandknowledgeofphoneticsthespeechsignalprocessingnewdiscipline,isthemostrapiddevelopmentoftheinformationscienceresearchinthefieldofcoretechnicalone.Throughthespeechinformationisthemostimportantandthemosteffectivehuman,themostcommonandmostconvenientexchangeinformationform.Atthesametime,humanandmachinelanguageisalsotheimportanttoolofcommunicationbetween,itisakindofidealman-machinecommunicationmode,thusforinformationprocessingsystemtoestablishgoodhuman-machineinteractionenvironment,topromotethecomputerandotherintelligentmachineapplications,improvesocialinformationization.

Speechsignalisakindofsteadytime-varyingsignal,itcarriesallkindsofinformation.Inspeechcoding,speechsynthesis,speechrecognitionandspeechenhancement,etcinspeechprocessingnoexceptionneedtoextractalloftheinformationcontainedinthespeech.Thepurposeofthespeechsignalanalysiswithconvenientandeffectiveandsaidtheextractionofspeechsignalcarriedbytheinformation.Speechsignalanalysiscanbedividedintothetimedomainandfrequencydomainprocessingmethod.Thisdesignrequirementsthemselvesavoicerecording,afterthecaptureofMATLABsoftwarespeechsignal,anddrawthespeechsignalspectrumimageandthetimedomainwaveform.InMATLABdesigndifferentfilterrespectively(lowpassfilter,high-passfilter,beltfilter),toobtainthevoicesignalfilteringprocessing,watchthedifferentwaveformandtheanalysisoftimedomainandfrequencydomain.Contrastthebeforeandafterprocessingtimedomainfigureandspectrumcharts,analysisofvariousfiltertotheinfluenceofthespeechsignal.

Keyword:

MATLABvoicesignalprocessingfilter

 

1.Matlab语音信号处理简介

1.1语音课设的意义

语音信号处理是一门比较实用的电子工程的专业课程,语音是人类获取信息的重要来源和利用信息的重要手段。

通过语言相互传递信息是人类最重要的基本功能之一。

语言是人类特有的功能,它是创造和记载几千年人类文明史的根本手段,没有语言就没有今天的人类文明。

语音是语言的声学表现,是相互传递信息的最重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。

语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科,它是一门新兴的学科,同时又是综合性的多学科领域和涉及面很广的交叉学科。

1.2语音课设的基本步骤

1.理论依据

根据设计要求分析系统功能,掌握设计中所需理论(采样频率、采样位数的概念,采样定理; 时域信号的FFT分析;数字滤波器设计原理和方法,各种不同类型滤波器的性能比较),阐明设计原理。

2.信号采集

采集语音信号,并对其进行FFT频谱分析,画出信号的时域波形图和频谱图。

3.构造受干扰信号并对其进行FFT频谱分析

对所采集的语音信号加入干扰噪声,对语音信号进行回放,感觉加噪前后声音的变化,分析原因,得出结论。

并对其进行FFT频谱分析,比较加噪前后语音信号的波形及频谱,对所得结果进行分析,阐明原因,得出结论。

4.数字滤波器设计

根据待处理信号特点,设计合适数字滤波器,绘制所设计滤波器的幅频和相频特性。

5.信号处理

用所设计的滤波器对含噪语音信号进行滤波。

对滤波后的语音信号进行FFT频谱分析。

画出处理过程中所得各种波形及频谱图。

对语音信号进行回放,感觉滤波前后声音的变化。

比较滤波前后语音信号的波形及频谱,对所得结果和滤波器性能进行频谱分析,阐明原因,得出结论。

 

2MATLAB的基本运算

2.1常见基本运算

2.1.1极限值的计算

MATLAB提供的命令函数limit()可以完成极限运算,其调用格式如下:

limit(F,x,a,’left’)

该命令对表达式F求极限,独立变量x从左边趋于a,函数中除F外的参数均可省略,’left’可换成’right’。

举例如下:

F=sym('(1+a/x)^x')

F=(a/x+1)^x

limit(F,'x',inf,'left')

ans=exp(a)

2.1.2微分的计算

MATLAB提供的函数diff()可以完成对给定函数求导函数的运算,其调用格式如下:

Diff(fun,x,n)

其意义是求函数fun关于变量x的n阶导数,n为1时可省略。

clear

>>symsx

>>y=log((x+2)/(1-x));

>>dy=diff(y,x)

dy=((1/(x-1)-(x+2)/(x-1)^2)*(x-1))/(x+2)

>>dy3=diff(y,x,3)

dy3=(2*(1/(x-1)-(x+2)/(x-1)^2)*(x-1))/(x+2)^3-(2*(2/(x-1)^2-(2*(x+2))/(x-1)^3))/(x+2)-(2*(1/(x-1)-(x+2)/(x-1)^2))/(x+2)^2+(2*(2/(x-1)^2-(2*(x+2))/(x-1)^3)*(x-1))/(x+2)^2+((6/(x-1)^3-(6*(x+2))/(x-1)^4)*(x-1))/(x+2)

>>pretty(dy3)%其功能是使它作用的表达式更符合数学上的书写习惯

2.1.3积分的计算

int(f)——函数f对符号变量x或接近字母x的符号变量求不定积分;

int(f,t)——函数f对符号变量t求不定积分;

int(f,a,b)——函数f对符号变量x或接近字母x的符号变量求从a到b的定积分;

int(f,t,a,b)——函数f对符号变量t求从a到b的定积分。

>>symsax

f=sin(a*x)

g=int(f,0,pi)

f=sin(a*x)

g=(2*sin((pi*a)/2)^2)/a

2.1.4级数的计算

MATLAB中级数常用函数为symsum,格式如下:

r=symsum(s);r=symsum(s,v);r=symsum(s,a,b);r=symsum(s,v,a,b)

函数表达的意义是表达式s关于变量v从a到b求和。

taylor(f,n,a)——函数f对符号变量x(或最接近字母x的符号变量)在a点的n-1阶泰勒多项式(n缺省时值为6,a缺省值为0)

>>taylor(sin(x))

ans=x^5/120-x^3/6+x

2.1.5求解代数方程

在MATLAB中,我们使用solve(f,t)命令解代数方程,所要做的事是把方程用的单引号引起来然后敲回车。

其中solve的第二中调用方式,我们可以告诉它要解那个符号,语法如下:

solve(equation,variable)

g1='x+y+z-1';

g2='x-y+z-2';

g3='2*x-y-z-1';

[x,y,z]=solve(g1,g2,g3)

x=2/3y=-1/2z=5/6

2.1.6求解常微分方程

未知的函数以及它的某些阶的导数连同自变量都由一已知方程联系在一起的方程称为微分方程。

如果未知函数是一元函数,称为常微分方程。

MATLAB中主要用dsolve求符号解析解。

dsolve的基本格式是:

s=dsolve(‘方程1’,‘方程2’,…,’初始条件1’,’初始条件2’…,’自变量’)

例:

求下列微分方程的解析解

编程如下:

图1

2.2矩阵基本计算

2.2.1矩阵最大值和最小值

MATLAB中max函数可以表示求每一列的最大值,那么经过分析可以知道,先求出每一列的最大值然后求出这些最大值里面的最大值,下面以A矩阵为例。

编程如下:

图2

2.2.2矩阵的最小值

调用函数find格式:

indices=find(X)

indices=find(X,k)

indices=find(X,k,'first')

indices=find(X,k,'last')

编程如下:

图3

2.2.3矩阵的均值

调用函数mean格式:

M=mean(A)

M=mean(A,dim)

编程如下:

图4

2.2.4矩阵的方差

调用函数var格式:

V=var(X)

V=var(X,1)

V=var(X,w)

V=var(X,w,dim)

编程如下:

图5

2.2.5矩阵的转置

矩阵的一个重要的运算是转置,如果A是一个实数矩阵,那么它被转置时,第1行变成第1列,第2行变成第2列,依此类推,一个m×n矩阵变为一个n×m矩阵。

如果矩阵是方阵,那么这个矩阵在主对角线反映出来。

编程如下:

图6

2.2.6矩阵的逆

实际中求矩阵的逆跟行列式均要求矩阵是方阵,MATLAB中求逆的函数是inv,格式为Y=inv(X)。

编程如下:

图7

2.2.7矩阵的行列式

调用函数det格式:

d=det(X)

编程如下:

图8

2.2.8矩阵特征值的计算

矩阵的特征值的求解,就是找到方程组的解:

其中λ是一个标量,x是一个长度为n的列向量。

标量λ是A的特征值,x是相对应的特征向量。

对于实数矩阵A来说,特征值和特征向量可能是复数。

一个n×n的矩阵有n个特征值,表示为

求矩阵的特征值和特征向量可用eig函数。

Eig(A)求包含矩阵A的特征值的向量。

[V,D]=eig(A)产生一个矩阵A的特征值在对角线上的对角矩阵D和矩阵

V,它的列是相应的特征向量,,满足AV=VD,下面以矩阵A为例来演示。

编程如下:

图9

2.2.9矩阵的相乘

假定有两个矩阵A和B,若A为m×n矩阵,B为n×p矩阵,则C=A×B为m×p矩阵。

元素

是A的第i行和B的第j列的点积。

对于方阵,也定义了积BA,但其结果通常与AB不同。

MATLAB中求矩阵的乘积直接用符号*即可,下面以A、B矩阵为例来分别演示A*B与B*A区别。

编程如下:

图10

2.2.10矩阵的左除和右除

在MATLAB中,有两个矩阵除法的符号,左除“\”和右除“/”。

如果A是一个非奇异方阵,那么A\B和B/A对应A的逆与B的左乘和右乘,即分别等价于命令inv(A)*B和B*inv(A)。

可是,MATLAB执行它们时是不同的,且在MATLAB中求解一个系统用左除比用逆和乘法所需的运算次数要少。

令d=B/A,c=A\B。

编程如下:

矩阵的右除:

图11

矩阵的左除:

图12

2.2.11矩阵的幂运算

对于二维方阵,A的p次乘方可以用A^p实现。

如果p是一个正整数,那么这个幂可以由许多矩阵乘法运算定义。

对于p=0,得到与A维数相同的同一个矩阵;当p<0时,如果A-1存在,可定义A^p,它是与inv(A)^(-p)相同。

A0=A^3,A1=A^3,A2=A^-3

Ap0为3个A矩阵相乘,Ap1中的元素为A矩阵中相应元素的立方,矩阵Ap2为矩阵A的逆矩阵的乘积,A3为A0的逆矩阵。

编程如下:

图13

2.3多项式的基本运算

2.3.1多项式加减

编程如下:

图14

2.3.2乘除运算

编程如下:

图15

2.3.3多项式的求导

调用函数polyder格式:

k=polyder(p)

k=polyder(a,b)

[q,d]=polyder(b,a)

例:

求q(x)=2x+1的导数

编程如下:

图16

2.3.4多项式的求根

调用函数roots格式:

r=roots(c)

例:

x^3-2x^2+3

编程如下:

图17

2.3.5多项式的求值运算

调用函数polyval格式:

y=polyval(p,x)

y=polyval(p,x,[],mu)

[y,delta]=polyval(p,x,S)

[y,delta]=polyval(p,x,S,mu)

例:

x^3-2x^2+3在x=3处的值

编程如下:

图18

2.3.6多项式的部分分式展开

函数residue可以将多项式之比用部分分式展开,也可以将一个部分分式表示为多项式之比。

其调用格式如下:

[r,p,k]=residue(a,b)返回多项式之比a/b的部分分式展开,参照下面公式。

[a,b]=residue(r,p,k)返回部分分式的多项式向量。

例:

计算18Z^3/(18Z^3+3Z^2-4Z-1)的长分式的零极点和留数

编程如下:

图19

2.3.7多项式的拟合、插值运算

插值函数通常是分段的,,插值数据通过给定的数据点x,y。

插值函数一般地可表示为yi=interpi(x,y,xi,’method’)其中i代表几维插值可取1、2,xi为插值范围内的任意点集的x坐标,yi是插值后对应数据点集的坐标,method为插值函数的类型选项,有linear为线性,也是缺省项,cubic和cubicspline为三次样条等三样。

一维多项式插值:

yi=interp1(x,y,xi,method);x必须是向量,y可是是向量也可以是矩阵。

如果y是向量,则必须与x具有相同的长度,这时xi可以是标量、向量和任意维矩阵,yi与xi具有相同的大小;如果y是矩阵,则其大小必须是[n,d1,d2,...,dk](n是向量x的长度),函数对d1*d2*d3…*dk组y值都进行插值。

yi=interp1(y,xi);默认x为1:

n,其中n是向量y的长度。

yi=interp1(x,y,xi,method);输入变量method用于指定插值方法

yi=interp1(x,y,xi,method,’extrap’);对超出插值范围的数据指定外推方法’extrap’

yi=interp1(x,y,xi,method,extrapval);对超出差值范围的数值返回extrapval的值,一般为0或者NaN(NotaNumber)

PP=interp1(x,y,method,’pp’);返回值pp为数据y的分段多项式形式。

method指定产生多项式的方法。

clear;

a=5;

x=0:

1.2:

10;

y=sin(x);

xi=0:

0.1:

10;

yi_nearest=interp1(x,y,xi,'nearest');

yi_linear=interp1(x,y,xi);%ĬÈÏÏßÐÔ²åÖµ

yi_spline=interp1(x,y,xi,'spline');

yi_cubic=interp1(x,y,xi,'cubic');

yi_v5cubic=interp1(x,y,xi,'v5cubic');

yi_pchip=interp1(x,y,xi,'pchip');

holdon

subplot(231),plot(x,y,'ro',xi,yi_nearest),title('最邻近插值')

subplot(232),plot(x,y,'ro',xi,yi_linear),title('线性插值')

subplot(233),plot(x,y,'ro',xi,yi_spline),title('三次样条插值')

subplot(234),plot(x,y,'ro',xi,yi_cubic),title('三次多项式插值')

subplot(235),plot(x,y,'ro',xi,yi_v5cubic),title('三次多项式插值matlab5')

subplot(236),plot(x,y,'ro',xi,yi_pchip),title('三次厄米多项式插值')

图20

二维多项式插值:

zi=interp2(x,y,z,xi,yi);原始数据x,

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

当前位置:首页 > 农林牧渔 > 林学

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

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