日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

麦克风阵列声源定位四通道麦克风数据库及TDOA双曲交汇定位算法实验

發(fā)布時間:2023/12/29 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 麦克风阵列声源定位四通道麦克风数据库及TDOA双曲交汇定位算法实验 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

麥克風(fēng)陣列聲源定位四通道麥克風(fēng)數(shù)據(jù)庫建立


四通道麥克風(fēng)數(shù)據(jù)庫建立物理模型的建立,來源于文獻(xiàn):SLoClas: A DATABASE FOR JOINT SOUND LOCALIZATION AND CLASSIFICATION
根據(jù)圖一,聲源處于紅色圓形上,且聲源距離麥克風(fēng)陣列中心O點(diǎn)的距離為1.5m,其中
mic1(0,-d)、mic2(d,0)、mic3(0,d)、mic4(-d,0) d為0.03m
聲源會沿著紅色圓圈按照θ角度旋轉(zhuǎn),麥克風(fēng)陣列會依次按照一定的采樣率每θ角度采集相同數(shù)據(jù)長度的聲源數(shù)據(jù),不同麥克風(fēng)會因為距離角度而導(dǎo)致采集到的信號的幅度和相位不同。實(shí)驗數(shù)據(jù)是按照θ=5°采集完成的,實(shí)驗部分?jǐn)?shù)據(jù)集如下圖:


TDOA相關(guān)法時延求解

TDOA相關(guān)法時延求解原理與算法

雙曲交匯定位算法

參考文獻(xiàn):運(yùn) 用 雙 曲 線 知 識 測 定 聲 源
———研究性學(xué)習(xí)課題成果


結(jié)合圖一,以mic2、mic4為焦點(diǎn)構(gòu)建雙曲線方程1:

以mic1、mic3為焦點(diǎn)構(gòu)建雙曲線方程2:

現(xiàn)在定義,T42為聲源到mic4的時間與聲源到mic2的時間的差,T13為聲源到mic1的時間與聲源到mic3的時間的差c為聲音傳播的速度,在這里c=340m/s。
根據(jù)雙曲線的特性,其中,


兩個雙曲線方程聯(lián)立求解,雙曲線的交點(diǎn)就是聲源的坐標(biāo)。根據(jù)作者何曉東 鄭東風(fēng) 指導(dǎo)教師 支 靜的文獻(xiàn),聯(lián)立兩個雙曲線方程組求解得:

我們只需要根據(jù)T42和T13和0的關(guān)系來判定聲源的具體位置即可,如下圖所示:

聲源位置、角度求解與算法代碼驗證

matlab的算法代碼如下:

