空间谱专题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;

 当个数不匹配的时候可参考(个人觉得直接拓展效果也可以,就是配对之前添加一个预处理):

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/242737.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习之正则化

根据上一篇博客《统计学习概论》可以知道,正则化的作用是选择经验风险和模型复杂度同时较小的模型。下面从过拟合的角度来理解正则化。 #过拟合问题 例子说明,线性回归问题(房价) 分析: 1)左边第一幅图&am…

python开发平台Ubuntu

python开发平台Ubuntu APT软件管理和远程登录

投影矩阵

作者:桂。 时间:2017-10-19 06:02:00 链接:http://www.cnblogs.com/xingshansi/p/7690292.html 前言 最近在交替投影算法中,用到投影矩阵,简单记录。 一、投影矩阵定义 此处以列满秩为例,行满秩可依次类推…

不同维度极值点查找

作者:桂。 时间:2017-10-19 17:00:12 链接:http://www.cnblogs.com/xingshansi/p/7693557.html 前言 主要梳理不同维度信号极值点的查找思路。 一、思想 思想都是一个,通过极值点的定义:数值高于相邻的点&#xff0c…

俯仰角/偏航角的转化

作者:桂。 时间:2017-10-20 10:29:52 链接:http://www.cnblogs.com/xingshansi/p/7698237.html 前言 主要记录坐标系的转化。 一、坐标转化 对于坐标系: 设方位角为φ,俯仰角为theta,仰角β与偏航角α&am…

安装Centos8.1

安装Centos8.1 按回车

逾期后,如何修复个人征信?

个人征信大家都是知道很宝贵,但是有些朋友会在有意无意之间造成逾期,结果给申请贷款、申请信用卡带来了诸多不便。逾期是谁也不想看到的,但是如果逾期已经发生了,我们就无法改变,唯一能做的就是努力去修复,…

空间谱专题16:信号个数估计

作者:桂。 时间:2017-10-24 21:50:16 链接:http://www.cnblogs.com/xingshansi/p/7726082.html 前言 记录阵列信号在DOA估计中,信源个数估计的基本方法。 一、基本估计方法 参考:王永良《空间谱估计》p42: 以MDL为例&#xff1a…

根据verilog代码画电路图

根据verilog代码画电路图 FPGA设计的本质是硬件设计,而且verilog是描述硬件设计的语言(也就是描述电路),一个标准的工程师需要学会建立电路和Verilog对应的关系,学会看到电路图,就能写出相应的Verilog代码…

复数矩阵分解的拆解思路(矩阵求逆/特征值分解)

作者:桂。 时间:2017-10-26 07:11:02 链接:http://www.cnblogs.com/xingshansi/p/7735016.html 前言 主要记录特征值分解的硬件实现思路。 一、实数矩阵转化 在FPGA运算中,对实数运算通常优于对复数运算。假设C为复数矩阵&#…

贷款机构如何审核个人征信?

贷款是要查看征信的, 但是大家知道贷款机构是如何审查借款人的征信吗?下面我们一起来看下。1看征信报告打印时间一般贷款机构要求提供的是最新的征信报告,当然每个机构要的具体期限不一样,有的要求是最近一个月的,有的…

COMS技术

COMS技术 n型MOS(NMOS)三极管的结构如图所示,该图不是按照实际比例绘制的。三极管的衬底是被掺杂后成为p型半导体材料的硅晶片。NMOS衬底的厚度远比其他三极管要厚。在每个三极管上有两个区域,被掺入大量的杂质,成为n型半导体区域。这两个区域分别形成了三极管的源极和漏极…

VS2015 + CUDA 8.0 配置GTX1070的OpenCL 开发环境

一、查看计算机对OpenCL异构计算的支持情况 使用 GPU Caps Viewer 查看计算机对OpenCL的支持情况,目前最新的版本是 gpu-caps-viewer-1-32-0, 下载地址:http://www.geeks3d.com/20161107/gpu-caps-viewer-1-32-0-released/ 从上面两个图可以…

征信逾期了,5年后能自动消除吗?

最近有一个朋友去申请贷款,然后被拒了,理由是属于征信黑名单。这个朋友很纳闷,自己最近几年从来没有贷过款,信用卡每个月都是正常在还,没有出现逾期过,为何说征信是黑名单呢?后来一问才知道&…

常用频段及对应名称

作者:桂。 时间:2017-11-12 07:31:46 链接:http://www.cnblogs.com/xingshansi/p/7820971.html 一、主要频段 不同规定:IEEE/国际电信联盟(ITU)/北约(NATO)EU(欧盟) US(美国)&…

布尔代数值

布尔代数值 值 数字系统使用二值代数。其变量可以取由:1)接通/断开;2)真/假;3)1/0表示的两值之一。 操作符 1)NOT(非) 2)AND(与) 3)OR(或) 4)IMPLIES(蕴涵) 5)EQUIVALENCE(同或) 上面表达式中的符号“+”表示“或”;符号“”表示“与”;而横杠,例如“~A”则表示“A的非”…

什么样的人去贷款最受银行欢迎?

去贷款,大家是不是都想着所有的流程都能一次性顺利通过,而且拿到的贷款额度高,利息低?这是理想的一种状态,但是贷款不是你自己说了算的,而是贷款公司说了算,所以做一个让贷款公司喜欢的人将能更…

网贷申请技巧,提高90%通过率

目前网贷很流行,深受大家欢迎,而且网贷简单方便,所以是解决短期缺钱一个很好的渠道。但是网贷也不是那么好撸的,想要提高网贷的通率,你得学会一些技巧。一、申请贷款准备1、联系客服不要盲目的去申请贷款,因…

格雷码与二进制的转换

格雷码与二进制的转换 格雷码转二进制码的基本思路: 格雷码转二进制是从左边第二位起,将每位与左边一位二进制码的值异或,作为该位二进制码后的值(最左边一位依然不变)。 以其中一个为例:格雷码111-&g…