matlab画时间 频率图,在matlab中绘制时间与频率的关系图

我试图找到一种方法来创建一个图形,显示音频波及其时频数据(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;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值