DOA估计 基于互质阵列的DOA估计

这篇具有很好参考价值的文章主要介绍了DOA估计 基于互质阵列的DOA估计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言 

        传统阵列的配置方式是均匀线阵,该阵列要求相邻阵元的间距为半波长,易产生耦合效应,影响 DOA 估计精度。而稀疏阵列利用协方差矩阵构建差分共阵方式在虚拟域上生成虚拟阵列,并利用虚拟阵列实现波达方向角的估计。由于虚拟阵列的自由度不在局限于阵列的物理阵元个数,而是和阵列的配置方式有关。其中应用的较为多的稀疏阵列形式有最小冗余阵列、互质阵列、嵌套阵列三种。最小冗余阵结构是1968年由Moffet提出的一种冗余度最小的稀疏阵列结构,该阵列结构将阵列孔径归一化为L,保证阵列中所有阵元位置差必须是从1到L,同时阵元数量M需要满足最小条件。嵌套阵阵列结构可以采用多级嵌套形式,研究范围较广。互质阵由Palghat P. Vaidyanathan与Piya Pal在2011年于文献Sparse Sensing With Co-Prime Samplers and Arrays中提出,典型的互质阵主要由两个阵元间距分别为半波长整数倍的均匀线阵组成,且两个均匀子阵的阵元数M,N是互质关系。后来有学者发现,将互质阵中阵元较少、间距较大的子阵进行二倍阵列扩展可获得更多的自由度,该种阵列结构即为扩展的互质阵。

互质阵的阵列结构与空间谱估计

DOA估计 基于互质阵列的DOA估计        首先以典型的互质阵为例,如上图所示,两个子阵阵元数分别为M和N,阵元间距分别为Nd和Md,。将这两个均匀子阵进行匹配即可得到一个标准的互质阵。在图中,参考阵元位于最左端开始的位置,且剩下的阵元彼此间阵元位置不会发生重合,阵元总数为DOA估计 基于互质阵列的DOA估计。在构造的互质阵中,令DOA估计 基于互质阵列的DOA估计个阵元的位置集合P为:

DOA估计 基于互质阵列的DOA估计

        其中DOA估计 基于互质阵列的DOA估计,则第i个阵元位置可被表示为:

通过对该阵元集中的任意两个阵元位置作差集,即可得到一个新的阵列差集,该互质阵列中阵元位置差集S可表示为:

        以M=3,N=4为例,该互质阵的阵列差集有如下分布:DOA估计 基于互质阵列的DOA估计

        接下来便是通过真实阵元位置得到其阵列差集。

        以第一个阵元为参考阵元,则有。假设Q个信号源被阵列接收,就可以得到某个信号源的导向矢量,有:

DOA估计 基于互质阵列的DOA估计

        阵列流形矩阵A可表示为:

         故阵列的接收信号可表示为:

DOA估计 基于互质阵列的DOA估计

        其中为信源矢量,为噪声矢量,一般情况下,则的理想协方差阵可表示为:

DOA估计 基于互质阵列的DOA估计

其有限快拍数下的近似形式为:

        由的理想形式可知,的第i行第j列的元素可以表示为:

DOA估计 基于互质阵列的DOA估计

        可以发现协方差矩阵中的元素表实现形式与导向矢量中元素的表现形式相似,不同的是阵列的位置变成了任意两个阵元位置的差,信号部分变成信号源的功率。因而,就可以通过阵列中任意两个物理阵元的位置之差构造虚拟阵元,不同的虚拟阵元组合在一起就构成了虚拟阵列。所有的延迟即构成了差分共阵。想要获得阵列中虚拟阵元的信息,需要对向量化,定义为向量化后的列向量,则可表示为:

DOA估计 基于互质阵列的DOA估计

        其中为扩大孔径的虚拟阵列流形矩阵;为 Khatri-Rao 积;可以发现包含了该互质阵中所有的两两阵元之差的信息。

        空间平滑需要取出z中连续的虚拟阵元,然而经过向量化处理后得到的列向量 z 含有许多冗余项,并且每一项对应的虚拟阵元位置是杂乱的,需要进一 步处理。

        因此,引入如下两个定义:

        定义1:虚拟阵元权值函数:令虚拟阵列中第p个虚拟阵元重复的次数为该虚拟阵元的权值函数,则 可表示为:

        定义2:冗余阵元整合矩阵:令DOA估计 基于互质阵列的DOA估计为冗余阵元整合矩阵,则中对应的第p个虚拟阵元的行向量可以表示为:

        则去冗余之后的信号的表达式为:

