声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1679|回复: 5

[编程技巧] 用matlab处理声音绘制三维图象

[复制链接]
发表于 2007-12-17 22:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-12-19 17:01 | 显示全部楼层

回复 #1 fenqing126 的帖子

你的程序乱的
建议一行一个语句.
发表于 2007-12-19 17:11 | 显示全部楼层

回复 #1 fenqing126 的帖子

运行不了无非是因为你的用法不对,或者程序本身有错误。

还是老话,去置顶帖子里可以找到答案
发表于 2007-12-19 17:20 | 显示全部楼层
且不说你的程序那么乱,就算很整齐,别人也根本帮不了你。建议先看看置顶帖,认真阅读

[ 本帖最后由 ChaChing 于 2010-5-9 14:48 编辑 ]
发表于 2007-12-19 17:33 | 显示全部楼层

wav文件发给我

程序没问题,把你的wav文件发给我,我再调试一下。把你需要解决的问题说清楚。
jarquineli@sina.com
发表于 2010-5-9 14:47 | 显示全部楼层
整理老贴发现这个矛盾!
function sogram(Winsiz,Shift,Base,Mode,Gray);
Winsiz=2048; Shift=128; Base=0; Mode=0; Gray=64;
我想这是初学者常犯小错误
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-11 13:44 , Processed in 0.083760 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表