MATLAB频谱图中频率区域的去除

MATLAB频谱图中频率区域的去除,matlab,image-processing,spectrogram,Matlab,Image Processing,Spectrogram,假设我有以下光谱图: 我想做的是把高于某个能量水平的区域涂上黑色,例如,-110分贝-所以所有的红色、黄色和绿色部分。在这种情况下,我所说的断电是指下拉到零或-Inf。我正在跟踪这个边界,我想看看在某些条件下跟踪效果如何,这将帮助我将其可视化。这一操作的结果是,接近40 kHz的一切都将是黑色或深蓝色,光谱图的其余部分将保持不变。有没有一种简单的方法可以做到这一点而无需过滤?一般来说,是否有图像处理功能可以让您以任何方式操纵能量值?谢谢您可以使用光谱图返回绘制的值,而不是实际绘制它们:[S,F,

假设我有以下光谱图:


我想做的是把高于某个能量水平的区域涂上黑色,例如,-110分贝-所以所有的红色、黄色和绿色部分。在这种情况下,我所说的断电是指下拉到零或-Inf。我正在跟踪这个边界,我想看看在某些条件下跟踪效果如何,这将帮助我将其可视化。这一操作的结果是,接近40 kHz的一切都将是黑色或深蓝色,光谱图的其余部分将保持不变。有没有一种简单的方法可以做到这一点而无需过滤?一般来说,是否有图像处理功能可以让您以任何方式操纵能量值?谢谢

您可以使用光谱图返回绘制的值,而不是实际绘制它们:[S,F,T,p]=光谱图,然后在使用surf函数打印之前,使用Yvon的方法删除s矩阵中的值。查看spectrogram帮助部分,您应该了解如何操作。将'CLim'设置为[anyMinimalValue,-110],然后使用colormap cm=jet64;cm1,:=[0,0,0];。仅对颜色轴的数据不进行操作。您还可以修改其他63种颜色,以确保更易于查看。当然,如果您想修改数据,那么最好执行类似于@Yvon或ewzCool的操作,谢谢。我只是用光谱图作图,没有看到返回值部分。。。修改颜色甚至可能比更改数据更好,因为我只需要它来可视化。