包含了任意的虚拟阵元,但由于该向量的秩为1,而且此时该信号中的虚拟孔径非连续,为一非均匀稀疏阵列。因此需要首先取连续的虚拟孔径部分作为虚拟均匀线性阵列。

在获得虚拟线性阵列后,再进一步对获得的向量进行平滑处理或者托普利茨化成为一个虚拟协方差矩阵。

        空间平滑处理:假设z中连续的虚拟孔径为,截取 v 中连续孔径部分 ,则中含有DOA估计 基于互质阵列的DOA估计个元素。在进行 空间平滑操作时,每次选取DOA估计 基于互质阵列的DOA估计个连续阵元,一共需要选取DOA估计 基于互质阵列的DOA估计次,记第次选取的连续阵元用表示,则经过空间平滑后的协方差矩阵可表示为:

 DOA估计 基于互质阵列的DOA估计

就是经过空间平滑获得的满秩协方差矩阵,进而可利用该矩阵进行 DOA 估计。

        托普利茨构造:简单来说,均匀线阵的协方差阵在理想情况下由于其范德蒙德结构的特性可以等价一个复托普利茨矩阵,即斜对角线上的各个元素都相等,仍然假设z中连续的虚拟孔径为,则根据该虚拟孔径中的部分及部分即可通过对这两个部分的元素进行托普利茨化得到该协方差阵。

代码与仿真

如果诸位大佬发现仿真过程中有错误,请不吝指出谢谢。具体代码如下所示:

