|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
各位高手:
小弟初学乍练,希望用matlab 处理动物鸣声,画出声谱图,时域 频域图已经画出来了,可三维图象有诸多不明之处,应该就是语谱分析图吧?带灰度的。求助各位师兄师姐,给我指点指点,顺便帮我看看这个程序,万分感谢!
function sogram(Winsiz,Shift,Base,Mode,Gray);
Winsiz=2048; Shift=128; Base=0; Mode=0; Gray=64;
[Sg,Fs]=wavread('d:\sound\11.wav');n=floor((length(Sg)-Winsiz)/Shift)+1;A=zeros(Winsiz/2+1,n);
for i=1:n
n1=(i-1)*Shift+1;n2=n1+(Winsiz-1); s=Sg(n1:n2); s=s.*hanning(Winsiz);
z=fft(s); z=z(1:(Winsiz/2)+1); z=z.*conj(z); z=10*log10(z);A(:,i)=z;
end
L0=(A>Base);L1=(A<Base); B=A.*L0+Base*L1; L=(B-Base)./(max(max(B))-Base);
y=[0:Winsiz/2]*Fs/Winsiz; x=[0:n-1]*Shift;
if Mode==1 colormap(‘default’); else
mymode=gray;mymode=mymode(Gray:-1:1,:);colormap(mymode);
end
imagesc(x,y,L);axis xy;
[ 本帖最后由 ChaChing 于 2010-5-9 14:43 编辑 ] |
|