基于子阵列互累积量(Cross-Cumulant)的远场和近场混合声源定位[1]。

文中采用Uniform linear array (ULA)阵列,将其分为两个互相重叠的子阵列,构建关于子阵列输出信号的两个特殊cross-cumulant matrices,而这两个矩阵仅仅与源信号的DOA有关。

信号模型

阵列模型如下:

K个窄带信号,阵元数目为2M+1的对称ULA阵列。假设中间阵元为相位基准。则第m个传感器的接收信号可以表示为:

其中为第k个入射信号的波形,为第m个传感器的噪声,为第k个源信号从阵元0到阵元m个传播时间(时延)。

当第k个入射信号是near-field信号时,满足如下形式:

λ表示波长,分别表示第k个源信号的DOA和range。根据菲涅耳区域的定义,,并且表示阵列孔径。

当第k个入射信号是far-field信号时,满足形式:

将公式(1)写为矩阵形式,可以表示为:

其中是维度为的复数向量,并且有:

其中(2M + 1) × 1 的导向矢量表示为:

需要注意的是,在公式(6)表示的接收信号模型,前个源信号假定为FF源(近场源信号),剩余个假定为NF源(远场源信号)。

本文有如下先验假设:

(1)源信号是统计独立的,采用非零峭度进行零均值随机处理。

(2)传感器噪声是加性的空间高斯白噪声,具有零均值。并且和源信号互相独立。

(3)已知源信号数目K,或者已经采用信息论准则准确估计得到。

提出算法

1、FF源和NF源的DOA估计

基于上述假设,阵列输出信号的四阶累计量表示为:

。其中第k个源信号的峭度表示为:

使得,公式(14)可以写作:

如图1所示,我们将ULA阵列划分为两个相互重叠的子阵列Y和Z,用以构建子阵列输出信号的cross-cumulant matrices,从此推导累积量的平移不变性。子阵列Y和Z的接收信号向量可以表示为:

                          

很明显地,y(t)的第m个元素为,z(t)的第m个元素为

根据上述子阵列的输出信号和公式(15),可以构建两个互累积量矩阵,其第个元素为:

                                  

其中。注意上述两个互累积量矩阵可以仅用DOAs表示。

C1表示为紧凑的矩阵形式:

其中,虚拟的“阵列流型矢量”为,并且

同理,C2可以表示为:

其中

结合C1和C2,得到(4M - 2) × (4M - 2) 矩阵为:

                                               

对C进行特征值分解,得到:

其中,并且是包含K个C的最大特征值以及(4M-2-K)个C的最小特征是的对角矩阵。分别是对应的特征向量组成的矩阵。

基于子阵列理论,张成的列空间,这表示存在一个K×K的矩阵T使得:

使得E1和E2为Es的最大和最小(2M-1)×K的半矩阵,由上式得到:,组成结果:

其中。公式(28)可以用TLS准则求解,其特征值是和源信号的DOAs相关的。使得V为的2K×2K的右奇异向量,当V被划分为4个K×K子阵列:

则公式(28)的解可以给出:

假设的第k个特征值,则第k个源信号的DOA可以给出:

2、源辨识和距离估测

对接收信号的相关矩阵进行EVD,得到:

其中分别为包含R的K个最大特征值和(2M+1-K)个最小特征值的对角矩阵。分别为对应的特征向量组成的矩阵。

根据上述DOA估计值,代入到下述谱函数中:

可以计算估计距离

此处无需其他处理,自动匹配。实际上,我们就可以辨别不同的源信号了,当时,第k个源为NF源;当时为FF源,此时使得

3、讨论

1)需要注意的是,为了避免中的元素出现相位模糊性,文中提出算法要求

2)鉴于四阶累计量矩阵C1和C2的维度是2M-1,对于一个包含2M+1个真元的ULA,最多可以定位2M-2个不同源信号。不同的是,二阶MUSIC算法和高阶MUSIC算法可以分别最多处理M和2M个源信号。

3)对于文中提出方法,主要的计算量在于构建累积量矩阵,计算协方差矩阵,及其EVDs和距离搜索,需要乘法次数次,其中为在菲涅尔域内搜索点数。

因为除了搜索距离,还需要估计DOAs,高阶MUSIC算法需要的乘法次数为

二阶MUSIC算法需要的乘法次数为。其中是在角度域中需要搜索的点数。

需要注意的是,文中所提方法的计算复杂度中没有,所以其计算复杂度低于高阶MUSIC。

仿真实验

参考文献

[1] Zhi Zheng, Mingcheng Fu, Wen-Qin Wang,etc. Mixed Far-Field and Near-Field Source Localization Based on Subarray Cross-Cumulant ☆[J]. Signal Processing, 2018.