dis_sub_array_1 = 3;%%阵元数量多,阵元间距短的子阵的间距
dis_sub_array_2 = 5;%%阵元数量少,阵元间距大的子阵的间距
multi = 2;%%阵列数量少的子阵的扩展倍数
sub_array_1_num = dis_sub_array_2;
sub_array_2_num = dis_sub_array_1;
sub_array_2_num = sub_array_2_num*multi;
array_num = sub_array_1_num+sub_array_2_num-1;
c = 340;%%波速
f = 1000;%%频率
lambda = c/f;%%波长
d = 0.5*lambda;
snr = 10;
array_structure = [0,dis_sub_array_1:dis_sub_array_1:(sub_array_1_num-1)*dis_sub_array_1,dis_sub_array_2:dis_sub_array_2:(sub_array_2_num-1)*dis_sub_array_2];
array_structure = sort(array_structure,"ascend");%%阵列真实结构构造
source_num = 4;
theta = linspace(-60,60,source_num);%%角度
snapshot_num = 100;%%快拍数
A = exp(-1i*array_structure'*d*f/c*2*pi*sind(theta));
S=randn(source_num,snapshot_num);
X = A*S;
X = awgn(X,snr,'measured');
RR = X*X'/snapshot_num;
z = reshape(RR,[],1);%%协方差矩阵向量化
W = zeros(array_num,array_num);
for ik = 1:array_num
    for jk = 1:array_num
        W(ik,jk) = array_structure(ik)-array_structure(jk);
    end
end
W = reshape(W,1,[]);%%虚拟阵列阵元分布
max_flag = round(max(W));
min_flag = round(min(W));
histog = zeros(1,max_flag-min_flag+1);
for ik = 1:length(W)
    histog(round(W(ik))+abs(min_flag)+1) = histog(round(W(ik))+abs(min_flag)+1)+1;
end%%虚拟权值函数构建
J = [];
for ik = min(W):max(W)
    II = zeros(array_num,array_num);
    for jk = 1:array_num
        for kk = 1:array_num
            if array_structure(jk) - array_structure(kk) == ik
                II(jk,kk) = 1/(histog(ik+abs(min(W))+1));
            end
        end
    end
    J = [J;reshape(II,1,[])];%%冗余阵元整合矩阵构建
end
v = J*z;%%去冗余之后的信号的表达式
histog_flag = round(abs(min_flag)+1);
for ik = 0:min(abs(min(W)),abs(max(W)))
    if histog(histog_flag+ik) == 0 || histog(histog_flag-ik) == 0
        flag = ik-1;
        break;
    end
end
vir_array = v(histog_flag-flag:histog_flag+flag);%%连续虚拟阵列孔径划分
R = zeros(flag+1,flag+1);
for ik = 1:flag+1
    R = R+vir_array(ik:ik+flag)*vir_array(ik:ik+flag)';
end%%空间平滑处理
% R = toeplitz(v(histog_flag:histog_flag+flag,1),flipud(v(histog_flag-flag:histog_flag,1)));%%向量托普利茨化
[U,D,V] = svd(R);
Un = U(:,source_num+1:end);
deg = -90:0.01:90;
kkk = 0;
for ik = 1:length(deg)
    kkk = kkk+1;
    A_bar = exp(-1i*(0:size(R,1)-1)'*d*f/c*2*pi*sind(deg(ik)));
    music_p(kkk) = 1/(A_bar'*Un*Un'*A_bar);
end
figure();
semilogy(deg,abs(music_p));grid on;
xlabel('degree');ylabel('amplitude');
title('CPA-MUSIC谱估计结果');
figure();
stem(min_flag:max_flag,histog);grid on;
xlabel("位置");
ylabel("重复次数");
title("虚拟阵元分布及重复次数");
 
 
 

仿真1:单信源条件下的互质阵空间谱估计

部分仿真参数如下所示:

子阵1阵元数 5
子阵2阵元数 3
子阵2扩展倍数 1
阵元间距 半波长
角度 15°
快拍数 100
信噪比 10dB

 仿真结果如下所示:

DOA估计 基于互质阵列的DOA估计

DOA估计 基于互质阵列的DOA估计 仿真2:多信源下的互质阵空间谱估计

        同样以阵元数为6的阵列为例,与同等阵元数目下的均匀阵DOA估计角度数量作对比可发现,均匀阵只能最多估计5个来波方向,而互质阵可以估计6个方向,使得阵列自由度增加。

部分仿真参数如下所示:

子阵1阵元数 5
子阵2阵元数 3
子阵2扩展倍数 1
阵元间距 半波长
角度 -60°,-36°,-12°,12°,36°,60°,
快拍数 100
信噪比 10dB

仿真结果如下所示:

DOA估计 基于互质阵列的DOA估计

 DOA估计 基于互质阵列的DOA估计

 仿真3:多信源下的扩展互质阵空间谱估计

        以前两个仿真中的互质阵结构为基础,对该结构中阵元间距较大的子阵进行二倍扩展,即可获得更多的扩展自由度。

部分仿真参数如下所示:

子阵1阵元数 4
子阵2阵元数 3(实际6)
子阵2扩展倍数 2
阵元总数 9
阵元间距 半波长
角度 -60°至60°中均匀取14个角度
快拍数 100
信噪比 10dB

仿真结果如下所示:

DOA估计 基于互质阵列的DOA估计

DOA估计 基于互质阵列的DOA估计

可以发现,相比于未扩展的互质阵列,扩展后的互质阵列所映射的连续虚拟阵元由7个增加到了15个,而仅仅在原实际阵列中增加了3个阵元,可见这种方法是非常高效的,当然,映射后的虚拟阵列非连续部分还可以通过虚拟阵列扩展等方法进一步增加自由度。

部分参考文献:

P. Pal and P. P. Vaidyanathan. Coprime sampling and the music algorithm. 2011 Digital Signal Processing and Signal Processing Education Meeting (DSP/SPE), Sedona, AZ, USA, 2011, pp. 289-294.

P. P. Vaidyanathan and P. Pal. Sparse Sensing With Co-Prime Samplers and Arrays. IEEE Transactions on Signal Processing, vol. 59, no. 2, pp. 573-586, Feb. 2011.

S. Qin, Y. D. Zhang and M. G. Amin. Generalized Coprime Array Configurations for Direction-of-Arrival Estimation. IEEE Transactions on Signal Processing, vol. 63, no. 6, pp. 1377-1390, March15, 2015.文章来源地址https://www.toymoban.com/news/detail-461374.html

到了这里,关于DOA估计 基于互质阵列的DOA估计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • DoA 估计:多重信号分类 MUSIC 算法(附 MATLAB 代码)

    本文首次在公众号【零妖阁】上发表,为了方便阅读和分享,我们将在其他平台进行自动同步。由于不同平台的排版格式可能存在差异,为了避免影响阅读体验,建议如有排版问题,可前往公众号查看原文。感谢您的阅读和支持! DoA 估计 是指根据天线阵列的接收信号估计出

    2024年02月03日
    浏览(50)
  • 稀疏DOA估计的经典算法——l1-SVD算法

    文献\\\"A Sparse Signal Reconstruction Perspective for Source Localization With Sensor Arrays\\\"提出了一种稀疏表示的DOA定位算法,它属于On-Grid类算法的范畴。其核心要点有二:其一是,通过了奇异值(SVD)分解,把以大量快拍数衡量的信号模型,转换成以信源数衡量的低维信号模型;其二是,以二阶

    2024年02月01日
    浏览(50)
  • 宽带信号处理实现DOA估计(ISM算法、MUSIC、MVDR、CBF)

    功率谱:                              功率谱:                              功率谱:                                    由快拍信号 计算协方差矩阵 ,其中 ,为快拍长度;对上述的空间谱公式遍历各个角度,计算对应角度的导向

    2024年04月23日
    浏览(40)
  • 关于克拉美罗下界(CRLB)-及不同DOA估计算法下的方差(性能)对比

        参数估计 在科研、工程乃至生活中都有广泛的应用。参数估计要解决的问题简单来说就是:基于一组观测数据,通过某种方法来获得我们想要的,与观测数据相关的一个或多个参数。     克拉美-罗界(Cramr-Rao Bound, CRB) 是 无偏估计 里我们常用的且十分重要的 一种对不同

    2024年04月13日
    浏览(127)
  • 毫米波雷达DOA估计,包含3D-FFT,DBF,music算法三种测角算法原理

      毫米波雷达的目标角度估计,特别是角度分辨率的提高是雷达探测需要解决的核心问题,使用FFT(快速傅里叶变换)或者DBF(数字波束形成技术)做DOA估计是最简单且运算复杂度最低的方法,但是这两方法并不能实现超分辨,其角分辨率受限于阵列的孔径,music算法是实

    2024年02月03日
    浏览(72)
  • 【状态估计】基于随机方法优化PMU优化配置(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 文献来源 🌈4 Matlab代码、数据、文章

    2024年02月06日
    浏览(46)
  • 基于脉动阵列的矩阵乘法加速(FPGA)

    ​ 原本准备做FADDEV求逆矩阵算法的FPGA实现,其中有一个概念挺吸引人,就是:脉动阵列。 ​ 先来讲讲脉动阵列的概念,脉动阵列其实是一种处理单元的结构。数据同步流过,能够减小降低重复访问,调高处理效率和资源消耗。 ​ 其实这是个比较旧的概念了,1982就有学者提

    2024年02月01日
    浏览(83)
  • 题目3180:蓝桥杯2023年第十四届省赛真题-互质数的个数======及探讨互质专题

    https://www.dotcpp.com/oj/problem3162.html 已AC。 (1)首先大家要知道什么叫互质: 以及它们的性质: 在数论中,对正整数n,欧拉函数φ(n)是小于或等于n的正整数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为φ函数(由高斯所命名)或是欧拉总计函数(totient fu

    2023年04月24日
    浏览(47)
  • 戴尔R710服务器配置raid阵列(附图文)

    1.开机启动服务器 开机后摁键盘CTRL+C,也有的是CTRL+R,根据自己服务器快捷键来决定 等待一会进入下一个页面 如下图 选择第一个,enter回车进入   选择 RAID Prioerties 回车进入  上一步之后,会进入此页面,上图为之前配置过raid ,可以看到Type类型位RAID1,下面删掉这个raid

    2024年02月14日
    浏览(40)
  • 利用软raid程序来配置实现“RAID1+0”阵列

    内容预知   1.实验目的  2.实验前准备 2.1  外部准备  2.2  内部准备(自身对命令的准备)   3.实验的具体操作 第一步:创建并定义RAID设备  第二步:用文件系统对每个RAID设备进行格式化  第三步:查看阵列和热备盘的详情  第四步:强制标记一个磁盘下线,看是否对数

    2024年02月11日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包