基于MATLAB实现对语音信号频谱分析

更新时间:2023-06-06 19:23:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

◆技术前沿◆

文章编号:1009--0940(2010)-m一∞12

基于MATLAB

实现对语音信号频谱分析

赵淑敏兰州交通大学电子与信息互程学院麓铡730070

要:语音信号处理技术是语音处理领域中新近发展起来的一个学科分支,MATLAB是一个数据

分析和处理功能十分强大的工程实用软件,运用它来进行语音信号的采集、分析和处理相当便捷。文章介绍了在Matlab环境中如何采集语音信号和语音信号采集后的频谱分析处理.并通过实例分析了语音信号处理的Mattab。

关键字:MATLAB语音信号频谱分析傅里叶变换

一.引言

随着计算机技术和信息技术的发展.语音交互已经成为人机交互的必要手段,而语音信号的采集和处理是人机交互的前提和基础。Matlab是美国Math

Works

=.语音信号的采集

Windows附件的娱乐中有个录音机程序,通过它可以驱动声片采集.播放和简单处理语音信号。为了清晰的阐明对语音信号进行频谱分析.首先使用Windows的录音机功能可以用麦克风直接录制一段女声”世界上最遥远的足巨离不是生与死.而是我就站在你面前你确不知道我爱你”,并保存为WAV格式文件.供MATLAB相关函数直接读取.写入或播放。本文以WAV格式语音信号作为分析处理的输入数据。

例:在MATLAB中使用wavread函数读取录制得到的声音采样频率Fs为11kHz,且声音是8位单声道的声音文件“test.wav”。并利用wavplay函数播放声音.可

公司推出的一种面向工程和科学计算的交互式计算软件,它以矩阵运算为基础.把计算.可视化.程序设计融合到了一个简单易用的交互式工作环境中。同时由于Matlab是一个数据分析和处理功能十分强大的工程实用软件.它的信号处理与分析工具箱为语音信号分析提供了十分丰富的功能函数.利用这些功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化.使人机交互更加便捷。

收稿日期:2010—02—16

万方数据

Jiangxi

CommunicationScience&Technology

清晰地听到语音。然后绘制显示出语音数据的波形图(如图1所示)。

Clear

S=wavread(’C:\Documents

and

Settings\administrator\桌面\test.way’);%读取语音数据

Plot(S),title(’原始语音信号’)%画波形图Wavplay(S);%播放语音

图1原始语音信号

三,语音信号分析及MATLAB的实现1.语音信号的频谱分析过程

傅里叶频谱分析是语音信号频域分析中广泛采用的一种方法。语音波是一个非平稳过程.因此适用于周期.瞬变或平稳随机信号的标准傅里叶变换不能直接表示语音信号,而应该用短时傅里叶变换对语音信号的频谱进行分析.相应的频谱称为”短时谱”。

进行频谱分析时.在时域数据进行短时FFT处理之前都要进行加窗处理。在FFT处理之后,普通频谱分析可以进行频域上的滤波处理.从而使频谱更加平滑。最后IFFT处理观察恢复后的时域信号图形.频谱分析过程(如图2所示)。

桑集’原始信号—j甫时域信号FF,频域信号-6rr=-恢复后的时域信号

图2频谱分析过程

2.短时傅里叶变换(频谱分析)

万方数据

傅里叶频谱分析的基础是傅里叶变换.用傅里叶变换及其反变换可以求得傅里叶谱、自相关函数、功率谱.倒谱。由于语音信号的特性是随着时间缓慢变化

的,由此引出语音信号的短时分析。如同在时域特征分析中用到的一样.这里的傅里叶频谱分析也采用相同的短时分析技术。

信号X(n)的短时傅里叶变换定义为

以(∥)=∑x(m)w(n-m)e一加

卅-—∞

式中,MJ(n)为窗口函数。

可以从两个角度理解函数以(少)的物理意义:第一

种解释是.当n固定时。刀=以。如。则以护)是将窗函数

的起点移至‰处截取信号x(力).再做傅里叶变换而得到

的一个频谱函数。这是直接将频率轴方向来理解的。另一种解释是从时间轴方向来理解,当频率固定时.

例如∞=q.则以(eM)可以看作是信号经过一个中心频

