自己画语谱图


自己画语谱图


frmsize = 256; % 设置贞大小
[x,fs,nbits] = wavread('nvsheng.wav'); % 读取语音文件
x = filter([1 -0.95],[1],x); % 高频预加重,抵消频谱倾斜
n = length(x); frmcnt = floor(n/frmsize);
x = reshape(x(1:frmsize*frmcnt),frmsize,frmcnt); % 分贞
xFFT = abs(fft(x)); % 福利叶谱
xFFT = xFFT(1:frmsize/2,1:frmcnt); % 奈奎斯特频率以内是无效的
xFFTdB = 20*log10(xFFT+eps); % 换算成分贝
xFFTdB(xFFTdB>+20) = +20; % 能量太高的截断
xFFTdB(xFFTdB<-40) = -40; % 能量太低的截断
xFFTdB = (xFFTdB+40); % 能量整理到 [0,60] 之间,当然你可以整理到[0,255]范围
subplot(2,1,1);plot(x(1:frmsize*frmcnt)); title('yao'); % 画波形
subplot(2,1,2);image(flipud(xFFTdB)); colormap(jet)% 画语谱图

相关文档
最新文档