DOA估计算法——Capon算法

 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:KA(:,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=scalea = 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.hqwc.cn/news/189421.html

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

相关文章

[ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧

文章目录 一、Amazon CodeWhisperer 简介1.1 CodeWhisperer 是什么1.2 Amazon CodeWhisperer 是如何工作的 二、Amazon CodeWhisperer 的优势和功能2.1 Amazon CodeWhisperer 的优势2.2 Amazon CodeWhisperer 的代码功能 三、Amazon CodeWhisperer 安装3.1 安装到 IntelliJ IDE…

Android——Gradle插件项目根目录settings.gradle和build.gradle

一、settings.gradle结构分析 项目根目录下的settings.gradle配置文件示例: pluginManagement {/*** The pluginManagement.repositories block configures the* repositories Gradle uses to search or download the Gradle plugins and* their transitive depen…

数智竞技何以成为“科技+体育”新样本?

文 | 智能相对论 作者 | 青月 “欢迎来到,钢铁突袭。” 三人一组,头戴VR设备,中国香港队和泰国队在数实融合的空间里捉对厮杀,通过互相射击对方能量铠甲获取积分。 虽然双方都展现出了极强的机动性,但显然中国香港队…

企业月结快递管理教程

什么是月结快递?员工可能不清楚,但是企业行政人员应该很熟悉。各大快递公司为了留住商企这些大客户,推出了月结协议寄件,企业可以和快递公司签订月结协议,员工寄件不需要当场结算快递费,而是将快递费挂在企…

(二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、数据集二、导入数据以及展示部分1.导入数据集以及对数据集进行处理2.展示数据(看看就好) 三(1)、搭建网络进…

jQuery UI简单的讲解

我们先进入一下问答时间,你都知道多少呢? (1)什么是jQuery UI 呢? 解答:jQuery UI 是以 jQuery 为基础的开源 JavaScript 网页用户界面代码库。包含底层用户交互、动画、特效和可更换主题的可视控件。我们…

计算数组中每个元素的立方根numpy.cbrt()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 计算数组中每个元素的立方根 numpy.cbrt() [太阳]选择题 请问以下代码中执行语句输出结果是? import numpy as np a np.array([1, 8, 27]) print("【显示】a ",a) pr…

「Java开发指南」如何在Spring中使用JAX-WS注释器?

本文将指导您如何使用JAX-WS注释器从Spring服务生成JAX-WS Web服务,在本教程中,您将学习如何: 为Spring服务启用JAX-WS部署应用程序并测试服务 所有与Spring scaffolding相关的任务都需要MyEclipse Spring或Bling授权。 MyEclipse v2023.1…

Leetcode刷题详解——斐波那契数

1. 题目链接:509. 斐波那契数 2. 题目描述: 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1…

OpenAI的Whisper蒸馏:蒸馏后的Distil-Whisper速度提升6倍

1 Distil-Whisper诞生 Whisper 是 OpenAI 研发并开源的一个自动语音识别(ASR,Automatic Speech Recognition)模型,他们通过从网络上收集了 68 万小时的多语言(98 种语言)和多任务(multitask&am…

三十分钟学会zookeeper

zookeeper 一、前提知识 集群与分布式 ​ 集群:将一个任务部署在多个服务器,每个服务器都能独立完成该任务。 ​ 分布式:将一个任务拆分成若干个子任务,由若干个服务器分别完成这些子任务,每个服务器只能完成某个特…

利用IP地址查询优化保险理赔与业务风控的实用方法

随着数字化时代的到来,保险行业正逐渐采用先进的技术来改善理赔流程和强化业务风控。其中,通过IP地址查询成为一种有效的手段,为保险公司提供更精准的信息,以便更好地管理风险和提高服务效率。本文将探讨如何利用IP地址查询优化保…