首页 > 编程语言 >精选论文 | Capon算法与MUSIC算法性能的比较与分析

精选论文 | Capon算法与MUSIC算法性能的比较与分析

时间:2023-05-12 20:32:01浏览次数:59  
标签:number Capon 算法 MUSIC 信号 pi


公众号【调皮连续波】,其他平台为自动同步,内容若不全或乱码,请前往公众号阅读。持续关注调皮哥,获得更多雷达干货学习资料和建议,和大家一起学习雷达技术。

精选论文 | Capon算法与MUSIC算法性能的比较与分析_搜索

【正文】


首先说结论:

当信噪比(SNR)足够大时,Capon算法和MUSIC算法的空间谱非常相似,因此在SNR比较大时它们的性能几乎一样,当不同信号源的入射角度比较接近时,MUSIC算法的性能优于Capon,这也是MUSIC算法(或者说子空间类算法)被称为高分辨率算法的原因。

原文:On one hand, if the SNR is large enough, the spectrums of Capon and MUSIC are approximately the same, and hence their performances may be similar. On the other hand, MUSIC algorithm performs better than Capon algorithm when the separation angle of sources is quite small, and this is why MUSIC (or saying subspace-based methods) is called as high-resolution algorithm.

这个结论要记住,记得这个问题之前找工作被面试官问过。

下面我们会用论文《The Difference Between Capon and MUSIC Algorithm》中的内容论述这个结论,并给出仿真示例。

1、Capon算法原理

Capon是一位科学家的名字,因为他提出了Capon这种算法,是以他的名字来命名的。我们将数据模型考虑为:

精选论文 | Capon算法与MUSIC算法性能的比较与分析_协方差矩阵_02其中,x(t)是观测数据向量,A是阵列信号处理中所谓的导向矩阵,s(t)和n(t)分别代表信号和噪声向量,t表示时间索引。将一个权重向量w放到观察向量x(t)上,我们得到的输出为: 

精选论文 | Capon算法与MUSIC算法性能的比较与分析_协方差矩阵_03 因此,阵列输出的功率可以公式化如下: 

精选论文 | Capon算法与MUSIC算法性能的比较与分析_搜索_04

其中E{·}和·H分别表示数学期望和埃尔米特转置。此外, 精选论文 | Capon算法与MUSIC算法性能的比较与分析_搜索_05 是观测数据的协方差矩阵。Capon算法[1]可以描述为:最小化输出功率,同时保持视线方向的单位增益,其公式如下: 

精选论文 | Capon算法与MUSIC算法性能的比较与分析_协方差矩阵_06

我的理解,这里其实类似于波束形成(本质上就是),保持视线方向的单位增益就是波束形成后的最大增益方向。上述公式可使用拉格朗日乘数法求解,其解为: 

精选论文 | Capon算法与MUSIC算法性能的比较与分析_信噪比_07将上式代入方程(3),可以得到与方向相关的输出功率,如 : 

精选论文 | Capon算法与MUSIC算法性能的比较与分析_协方差矩阵_08经过角度搜索,即可得到Capon算法的测角结果。

2、MUSIC算法原理

MUSIC是多重信号分类的英文缩写(MUltiple SIgnal Classification),信号模型如前所述,一旦我们得到观测数据的协方差矩阵Rx,我们就对其进行特征值分解,并获得信号和噪声分量,如下: 

精选论文 | Capon算法与MUSIC算法性能的比较与分析_搜索_09根据信号和噪声子空间之间的正交性[2],我们可以如下形成MUSIC空间谱 : 

精选论文 | Capon算法与MUSIC算法性能的比较与分析_协方差矩阵_103、算法比较与分析

精选论文 | Capon算法与MUSIC算法性能的比较与分析_协方差矩阵_11

精选论文 | Capon算法与MUSIC算法性能的比较与分析_搜索_12 即等于“信号”项+“噪声”项。当SNR足够大,即σs/σn足够大,则噪声项可以被忽略不计。上述公式(5)可以被近似改写为: 

精选论文 | Capon算法与MUSIC算法性能的比较与分析_信噪比_13因为求和符号并不改变频谱, 则存在: 

精选论文 | Capon算法与MUSIC算法性能的比较与分析_协方差矩阵_14即Caopn算法的性能近似等于MUSIC算法的性能,这是由数学上得到证明的。因此,我们得出的结论是:如果SNR足够大,Capon和MUSIC的频谱大致相同,因此它们的性能可能相似。

两种算法在10°和20°的DOA RMSE与SNR的关系:

精选论文 | Capon算法与MUSIC算法性能的比较与分析_信噪比_15

两种算法在SNR=10dB时,Capon和MUSIC算法的目标分离角度与DOA RMSE的关系:

精选论文 | Capon算法与MUSIC算法性能的比较与分析_信噪比_16

4、MATLAB仿真

设置阵元数为10,阵元间隔为半波长,信源数为3(-10度,0度,20度),快拍数为1024,下图为估计得到的信号谱,低信噪比设置为-8dB,高信噪比设置为10dB。

