毫米波雷达系列 | 基于前后向空间平滑的MUSIC算法详解

news2024/12/23 18:07:21

毫米波雷达系列 | 基于前后向空间平滑的MUSIC算法详解

文章目录

  • 毫米波雷达系列 | 基于前后向空间平滑的MUSIC算法详解
    • DOA阵列模型
    • MUSIC算法
    • 空间平滑算法
    • 整体流程
    • 仿真代码

忙了一阵子的中期和专利,基本上告一段落,简单的写一个比较常见的解相干MUSIC角度估计算法。

算法是基于MIMO体制雷达的基础上实现的,MIMO体制形成虚拟接收阵元可以来改善毫米波雷达的成像效果,但是角度分辨率从仍受限于阵列孔径大小,为了提高MIMO毫米波雷达的成像分辨率只能以增加系如成本为代价继续增加天线阵列。

DOA阵列模型

在这里插入图片描述

假设信号均为窄带信号,前方有k个目标则接受阵列信号可以表示为:
x ( t ) = A ( θ ) S ( t ) + n ( t ) x(t)=A(θ)S(t)+n(t) x(t)=A(θ)S(t)+n(t)
其中, S ( t ) = [ s 1 ( t ) , s 2 ( t ) , . . . s k ( t ) ] T S(t)=[s1(t),s2(t),...sk(t)]^T S(t)=[s1(t),s2(t),...sk(t)]T是入射信号, A ( θ ) = [ α 1 , α 2 , . . . α k ] A(θ)=[α1,α2,...αk] A(θ)=[α1,α2,...αk]为接收阵列的导向矢量, n ( t ) = [ n 1 ( t ) , n 2 ( t ) , . . . n N ( t ) ] T n(t)=[n1(t),n2(t),...nN(t)]^T n(t)=[n1(t),n2(t),...nN(t)]T是阵列接收到的噪声矢量,噪声功率为σ2 ,展开可得

在这里插入图片描述

MUSIC算法

MUSIC算法的核心思想就是将阵列接收数据的协方差矩阵进行特征值分解得到特征值和特征向量,将特征向量划分为信号子空间和噪声子空间,这两个空间是正交且不相关的,利用该性质可以实现空间信号的超分辨。

接受阵列数据的协方差矩阵可以表示为:
R = E [ x x H ] = A E [ S S H ] + σ 2 I = A R s A + + σ 2 I R=E[xx^H]=AE[SS^H]+σ^2I=ARsA++σ^2I R=E[xxH]=AE[SSH]+σ2I=ARsA++σ2I
其中, R s = E [ S S H ] Rs=E[SS^H] Rs=E[SSH]表示信号的自相关矩阵,ARsA为信号相关部分,σ2I为噪声相关部分
对R进行特征值分解:
R = U Σ U H R=UΣU^H R=UΣUH
其中U是特征向量组成的矩阵,Σ是所有特征值所构成的对角矩阵,Σ可以表示为:
在这里插入图片描述

Σ中的对角线上的各个特征值满足以下条件:

在这里插入图片描述

这里假设有两个对角矩阵:

在这里插入图片描述

前一个为K个较大的特征值所构成的对角矩阵, 为剩下的(N-K)个小特征值构成的对角矩阵。这样可以将特征向量矩阵分为两个部分:第一部分为K个大特征值对应的信号子空间 ,第二部分为(N-K)个小特征值对应的噪声子空间 ,可以重写为:

在这里插入图片描述

在信号源相互独立的条件下,可以知道导向向量与信号噪声子空间正交,且和也是正交的,所以可以得到:

在这里插入图片描述

在实际工程应用当中,我们得到的接收数据都是在有限时间内得到的所以一般用协方差矩阵的最大似然估计来代替数据协方差矩阵:

在这里插入图片描述

所以谱空间函数可以表示为:

在这里插入图片描述

空间平滑算法

