在MATLAB下实现语音信号的频谱分析(论文正文).doc

上传人:laozhun 文档编号:4137744 上传时间:2023-04-07 格式:DOC 页数:18 大小:389.51KB
返回 下载 相关 举报
在MATLAB下实现语音信号的频谱分析(论文正文).doc_第1页
第1页 / 共18页
在MATLAB下实现语音信号的频谱分析(论文正文).doc_第2页
第2页 / 共18页
在MATLAB下实现语音信号的频谱分析(论文正文).doc_第3页
第3页 / 共18页
在MATLAB下实现语音信号的频谱分析(论文正文).doc_第4页
第4页 / 共18页
在MATLAB下实现语音信号的频谱分析(论文正文).doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《在MATLAB下实现语音信号的频谱分析(论文正文).doc》由会员分享,可在线阅读,更多相关《在MATLAB下实现语音信号的频谱分析(论文正文).doc(18页珍藏版)》请在三一办公上搜索。

1、装订线湖北工业大学工程技术学院 本科毕业论文毕 业 设 计(论 文)基于MATLAB实现对语音信号的频谱分析学生姓名:张彦利学 号:所在系部:信息工程学院专业班级:指导教师:日 期:二一贰年五月基于MATLAB实现对语音信号的频谱分析摘 要MATLAB是一个数据分析和处理功能十分强大的工程实用软件,运用它来进行信号的分析和处理相当便捷。本文介绍了在Matlab环境中如何采集语音信号和语音信号采集后的频谱分析处理,并通过实例分析了语音信号处理的Matlab。并以理想正弦分布的纹理图像的 Matlab仿真和正弦纹理图像的频谱特征分析为例,叙述了基于傅立叶能量谱的纹理图像分析的基本原理和基本过程。编

2、写了程序,获得了具有理想正弦分布的空域纹理图像,并对其频谱特征进行了分析。并且根据离散傅里叶变换DFT的定义,推导出一种用 DFT计算离散信号幅值谱的方法,通过 MATLAB 仿真验证了该方法的有效性。关键词:MATLAB;频谱分析;傅里叶变换;语音信号;信号分析共 14 页 第 IV 页Analysis of Signal Spectrum Based on MATLABAbstractMATLAB is very powerful and practical engineering software which is used in data analysis and processing

3、 fraction,and use it to analysis and process voice signal,which is very convenient.This paper describes the Matlab enviironment,how to collect and process speech signal,and through example analysis of the speech signal processing in Matlab.Then take the Matlab simulation of ideal sinusoid texture im

4、age and analysis of its spectrum characteristics for example; basic principles and process of analyzing the texture image based on Fourier energy spectrum were described. The program was written for obtaining spatial domain texture image with ideal sinusoid distribution. And its spectrum characteris

5、tics were analyzed.Moreover, according to the definition of DFT, a calculation method of amplitude spectrum for periodic signal is derived in this paper. Through simulation of amplitude spectrum calculation in MATLAB, the efficiency of the method is validated to satisfy the need for project. In the

6、end, the problems of spectrum leakage and picket fence effect are explained and the corresponding solution is proposed.Keywords: MATLAB; Spectrum Analysis;FFT; Speech signal; signal analysis目 录1. 绪论11.1 课题背景11.2 研究意义11.3 本文研究内容12. 频谱分析及MATLAB简介22.1 频谱分析技术22.1.1 时域抽样定理722.1.2 离散傅立叶变换(DFT)822.1.3 快速傅立

7、叶变换(FFT)932.1.4 频谱分析原理1032.2 MATLAB简介42.2.1 MATLAB软件的发展42.2.2 MATLAB组成52.3 本章小结53. 程序与算例63.1 声音信号频谱分析63.2 图像信号频谱分析73.3 离散信号/序列93.4 本章小结11结论12致谢13参考文献141. 绪论1.1 课题背景随着信息时代和数字世界的到来,数字信号处理己成为当今一门极其重要的学科和技术领域,数字信号处理在通信、语音、图像、自动控制、医疗和家用电器等众多领域得到了广泛的应用。任意一个信号都具有时域与频域特性,信号的频谱完全代表了信号,因而研究信号的频谱就等于研究信号本身。通常从频