低信噪比:

精选论文 | Capon算法与MUSIC算法性能的比较与分析_信噪比_17

高信噪比:

精选论文 | Capon算法与MUSIC算法性能的比较与分析_搜索_18

从上图可以看出,在信噪比较低时两种估计算法性能都急剧下降,但是MUSIC算法略优于Capon,而当信噪比较大时,两种算法基本一致。MUSIC谱峰只反映阵列流形矢量与噪声子空间的正交性,与信噪比无关;Capon谱峰是真正的输出功率,与信噪比有关,这就是我前面说Capon其实本质上是波束形成。

仿真代码:

%MUSIC ALOGRITHM
%DOA ESTIMATION BY CLASSICAL_MUSIC
% 运行环境:MATLAB2022b
clear all;
%close all;
clc;
source_number=3;%信元数
sensor_number=10;%阵元数
N_x=1024; %信号长度
snapshot_number=N_x;%快拍数
w=[pi/4 pi/6 pi/3].';%信号频率
l=sum(2*pi*3e8./w)/3;%信号波长  
d=0.5*l;%阵元间距
snr=10;%信噪比


source_doa=[-10 0 20];%两个信号的入射角度


A=[exp(-1j*(0:sensor_number-1)*d*2*pi*sin(source_doa(1)*pi/180)/l);exp(-1j*(0:sensor_number-1)*d*2*pi*sin(source_doa(2)*pi/180)/l);exp(-1j*(0:sensor_number-1)*d*2*pi*sin(source_doa(3)*pi/180)/l)].';%阵列流型


s=sqrt(10.^(snr/10))*exp(1j*w*[0:N_x-1]);%仿真信号
%x=awgn(s,snr);
x=A*s+(1/sqrt(2))*(randn(sensor_number,N_x)+1j*randn(sensor_number,N_x));%加了高斯白噪声后的阵列接收信号


R=x*x'/snapshot_number;
iR=inv(R);
%[V,D]=eig(R);
%Un=V(:,1:sensor_number-source_number);
%Gn=Un*Un';
[U,S,V]=svd(R);
Un=U(:,source_number+1:sensor_number);
Gn=Un*Un';


