我试图找到一种方法来创建一个图形,显示音频波及其时频数据(x轴上的时间,y轴上的波浪能和频率数据) . 我有这个代码在两个单独的图上执行:
[audio, fs] = wavread('audio.wav');
subplot(211)
spectrogram(audio,256,200,256,fs,'yaxis')
subplot(212)
wavEnergy=audio(:,1);
time=(1/fs)*length(wavEnergy);
t=linspace(0,time,length(wavEnergy));
plot(t,wavEnergy);
现在我需要2件事的帮助 .
首先,如何让光谱图时间以秒为单位?现在它的x-range为0-340(标记为'time'),我知道剪辑长约40s(另一个图正确地显示了这个) .
其次,我如何将它们一起绘制?我知道我可以从频谱图中得到一个矩阵,但我从该矩阵得到哪个数组,如何将其时间帧转换为秒?
编辑:
第一个问题解决了,但图表仍然做了一些奇怪的事情 - 它们都输出了大约40s的数据,但图表的范围和数据的偏移量是不同的 . 频谱图从0s-40s开始,但是第一个.5s显示没有数据,波形图从0s-45s开始,最后5s显示没有数据 . 如何才能使范围和偏移相同?
编辑2:
我只需要在两个子图上使用 axis tight;