如何把算出的 spectrogram(单位dB),在MATLAB用 imagesc 画出频谱图,纵轴单位为Hz?

我用c语言算出的 spectrogram 存在txt档里面,然后想用 matlab 画出频谱图,纵轴是 frequency,横轴是 frame index。

txt档里面的spectrogram 公式如下,单位应该是db

img

我想用matlab画出的图大概是这样的,纵轴是 frequency,横轴是 frame index,此图是用wavsurfer呈现

img

我写的 matlab code 如下:
file1 = load('cos_220Hz-16kSet1.txt');
imagesc(file1);
view(270,90)

跑出来的图长这样:

img

纵轴单位是我算的db,而不是我想要的 frequency,想请问如何用 imagesc 画出频谱图纵轴为hz?

你好同学,这个要看你的txt里面的数据格式,imagesc只是管了数据的宽度和高度当作x轴和y轴,直接从1到一个高度整数,以及1到一个宽度整数。所以你需要把txt文档的数据格式告知一下,不然没法给你调坐标