如何改变谱图功能生成的绘图值的范围

时间:2014-12-30 13:08:01

标签: matlab signal-processing fft wavelet haar-wavelet

在下面发布的图片中,我尝试使用TFR获取STFT。在发布的代码中,我指定了参数T = 0:.001:1;,当我将其修改为时,例如,T = 0:.001:2;绘图的水平轴上的值范围会发生变化,尽管它标记为{{1} }}

现在,我想在显示的图上更改水平轴和垂直轴的值范围。我怎么能这样做?

注意:用于生成所示图的代码是:

Frequency

CODE

T = 0:.001:1;
spectrogram(x4,128,50,NFFT);

图片

enter image description here

新Result_1 enter image description here

1 个答案:

答案 0 :(得分:0)

想法:获取用于绘制频谱图的axis并相应地设置其属性。例如,假设您要将 x 范围限制为[0,0.5]且 y 为[100,200],则:

%'old code here'
%' . . . '
spectrogram(x4,128,50,NFFT);

%'new code here'
axis(get(gcf,'children'), [0, 0.5, 100, 200]);

说明:添加的一行get来自当前数字gcf的子句柄(假设由spectrogram创建),然后通过[xmin, xmax, ymin, ymax]调用将其范围设置为axis

Nota Bene:我认为您只需重新缩放轴,而不是重新计算 spectrogram对于不同的数据。

此外,我假设频谱图不与其他轴共享其数字。

此外,扩展轴范围而不是限制它可能无法提供预期的结果(总之:难看)。