使用matlab进行语谱图的绘制

方法1:自带函数


    R=512;%设置窗函数长度
    window=hamming(R);%使用汉明窗
    N=R;%短时傅立叶函数点数
    L=200;%步长
    overlap=R-L;%窗重叠点数
    figure('visible','on')
    figure(1)
    x= awgn(x,100,'measured','linear');  %加入高斯白噪声
    specgram(x(:,1),N,fs,window,overlap);%生成声谱图
    axis off;
    saveas(gcf,'faqing1','jpg');%如需直接产生大小固定的声谱图,需要使用该函数保存

 

方法2:

     fn=size(y,2);                           %帧数
     freq=(0:wlen/2)*fs/wlen;                % 计算FFT后的频率刻度
     frameTime=(((1:fn)-1)*inc+wlen/2)/fs;   % 计算FFT后的时间刻度
     
     figure('visible','off')
     imagesc(frameTime,freq,20*log10(abs(y)+eps)); % 画出Y的图像
     set(gca,'xtick',[0:0.2:6])
     axis xy; 
     colormap(jet

 

你可能感兴趣的:(使用matlab进行语谱图的绘制)