MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB信号处理] 语谱图分析!!!! (https://www.labfans.com/bbs/showthread.php?t=14435)

gda1990 2012-03-19 21:47

语谱图分析!!!!
 
1 个附件
请问语谱图是如何看出共振峰和基频,谐波分量的?请好心人举例说明(看了半天“横条竖条”都没看懂T_T)
窄带与宽带语谱图是如何设置呢(如下面的程序部分该改哪个参数才能改为宽带语谱图)
若有一段8khz的语音信号,维持时间约6s,那么窗长应当设置为多少?(分别对应于宽窄带)
给出程序(Beijing.wav是语音“北京我来了”)的窄带语谱图
clear all;
[x,sr]=wavread('Beijing.wav'); %sr为采样频率
if (size(x,1)>size(x,2)) %size(x,1)为x的行数,size(x,2)为x的列数
x=x';
end
s=length(x);
w=round(44*sr/1000); %窗长,取离44*sr/100最近的整数
n=w; %fft的点数
ov=w/2; %50%的重叠
h=w-ov;
specgram('Beijing.wav',n,sr,w,w/2);
% win=hanning(n)'; %哈宁窗

gda1990 2012-03-19 21:48

回复: 语谱图分析!!!!
 
win=hamming(n)'; %哈宁窗
c=1;
ncols=1+fix((s-n)/h); %fix函数是将(s-n)/h的小数舎去
d=zeros((1+n/2),ncols);
for b=0:h:(s-n)
u=win.*x((b+1):(b+n));
t=fft(u);
d(:,c)=t(1:(1+n/2))';
c=c+1;
end

gda1990 2012-03-19 21:49

回复: 语谱图分析!!!!
 
tt=[0:h:(s-n)]/sr;
ff=[0:(n/2)]*sr/n;
imagesc(tt/1000,ff/1000,20*log10(abs(d)));

axis xy
xlabel('时间/s');
ylabel('频率/kHz');

gda1990 2012-03-19 21:51

回复: 语谱图分析!!!!
 
被系统弄成表情的是: (


所有时间均为北京时间。现在的时间是 03:06

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.