我创建了一个matlab gui并在其中包含了一些带有某些轴的元素。我使用以下命令在plotter1(第一轴)中绘制了我的一个愿望图
plot(handles.ploter1,xx); title(handles.ploter1,'Waveform');
没关系,但是我想在另一个轴上使用频谱图并在另一个轴上绘制频谱图结果,因为我不知道该怎么做:(
我测试
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');
但返回我错误或什么都没有!
请帮我。非常感谢你
编辑
如bdecaf的评论中所述,应该起作用的是设置当前轴:
axes(handles.ploter2);
现在,当只使用
spectrogram(x,window,noverlap,F)]
该图应位于指定的轴上。如果没有,请尝试:
hold on
前!
老的
specgram或spectogram没有该图的参数。您稍后必须对其进行定义。
我建议首先通过以下方法获得结果:
[S,F,T]=spectrogram(x,window,noverlap,F)]
然后将其绘制在特定的轴上:
plot(handles.ploter2, S,F)
但是我不确定要绘制哪个参数。请看一下文档。
从文档中:
[S,F,T] = spectrogram(...)返回频率矢量F和时间矢量T,在该频率下计算频谱图。F的长度等于S的行数。T的长度为k(如上定义),T中的值对应于每个段的中心。
[S,F,T] =频谱图(x,window,noverlap,F)使用频率为Hz的向量F。F必须是至少包含两个元素的向量。这种情况下使用Goertzel算法以F处的频率计算频谱图。将指定的频率四舍五入到与信号分辨率相称的最接近的DFT格。在使用nfft或nfft的默认值的所有其他语法情况下,将使用短时傅立叶变换。返回的F向量是四舍五入频率的向量。T是计算频谱图的时间向量。F的长度等于S的行数。T的长度等于k,如上所述,并且每个值对应于每个段的中心。
[S,F,T] =频谱图(x,window,noverlap,F,fs)使用如上所述的以Hz为单位的频率矢量F,并使用以Hz为单位的fs采样频率。如果将fs指定为空[],则默认为1 Hz。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句