空间平滑技术的基本思想是:如果存在远场窄带且相干的电磁信号照射线性天线阵列,那么这些阵列对信号进行协方差处理后的矢量有可能是满秩的。基于此可以将该阵列分割成很多子阵,计算时将所有的协方差矢量进行和相加,这样可能得到一个矩阵,它的秩的大的数量值相等于相干信号源的个数,对该矩阵矢量实施子空间的算法可算出每个信源的波达方向角。一般应用中,空间平滑算法只适合于阵元等间隔的线性阵(ULA)。

在这里插入图片描述

假设存在一个均匀阵列,阵元个数为N,阵元间距为d,空间中有p(p<N)个窄带信号,首先使用前向空间平滑把阵列划分为M个相互重叠的前向子阵,子阵的阵元数相等均为k,可得知k=N-M+1。

则第m个前向子阵的输出为:
x m f ( t ) = [ x m ( t ) , x m + 1 ( t ) , . . . , x m + k − 1 ( t ) ] T = A k D ( m − 1 ) s ( t ) + n m ( t ) x_m^f(t)=[x_m(t),x_{m+1}(t),...,x_{m+k-1}(t)]^T=A_kD^{(m-1)}s(t)+n_m(t) xmf(t)=[xm(t),xm+1(t),...,xm+k1(t)]T=AkD(m1)s(t)+nm(t)
其中D为:
在这里插入图片描述

作协方差运算可以得到:
R m f = E { x m f ( t ) x m f ( t ) H } R_m^f=E\lbrace x_m^f(t)x_m^f(t)^H\rbrace Rmf=E{xmf(t)xmf(t)H}
定义前向空间平滑矩阵为:
R f = 1 / M ∑ m − 1 M R m f R^f=1/M \sum_{m-1}^{M} {R_m^f} Rf=1/Mm1MRmf
后向与前向的滑动方向相反,可得:
R b = 1 / M ∑ m − 1 M R m b R^b=1/M \sum_{m-1}^{M} {R_m^b} Rb=1/Mm1MRmb
R b R^b Rb R f R^f Rf的共轭倒序矩阵,两者之间的关系满足共轭倒叙不变性,可以表示为:
R f = J ( R f ) ∗ J R^f=J(R^f)^*J Rf=J(Rf)J
矩阵 J J J为副对角线元素均为1,因此前后向空间平滑协方差矩阵的定义为:
R f b = 1 / 2 ( R f + R b ) R^{fb}=1/2(R^f+R^b) Rfb=1/2(Rf+Rb)
可以利用该协方差矩阵去求解特征值继续MUSIC算法来完成角度估计。

整体流程

在这里插入图片描述

仿真代码

clear all
close all
format long
snr = 0;
N = 256;
source_number=2;%信元数
sensor_number=8;%阵元数
source_doa =[20 25];

%% 前后向解相干
w=[pi/4 pi/4].';%信号频率
l=((2*pi*3e8)/w(1)+(2*pi*3e8)/w(2))/2;%信号波长  
d=0.5*l;%阵元间距
m=6;%每个子阵阵元数
p=3;%相互交错的子阵数
snr=10;%信噪比
A=[exp(-j*(0:sensor_number-1)*d*2*pi*sin(source_doa(1)*pi/180)/l);exp(-j*(0:sensor_number-1)*d*2*pi*sin(source_doa(2)*pi/180)/l)].';%阵列流型

s=sqrt(10.^(snr/10))*exp(j*w*[0:N-1]);%仿真信号
x = A*s;
x=awgn(x,snr);

x1=x([1:6],:);R1=x1*x1'/1024;
x2=x([2:7],:);R2=x2*x2'/1024;
x3=x([3:8],:);R3=x3*x3'/1024;

Rf=(R1+R2+R3)/3;

[U,S,V]=svd(Rf);
Un=U(:,source_number+1:m);
Gn=Un*Un';