searching_doa=-90:0.1:90;%线阵的搜索范围为-90~90度
 for i=1:length(searching_doa)
   a_theta=exp(-1j*(0:sensor_number-1)'*2*pi*d*sin(pi*searching_doa(i)/180)/l);
   Pmusic(i)=a_theta'*a_theta./abs((a_theta)'*Gn*a_theta);
   Pcapon(i)=1./abs((a_theta)'*iR*a_theta);
 end
plot(searching_doa,10*log10(Pmusic),'k-',searching_doa,10*log10(Pcapon),'b--');
%axis([-90 90 -90 15]);
xlabel('DOAs/degree');
ylabel('Normalized Spectrum/dB');
legend('Music Spectrum','Capon Spectrum');
title('Comparation of MUSIC and Capon for DOA Estimation');
grid on;

5、角度分辨率/精度

设置阵元数为10,阵元间隔为半波长,信源数为3(-0.5°,0°,0.5°),快拍数为1024,信噪比设置为20dB,下图为估计得到的信号谱,为方便观察进行了归一化。

精选论文 | Capon算法与MUSIC算法性能的比较与分析_搜索_19

可以看到这种情况下,MUSIC的分辨率是优于Capon法的。

仿真代码:

%MUSIC ALOGRITHM
%DOA ESTIMATION BY CLASSICAL_MUSIC
clear all;
%close all;
clc;


source_number=3;%信元数
sensor_number=10;%阵元数
N_x=1024; %信号长度
snapshot_number=N_x;%快拍数
w=[pi/4 pi/6 pi/3].';%信号频率
l=sum(2*pi*3e8./w)/3;%信号波长  
d=0.5*l;%阵元间距
snr=20;%信噪比

6、探测目标个数

MUSIC算法需要精确已知信号个数,这样它才能划分信号和噪声子空间,如果信号个数不准确,而Capon则不需要知道信号个数。仿真如下:

直接把信源数设置为零,照样估计出三个目标,但是MUSIC则不可以。

source_number=0;%信元数
sensor_number=4;%阵元数
N_x=1024; %信号长度
snapshot_number=N_x;%快拍数
w=[pi/4 pi/6 pi/3].';%信号频率
l=sum(2*pi*3e8./w)/3;%信号波长  
d=0.5*l;%阵元间距
snr=20;%信噪比
source_doa=[-40 0 40  ];%两个信号的入射角度


精选论文 | Capon算法与MUSIC算法性能的比较与分析_协方差矩阵_20

另外,MUSIC算法的信号源数小于阵元的数目,以确保阵列流型矩阵的各个列线性独立。若传感器的数量比信源的个数多,则阵列数据的信号分量一定位于一个低秩的子空间,在一定条件下,这个子空间的将唯一确定信号的波达方向,并且可以使用数值稳定的奇异值分解精确的确定波达方向。

传统的波束形成算法要求信源数小于或等于阵元数,Capon也不可避免。如果信源数大于阵元数(过载的情况下),一般算法性能就会下降,需要采用近似最小方差波束形成算法。

仿真验证:

信源数等于阵元数,MUSIC算法直接失效,Capon算法最多只能估计出阵元数减一个目标。

source_number=3;%信元数
sensor_number=3;%阵元数
N_x=1024; %信号长度
snapshot_number=N_x;%快拍数
w=[pi/4 pi/6 pi/3].';%信号频率
l=sum(2*pi*3e8./w)/3;%信号波长  
d=0.5*l;%阵元间距
snr=20;%信噪比
source_doa=[-40 0 40  ];%两个信号的入射角度

精选论文 | Capon算法与MUSIC算法性能的比较与分析_协方差矩阵_21

7、抗多径能力

MUSIC和Capon算法的抗多径能力都不好,原因是多径会使得协方差矩阵秩损(不满秩),从而导致两种算法性能下降甚至算法完全失效。在存在多径的情况下,一般使用空间平滑等算法,重新构造满秩的协方差矩阵,其缺点在于损失了一部分自由度。

参考资料:

https://zhuanlan.zhihu.com/p/134304031

https://zhuanlan.zhihu.com/p/553567030

【本期结束】

目前我的工作经验尚浅,还有很多内容需要学习,如果还有没有说到或者不全面的地方,还请指正,感谢大家。

喜欢本文,可以转发朋友圈~,关注【调皮连续波】,和1.1万+人一起学雷达!



标签:number,Capon,算法,MUSIC,信号,pi
From: https://blog.51cto.com/u_12413309/6271817

相关文章

  • m基于图像灰度共生矩阵纹理提取和GRNN神经网络的人口密度检测算法matlab仿真
    1.算法仿真效果matlab2013b仿真结果如下:  2.算法涉及理论知识概要       灰度共生矩阵,指的是一种通过研究灰度的空间相关特性来描述纹理的常用方法。[1] 1973年Haralick等人提出了用灰度共生矩阵来描述纹理特征。由于纹理是由灰度分布在空间位置上反复出现而形......
  • 代码随想录算法训练营第三天|203.移除链表元素 、707.设计链表 、206.反转链表
    一.链表基础1.最后一个节点的指针域指向null(空指针的意思)。2.链表在内存中不是连续分布的。3.链表的长度可以是不固定的,并且可以动态增删,适合数据量不固定,频繁增删,较少查询的场景。1#链表节点的定义2classListNode:3def__init__(self,val,next=None):4......
  • m基于HOG特征提取和GA优化GRNN网络的交通标志检测和识别算法matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:       2.算法涉及理论知识概要2.1遗传算法       遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于......
  • 记一次解‘字符串加解密’算法
    题目:对输入的字符串进行加解密,并输出。加密方法为:当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;其他字符不做变化。解密方法为加密的逆过程。数据范围:输入的......
  • 单片机ADC,十大C语言滤波算法
    一、限幅滤波法1、方法:根据经验判断两次采样允许的最大偏差值(设为A) 每次检测到新值时判断: a.如果本次值与上次值之差<=A,则本次值有效b.如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值2、优点:能有效克服因偶然因素引起的脉冲干扰3、缺点......
  • hash哈希算法
    hash,-般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间。它其实就是一个算法,最简单的算法就是加减乘除,比方,我设计个数字算法,输入+......
  • 无感FOC 基于DSP28335平台的无感FOC算法 代码包括了完整的矢量控
    无感FOC基于DSP28335平台的无感FOC算法代码包括了完整的矢量控制算法,在smo的基础上,增加了VESC原始的磁链观测器,还增加了磁链观测器+PLL方案,还增加了增量编码器的接口代码,方便大家调试无感算法。每个环节都是在实物上跑过的,转子位置角度通过全局变量设置进行任意的切换,算法之间相互......
  • 四种语言刷算法之排序链表
    力扣148. 排序链表1、C/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*sortList(structListNode*head){intn=0;structListNode*newHead=(structListNode*)m......
  • 模板元编程实战--类型列表算法
    这篇文章主要说明了我学习的过程,作为一种记事本来记录,它讲述了如何处理一个类型列表的拼接,查找,排序,等算法。数据结构:template<typename...Ts>structTypeList{structisTypeList{};usingtype=TypeList<Ts...>;constexprstaticsize_tsize=sizeof...(......
  • 无刷直流电机有感方波 有感方波控制算法,包括电机相序确定方法,霍尔安装
    无刷直流电机有感方波有感方波控制算法,包括电机相序确定方法,霍尔安装位置确定方法,不同斩波方式(两两导通、33导通不一样)编写方法,霍尔换相表确定,霍尔自学习,各种启动方式的差异,带载堵转力矩保持,电流保护策略,前馈策略,带载降低超调的策略,等等。可以提供基础仿真模型,学习代码,一些文档......