国产aaaa级全身裸体精油片_337p人体粉嫩久久久红粉影视_一区中文字幕在线观看_国产亚洲精品一区二区_欧美裸体男粗大1609_午夜亚洲激情电影av_黄色小说入口_日本精品久久久久中文字幕_少妇思春三a级_亚洲视频自拍偷拍

首頁 > 行業(yè)資訊 > 【定位問題】基于CC和GCC算法實現(xiàn)近場聲源定位TDOA問題附matlab代碼

【定位問題】基于CC和GCC算法實現(xiàn)近場聲源定位TDOA問題附matlab代碼

時間:2022-04-28 來源: 瀏覽:

【定位問題】基于CC和GCC算法實現(xiàn)近場聲源定位TDOA問題附matlab代碼

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號處理、元胞自動機、圖像處理、路徑規(guī)劃、無人機等多種領(lǐng)域的Matlab仿真,完整matlab代碼或者程序定制加qq1575304183。

收錄于合集

1 簡介

聲源定位是許多領(lǐng)域里的一個基本問題.聲源定位技術(shù)的研究一直是個研究熱點,涉及到很多技術(shù)領(lǐng)域,如聲學,信號檢測,數(shù)字信號處理等,有著廣闊的應(yīng)用前景.目前,該技術(shù)在仿人智能機器人上的應(yīng)用還不是很多.而其作為一種重要的人機交互方式,能夠與視覺交互完美結(jié)合,彌補其不足. 通過對各種聲源定位技術(shù)的研究和比較,基于到達時延差(TDOA,Timedelay of arrival)的聲源定位技術(shù)比較適用.該技術(shù)方法的原理不是很復(fù)雜,無需很大的計算量,而且實現(xiàn)這種技術(shù)的困難較小.對這種技術(shù)的研究目前也比較成熟,有著大量的應(yīng)用.因而對于本課題的研究而言,是一種不錯的選擇.使用TDOA技術(shù),需要完成兩個階段的工作:前一階段運用時延估計算法估算出聲源信號到達各個麥克風之間的TDOA值,即時間差;第二階段根據(jù)得到的TDOA值,結(jié)合陣列幾何結(jié)構(gòu)關(guān)系和空間位置關(guān)系,使用空間定位方法來估算聲源的位置.能否得到高精度的TDOA值對整個過程的正確完成相當重要.傳統(tǒng)的GCC算法就是該技術(shù)中的一種比較經(jīng)典的方法.該方法能夠快速有效的對聲源進行定位。

2 部分代碼

clc clear all close all %% % *各參數(shù)設(shè)置* %--聲源相關(guān)參數(shù) fmin=500; fmax=2000; %Hz: 信源為一頻率漸變的余弦信號,最低頻率fmin,最高頻率fmax S_last=0.1; %s :聲源持續(xù)時間 %--采樣和信號處理相關(guān)參數(shù) fs=3e6; %采樣率 ts=1/fs; %采樣間隔 T=0.12; %s: 搜集數(shù)據(jù)T秒,計算一次位置 tMic=0:1/fs:T-1/fs; %接收數(shù)據(jù)時間 nMic=length(tMic); %接收數(shù)據(jù)長度 %--物理參數(shù)設(shè)置 v=34000; %cm/s: 音速 %--聲源和MIC位置 單位CM d=30; %麥克風間距 Lco_S = [10,10]; Loc_A = [50-d,0]; Loc_B = [50,0]; Loc_C = [50+d,0]; %% % *模擬聲源信號及各MIC接收到的信號* %--產(chǎn)生聲源 t = 0:ts:S_last; %假設(shè)聲波持續(xù)時間0.2秒 s = chirp(t,fmin,S_last,fmax,’linear’);%源信號, 頻率線性遞增的余弦信號 nsource=length(s); %--畫出聲源的波形 figure(); plot(s); xlabel(’時間/itus’); ylabel(’振幅’); title(’聲音信號’); %--計算信源傳到各MIC之間的延遲點數(shù) diff_SA = sqrt(sum((Lco_S-Loc_A).^2))/v/ts; diff_SB = sqrt(sum((Lco_S-Loc_B).^2))/v/ts; diff_SC = sqrt(sum((Lco_S-Loc_C).^2))/v/ts; %--計算信源與個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的時間延遲 dis_AC=dis_SA-dis_SC; dis_BC=dis_SB-dis_SC; Lag_SA = dis_SA/v; Lag_SB = dis_SB/v; Lag_SC = dis_SC/v; %--轉(zhuǎn)化成相差點數(shù) diff_AC =round((Lag_SA-Lag_SC)/ts); diff_BC =round((Lag_SB-Lag_SC)/ts); %--MIC接收到的數(shù)據(jù) sigMicA=zeros(1,nMic); sigMicB=zeros(1,nMic); sigMicC=zeros(1,nMic); sigMicA(1+diff_SA:nsource+diff_SA)=s; sigMicB(1+diff_SB:nsource+diff_SB)=s; sigMicC(1+diff_SC:nsource+diff_SC)=s; %--信號時域圖 figure();subplot(3,1,1); plot(sigMicA); subplot(3,1,2); plot(sigMicB); subplot(3,1,3); plot(sigMicC); %% % *用GCC(Generalized Cross-Correlation) Phase Transform 算法估計時延差* if(DelayDifferAC<5000) distDiffAC=(DelayDifferAC-1)/fs*v; else distDiffAC=(DelayDifferAC-nMic-1)/fs*v; end A=distDiffBC; B=distDiffAC; M=4*A^3-B^3+6*A*B^2-10*A^2*B+4*d^2*A-2*d^2*B; N=-8*A^2-2*B^2+8*A*B; r3=M/N; M1=4*A^3-B^3+4*A*B^2-6*A^2*B+2*d^2*B-4*d^2*A; N1=8*A^2+2*B^2-8*A*B; r2=M1/N1; cos=(r3^2+d^2-r2^2)/(2*d*r3); sin=sqrt(1-cos^2); a=(50-d)+r3*cos;

3 仿真結(jié)果

4 參考文獻

博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號處理、元胞自動機、圖像處理、路徑規(guī)劃、無人機等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。

部分理論引用網(wǎng)絡(luò)文獻,若有侵權(quán)聯(lián)系博主刪除。

版權(quán):如無特殊注明,文章轉(zhuǎn)載自網(wǎng)絡(luò),侵權(quán)請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學習使用,務(wù)必24小時內(nèi)刪除。
相關(guān)推薦