声音信号的频谱分析(二)

12-29 生活常识 投稿:早茶月光
声音信号的频谱分析(二)

——wav文件的分段傅里叶分析

在上一篇“声音信号的频谱分析(一)”中,给出了几种声音信号的时域波形图和频谱图。但存在两个问题:第一,对wav文件全部读取出来一次性地进行傅里叶变换,点数太大,而实际中运用DSP的FFT点数是有限的;第二,语音是分节的,不同时间段上的频谱特性不同,应该对它进行分段分析。下面引入分段处理数据的方法。仍以matlab中自带的文件“bird.wav”为例进行分析。

示例程序:

[w,fs,bits]=wavread('C:\MATLAB701\toolbox\vr\vrealm\program\sounds\bird.wav');

sound(w,fs,bits);  %听一下原始声音

y=w(:,1);                %取其中一列

display('声音文件的大小为:');

size(w)

 

%按照每段N0个点分段,做N0

N0=1024;K=length(y)/N0;

Z=zeros(K,N0);

for i=1:K

  Z(i,:)=(fft(y(1024*(i-1)+1:1024*i),N0)');

end

mesh(abs(Z)');

xlabel('x');ylabel('y');zlabel('z');

 

运行结果如下图所示,x坐标表示段数(即K的值,本程序中,K=19),y坐标表示每段的点数(该程序中,每段1024个点),z坐标表示频域幅度谱。显然,幅度谱是以1024/2=512为对称的,这是所有实信号的幅度谱的共性。

    首先沿x方向看,整个wav数据分成的K段中,每段有两个峰值,与上表中的分析是一致的,但不同段幅度差别较大,如果沿y方向看,分成的K段中同一y位置处的幅度也是不同的,乘波浪起伏变化,说明语音是分节的,不同时间段的频谱不同。


标签: # 频谱 # 不同
声明:伯乐人生活网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系ttnweb@126.com