有没有办法在MATLAB中改变频谱图轴的比例

时间:2015-02-07 13:33:34

标签: matlab

我有和音频文件,我使用以下方法在MATLAB中绘制频谱图:

M = 2048;
spectrogram(data,hanning(M),M/2,0:20:10000,fs,'yaxis');

结果看起来很好: spectrogram

时间轴是从0 tell 20缩放的,我的问题是有办法让它看起来0 tell 200保持情节不变吗?

3 个答案:

答案 0 :(得分:3)

如果你只想制作x轴"看起来像"它从0到200,您可以重新定义XTickLabels

以下是代码:

set(gca, 'XTick', 0:20);           % Place Ticks at 0, 1, 2 ... 20
set(gca, 'XTickLabel', 0:10:200);   % Mark them as 0, 10, 20 ... 200

它不会改变绘图本身的任何内容,只有x轴显示。

最佳,

答案 1 :(得分:2)

您应该执行以下操作:

xlim([0 200])

它将调整x轴的大小

答案 2 :(得分:0)

考虑到输入数据的大小和采样率,必须有超过20秒的样本。如果数组意味着代表200秒,那么你必须指定错误的采样率 - 它应该慢大约10倍。否则,您将需要更多输入数据。如果只有20秒的数据可以绘制,那么就没有办法计划200秒的值。

我认为xlim([0 200])会将轴设置为0到200,但数据只会在前20秒内 - 其余部分将为空白。