有没有办法在MATLAB中更改spectrogram轴的比例

有没有办法在MATLAB中更改spectrogram轴的比例,matlab,Matlab,我有一个音频文件,其中我使用以下工具在MATLAB中绘制了频谱图: M = 2048; spectrogram(data,hanning(M),M/2,0:20:10000,fs,'yaxis'); 结果看起来不错: 时间轴是从0 tell 20开始缩放的,我的问题是有没有办法让它看起来0 tell 200a保持原样 考虑到输入数据的大小和采样率,只能有超过20秒的采样量。如果数组表示200秒,那么必须将采样率指定为错误的-它应该慢10倍左右。否则,您将需要更多的输入数据。如果只有20秒的数

我有一个音频文件,其中我使用以下工具在MATLAB中绘制了频谱图:

M = 2048;
spectrogram(data,hanning(M),M/2,0:20:10000,fs,'yaxis');
结果看起来不错:


时间轴是从
0 tell 20
开始缩放的,我的问题是有没有办法让它看起来
0 tell 200
a保持原样

考虑到输入数据的大小和采样率,只能有超过20秒的采样量。如果数组表示200秒,那么必须将采样率指定为错误的-它应该慢10倍左右。否则,您将需要更多的输入数据。如果只有20秒的数据可以绘制,那么就不可能绘制出200秒的数据


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

考虑到输入数据的大小和采样率,必须只有20秒多一点的样本。如果数组表示200秒,那么必须将采样率指定为错误的-它应该慢10倍左右。否则,您将需要更多的输入数据。如果只有20秒的数据可以绘制,那么就不可能绘制出200秒的数据


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

您应该简单地执行以下操作:

xlim([0 200])

它将调整x轴的大小

您只需执行以下操作:

xlim([0 200])

它将调整x轴的大小

如果您只想使x轴“看起来像”它从0变为200,您可以重新定义
xticklabel

代码如下:

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轴显示


最好,

如果您只想使x轴“看起来”从0变为200,您可以重新定义
xticklabel

代码如下:

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轴显示


最好,

谢谢你的回答,事实上,这是20秒内0-tell 200 rpm,谢谢你的回答,事实上,这是20秒内0-tell 200 rpm,是的,你可以,但可能没有意义。
数据的大小是多少(多少个点?),信号的采样频率是多少?@hoki文件的长度是:201600,fs是96000,你确定吗?这只会产生
201600/96000=2.1秒的数据。不是你的图表中的21。对不起,我忘了一个0,它是2016000。这并不能回答你的问题,但这是一个非常酷的光谱图。是的,你可以,但它可能没有意义。
数据的大小是多少(多少个点?),信号的采样频率是多少?@hoki文件的长度是:201600,fs是96000,你确定吗?这只会产生
201600/96000=2.1秒的数据。抱歉,我忘了一个0,它是2016000。这并不能回答你的问题,但这是一个非常酷的光谱图。