声源定位MATLAB的程序,求大神改一个声源定位程序 改成放置录音文件然后定位...

该博客展示了使用MATLAB进行声源定位的过程。通过计算不同麦克风接收到信号的时间差,应用希尔伯特变换获取包络,并计算互相关来确定时间延迟,从而计算出声源位置。
摘要由CSDN通过智能技术生成

close all

clc

clear all

c=340;

fs=11025;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

rm=[5 3 3];

c=340;

mic2=[0 1.0  2];     %第二个麦克风

src=[3 2.5 2];

d=1;

mic3=[0 1+d 2];  %第三个麦克风

mic1=[0 1-d  2];  % 第一个麦克风

t1=sqrt((src(1)-mic1(1))^2+(src(2)-mic1(2))^2)/c;                          %信号源与第一个麦克风之间的距离除以声速,得到传播时间

t2=sqrt((src(1)-mic2(1))^2+(src(2)-mic2(2))^2)/c;                          %信号源与第二个麦克风之间的距离除以声速,得到传播时间

t3=sqrt((src(1)-mic3(1))^2+(src(2)-mic3(2))^2)/c;                          %信号源与第三个麦克风之间的距离除以声速,得到传播时间

t12=t1-t2;

t32=t2-t3;

rp=((2*(d^2)-(c^2)*((t12)^2+(t32)^2)))/(2*c*(t12-t32))    %实际距离

for i=1:9

tt12(i)=t12;

tt32(i)=t32;

rpp(i)=rp;

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

r=0.1;

n=8;

h=rir(fs, mic2, n, r, rm, src);

figure(1)

subplot(2,2,1)

plot(h)

title('麦克风阵列采集到语音信号')

axis([0,1500,0,0.4])

HT=h(1:1400);

[y,fs,nbits]=wavread('D:\毕设资料\谢安琪');

%sn=y(1:5000);

sn=y;

N=length(HT);

L=length(sn);

s1=zeros(1,L);

for n=2:N

for m=1:n-1

s1(n)=s1(n)+HT(m)*sn(n-m+1);

end

end

for n=N+1:L

for m

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值