8、域角度对信号进行分析与处理,容易对信号的特性获得深入的了解。因此,信号的频谱分析是数字信号处理技术中的一种较为重要的工具1-3。在工程领域中,MATLAB是一种倍受程序开发人员青睐的语言,对于一些需要做大量数据运算处理的复杂应用以及某些复杂的频谱分析算法MATLAB显得游刃有余4。1.2 研究意义信号处理几乎涉及到所有的工程技术领域,而频谱分析又是信号处理中一个非常重要的分析手段。一般的频谱分析都依靠传统频谱分析仪来完成,价格昂贵,体积庞大,不便于工程技术人员的携带。虚拟频谱分析仪改变了原有频谱分析仪的整体设计思路,用软件代替了硬件,使工程技术人员可以用一部笔记本电脑到现场就可轻松完成信号的采

9、集、处理及频谱分析5-6。 1.3 本文研究内容信号的频谱分析就是利用傅里叶分析的方法,求出与时域描述相对应的频域描述,从中找出信号频谱的变化规律,以达到特征提取的目的。不同信号的傅里叶分析理论与方法,在有关专业书中都有介绍。但实际的待分析信号一般没有解析式,直接利用公式进行傅里叶分析非常困难. DFT是一种时域和频域均离散化的傅里叶变换,适合数值计算且有快速算法,是分析信号的有力工具。DFT及FFT是数字信号处理的重要内容。DFT是FFT的基础,FFT是DFT的快速算法,在 MAT LAB中可以利用函数 FFT来计算序列的离散傅里叶变换DFT。基于此首先介绍了Matlab软件;其次给出了基于

10、Matlab软件的DFT和 FFT频谱分析的方法,利用 Matlab软件方法,使得设计方便、快捷,大大减轻了工作量;最后结合实例给出了仿真结果。本文将重点介绍基于MATLAB的频谱分析设计,包括:(1) 音频信号频谱分析;(2) 图像信号频谱分析;(3) 离散信号/序列频谱分析。共 14 页 第 14 页2. 频谱分析及MATLAB简介2.1 频谱分析技术2.1.1 时域抽样定理7时域抽样定理给出了连续信号抽样过程中信号不失真的约束条件:对于基带信号,信号抽样频率大于等于2倍的信号最高频率,即。时域抽样是把连续信号变成适于数字系统处理的离散信号。对连续信号以间隔T抽样,则可得到的离散序列为。图

11、2-1 连续信号抽样的离散序列若,则信号与的频谱之间存在:其中,的频谱为,的频谱为。可见,信号时域抽样导致信号频谱的周期化。(rad/s)为抽样角频率,为抽样频率。数字角频率与模拟角频率的关系为:=T。2.1.2 离散傅立叶变换(DFT)8有限长序列的离散傅立叶变换(DFT)为逆变换为2.1.3 快速傅立叶变换(FFT)9在各种信号序列中,有限长序列占重要地位。对有限长序列可以利用离散傅立叶变换(DFT)进行分析。DFT不但可以很好的反映序列的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。有限长序列的DFT是其z变换在单位圆上的等距离采样,或者说是序列傅立叶的等距离采样,因此可以用

12、于序列的谱分析。FFT是DFT的一种快速算法,它是对变换式进行一次次分解,使其成为若干小数据点的组合,从而减少运算量。 MATLAB为计算数据的离散快速傅立叶变换,提供了一系列丰富的数学函数,主要有Fft、Ifft、Fft2 、Ifft2, Fftn、ifftn和Fftshift、Ifftshift等。当所处理的数据的长度为2的幂次时,采用基-2算法进行计算,计算速度会显著增加。所以,要尽可能使所要处理的数据长度为2的幂次或者用添零的方式来添补数据使之成为2的幂次。Fft函数调用方式:Y=fft(X);Yfft(X,N);Yfft(X,dim)或Yfft(X,N,dim)。函数Ifft的参数应