率为(Ok的带通滤波器产生的输出。这是因为窗口函数∞(以)通常具有低通频率响应.而指数e咖吨对语音信号工(以)有调制的作用.使频谱产生移位.即将x(刀)频谱中

对应于频率q的分量平移到零频。

3.短时傅里叶反变换(倒谱分析)

傅里叶变换建立了信号从时域到频域的变换桥梁,而傅里叶反变换则建立了信号从频域到时域的变换桥梁这两个域之间的变换为一对一映射关系。

我们知道.以(扩)可以看作是加窗后函数的傅里叶变

换.为了实现反变换.将以(扩)进行频率采样,即令嘶=2xk/L.则有

以∽)=∑B(mⅫ(n—m)】e—M

_‘江盈i‘■●婴沿◆——一

其中.L为频率采样点数。将以(沙)在时域n上每隔

R个样本采样.则可令

frame_length=512;

%采用滑动窗进行短时fft变换p(rectwin(frame_length));

fora=l:t

耳(e地)=如(P挑)’甩=rR,r:l,2…

用这些r(P肌)求出其离散傅里叶反变换Y,(以)如下:

L-1

只o)=,1∑':o肌弦胁4

i.J

nl=(L-d) (a一1)+1:

n2=(L-d)}(a-1)+frame_length:y=S(nl:n2);

sf=fft(Y’. r_.512);

X1(n1:n2)=sf(1:frame_length):

end

k=O

耐(以)=∑yXn)

,=—∞

可以证明,x仰)和y(疗)之间只相差一个比例因子,它们的关系如下:

y(n)=x(n)W(e,o)/R

4、MATLAB处理语音信号

Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件.它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据.如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种分析图的呈现等等。下面以语音信号的波形图.频谱图和倒谱图(如图3所示)分析为例来说明Matlab在语音信号处理中的具体实现方法。

%分段fourier变换,每段长为512.每段加矩形窗,连续断之间重叠的长度100

S=wavread(’C:\Documents

and

1Hz

FFTSIZE=8000;

%FFT长度为8000点,每点对应于

Y=zeros(FFTSIZE.1);Y=20*loglO(abs(X1)):

subplot(3,1.2):Plot(Y(1:4000)).titIe(’频谱图。);%画前4000点

%IFFT变换

TI=length(X1):tl=fix(T1/L):

for

l=1:t1

z=ifft(X1((i一1) L+1:i*L).512);

Settings\

z=real(z./r’):

Y((i-1)木k+1:i*k)=z(1:k);

end

administrator\桌面\test.wav’);

subplot(3,1,1);plot(S).title(’波形图。)wavplay(S):%播放语音

n=size(S);

subplot(3.1.3);plot(Y).title(’倒谱图’)

d=lOO:%连续段之间的重叠长度

L=512:k=L-d:

t=fix(n/k):

万方数据

Jiangxi

CommunicationScience&Technology

四.结束语

本文主要是基于高级面向对象开发语言MATLAB的基本特征,以及MATLAB强大的工具箱功能,实现信号的预处理、信号的时域处理和信号的频域处理。其中实现信号的时域处理过程中,设计了加窗处理;在信号频域处理过程中.实现对低于20kHz语音信号进行频谱分析。同时,通过上述实例说明.基于MATLAB可以很好的达到对语音信号的频谱的分析处理。

参考文献

(1)姚天任.数字语音处理

(M)武汉;华中科技大学出版社.1991(2)刘卫国.MATLAB程序设计教程

(M)北京:中国水利水电出版社.2005(3)张登奇.蒋敏.基于MATLAB的音频信号处理技术实现(J)电脑知识与技术,2009(2)(4)陈宇锋.基于声卡和MATLAB的语音信号采集和处理(J)高教装备,2006(5)

(5)徐靖涛.王金根,基于MATLAB的语音信号分析和处理(J)重庆科技学院学报.2008(1)

万方数据

基于MATLAB实现对语音信号频谱分析

作者:作者单位:刊名:英文刊名:年,卷(期):

赵淑敏

兰州交通大学电子与信息工程学院,兰州,730070江西通信科技

JIANGXI COMMUNICAITON SCIENCE & TECHNOLOGY2010(1)

参考文献(5条)

1.徐靖涛;王金根 基于MATLAB的语音信号分析和处理[期刊论文]-重庆科技学院学报 2008(01)2.陈宇锋 基于声卡和MATLAB的语音信号采集和处理[期刊论文]-中国现代教育装备 2006(05)3.张登奇;蒋敏 基于MATLAB的音频信号处理技术实现[期刊论文]-电脑知识与技术 2009(02)4.刘卫国 MATLAB程序设计教程 20055.姚天任 数字语音处理 1991

本文链接:/Periodical_jxtxkj201001014.aspx

本文来源:https://www.bwwdw.com/article/nnj1.html

Top