playtree 发表于 2006-12-7 18:23

求助:求音乐波形时遇到的问题

用matlab求音乐波形的代码
= wavread('1.wav');
plot(x);
得到的横坐标是采样点的数值
如何得到横坐标是时间的数值?
请知道的帮帮忙
谢谢

[ 本帖最后由 zhangnan3509 于 2007-7-4 09:32 编辑 ]

vibraman 发表于 2006-12-7 23:41

给出时间就行了:
t=(0:length(x)-1)/fs;
plot(t,x)

playtree 发表于 2006-12-28 21:23

那请问如果也想把短时能量和过零率的横坐标也该为用时间显示
也问应该如何修改
= wavread('F:\code\music\5.wav');
win=fs*20/1000;%
inc=win*0.5;   %
%计算短时能量
subplot(len,1,2);
amp = sum(abs(enframe(filter(, 1, x), win, inc)), 2);
t=(0:length(amp)-1)/fs;我这样写显示的小数
plot(t,amp);

%计算过零率
subplot(len,1,3);
tmp1= enframe(x(1:end-1), win, inc);
tmp2= enframe(x(2:end), win, inc);
signs = (tmp1.*tmp2)<0;
diffs = (tmp1 -tmp2)>0.02;
zcr   = sum(signs.*diffs, 2);
t=(0:length(zcr)-1)/fs;我这样写显示的小数
plot(t,zcr);
页: [1]
查看完整版本: 求助:求音乐波形时遇到的问题