13、用与函数Fft完全相同。2.1.4 频谱分析原理10时域分析只能反映信号的幅值随时间的变化情况,除单频率分量的简单波形外,很难明确提示信号的频率组成和各频率分量大小,而频谱分析能很好的解决此问题。由于从频域能获得的主要是频率信息,所以本节主要介绍频率(周期)的估计与频谱图的生成。1、频率、周期的估计对于Y(kf),如果当kf=f时,Y(kf)取最大值,则f为频率的估计值,由于采样间隔的误差,f也存在误差,其误差最大为f/ 2。周期T=1/f。从原理上可以看出,如果在标准信号中混有噪声,用上述方法仍能够精确地估计出原标准信号的频率和周期,这个将在下一章做出验证2、频谱图为了直观地表示信号的频率特

14、性,工程上常常将Fourier变换的结果用图形的方式表示,即频谱图。以频率f为横坐标,|Y(f)|为纵坐标,可以得到幅值谱;以频率f为横坐标,argY(f)为纵坐标,可以得到相位谱;以频率f为横坐标,ReY(f)为纵坐标,可以得到实频谱;以频率f为横坐标,ImY(f)为纵坐标,可以得到虚频谱。根据采样定理,只有频率不超过Fs/2的信号才能被正确采集,即Fourier变换的结果中频率大于Fs/2的部分是不正确的部分,故不在频谱图中显示。即横坐标f0,Fs/22.2 MATLAB简介2.2.1 MATLAB软件的发展MATLAB 软件11是由美国 Mathworks 公司推出的用于数值计算和图形处

15、理的科学计算系统环境。MATLAB 是英文 MATrix LABoratory(矩阵实验室)的缩写。它的第一版(DOS 版本 1.0)发行于1984年,经过10余年的不断改进,现今已推出它的 Windows 98/NT 版本(6.1 版)。新的版本集中了日常数字处理中的各种功能,包括高效的数值计算、矩阵运算、信号处理和图形生成等功能。在 MATLAB 环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。MATLAB 提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩阵对象时,不要求作明确的维数说明。与利用 c 语言或 FORTRAN 语言作

16、数值计算的程序设计相比,利用 MATLAB 可以节省大量的编程时间。在美国的一些大学里,MATLAB 正在成为对数值计算、算法预设计与验证,以及一些特殊的短阵计算应用,如自动控制理论、统计、数字信号处理(时间序列分拆)等。MATLAB 系统最初是由 CieveMoler用FORTRAN语言设计的,有关矩阵的算法来自LINPACK和EISPACK课题的研究成果;现在的 MATLAB 程序是 MathWorks 公司用 C 语言开发的,第一版由 steve Bangert 主持开发编译解释程序,Steve Kleiman完成图形功能的设计,John Little 和 Cleve Moler 主持开

17、发各类数学分析的子模块,撰写用户指南和大部分 M 文件。自从第 1 版发行以来,已有众多的科技工作者加入到 ATLAB 的开发队伍中,并为形成今天的MATLAB 系统做出了巨大的贡献,MATLAB 以商品形式出现后,仅短短几年,就以其良好的开放性和运行可靠性,使原先控制领域里的封闭式软件包(如英国的 UMIST,瑞典的 LUND,德国的 KEDDC)纷纷淘汰,而改以MATLAB为平台加以重建。在时间进入20世纪九十年代的时候,MATLAB已经成为国际控制界公认的标准计算软件。到九十年代初期,在国际上30 几个数学类科技应用软件中,MATLAB 在数值计算方面独占鳌头。2.2.2 MATLAB组

