毕业设计记录-matlab信号时频图的绘制

2021.12.31的记录:
刚开始是用spectrogram函数直接绘制,但是由于会出现右边的色块图,不能作为训练数据集。
毕业设计记录-matlab信号时频图的绘制_第1张图片

所以需要自己使用spectrogram函数返回的值来绘图。参考了时频分析之STFT:短时傅里叶变换的原理与代码实现(非调用Matlab API)这篇文章,修改一下这位博主的代码中PlotSTFT_2函数。

function PlotSTFT_2(T, F, S, win)
    wlen = length(win);
    C = sum(win)/wlen;
    S = abs(S)/wlen/C;
    
    S = 20*log10(S + 1e-6);

    %figure(1)
    surf(F, T, S')
    shading interp;
    axis tight;
    view(0, 90);
    %set(gca, 'FontName', 'Times New Roman', 'FontSize', 14);
    ylabel('Time, s');
    xlabel('Frequency, Hz');
    title('Amplitude spectrogram of the signal');
    
%     hcol = colorbar;
%     %set(hcol, 'FontName', 'Times New Roman', 'FontSize', 14);
%     ylabel(hcol, 'Magnitude, dB');
end

毕业设计记录-matlab信号时频图的绘制_第2张图片完美。

你可能感兴趣的:(毕业设计记录,matlab,开发语言)