声源定位matlab模拟,matlab声源定位程序的一点小问题
這是通過傳統互相關的方法來進行聲源定位的程序,做完互相關之后,紅色標注的程序行,應該如何理解呢,是通過什么方法來實現最終延遲差的估計的呢?
cl
clear all
close all
%%
% *各參數設置*
%--聲源相關參數
fm=2000;? ? %Hz: 信源調頻信號最高頻率 周期0.5ms
Ts=0.2;? ???%s: 信源周期 0.2s
%--采樣和信號處理相關參數
fs=10*fm;? ?%采樣率 也就是50us采一次樣
ts=1/fs;? ? %采樣間隔
T=0.2;? ?? ?%s: 搜集數據T秒,計算一次位置
tMic=0:1/fs:T-1/fs;? ?%接收數據時間
nMic=length(tMic);? ? %接收數據長度
Rlen=nMic; %做相關的長度
%--物理參數設置
v=340;? ?? ?%m/s: 音速
SNR=-10;? ? %dB
%--聲源和MIC位置
Lco_S = [20,30];
Loc_A = [10,0];
Loc_B = [0,10];
Loc_C = [20,0];
%%
% *模擬聲源信號及各MIC接收到的信號*
%--產生聲源
t = 0:ts:0.4; %假設聲波持續時間0.4秒,也就是有2個周期
s = chirp(mod(t,0.2),0,0.2,fm,'linear');%源信號
%--畫出聲源的波形
figure();
plot((1:8001)*0.05,s);
xlabel('時間/\itms');
ylabel('振幅');
title('聲音信號');
%--計算信源與個MIC之間的距離
dis_SA = sqrt(sum((Lco_S-Loc_A).^2));
dis_SB = sqrt(sum((Lco_S-Loc_B).^2));
dis_SC = sqrt(sum((Lco_S-Loc_C).^2));
%--信源到MIC的時間延遲
Lag_SA = dis_SA/v;
Lag_SB = dis_SB/v;
Lag_SC = dis_SC/v;
%--轉化成相差點數
diff_AB =round((Lag_SA-Lag_SB)/ts);
diff_AC =round((Lag_SA-Lag_SC)/ts);
%--MIC接收到的數據
sigMicA=s(1:nMic);
sigMicB=s(1+diff_AB:nMic+diff_AB);
sigMicC=s(1+diff_AC:nMic+diff_AC);
sigMicA=awgn(sigMicA,SNR,'measured');
sigMicB=awgn(sigMicB,SNR,'measured');
sigMicC=awgn(sigMicC,SNR,'measured');
%--信號時域圖
figure();subplot(3,1,1);
plot((1:4000)*0.05,sigMicA);
subplot(3,1,2);
plot((1:4000)*0.05,sigMicB);
subplot(3,1,3);
plot((1:4000)*0.05,sigMicC);
%%
% *用CC(Cross-Correlation)算法估計時延差*
%CC算法求延時差
rMicAB=xcorr(sigMicA,sigMicB,Rlen,'biased'); %求MIC A、B信號互相關
rMicAC=xcorr(sigMicA,sigMicC,Rlen,'biased'); %求MIC A、C信號互相關
[val,DelayDifferAB]=max(rMicAB);??%互相關最大值的位置體現了延遲差。
[val,DelayDifferAC]=max(rMicAC);
%最終延遲差估計
delayDifferABRes=-(Rlen+1)+rMicAB(DelayDifferAB+(-3:3))*(DelayDifferAB+(-3:3))'/sum(rMicAB(DelayDifferAB+(-3:3)));
delayDifferACRes=-(Rlen+1)+rMicAC(DelayDifferAC+(-3:3))*(DelayDifferAC+(-3:3))'/sum(rMicAC(DelayDifferAC+(-3:3)));
distDiffAB=delayDifferABRes/fs*v;
distDiffAC=delayDifferACRes/fs*v;
總結
以上是生活随笔為你收集整理的声源定位matlab模拟,matlab声源定位程序的一点小问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 职中计算机专业自我鉴定400字,中职计算
- 下一篇: matlab人脸追踪,求大神帮助我这个菜