请问如何求取音乐的声谱图(spectrogram)?
请问如何求取音乐的声谱图(spectrogram)的matlab代码?我是想这样实现的:
对音乐片段分帧;
对每帧求声谱图;
请问然后怎么处理?
谢谢
[ 本帖最后由 zhangnan3509 于 2007-7-4 10:56 编辑 ] 可用tfrstft函数进行分析,但楼主要确定每帧为多长等参数。 你说的tfrstft这个函数
是怎么得到的呢?
谢谢 该函数在时频分析工具箱中 那请问在哪里可以下载时频分析工具箱中?
谢谢 我想直接对输入信号通过spectrogram函数求得它的声谱
可以吗
= wavread('F:\code\music\88.wav');
spectrogram(x)
但是图好象划不出来
请问应该如何修改呢
谢谢 此时的信号是单声道的 在MATLAB中好象没有spectrogram函数,而有specgram,求谱图的,不知楼主是否是指这个函数? matlab7.0中spectrogram函数和specgram函数都有
对
我就是用来求谱图的
= wavread('F:\code\music\88.wav');
spectrogram(x)
但是图好象划不出来
请问应该如何修改呢
谢谢 利用spectrogram可以得到音乐的语谱图
= wavread('F:\code\music\88.wav');
specgram(x,1024,fs,win,inc);
此时的信号是单声道的
但是和别人得到的有些偏差
怎么不能够贴图啊
[ 本帖最后由 playtree 于 2006-12-15 09:18 编辑 ] 原帖由 playtree 于 2006-12-8 22:11 发表
specgram(x,1024,fs,win,inc);
此时的信号是单声道的
但是和别人得到的有些偏差
在specgram函数中由于参数不同,得到的谱图就会不完全一样。 麻烦你看看上面的这个语谱图是怎么得到的?
谢谢 请你把数据传上来,我试试看。 好的
我这里有一个音乐文件
麻烦你看看根据信号如何得到相应的图中的语谱图
你有邮箱吗
音乐文件好象不能上传
[ 本帖最后由 playtree 于 2006-12-15 14:40 编辑 ] 我的邮箱是:songzy41@126.com
实际上音乐文件可压缩后上传。
又我看了楼主的谱图,感觉可用tfrstft函数对信号分析能得到贴出的类似图。以下有一个相类似的数据文件aa.txt,把它用tfrstft函数分析,程序和结果如下:
xy=load('aa.txt');
N=1024;
fs=8000;
T=1/fs;
tt=(0:N-1)*T;
subplot 211; plot(tt,xy);
axis();
grid;
X=tfrstft(xy);
ff=(0:511)*fs/N;
subplot 212;
imagesc(tt,ff(1:256),abs(X(1:256,:)));
axis('xy');
页:
[1]
2