clc; clear; close all m=100; filedir=('E:\***\SoClas_database\Segmented_Sound\class06\class06_360\*.wav');%% infiledir=('E:\***\SoClas_database\Segmented_Sound\class06\class06_360\'); files = dir(filedir); for num = 1:minfile = [infiledir,files(num).name];[y0,Fs]= audioread(infile);for j = 1:3[c,lags] = xcorr(y0(:,j+1),y0(:,1));[Am,Lm] = max(c);d = Lm - (length(c)+1)/2;Delay(num,j)=d/Fs;endfor k = 1:2[c1,lags1] = xcorr(y0(:,k+2),y0(:,2));[Am1,Lm1] = max(c1);d1 = Lm1 - (length(c1)+1)/2;Delay(num,k+3)=d1/Fs; end[c2,lags2] = xcorr(y0(:,3),y0(:,4));[Am2,Lm2] = max(c2);d2 = Lm2 - (length(c2)+1)/2;Delay(num,6)=d2/Fs; endLength = length(y0); T = 1 / Fs; t = (1 : Length) * T; t = t'; figure;subplot(411); plot(t,y0(:,1)); title('mic1'); xlabel('(秒)') ylabel('幅度(V)') subplot(412); plot(t,y0(:,2)); title('mic2'); xlabel('(秒)') ylabel('幅度(V)') subplot(413); plot(t,y0(:,3)); title('mic3'); xlabel('(秒)') ylabel('幅度(V)') subplot(414); plot(t,y0(:,4)); title('mic4'); xlabel('(秒)') ylabel('幅度(V)') %%%%%%%%%%%%%%%%%%%%%%%%%%%% c = 340; ddd = 0.03; a1 = c*Delay(1,5); b1 = sqrt(ddd*ddd - a1 * a1); a2 = c*Delay(1,2); b2 = sqrt(ddd*ddd - a2 * a2); kk = b1*b1*b2*b2 - a1*a1*a2*a2; mm1 = a1*a1*b2*b2; mm2 = a2*a2*b1*b1; nn1 = a2*a2+b1*b1; nn2 = a1*a1+b2*b2; ppp = sqrt(mm1*nn1/kk); qqq = sqrt(mm2*nn2/kk); if a2 > 0yyy = -qqq; elseyyy = qqq; end if a1 > 0xxx = ppp; elsexxx = -ppp; end angle = atan(xxx / yyy)*180/pi % if angle <= 0 % theta = -angle + 180 % else % theta = angle % end

上述代碼可以通過c語言移植到具備算力的開發(fā)板中,根據(jù)數(shù)據(jù)集中的按照不同θ角度的麥克風(fēng)陣列數(shù)據(jù),分別進(jìn)行角度驗證,鎖定聲源的坐標(biāo),根據(jù)求得的角度在代入R即可求出聲源的實(shí)際距離。測試結(jié)果如下:









可以看出,雙曲交匯定位算法是有一定效果的。良好的定位效果和聲源距離麥克風(fēng)陣列的距離、聲源所發(fā)聲信號的類型頻率、背景噪聲等有關(guān),下一步將繼續(xù)優(yōu)化定位算法,使定位結(jié)果更加精準(zhǔn)。

上述結(jié)構(gòu)四通道麥克風(fēng)定位數(shù)據(jù)集下載

鏈接:https://pan.baidu.com/s/1t63N73ZDFx9Ih6aeBISrRA
提取碼:esnp

定位精度時延改進(jìn)——時域預(yù)處理

為了提高數(shù)據(jù)精度,需要對時域信號進(jìn)行預(yù)處理——立方處理。就是對時域信號的每個點(diǎn)做三次冪處理。

未預(yù)處理實(shí)驗

close all; clear; clc; [time_txt,Fs] = audioread('E:\***\SoClas_database\Segmented_Sound\class06\class06_270\class06_270_001.wav'); LEN = 7361; x1 = time_txt(:,1); x2 = time_txt(:,2); % xxx1 = x1.*x1.*x1; % xxx2 = x2.*x2.*x2; xxx1 = x1; xxx2 = x2; X1=(fft(xxx1)); X2=(fft(xxx2)); Sxy=X1.*conj(X2); Bxy=fftshift(abs(ifft(Sxy))); figure; subplot(211); Xxy=xcorr(xxx1,xxx2); plot(Xxy); title('DSP hxg') subplot(212); plot((Bxy)); title('MATLAB hxg')

預(yù)處理實(shí)驗

close all; clear; clc; [time_txt,Fs] = audioread('E:\***\SoClas_database\Segmented_Sound\class06\class06_270\class06_270_001.wav'); LEN = 7361; x1 = time_txt(:,1); x2 = time_txt(:,2); xxx1 = x1.*x1.*x1; xxx2 = x2.*x2.*x2; X1=(fft(xxx1)); X2=(fft(xxx2)); Sxy=X1.*conj(X2); Bxy=fftshift(abs(ifft(Sxy))); figure; subplot(211); Xxy=xcorr(xxx1,xxx2); plot(Xxy); title('DSP hxg') subplot(212); plot((Bxy)); title('MATLAB hxg')

總結(jié)

以上是生活随笔為你收集整理的麦克风阵列声源定位四通道麦克风数据库及TDOA双曲交汇定位算法实验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。