在GUI matlab中使用轴中的specgram

时间:2013-10-01 08:40:10

标签: matlab matlab-figure matlab-guide

我创建了一个matlab gui,并在其中包含一些带有一些轴的元素。我使用

绘制了ploter1(第一轴)中我想要的一个绘图
plot(handles.ploter1,xx); title(handles.ploter1,'Waveform');

并且没关系,但是我希望在另一个轴上使用specgram和plot specgram结果我不知道该怎么做:(
我测试了

specgram(wav,N,fs,hamming(N/4),round(0.9*N/4));xlabel('time, s');

specgram(handles.ploter2,wav,N,fs,hamming(N/4),round(0.9*N/4));xlabel('time, s');

但是回复我的错误或没有! enter image description here

请帮帮我。非常感谢你

1 个答案:

答案 0 :(得分:3)

修改

如bdecaf的评论中所提到的,应该起作用的是设置当前轴:

axes(handles.ploter2);

现在,只使用

spectrogram(x,window,noverlap,F)]

图应该在指定的轴上。如果没有,请尝试:

hold on

!前

<强> OLD

specgram或spectogram没有该图的参数。你必须在以后定义它。

我建议首先得到结果:

[S,F,T]=spectrogram(x,window,noverlap,F)]

然后将其绘制在特定的轴上:

plot(handles.ploter2, S,F)

但我不确定你想要绘制哪个参数。请查看文档。

来自文档:

  

[S,F,T] =频谱图(...)返回频率矢量F和计算频谱图的时间矢量T. F的长度等于S的行数.T具有长度k(如上定义),T中的值对应于每个段的中心。

     

[S,F,T] =频谱图(x,窗口,noverlap,F)使用频率为Hz的矢量F. F必须是具有至少两个元素的向量。这种情况使用Goertzel算法计算F中频率的频谱图。指定的频率四舍五入到与信号分辨率相称的最接近的DFT箱。在使用nfft或nfft的默认值的所有其他语法情况中,使用短时傅立叶变换。返回的F向量是舍入频率的向量。 T是计算频谱图的时间矢量。 F的长度等于S的行数.T的长度等于k,如上所定义,每个值对应于每个段的中心。

     

[S,F,T] =频谱图(x,窗口,noverlap,F,fs)如上所述使用频率为Hz的矢量F,并使用Hz的fs采样频率。如果将fs指定为空[],则默认为1 Hz。