18、成MATLAB 系统由五个主要部分组成,下面分别加以介绍:1. MATLAB 语言体系。MATLAB 是高层次的矩阵/数组语言,具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。利用它既可以进行小规模编程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。2. MATLAB 工作环境。这是对 MATLAB 提高给用户使用的管理功能的总称。包括管理工作空间中的变量输入输出的方式和方法,以及开发、调试、管理 M 文件的各种工具。3. 图形句相系统。 这是 MATLAB 图形系统的基础,包括完成 2D和 3D 数据图示、图象处理、动画生成、图形显示等功能的

19、高层 MATLAB命令,也包括用户对图形图象等对象进行野性控制的低层 MATLAB 命令,以及开发 GUI 应用程序的各种工具。4. MATLAB数学函数库。这是对 MATLAB 使用的各种数学算法的总称。包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法。5. MATLAB应用程序接口(API)。这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用C程序或 FORTRAN 程序,包括从MATLAB中调用程序(动态连接),读写 MAT 文件的功能。可以看出 MATLAB 是一个功能十分强大的系统,是集数值计算、图形管理、程序开发为一体的环境。除此之外,MA

20、TLAB 还具有很强的功能扩展能力,与它的系统一起,可以配备各种各样的工具箱。2.3 本章小结本章详细介绍了频谱分析的基本原理,并对MATLAB软件的发展和组成展开介绍。3. 程序与算例3.1 声音信号频谱分析Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件, 它可以将声音文件变换为离散的数据文件, 然后利用其强大的矩阵运算能力处理数据, 如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种分析图的呈现等等。 下面以语音信号的波形图、频谱图和倒谱图分析为例来说明Matlab在语音信号处理中的具体实现方法。程序代码:S=wavread(1.wav)subplot(3,1,1)

