DOA估计算法——Capon算法

news2024/10/6 13:27:56

 1.波速形成基本思想

        在理解Capon算法之前,我们有必要先了解波束形成的基本思想以及原理到底是什么。这有助于我们更好的理解Capon算法的思想。

图 1 

如图1展示了均匀阵列波束导向的示意图。图中wm表示加权值,波速形成(DBF)的基本思想就是将各阵元输出进行加权求和,在一定时间内将天线阵列“导向”到一个方向上,对期望信号得到最大输出功率的导向位置,同时这个位置也表征了目标或波达方向。

        此外,DBF的基本原理简单来说,就是利用阵元直接相干叠加而获得输出,其缺点在于只有垂直于阵列平面方向的入射波在阵列输出端才能同相叠加,从而形成方向图中主瓣的极大值。反过来说,如果阵列可以围绕它的中心轴旋转,那么当阵列输出最大时,空间波必然由垂直于阵列平面的方向入射而来。但有些天线阵列是很庞大的,且是不能转动的。因此,设法设计一种相控天线法(或称常规波束形成法),这是最早出现的阵列信号处理方法。这种方法中,阵列输出选取一个合适的加权向量以补偿各个阵元的传播延时,从而使在某一期望方向上阵列输出可以同相叠加,进而使阵列在该方向上产生一个主瓣波束,而对其他方向上产生较小的响应,用这种方法对整个空间进行波束扫描就可确定空中待测信号的方位。因此,计算权值wm是波束形成这类方法的关键,目前DBF权重主要基于以下准则进行计算:

  • 最大信噪比准则(MSNR):使期望信号分量功率与噪声分量功率之比最大,但是必须知道噪声的统计量和期望信号的波达方向。
  • 最大信干噪比准则(MSINR):使期望信号功率与干扰功率及噪声分量功率之和的比最大。
  • 最小均方误差准则(MMSE):在非雷达应用中,阵列协方差矩阵中通常都含有期望信号,基于此种情况提出的准则。使得阵列输出与某期望响应的均方误差最小,不需要知道期望信号的波达方向。
  • 最大似然比准则(MLH):在对有用信号完全先验未知的情况下,参考信号无法设置,因此,在干扰噪声背景下,首先要取得对有用信号的最大似然估计。
  • 线性约束最小方差准则(LCMV):对有用信号形式和来向完全已知,在某种约束条件下使阵列输出的方差最小。

 2.Capon算法

        Capon算法属于一种在线性约束最小方差准则(LCMV)下的波束形成算法,所谓波束形成即在某些准则约束下,求解阵列输出的最优权。实质上波束形成属于一种空域滤波器。波束形成的“导向”作用是通过调整加权系数完成的,阵列的输出是对各阵元的接收信号量x(n)在 各阵元上的加权和,令权向量为w,则输出可写作为:

