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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

空间谱专题13:联合解算DOA(ML/AP)

發布時間:2023/12/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 空间谱专题13:联合解算DOA(ML/AP) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

其中作者:桂。

時間:2017-10-16??07:51:40

鏈接:http://www.cnblogs.com/xingshansi/p/7675380.html?


前言

主要記錄二維測向中,分別利用兩個一維陣聯合解算的思路。

一、AP算法思想

信號模型:

對應相關矩陣

假設噪聲為遍歷、平穩、空時不相關的零均值高斯隨機過程,源信號為未知確定信號:

高維正態分布表達式:

由概率論可知,幾個獨立同高斯分布隨機過程的概率密度函數為:

取對數:

觀測向量為X(t),對其求偏導:

得到信號s的極大似然估計:

再針對方差求偏導:

將s的似然估計結果代入原表達式中,方差結果sigma也代入,可以得到:

其中

而A+是Moore-Penrose逆:

記投影矩陣以及補空間的投影矩陣:

綜合上式,可以得出角度最大似然估計:

等價于:

?該算法基于統計參數估計的思路,不涉及SVD分解或者相關矩陣求逆,因此對于相干信號理論上仍然適用,從理論的結構來看,由于投影矩陣涉及求逆,且有迭代過程,因此耗費資源過大。

通常該算法可與其他算法結合使用,用于剔除雜峰,主要代碼實現:

function [phi_last,theta_last] = MuCalL_2D(x,srcNum,Array,resolution,lambda_c) %L陣 sub1 = [1:6]; sub2 = [1,7:11]; J = fliplr(eye(length(sub1))); x1 = x(sub1,:); x2 = conj(J*x(sub2,:)); [phi,theta,spec1] = MuCalL_647_1D(x1,srcNum,Array(sub1,:),resolution,lambda_c); [phi2,alpha,spec2] = MuCalL_647_1D(x2,srcNum,Array(sub1,:),resolution,lambda_c);% [val1,phi_pos] = findpeaks(spec1,'minpeakdistance',3); [val,num_phi] = sort(val1,'descend'); [val2,theta_pos] = findpeaks(spec2,'minpeakdistance',3); [val,num_theta] = sort(val2,'descend'); phi_est = phi(phi_pos(num_phi(1:srcNum))); theta_est = alpha(theta_pos(num_theta(1:srcNum))); phi_est = phi_est; %篩選 snap = size(x,2); R_all = x*x'/snap; para_all = perms([1:srcNum]); theta_all = kron(theta_est,ones(1,size(para_all,1))); theta_all([2,4]) = theta_all([4,2]); phi_all = repmat(phi_est,1,size(para_all,1)); theta_all = asin(sin(theta_all/180*pi)./cos(phi_all/180*pi))/pi*180;im = sqrt(-1); Dd = []; for kkk = 1:size(theta_all,2)/srcNumnshift = ((kkk-1)*srcNum+1):((kkk)*srcNum);theta_cache = theta_all(nshift)/180*pi;phi_cache = phi_all(nshift)/180*pi;Az = [];for j = 1:srcNumr = [sin(phi_cache(j)) cos(phi_cache(j))*sin(theta_cache(j)) cos(phi_cache(j))*cos(theta_cache(j))];r_rep = repmat(r,size(x,1),1);dis = sum(r_rep.*Array,2);am = exp(-im*2*pi*dis/lambda_c);Az = [Az,am];endPb3 = Az*pinv(Az'*Az)*Az'; Dd(kkk) = abs(trace(Pb3*R_all)); end[valDd,indexDd]=max(Dd); n_pos = ((indexDd-1)*srcNum+1):((indexDd)*srcNum); [phi_last,sort_pos] = sort(phi_all(n_pos),'ascend'); theta_last = theta_all(n_pos); theta_last = theta_last(sort_pos);

  

  

二、其他思路(對相干信號適應性較差)

該方法針對ULA(均勻線陣),1)未考慮非均勻線陣NULA情形;2)未考慮相干source情形。

個人分析,該算法可改進(未進一步仿真驗證): 對于相干且NULA情形,1)各自平滑,X、Z軸相對位置無嚴格限制,但X、Z需結構一致;2)求解Rzx,并取對角元素diag(Rzx),結合兩個一維測向得出導向矢量:max |a(theta)conj(a(phi)).*diag(Rzx)|。

三、聯合解算論文

?聯立解算的思路:

?主要代碼實現:

Ax = A(sub1,:); Ay = A(sub2,:); %利用T矩陣解算 y_sig = x2; x_sig = x1; Ryy = y_sig*y_sig'/snapshot; Rs_hat = pinv(Ay'*Ay)*Ay'*Ryy*pinv(Ay*Ay')*Ay;%eq.5 Rxy = x_sig*y_sig'/snapshot; Ay_pieH = pinv(Ay*Ay')*Ay; Rs_pie = pinv(Ax'*Ax)*Ax'*Rxy*Ay_pieH;%eq.9 %構造T矩陣解算 perm = perms([1:srcNum]); J = zeros(1,size(perm,1)); for i = 1:size(perm,1)T = zeros(srcNum);T(perm(i,:)+[0:srcNum-1]*srcNum) = 1;J(i) = sum(sum(abs(Rs_pie-T*Rs_hat).^2)); end [minVal,minPos] = min(J); phi_est = phi_est(perm(minPos,:)); theta_all = theta_est; %求解 phi_last = phi_est; theta_last = asin(sin(theta_all/180*pi)./cos(phi_last/180*pi))/pi*180;

?當個數不匹配的時候可參考(個人覺得直接拓展效果也可以,就是配對之前添加一個預處理):

總結

以上是生活随笔為你收集整理的空间谱专题13:联合解算DOA(ML/AP)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。