21、;plot(S);title(波形图)n=size(S);d=100;L=512;k=L-d;t=fix(n/k);frame_length=512;r=(rectwin(frame_length);for a=1:t n1=(L-d)*(a-1)+1; n2=(L-d)*(a-1)+frame_length; y=S(n1:n2); sf=fft(y.*r,512); X1(n1:n2)=sf(1:frame_length);endFFTSIZE=8000;Y=zeros(FFTSIZE,1);Y=20*log10(abs(X1);subplot(3,1,2);plot(Y(1:4000),

22、title(频谱图);T1=length(X1);t1=fix(T1/L);for i=1:t1z=ifft(X1(i-1)*L+1:i*L),512);z=real(z./r);y(i-1)*k+1:i*k)=z(1:k);end subplot(3,1,3);plot(y),title(倒谱图)上程序将语音文件1.wav进行频谱分析,分析结果如图3-1所示。图3-1 声音信号的频谱分析结果3.2 图像信号频谱分析纹理图像的频谱可以通过离散傅里叶变换(DFT)得到。用表示一幅空域纹理图像,用表示该图像的频谱,图像的大小为MN,则和质检可以通过DFT计算,计算公式如下:其中能量谱可采用公式:基

23、于傅立叶能量谱的纹理图像分析的前提是假设纹理有不同的正弦波组成。理想正弦分布的纹理图像,是最为典型的纹理图像之一,下面讨论理想正弦分布的纹理图像的仿真及其频谱特征分析。编写下面的程序获得具有理想正弦分布的空域纹理图像,其中A为正弦纹理的幅值,uf0、vf0分别为x轴(垂直方向)、y轴(水平方向)方向的模拟频率,M、N分别为x轴、y轴的采样的点数,Tsu、Tsv分别为x、y轴的采样间隔,为了便于观察和处理,取Tsu=1/M、Tsv= 1/N,即x轴、y轴的采样频率分别为M和N,这样在空域中得到了01范围的纹理图像(如考虑成时域抽样信号的话,相当于在01s间的抽样)。 A=1;uf0=0;vf0=

24、25;M=200;N=200;Tsu = 1/M; Tsv = 1/N; r = 0:M-1; c = 0:N-1; C,R = meshgrid(c,r); g = A * sin(2* pi* uf0 * R * Tsu + 2 * pi * vf0 * C * Tsv); f = mat2gray(g); figure imshow(f)程序中输出变量g返回的是实际的理想正弦函数的取值,f返回的是g平移后的结果(取值限定在01范围内)。 在Matlab软件中仿真得到的一组具有理想正弦分布的纹理图像:图3-2中各纹理的方向或周期是不同的。其中(a)和(b)中纹理呈竖直方向分布(即水平方向变

25、化),(a) 的y轴方向的频率为25Hz,(b)的y轴频率为5Hz,即(b)图是周期为(a)图的5倍的竖直纹理,所以在整个图像范围内(相当于一秒内)(a)和(b)分别有25和5个周期。 (c)图纹理是x和y轴方向频率均为25Hz。 (a) (b) (c)图3-2 理想正弦纹理图像然后利用FFT算法对以上面三个图像信号进行频谱分析。程序代码为:I=imread(1.tif)I = rgb2gray( I );imshow(I);fftI=fft2(I);sfftI=fftshift(fftI);RR=real(sfftI);II=imag(sfftI);A=sqrt(RR.2+II.2);A=(

26、A-min(min(A)/(max(max(A)-min(min(A)*225;figure;imshow(A);图3-3为对应的图中各图的傅立叶频谱能量图(在Matlab中执行了FFT(快速傅立叶变换)后,使用了fftshift函数调整,以使频谱图像的原点从起始点(0,0),移到图像的中心点(M/2,N/2)。从图3-3中可以看出:竖直方向理想单一频率的正弦分布纹理的频谱能量集中在水平方向的三个点上,而水平方向单一频率的正弦分布纹理的频谱能量集中在竖直方向的三个点上;对于单一频率的理想正弦分布的纹理图像,其纹理方向和其频谱能量图的频点连线方向相垂直,如图 (c)纹理为图 (b)的纹理顺时针倾

27、斜45度,其频谱能量图中频点也相应顺时针倾斜45度;垂直方向纹理和水平方向纹理的叠加图像的频谱能量图表现为水平和竖直方向的五个点上;纹理周期越小,对应的频点到频谱中心(中心点,即频率为0)的距离越大,如图3-3 (a)纹理的频点到中心的距离为图3-3(b)纹理的五倍。(a) (b) (c)图 理想正弦纹理图像的频谱能量图3.3 离散信号/序列以,采样频率100Hz,采样100个点,形成离散信号,利用MATLAB进行频谱分析。程序如下:N=100;Fs=100;t=(0:(N-1)/Fs; xn=1+2*sin(2*pi*10*t)+3*sin(2*pi*15*t); XK=abs(fft(xn

28、,N);f=(0:N/2)*Fs/N; XK(1)=XK(1)/N;XK(2:(N/2+1)=XK(2:(N/2+1)*2/N; stem(f,XK(1:(N/2+1);axis(-1 N/2 0 5); grid on;xlabel(f(Hz);ylabel(|X( f )|);程序运行结果:图3-4 N=100的幅值频谱图从图3-4可以看出,DFT法分析的结果和实际信号吻合得很好,说明该方法确实有效。但是,需要注意的是,离散傅里叶变换在频域是离散的,即限制在基频整数倍上,只能得到信号 K 次谐波成分的幅值谱,而对于非K次谐波成分的频谱则无法检测出来,并且由于栅栏效应和频谱泄漏,对其它K次谐

29、波的幅值也有影响。如将上述程序中的N=100改为N=50,结果如图3-5所示。图3-5 N=50的幅值频谱图从图3-5可以看出,由于基频频率为100/50=2Hz,x(t)中的15Hz分量未检测出来,其它频率分量的幅值也出现了误差,这种栅栏效应也是 DFT 应用中不可避免的问题之一。要减小栅栏效应和频谱泄漏,可以减小采样频率,增加采样点数,以减小基频值,使谱线变密,这样原来漏掉的某些频谱成分就可以检测出来,但注意采样频率必须满足采样定理的要求,增加采样点数也会增加系统计算 DFT 的开销。3.4 本章小结本章利用MATLAB分别对声音信号、图像信号和离散信号/序列开展频谱分析,得到频谱分析结果

30、,并开展结果分析。结论本文主要是基于高级面向对象开发语言MATLAB的基本特征,以及MATLAB强大的工具箱功能,实现信号的预处理和频谱分析。(1)通过实例说明,基于MATLAB可以很好的达到对语音信号的频谱的分析处理。(2)采用频谱分析方法可以提取出纹理基本特征,如方向特征和周期特征。本文以理想正弦分布的纹理图像的Matlab仿真和正弦纹理图像的频谱特征分析为例,叙述了基于傅立叶能量谱的纹理图像分析的基本原理和基本过程。(3)通过离散傅里叶变换对和周期信号傅立叶级数的定义,清楚地推导出 X(k)与信号幅值的关系,提出了一种有效的计算离散信号/序列幅值谱的方法。致谢本论文从拟定题目到定稿,从对

31、论文设计原理一无所知到模糊了解再到逐渐清晰,此过程历时数月,我也经历了千辛万苦,但最终有一个结果,我感到很欣慰。通过本次设计,我感觉自己成长了很多,对自己所学的知识有了更深刻的了解掌握,提高了自己的动手能力,能够运用所学的知识实现自己的需要。而我这些进步和成长,都离不开XXX老师的帮助。XXX治学严谨,学识渊博,平易近人,在教学期间以及指导毕业设计期间,不仅传授了我做学问的秘诀,还传授了做人的准则,这些都使我终生受益。无论是在给我们上课期间,还是在我的论文选题、资料查询、开题、研究和撰写的每一个环节,都得到老师的悉心指导和帮助。借此机会我向老师表示衷心的感谢!同时,我要感谢所有教过我的老师,正

32、是由于他们的传道、授业、解惑,让我学到了求知的秘诀和做人的道理。我也要感谢我的母校湖北科技学院,是她提供了良好的学习环境和生活环境,让我的大学生活丰富多姿,为我的人生留下精彩的一笔。另外,感谢08信本全体同学的帮助和勉励。同窗之谊和手足之情,我将终生难忘!我愿在未来的学习和研究过程中,以更加丰厚的成果来答谢曾经关心、帮助和支持过我的所有领导、老师、同学、和朋友。学无止境。明天,我将更加努力,更加完美! 参考文献1 黄植功. 基于MATLAB的连续信号频谱分析J. 广西物理, 2009, (03) . 2 刘小群,周云波. 基于Matlab的DFT及FFT频谱分析J. 山西电子技术, 2010,

33、 (04) . 3 董静薇,于广艳. 基于Matlab的FFT频谱分析及IIR数字滤波器设计J. 软件导刊, 2008, (10) . 4 赵淑敏. 基于MATLAB实现对语音信号频谱分析J. 江西通信科技, 2010, (01) . 5 曾尚璀,沈华,俞振利. 基于Matlab系统的信号FFT频谱分析与显示J. 科技通报, 2000, (04) . 6 曾秀莲,程保胜,潘雪峰. 连续时间信号频谱分析及MATLAB实现J. 中国水运(学术版), 2006, (05) . 7 杨峰,苏玉萍,余冬菊. 用MATLAB模拟实现数字信号的调制与频谱分析J. 电脑学习, 2008, (04) . 8 王占丽. 频谱分析技术在实际中的应用J. 黑龙江科技信息, 2009, (27) . 9 赵淑敏. 基于MATLAB实现对语音信号频谱分析J. 信息通信, 2010, (04) . 10 李媛媛,徐岩,王靖岳. 对MATLAB实现数字信号的频谱分析J. 通信技术, 2008, (01) .11 魏克新. MATLAB语言与自动控制系统设计. 北京: 机械工业出版社.2002:1-150

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号