可见对不同的权向量,上式对来自不同方向的信号有不同的响应从而形成不同方向的空间波束。假设空间远场有一个感兴趣的信号d(t) (其波达方向为θd)和J个干扰信号,1,..J((其波达方向为θi),令每个阵元上的加性白噪声为nk(t),它们具有相同的方差。在这些假定的条件下,第k个阵元上的接收信号可以表示为

等式右边的三项分别表示信号,干扰和噪声。假设有M个阵元如果用矩阵的形式表示式(2),则有

其中 ,分别为M个阵元上接收的数据;

 表示波达方向来自的方向向量。假设接收端得到了N个快拍数据,则根据式(1)可得到波形形成器的输出的平均功率为:

式(4)可以表示为:

如上式子所示,输出功率关于波达角的函数通常被称为空间谱。为了保证来自 方向的信号正常接收,同时完全抑制掉其它J个干扰,很容易根据式子(5)得到权向量的约束条件为:

综上所述,我们可以得出Capon算法所要求解的优化问题可以表述为:

可以采用拉格朗日乘子法求解。求解过程如下:

令:

L分别对w和λ求偏导并使各自的偏导数为零,由此可得:

将式(9)中的第二个式子左乘并将第一个式子代入可得 

式(10)右乘,可得 

于是得

式(12)右乘可得 

于是得

将式(14)代入式(12)并取复共轭转置可得:

将式(15)代入式(5)即可得到Capon的空间谱为:

根据式(16)进行谱峰搜索,峰值所在的索引表征了目标波达方向(DOA)。

3.Capon算法仿真 

        仿真环境:Matlab2021b;

        波达方向分别为:10°、-15°、21°;

        信源快拍数、阵元个数:1024、32;

        分别对信噪比为:-10dB、20dB、30dB

        仿真代码如下:

%%  Author:Poulen
%%  Data:2023.5.29
%%  Capon算法仿真
clear 
close all;
clc;

%%  产生信号
M=32;                       %阵元单元
c=3e8;                      %光速
f0=77e9;                    %初始频率
lambda=c/f0;                %波长
slope=30e12;                %调频斜率
time=60e-6;                 %60us
d=0:lambda/2:(M-1)*lambda/2;%阵列天线
thita=[-15,21,10];          %波达方向
K = length(thita);
N=1024;                     %信号长度
t=linspace(0,time,N);
A=zeros(M,K);               %导向向量空间 M*K
S=zeros(K,N);               %信号空间

f = 100+f0; 
for i = 1:K
    A(:,i) = exp(-1j*2*pi/lambda*d(:)*sind(thita(i)));
    S(i,:) = exp(1j*2*pi*f*t(:));
    f = 1000+f;
end
S = A*S;                    %产生阵列接收数据

%%  向数据添加白噪声
SNR = 60;                   %单位dB
S = S +(randn(size(S)).*std(S))/db2mag(SNR);

%%  计算信号协方差矩阵
R = (1/N).*S*conj(S).';
R_inv = inv(R);

%%  Capon 算法
scale = -60:0.1:59;         %扫面范围
P_Capon = zeros(length(scale),1);
idx = 1;
for i=scale
    a = exp(-1j*2*pi/lambda*d(:)*sind(i));
    P_Capon(idx) = 1/(conj(a.')*R_inv*a); 
    idx = idx + 1;
end
figure;
plot(scale,db(P_Capon),'LineWidth',1.6,'Color',[0 0 0]);
xlabel('AngleRange(°)');
ylabel('Amplitude(dB)');
title('CaponAlgorithm');
legend(' SNR = 60dB');

仿真效果如下图所示:

 

从仿真结果我们不难得出,随着信噪比的增大,Capon估计精度及性能逐渐增强。此外对Capon算法的优缺点做如下总结:

优点:不需要信源数的先验信息,该算法也具有一定的抗干扰性和鲁棒性,能够适用于不同类型和复杂度的信号处理应用。

缺点:需要对协方差矩阵进行求逆,算法的计算和实现较为复杂,需要一定的数字和计算机技术的支持。

4.结束语

        本次分享到此结束,另外创作不易,希望各位毫不吝啬的给博主加加关注,点点赞,非常感谢大家的支持。

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

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

相关文章

5g路由器赋能园区无人配送车联网应用方案

随着人工智能、无人驾驶技术和自动化技术的不断进步,无人配送技术得到了极大的发展。园区内的物流配送任务通常是繁琐的,需要大量的人力资源和时间。无人配送技术能够提高配送效率并减少人力成本。无人配送车辆和机器人能够根据预定的路线和计划自动完成…

QT上位机串口控制MCU

🙌秋名山码民的主页 😂oi退役选手,Java、大数据、单片机、IoT均有所涉猎,热爱技术,技术无罪 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 获取源码,添加WX 目录 前言1.…

做外贸如何开发客户?外贸客户开发六大方法一次性分享

客户是外贸业务的基础,有了客户才会有订单,因此开发客户永远是外贸人们重点关注的!那作为外贸小白要通过哪些渠道找到客户?有哪些外贸客户开发方法可以入手呢?今天就跟着东哥一起来了解一下外贸客户开发都有哪六个方法…

二百零二、Hive——Hive解析JSON字段(单个字段与json数组)

一、目的 用Flume采集Kafka写入到Hive的ODS层在HDFS路径下的JSON数据,需要在DWD层进行解析并清洗 (一)Hive的ODS层建静态分区外部表 create external table if not exists ods_queue(queue_json string ) comment 静态排队数据表——静…

CAN总线负载及CANoe查看总线负载率

文章目录 一、什么是CAN总线的负载率?二、负载率计算三、CANoe查看总线负载率 一、什么是CAN总线的负载率? 一般业内对负载率的定义为:实际数据传输速率和理论上能达到的数据传输速率的比值。 传输速率一般是按秒来计算,数据传输…

Shell编程基础(3)- Shell的位置参数

Shell编程基础(3)- Shell的位置参数 Shell Scripting Essentials (3) – Locative Parameters of Shell Scripting 前文介绍过shell变量。当声明shell变量时,只需要在代码行写出变量名称即可;在输入行用read命令要求用户输入,在…

链表(一)----关于单链表的一切细节这里都有

一.链表 1 链表的概念及结构 概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。 现实中的链表结构 数据结构中的链表结构 1.链式结构在逻辑上是连续的,但在物理上不一定是…

数字化医学影像管理系统PACS源码

PACS系统,意为影像归档和通信系统。它是应用在医院影像科室的系统,主要的任务就是把日常产生的各种医学影像(包括核磁,CT,超声,各种X光机,各种红外仪、显微仪等设备产生的图像)通过各…

数据库选型与优化:策略与技巧的探讨

大家好,我是一名狂热的数据库程序员,最近鼓起勇气开始吐槽一下数据库,如有雷同,请对号入座。 名不副实的数据库类型 先说说最近的事,我们业务有很多图片要管理,老板说让我选个专业的图数据库,…

Leetcode—3.无重复字符的最长子串【中等】

2023每日刷题&#xff08;三十二&#xff09; Leetcode—3.无重复字符的最长子串 实现代码 class Solution { public:int lengthOfLongestSubstring(string s) {unordered_set<char> smap;int maxlen 0;int left 0;for(int i 0; i < s.size(); i) {while(smap.fi…

QT绘图设备

pixmap绘图设备在磁盘上进行绘图 通过pix.save将图片保存到E盘下 不是主要的绘画设备&#xff0c;可以将绘图指令保存 然后在下边可以调用重现绘图指令

Pikachu漏洞练习平台之SSRF(服务器端请求伪造)

注意区分CSRF和SSRF&#xff1a; CSRF&#xff1a;跨站请求伪造攻击&#xff0c;由客户端发起&#xff1b; SSRF&#xff1a;是服务器端请求伪造&#xff0c;由服务器发起。 SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能&#xff0c;但又没有对目标…

跨境电商测评新方案,安全可靠,高成功率

不管是做测评服务商还是卖家想给自己做测评&#xff0c;是否都为了如何搭建一个安全可靠的测评环境而苦恼呢&#xff1f;不知道如何搭建高成功率的真实安全买家环境苦恼&#xff1f;陈哥带你了解一种全新的解决方案&#xff0c;能够让你们的测评工作更加高效、安全、可靠&#…

简单介绍二分类问题评价指标

正确率(Accuracy) Accuracy ​(TP TN)/(TP TN FP FN)精准率(Precision) 记忆&#xff1a;在识别出某标签中正确的比例&#xff1b; 比如识别为某标签的一共有105个&#xff0c;其中有95个是识别对的&#xff0c;那Precision就是95/105&#xff1b; TP/(TPFP)召回率(Recall…

NJU操作系统公开课笔记(1)

目录 一.计算机系统概述 二.计算机硬件系统 三.计算机软件系统 四.计算机操作技术的发展 五.计算机OS 1.资源管理的角度 2. 程序控制的角度 3.OS控制计算机的角度 4.人机交互的角度 5.程序接口的角度 6.系统结构的角度 单道批处理系统 多道批处理系统 分时系统 …

Git 基本操作

目录 创建仓库命令 git init git clone 提交与修改 git add git status git diff git commit git reset git rm git mv git checkout git switch git restore 提交日志 git log git blame 远程操作 git remote git fetch git pull git push Git 的工作就…

Elasticsearch搜索分析引擎本地部署与远程访问

文章目录 系统环境1. Windows 安装Elasticsearch2. 本地访问Elasticsearch3. Windows 安装 Cpolar4. 创建Elasticsearch公网访问地址5. 远程访问Elasticsearch6. 设置固定二级子域名 Elasticsearch是一个基于Lucene库的分布式搜索和分析引擎&#xff0c;它提供了一个分布式、多…

深度学习(五)softmax 回归之:分类算法介绍,如何加载 Fashion-MINIST 数据集

Softmax 回归 基本原理 回归和分类&#xff0c;是两种深度学习常用方法。回归是对连续的预测&#xff08;比如我预测根据过去开奖列表下次双色球号&#xff09;&#xff0c;分类是预测离散的类别&#xff08;手写语音识别&#xff0c;图片识别&#xff09;。 现在我们已经对回…

Kafka学习笔记(三)

目录 第5章 Kafka监控&#xff08;Kafka Eagle&#xff09;5.2 修改kafka启动命令5.2 上传压缩包5.3 解压到本地5.4 进入刚才解压的目录5.5 将kafka-eagle-web-1.3.7-bin.tar.gz解压至/opt/module5.6 修改名称5.7 给启动文件执行权限5.8 修改配置文件5.9 添加环境变量5.10 启动…

【Proteus仿真】【51单片机】公交车报站系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器&#xff0c;使用LCD12864显示模块、DS18B20温度传感器、DS1302时钟模块、按键、LED蜂鸣器、ULN2003、28BYJ48步进电机模块等。 主要功能&#xff1a; 系统运行后&…