Mixed Far-Field and Near-Field Source Localization Based on Subarray Cross-Cumulant的更多相关文章

  1. [field:picname/]和[field:litpic/]区别

    显示出二级栏目及以下的所有图片(包含三级栏目的) <ul class="incps"> {dede:arclist row=9 col="3" ty ...

  2. Huge CSV and XML Files in Python, Error: field larger than field limit (131072)

    Huge CSV and XML Files in Python January 22, 2009. Filed under python twitter facebook pinterest lin ...

  3. Lucene.NET中Field.Index 和 Field.Store的几种属性的用法

    转载自 http://blog.csdn.net/yja886/article/details/6612069 lucene在doc.add(new Field("content" ...

  4. [Struts2] No result defined for action ... and result input &amp; Invalid field value for field ...

    "No result defined for action ... and result input"错误一般发生在Struts2的拦截器拦截时遇到了问题时.Struts2会将跳转 ...

  5. 声源定位之2精读《sound localization based on phase difference enhancement using deep neuarl networks》

    2.1.1 题目与摘要 1.为什么要增强IPD? The phase differences between the discrete Fourier transform (DFT) coeffici ...

  6. ExtJs之Field.Trigger和Field.Spinner

    作文本框功能的. <!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta h ...

  7. android jni ——Field & Method --> Accessing Field

    现在我们知道了怎样使用native code访问简单的数据类型和引用参考类型(string,array),下面我们来介绍怎样让jni代码去访问java中的成员变量和成员函数,然后可以再jni中回调ja ...

  8. 关于能量场和力场弯曲空间的实验证明 EXPERIMENTAL PROOF ON THE BENDING SPACE OF ENERGY FIELD AND FORCE FIELD

    前文提到,F = ma, E = mc^2,并且等效是传递的,等效概念具有同属性.所以不止能量,力场也可以弯曲空间. 实验:某人被头顶上方的电站10几万伏的设备吸收,烧毁双臂. (虽然这个实验不应具有 ...

  9. Django Model field reference

    ===================== Model field reference ===================== .. module:: django.db.models.field ...

随机推荐

  1. C++ Clock函数调用及用途

    用途1 Clock函数可以有效地针对一些只能用随机化做的题目 为了提高该类代码的正确性,我们期望它运行的次数在要求时限内运行足够多 因此将Clock函数充当计时器 用途2 计时判断负环 原理: 给定一 ...

  2. C#高效编程

    一. 使用readonly而不是const const是编译时常量,readonly是运行时常量.如果引用了一个库中的const常量,则在更新了程序集,但应用程序没有重新编译时,运行结果会出错 如程序 ...

  3. mssql server 排序 以及like语句

    当我们按照某个字段排序时,通常使用order by语句,如果该字段存在null值,则会把null值的这条放到最上面, 那我们是否有办法解决呢? 答案是肯定的: ORDER BY CASE WHEN O ...

  4. springboot 接口参数校验

    前言 在开发接口的时候,参数校验是必不可少的.参数的类型,长度等规则,在开发初期都应该由产品经理或者技术负责人等来约定.如果不对入参做校验,很有可能会因为一些不合法的参数而导致系统出现异常. 上一篇文 ...

  5. Python进阶----SOCKET套接字基础, 客户端与服务端通信, 执行远端命令.

    Python进阶----SOCKET套接字基础, 客户端与服务端通信, 执行远端命令. 一丶socket套接字 什么是socket套接字: ​ ​  ​ 专业理解: socket是应用层与TCP/IP ...

  6. 反序列化之PHP原生类的利用

    目录 基础知识 __call SoapClient __toString Error Exception 实例化任意类 正文 文章围绕着一个问题,如果在代码审计中有反序列化点,但是在原本的代码中找不到 ...

  7. spring boot 集成 sitemesh

    一.Sitemesh简介 Sitemesh是由一个基于Web页面布局.装饰及与现存Web应用整合的框架,是一个装饰器.它能帮助我们在由大量页面工程的项目中创建一致的页面布局和外观,如一致的导航条.一致 ...

  8. 技术圈术语之LDAP

    导语:阅读一些程序的文档时经常看到支持ldap,由于对这个协议不太熟悉,平时也没有用过,所以一直也没怎么留意,今天看rabbitmq的文档又发现了ldap相关的介绍,于是想把这个问题搞清楚. 一.LD ...

  9. 无法将“ng”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 通用解决方案

    1.找到你安装的路径 以@angular/cli 为例 (找到 ng.cmd 这个指令的具体位置) 2. 右键 这台电脑 添加路径到 系统变量的 Path中, 如下图 3.关闭所有的 cmd,并重新打 ...

  10. 实验3 SQL注入原理-万能密码注入

    实验目的 (1)理解[万能密码]的原理 (2)学习[万能密码]的使用 实验原理 一.访问目标网站 1.选择一个存在漏洞的论坛 http://192.168.1.3:8009 进入 2.输入用户名[ad ...