预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第16卷第4期科技通报Vol.16No.4 2000年7月BULLETINOFSCIENCEANDTECHNOLOGYJuly2000 基于Matlab系统的信号FFT频谱分析与显示 曾尚璀1,沈华2,俞振利1 (1.浙江大学信息与电子工程学系,浙江杭州310028;2.杭州职业技术学院,浙江杭州310015) 摘要:给出一种用Matlab系统实现信号频谱分析与显示的方法.Matlab是具有很强的科学计 算和图形显示界面的软件系统.该法可对语音信号(或其它类型的似平稳信号)进行基于FFT的 短时频谱分析,频谱图的伪彩色映射及显示.频谱图的类型有宽带和窄带两种,伪彩色显示的映射 可按需求设置.文中介绍了基于FFT频谱分析与频谱图显示的原理,Matlab的相关功能函数,并 给出了一个程序实例及其实验结果.实验结果表明,该法所需的编程简单,对设备硬件要求不高, 易于实现,能快速地在普通通用PC机上完成信号的频谱分析和频谱图显示. 关键词:信号处理;FFT频谱分析;伪彩色显示;Matlab 中图分类号:TN912.3文献标识码:A 文章编号:1001-7119(2000)04-0241-06 0引言 语音信号(或其它类型的似平稳信号)的频谱分析是语音识别、合成与编码的最基本任务 之一;而灵活和适应人类视觉效果的动态频谱显示则是语音信号处理研究和技术开发的重要 手段.对于许多研究者来说,如果不是把频谱分析与显示技术和手段作为研究的终极目标,而 仅仅作为一种研究手段,都希望手头有一个现成的频谱分析与显示工具.目前,可用于此目的 的优秀工具确实不少,如美国Entropic公司的基于Unix系统的ESPS系统中的“Xwaves”[1], 美国Kay公司的基于PC机软硬一体化的“CSLModel4300B”(计算机语音工作站)或其软件 版“Model3700Multi-Speech”[2].但是,此类系统价格昂贵,如“ESPS”价格在10万元以上, “CSL4300B”价格在7万元以上,即使“Model3700”也需1万元以上. Matlab(英文MatrixLaboratory的缩写)是70年代末期MathWorksInc.公司的首席科 学家CleverMoler博士为进行矩阵理论、线性代数和数值计算研究而设计的一个软件包.后 来被学术界的研究者和工程界工程师们广泛采用.现在,Matlab已经发展到5.1版本,功能变 得非常强大和灵活.特别由于它具有非常规范的数据组织形式、广泛的数值计算能力、专业工 具箱(Toolbox)、现成的功能子程序和优秀的图形界面,使它成为科学研究和技术开发不可多 得的一个软件工具[3]. 收稿日期:1999-06-22 基金项目:国家自然科学基金(69972064)、浙江省自然科学基金(698076)和浙江省教委科研基金资助 作者简介:曾尚璀,女,1958年生,广东揭阳人,实验师;沈华,男,1945年生,浙江杭州人,讲师;俞振利,男,1956年 生,浙江余杭人,副教授,博士. 242科技通报16卷 本文作者根据语音频谱分析和频谱图显示的原理与算法,应用Matlab实现了一种可在 PC机上实现的信号频谱分析与频谱图伪彩色映射显示的方法.此方法所需的编程简单,对设 备要求不高,容易实现. 1频谱分析与显示原理 1.1离散信号的短时FFT频谱分析 现代信号频谱分析是基于离散时域的短时Fourier分析[4,5].设离散时域采样信号为x (n),n=0,1,…,N-1是时域采样点序号,N是信号长度.在数字信号处理中,用加窗方法将 信号分段(帧).此时x(n)表示成xm(n),n=0,1,…,N-1,m是帧的序号,n是帧同步的时间 序号,N则是一帧内的采样点数(帧长).信号xm(n)的加窗离散时域Fourier变换(DTFT)为 N-1 jk-jkn X(m,e)=∑wm(n)xm(n)e(1) n=0 为了便于离散计算,采用wm(n)·xm(n)的离散Fourier变换(DFT): N-1 -j2πnk/2N X(m,k)=∑wm(n)xm(n)e,k=0,…,N-1(2) n=0 |X(m,k)|便是xm(n)的短时幅度谱估计.把m当作时间变量,k当作频率变量,则|X(m, k)|就是信号x(n)的动态频谱.由20·log10(|X(m,k)|)就是以dB表示的动态频谱. 为了高效计算|X(m,k)|,可以运用快速Fourier变换算法,即FFT算法[6]. 1.2伪彩色编码的动态频谱图显示 在二维平面坐标上,将m作为横坐标,k作为纵坐标,把|X(m,k)|的值作为灰度作图,则 得到x(n)的动态频谱图. 对|X(m,k)|的值实施伪彩色映射,可得到伪彩色的动态频谱图,以获得更好的分辨率和