searching_doa=-90:0.1:90;%线阵的搜索范围为-90~90度
 for i=1:length(searching_doa)
   a_theta=exp(-j*(0:m-1)'*2*pi*d*sin(pi*searching_doa(i)/180)/l);
   Pmusic(i)=1./abs((a_theta)'*Gn*a_theta);
 end
plot(searching_doa,10*log(Pmusic));
%axis([-90 90 -90 90]);
hold on;
grid on;
title('前后向空间平滑MUSIC')
xlabel('入射角/度');
ylabel('谱峰/dB');
grid on;

在这里插入图片描述

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

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

相关文章

阿里高工珍藏版“亿级高并发系统设计手册(2023版)”面面俱到,太全了!

高并发 俗话说&#xff1a;罗马不是一天建成的&#xff0c;系统的设计当然也是如此。 从原来谁都不看好的淘宝到现在的电商巨头&#xff0c;展现的不仅仅是一家互联网巨头的兴起&#xff0c;也是国内互联网行业迎来井喷式发展的历程&#xff0c;网络信号从 2G 发展到现在的 5…

ATtiny13与Proteus仿真-UART信号模拟仿真

UART信号模拟仿真 ATtiny13没有UART模块,因此在调试程序时,使用软件模拟UART信号很有必要。本文将介绍如何如何控制2个GPIO来模拟UART TX和RX信号,并在Proteus仿真。 1、UART信号介绍 UART的信号一般由如下三部分组成: 开始信号数据信号停止信号UART 信号保持高电平。 作…

软件测试概念基础——小记

文章目录1. 什么是软件测试2. 软件测试和软件开发的区别3. 什么是需求4. 需求是软件测试的依据5. 什么是BUG6. 什么是测试用例7. 开发模型瀑布模型螺旋模型增量模型 迭代模型敏捷模型scrum8. 测试模型V模型W模型9. 软件测试的生命周期&#xff08;软件测试的流程&#xff09;10…

Web大学生个人网页作业成品——学生个人爱好展示网站设计与实现(HTML+CSS+JS)

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

FlinkCDC部署

文章目录Flink安装job部署1、测试代码2、打包插件3、打包4、测试Flink安装 1、解压 wget -b https://archive.apache.org/dist/flink/flink-1.13.6/flink-1.13.6-bin-scala_2.12.tgz tar -zxf flink-1.13.6-bin-scala_2.12.tgz mv flink-1.13.6 /opt/module/flink2、环境变量…

快手某HR吐槽:职位要求写得很清楚,照着写简历不行吗?有的工作经历不相关,有的工作好几年还写学生会奖学金,这种一秒扔垃圾桶!...

求职时&#xff0c;你的简历是什么样的&#xff1f;能否帮你顺利通过初筛&#xff1f;一位快手的面试官吐槽很多求职者的简历“一塌糊涂”&#xff1a;职位要求已经写得很明白了&#xff0c;就把里面罗列的技术和跟业务相关的项目经验贴上来就好了&#xff0c;有人偏写航空公司…

Vue 不重新打包,动态加载全局配置的实现过程

背景 项目前端采用了 Vue.js &#xff0c;跟传统前端 html 技术不同之处在于&#xff0c;每次打包后都重新生成新的 js 文件&#xff0c;而且不可读&#xff0c;必须全量替换。但最近碰到一个漏洞扫描的问题&#xff0c;系统通过单点登录方式访问时&#xff0c;是不能有登录首…

【MySQL基础】数据库操作语言DML相关操作有那些?

目录 一、什么是DML 二、数据插入insert 三、数据的修改update 四、数据的删除delete 五、delete和truncate有什么不同&#xff1f; 六、DML操作知识构图 七、DML操作练习 &#x1f49f; 创作不易&#xff0c;不妨点赞&#x1f49a;评论❤️收藏&#x1f499;一下 一、什…

【Docker学习教程系列】8-如何将本地的Docker镜像发布到私服?

通过前面的学习&#xff0c;我们已经知道&#xff0c;怎么将本地自己制作的镜像发布到阿里云远程镜像仓库中去。但是在实际工作开发中&#xff0c;一般&#xff0c;我们都是将公司的镜像发布到公司自己搭建的私服镜像仓库中&#xff0c;那么一个私服的镜像仓库怎么搭建&#xf…

Android之Service

一、Service简介&#xff1a; Service是一种后台服务机制&#xff0c;允许在没有用户界面的情况下&#xff0c;使程序能够长时间在后台运行。 Service是四大组件之一&#xff0c;适用于开发无UI界面、长时间后台运行、做一些用时比较长的操作。 二、Service创建&#xff1a;…

Frida - App逆向 JavaScript代码注入 基本语法以及数据类型介绍

Frida - App逆向 JavaScript代码注入 常用语法介绍 文章目录Frida - App逆向 JavaScript代码注入 常用语法介绍前言一、逆向步骤二、重载(Overload) / Frida数据类型1.重载函数介绍2.重载函数常用的类型三、Frida Hook常用代码介绍1.基本代码框架四、注入JavaScript代码运行监听…

功能测试的工作流程

测试工作人员接收到项目需求、验收标准和原型图并对需求进行分析以了解项目的需求。 一、测试计划&#xff1a;个人觉得测试计划应在在详细设计确认后&#xff0c;代码开始编写的时候开始编写。测试计划主要给后面的测试工作的一些指南。 其内容包含&#xff1a; 1、测试团队人…

kubernetes学习之路--Pod配置学习

写在前面&#xff1a;上篇文章提供了两种简单搭建一个k8s集群的方法&#xff0c;其中两种方式的区别是&#xff1a;kubeadm是直接在主机上进行k8s搭建&#xff0c;kind是在docker中搭建。本文主要分享新建pod等方法。&#xff08;想了想&#xff0c;对于像我这刚入门的人来说&a…

面试常问的《进程创建—进程终止—进程等待—进程替换》!

送给正在努力前行的你一句话&#xff1a;要努力&#xff0c;但不要着急&#xff0c;繁花锦簇&#xff0c;硕果累累都需要过程&#xff01; 博主主页 目录 1.进程创建 fork函数初识 fork函数返回值 写时拷贝 2.进程终止 进程退出场景 进程如何退出 3.进程等待 进程等待的必要性 …

Java泛型简介

参考博客&#xff1a;https://www.jb51.net/article/192850.htm 泛型&#xff0c;即“参数化类型”。一提到参数&#xff0c;最熟悉的就是定义方法时有形参&#xff0c;然后调用此方法时传递实参。那么参数化类型怎么理解呢&#xff1f;顾名思义&#xff0c;就是将类型由原来的…

vuex持久化

下载&#xff1a; vuex-persistedstate npm install --save vuex-persistedstate 或者&#xff1a; npm install --save vuex-persistedstate --legacy-peer-deps 引入使用&#xff1a;在store文件夹下的index文件中&#xff0c;也就是放vuex的js代码中引入&#xff1a; i…

周末福利 | 21天学通Python完整版,豆瓣评分9.6!

前言 又到了周末啦&#xff0c;小编例行给大家发福利&#xff01; 今天福利的内容是21天学通Python完整版&#xff0c;这是一本豆瓣评分9.6的人工智能入门书籍&#xff01;全面、系统、深入地讲解了Python编程基础语法与高级应用。在讲解过程中&#xff0c;通过大量实际操作的…

mac m1 安装docker docker 安装php 5.6 和 7.2 避坑指南

通过该link可以下载兼容mac m1核心的docker-desktop: Docker Desktop - Docker 所有基于amd64架构核心的都加上--platform linux/amd64来运行,这样就能愉快的玩耍了: docker search centos7 php56 #搜索 docker images #显示所有镜像 docker pull sglim2/centos7 建议使用ln…

如何让青少年在AI时代抢占先机

点击蓝字关注我们AI TIME欢迎每一位AI爱好者的加入&#xff01;11月17日&#xff0c;由智谱AI支持&#xff0c;北京市科委、中关村管委会科普专项经费资助的系列栏目“科普大佬说”很荣幸邀请到国家科技部“新一代人工智能创新发展与应用研究”项目、中小学人工智能教育服务平台…

在VSCode中用Markdown自动生成PPT详细使用指南,支持多种风格和排版,支持ppt转为pdf等

在VSCode中用Markdown自动生成PPT详细使用指南&#xff0c;支持多种风格和排版&#xff0c;支持ppt转为pdf等。 Marp 官网&#xff1a; https://marp.app/ 这款软件也能在 Windows 或 Linux 系统上使用&#xff0c;并不局限于 macOS 系统。 今天要介绍的是 Marp 推出的 VS Cod…