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

博客介绍了如何避免使用spectrogram函数默认的色块图,通过修改代码自动生成适合训练的数据集。作者参考了时频分析的文章,调整PlotSTFT_2函数,实现了将短时傅里叶变换的幅度谱可视化,并确保图像是训练模型所需的形式。该过程涉及信号处理、图像可视化和编程技巧。
摘要由CSDN通过智能技术生成

2021.12.31的记录:
刚开始是用spectrogram函数直接绘制,但是由于会出现右边的色块图,不能作为训练数据集。
在这里插入图片描述

所以需要自己使用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

在这里插入图片描述完美。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芃芃です

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值