手机版

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

发布时间:2021-06-06   来源:未知    
字号:

_‘江盈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):

万方数据

基于MATLAB实现对语音信号频谱分析(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)