参考文献:空间谱估计理论与算法

阵列信号处理技术就是对天线阵经过空间采样获取的信号进行处理估计出所需参数的一种方法,主要包括:波束形成技术、空间谱估计技术以及零点技术。其中波束形成技术主要是为了使阵列方向图的主瓣指向所需的方向,获取最大的信号增益,可以进行AOA估计。空间谱技术主要是进行AOA估计。

MUSIC算法具有高分辨和高精度性能,估计精度贴近CRLB理论性能界,开创了AOA估计的超分辨算法。

算法将维的观测空间划分为KM>K,M为阵元数)维的信号子空间和M-K维的噪声子空间,然后根据这两个子空间之间的正交性,进行空间谱函数的构造,通过空间谱的峰值搜索确定出信号来波方向。MUSIC算法利用的是噪声子空间构造空间谱。

说明,MUSIC算法代码原创,ROOT-MUSIC算法代码参考https://blog.csdn.net/weixin_38452468/article/details/73274627

注意:阵列为8阵元均匀线阵

%MUSIC ALOGRITHM
%ROOT_MUSIC ALOGRITHM
%AOA ESTIMATION BY ROOT_MUSIC空间谱估计理论与算法参考文献[17]
clc;clear all;close all;

K=2;                                                             %信源数
M=8;                                                             %阵元数
L=200;                                                           %信号长度
w=[pi/4 pi/6].';                                                 %信号频率
d_lamda=0.5;                                                  %阵元间距
snr=20;                                                          %信噪比
theta1=[45,60];                                                 %信号入射角
for k=1:K
    A(:,k)=exp(-1j*(0:M-1)'*d_lamda*2*pi*sin(theta1(k)*pi/180));    %阵列流型
end
for kk=1:L
    s(:,kk)=sqrt(10.^((snr/2)/10))*exp(1j*w*(kk-1));%仿真信号
end
x=A*s+(1/sqrt(2))*(randn(M,L)+1j*randn(M,L));%加入高斯白噪声
R=(x*x')/L;                                                       %协方差矩阵
%%%%%搜索法%%%%%%%%%%%%%%%MUSIC
[V0,D0]=eig(R);                                                     %对协方差矩阵进行特征分解
Un0=V0(:,1:M-K);                                                  %取噪声子空间
phane=0:1:180;
T=zeros(length(phane),1);
for i1=1:length(phane)
    for k=1:K
        A1(:,k)=exp(-1j*(0:M-1)'*d_lamda*2*pi*sin(phane(i1)*pi/180));    %阵列流型
    end
    T(i1)=1/norm(A1'*Un0);
end
figure();
plot(1:i1,T,'r-o');hold on;
%%%%%%第一种方法%%%%%%%%%%ROOT-MUSIC1
[V,D]=eig(R);                                                     %对协方差矩阵进行特征分解
Un=V(:,1:M-K);                                                  %取噪声子空间
Gn=Un*Un';
a = zeros(2*M-1,1)';                                         %找出多项式的系数,并按阶数从高至低排列
for i=-(M-1):(M-1)
    a(i+M) = sum( diag(Gn,i) );
end
a1=roots(a);                                                      %使用ROOTS函数求出多项式的根
a2=a1(abs(a1)<1);                                           %找出在单位圆里且最接近单位圆的N个根
[lamda,I]=sort(abs(abs(a2)-1));                   %挑选出最接近单位圆的N个根
f=a2(I(1:K));                                                    %计算信号到达方向角
source_doa=[asin(angle(f(1))/pi)*180/pi asin(angle(f(2))/pi)*180/pi];
source_doa=sort(source_doa);
disp('source_doa');
disp(source_doa);
%%%%%%%第二种方法%%%%%%%%%ROOT-MUSIC1
% [V,D]=eig(R);
% Un=V(:,1:M-K);                                               %(4.5.7)
% Un1=Un(1:M,:);
% Un2=Un(K+1:M,:);
% T=[1 0 0 0 0 0]';                                              %(阵元数-信源数)*1
% c=Un1*inv(Un2)*T;                                           % (K*(M-K))*((M-K)*(M-K))*((M-K)*1)=K*1
% c=[1,c(2,1),c(1,1)];                                          %(4.5.8)
% f=roots(c);
% source_doa=[asin(angle(f(1))/pi)*180/pi asin(angle(f(2))/pi)*180/pi];
% source_doa=sort(source_doa);
% disp('source_doa');
% disp(source_doa);

无源定位入门(三)AOA(2)测角代码(MUSIC和ROOT—MUSIC)相关推荐

  1. [解疑][TI]TI毫米波雷达系列(三):调频连续波雷达回波信号3DFFT处理原理(测距、测速、测角)

    本文是经过参考多个文章并整理的,相关程序已经经过验证其可行性.在此感谢原文作者(文末有相关链接)的无私分享. 1.测距.测速 毫米波雷达测距主要是通过检测回波时延来计算目标距离:测速是通过检测目标运动 ...

  2. WPF入门(三)-几何图形之不规则图形(PathGeometry) (2)

    WPF入门(三)->几何图形之不规则图形(PathGeometry) (2) 原文:WPF入门(三)->几何图形之不规则图形(PathGeometry) (2) 上一节我们介绍了PathG ...

  3. 石家庄铁道大学测量平差课程设计-测角中点三边形

    刚刚做完平差课设,供学弟学妹们参考,欢迎指正,提出建议. 基于程序目的的,我选择了"测角中点三边形"来作为我的课程设计面向的模型,通过两个已知控制点和观测得到的角度计算未知点的坐标 ...

  4. 雷达测角方法(DBF测角、干涉测角(长短基线))matlab

    雷达测角方法(DBF测角.干涉测角(长短基线)) DBF测角 实验仿真 干涉测角 长短基线 相位差解模糊 实验仿真 五元均匀圆阵干涉测角(需要私,这部分实在懒得更新了) 代码私信 DBF测角 根据波束 ...

  5. [转载]Python爬虫入门三之Urllib库的基本使用

    python爬虫系列教程http://cuiqingcai.com/1052.html 1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优 ...

  6. 脑残式网络编程入门(三):HTTP协议必知必会的一些知识

    为什么80%的码农都做不了架构师?>>>    本文原作者:"竹千代",原文由"玉刚说"写作平台提供写作赞助,原文版权归"玉刚说&q ...

  7. .Net 3.5 Remoting编程入门三

    VS2008 .Net 3.5 Remoting编程入门三 信道 什么是信道?信道有哪些类型呢? 信道顾名思意就是通信的通道.就想那些宣传标语说的,"要想富,先修路!".同理,要学 ...

  8. sql语言和php,SQL语言快速入门(三)_php

    我们日常使用SQL语言的工作过程中,使用最多的还是从已经建立好的数据库中查询信息.下面,我们就来详细介绍一下如何使用SQL语言实现各种数据库查询操作. SELECT-FROM 为方便讲解,我们在数据库 ...

  9. PX4飞控中利用EKF估计姿态角代码详解

    PX4飞控中利用EKF估计姿态角代码详解 PX4飞控中主要用EKF算法来估计飞行器三轴姿态角,具体c文件在px4\Firmware\src\modules\attitude_estimator_ekf ...

最新文章

  1. Jedis使用教程完整版
  2. SqlServer 获取汉字的拼音首字母
  3. 【学习笔记】JS进阶语法一window对象
  4. Coursera吴恩达《神经网络与深度学习》课程笔记(4)-- 浅层神经网络
  5. Python工程师求职必知的经典面试题分享
  6. mysql error -1_【Mysql】SQLException: Got error -1 from storage engine 问题解决!
  7. python 异步 生产者 消费者_python 线程通信 生产者与消费者
  8. IK分词器(elasticsearch插件)
  9. 2021 年 Angular vs. React vs. Vue 前端框架对比
  10. matlab输入变量 复数,Matlab带符号变量的复数运算及其画图问题
  11. scikit-image 库简介
  12. Ubuntu 20.04 nvtop 编译安装
  13. 1.(MySQL Router+MGR)MySQL Shell安装与用法
  14. win7系统激活工具怎么用?
  15. 大野耐一的十条管理训诫|优思学院
  16. “做自己擅长又有兴趣的事情,是最幸福最快乐的” – 记我的大学老师
  17. 大数据预处理之数据清洗
  18. 抖音app开发时,在录制视频添加背景音乐功能实现流程
  19. 电子认证许可证书(电子签名 需要 什么资质)
  20. ATAC-seq数据分析(一)

热门文章

  1. android 8 zuk,联想开推ZUI3.5大版本更新:ZUK手机怒升安卓8.0!
  2. 场景编辑器开发第四天,继续迭代绘画功能
  3. MetaMask轻钱包教程 修心手把手带你玩小狐狸 钱包小白必备非原创
  4. 【电工基础】电路的基本概念与基本定律
  5. 计算机网络知识汇总(十万字超详细)
  6. 三、IDEA更换主题皮肤
  7. emq Node emq@ not responding to pings.
  8. SAP权限检查SU53
  9. 惠普HP dc7900的BIOS如何开启虚拟化VT设置
  10. mysql 单表关联_MySQL 基础之 单表、多表联查