DOA代码框架

Posted czl-01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DOA代码框架相关的知识,希望对你有一定的参考价值。

-------场景的搭建

M = 15;% the num of antenna
L = 100; % the num of snapshot
theta = [10 30]; %the DOA
K = length(theta); %the num of the signal
SNR = 10;
searchgrid = 0:0.01:90;

------信号模型的搭建

S = (randn(K,L)+j*randn(K,L))/sqrt(2);
loc = zeros(M,3);
loc(:,1) = 0:M-1;
A = zero(M,K);
for k = 1:K
      rk = [cosd(phi(k))*sind(  theta(k)),sind(phi(k))*sind(theta(k)),cosd(theta(k))].‘;
      % rk = [cos(φk) sin(θk); sin(φk) sin(θk); cos(θk)]T 
       A(:,k) = exp(-j*pi*loc*rk);      
end
X0 = A*S;
Y = awgn(X0,SNR,‘measured‘,‘dB‘);

技术图片

这里采取二维空间的信号模型,对于A中的元素赋值参考上诉文献。

------信号二阶统计特征的得到

R = Y*Y‘/L;
[V,D] = eig(R); %V:the characterist vector;D: the characterist value :all is matrix
DD = diag(D);
En = V(:,1:M-K);% the noise subspace

------DOA估计(以MUSIC为例)

 Un = En*En‘;%En‘转置操作
 temp = zeros(3,length(searchgrid1));%源代码中运用了三种估计方法
 phi1 = 0;%一维空间
 tic,
 for num1 = 1:length(searchgrid1)
      theta1 = searchgrid1(num1);
      r1 = [cosd(phi1)*sind(theta1),sind(phi1)*sind(theta1),cosd(theta1)].‘;
      aa = exp(-j*pi*loc*r1);% direction matrix
      temp(1,num1)=1/abs(aa‘*Un*aa);%the objective function
end
tem_2(1) = tem_2(1)+toc;% the time spend

------谱峰搜索

maxt1 = max(temp(1,:));
temp2 = 10*log(temp(1,:)/maxt1);%归一化并去对数使谱峰明显
[val2,indx2] =findpeaks(temp2);%val2为峰值大小,indx2为位置
[sval2,pos2] = sort(val2,‘descend‘);%sval2为降序排号的序列,pos2为索引地址
E_theta1 = sort(searchgrid1(indx2(pos2(1:K))));                        

  

 

  

 

以上是关于DOA代码框架的主要内容,如果未能解决你的问题,请参考以下文章

雷达通信基于matlab均匀圆阵下CA-MUSIC的二维DOA估计含Matlab源码 2220期

text 来自Codyhouse框架的Browserlist片段源代码

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

常用Javascript代码片段集锦

我使用的代码重构方式

HTML代码片段