【测向定位】差频MUSIC算法DOA估计【附MATLAB代码】

news2024/11/15 9:19:36

​微信公众号:EW Frontier QQ交流群:554073254

摘要

利用多频处理方法,在不产生空间混叠的情况下,估计出高频区域平面波的波达方向。该方法利用了差频(DF),即两个高频之间的差。这使得能够在可行区域中处理数据而没有空间混叠。分析了测向处理中的DOA特性,提出了一种基于MUSIC的多测向多快拍处理方法。本文提出了一种将多个DF和多个快拍联合考虑的方法,以及一种联合DF方法,该方法提供了一个不需要固定DOA的单快拍DF-MUSIC。仿真算例证明了文章提出方法的有效性并讨论了其DOA性能。

引言

由于空间混叠,均匀线阵将平面波DOA估计限制在一个较高的频率范围内。为了考虑数据的特定频率分量,应该在每个波长两个以上的点处对数据进行采样。否则,波达方向变得不明确,组件在错误的波达方向。当处理更高频率的带外信号时,无源系统尤其会出现这个问题。

我们解决了高频DOA估计,并采用多频处理。来自宽带信号中的多个频率的更多数据实现处理增益并获得良好的估计[1],[2],[3],[4]。为了更好地进行宽带DOA估计,已经提出了稀疏信号重构[5],[6],[7],[8],[9],[10]。基于循环平稳性的宽带方法是另一种技术,并且利用时间和空间中的循环相关特性[11],[12],[13],[14],[15]。利用多频点的频谱特性,对著名的非均匀线阵--互素阵的DOA估计进行了改进[16],[17],[18],[19]。

多频处理利用差频(DF),即频率f处的阵列数据与另一个f +Δf处的复共轭的乘积,这使得能够处理在没有空间混叠的情况下,使用较低频率Δf区域中的数据[20],[21]。远场源的DOA估计具有平面波和的阵列数据模型。

DF技术已应用于源定位和DOA估计,并通过实验数据进行了验证[21],[22],[23],[24]。对于源定位,已应用匹配场处理,其使用波传播模型匹配测量和模拟信号[25],[26],[27],[28]。对于DOA估计,使用常规波束形成器(CBF)或延迟求和波束形成器[21]。使用高频的DF方法显示出与低频CBF相当的DOA性能[22]。通过反卷积[23]以及通过使用MVDR和进一步的分析考虑[24]来改进基于DF的CBF的DOA性能。如图所示,DF处理使用频率f处的阵列数据和f +Δf处的复共轭数据的Hadamard乘积。

本文提出了三种联合收割机组合多个时间和测向样本的方法:时间、频率和时频联合。时间-DF-MUSIC对单个DF使用多个时间样本以获得时间平均样本协方差矩阵(SCM)。利用DF会产生不需要的伪影DOA [21]、[22]、[24],其取决于真实DOA和DF频率。由于伪影DOA在DF上变化,因此单独获得每个DF的MUSIC频谱并在频率上求平均可减轻伪影。

频率-DF-MUSIC使用均匀间隔的多个DF,具有相同的DF以获得频率平均的SCM。对于真实DOA,恒定DF共享相同的导向矢量,并且多DF等效于多快照。频率处理采用多个DF,实现了单次快拍DOA估计。单次时间快拍方法对于时变波达方向是有用的。

时频DF-MUSIC联合收割机将所有时间和DF样本合并到SCM中。该方法利用更多的数据平均来改善DOA估计。

文章插图

结论

推导了一种对多个频率的高频源及其差频进行DOA估计的算法,以获得低频处理。由于DF低于混叠频率,因此这是无空间混叠的。时间-DF-MUSIC算法将时间样本合并到样本协方差矩阵中,得到每个DF处的MUSIC谱,并对谱进行平均以估计最终DOA。频率-DF-MUSIC适用于单次快照,并且不需要随时间的固定DOA。时频-DF-MUSIC算法综合了所有的时频信息,联合使用更多的数据量获得处理增益。

MATLAB代码展示

%%
clear; clc;
close all;
​
% addpath([cd,'/_common'])
% addpath(['../_common'])
errCut = 10; % Maximum RMSE cut-off.
​
% rngNumber = 1; rng(rngNumber);
dbstop if error;
​
run_bpdn = 0;
​
%%
% Environment parameters
% c = 1500;       % speed of sound
c = 343;       % speed of sound
​
dfreq = 10000;                % difference frequency [Hz]
​
% ULA-horizontal array configuration
d = .5*(c/dfreq);            % intersensor spacing (based on DF)
% d = 3.75;                  % intersensor spacing [m]
% f = 200; % Hz -> 0.5 lambda = 0.5 * 1500 / 200 = 3.75 [m]
​
Nsensor = 20;               % number of sensors
q = (0:1:(Nsensor-1))';     % sensor numbering
xq = (q-(Nsensor-1)/2)*d;   % sensor locations
​
% 5-7.5 times to Difference Frequency (DF)
fmul1 = 5;
fmul2 = 7.5;
ftmp = linspace(fmul1*dfreq,fmul2*dfreq,50);
f = [ftmp,ftmp+dfreq];      % frequency [Hz]
Nfreq = numel(f);
​
lambda = c./f;   % wavelength
​
​
% signal generation parameters
SNR = 20;
​
% total number of snapshots
Nsnapshot = 50;
​
% range of angle space
thetalim = [-90 90];
​
theta_separation = .005;
​
% Angular search grid
theta = (thetalim(1):theta_separation:thetalim(2))';
Ntheta = length(theta);
​
% Generate received signal
anglesTrue = [-40; 35];
fprintf(['True DOAs        :',...
    repmat([' %.4f '],1,numel(anglesTrue)),'\n'],anglesTrue.')

MATLAB仿真结果

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

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

相关文章

鹏鼎控股社招校招入职SHL综合能力测评:高分攻略及真题题库解析答疑

鹏鼎控股(深圳)股份有限公司,成立于1999年4月29日,是一家专注于印制电路板(PCB)的设计、研发、制造与销售的高新技术企业。公司总部位于中国广东省深圳市,并在全球多个地区设有生产基地和服务中…

【软考】数据字典(DD)

目录 1. 说明2. 数据字典的内容2.1 说明2.2 数据流条目2.3 数据存储条目2.4 数据项条目2.5 基本加工条目 3. 数据词典管理4. 加工逻辑的描述4.1 说明4.2 结构化语言4.3 判定表4.3 判定树 5. 例题5.1 例题1 1. 说明 1.数据流图描述了系统的分解,但没有对图中各成分进…

软件自动定时启动器-添加可执行文件软件,设置启动的时间,也可以设置关闭的时间-供大家学习研究参考

点击添加软件,可以添加可执行文件软件,设置启动的时间,也可以设置关闭的时间 注意,时间为00:00:00 等于没设置,这个时间不在设置范围,其他任何时间都可以。 下载地址: h…

【C++ Primer Plus习题】16.9

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: #include <iostream> #include <ctime> #include <v…

驱动---动态模块编译

动态模块编译 ctags 用法 创建文件 ------- ctags -R 一定要在顶层目录下 1&#xff0e; ctags –R * 2. vi –t tag (请把tag替换为您欲查找的变量或函数名) 3&#xff0e; Ctrl ] (跳转到要找的目标) 4&#xff0e; Ctrl T (回跳) 5&#xff0e; set tag/p…

解决使用nvm管理node版本时提示npm下载失败的问题

目录 一、引言 二、解决步骤 1. 访问该网站下载对应版本的npm Release v6.14.18 npm/cli GitHubthe package manager for JavaScript. Contribute to npm/cli development by creating an account on GitHub.https://github.com/npm/cli/releases/tag/v6.14.18 2. 解压到n…

mac使用技巧

mac使用技巧 快捷键 Command-X&#xff1a;剪切所选项并拷贝到剪贴板。Command-C&#xff1a;将所选项拷贝到剪贴板。这同样适用于“访达”中的文件。Command-V&#xff1a;将剪贴板的内容粘贴到当前文稿或应用中。这同样适用于“访达”中的文件。Command-Z&#xff1a;撤销上…

高级算法设计与分析 学习笔记6 B树

B树定义 一个块里面存了1000个数和1001个指针&#xff0c;指针指向的那个块里面的数据大小介于指针旁边的两个数之间 标准定义&#xff1a; B树上的操作 查找B树 创建B树 分割节点 都是选择正中间的那个&#xff0c;以免一直分裂。 插入数字 在插入的路上就会检查节点需不需要…

Ansible——Playbook基本功能???

文章目录 一、Ansible Playbook介绍1、Playbook的简单组成1&#xff09;“play”2&#xff09;“task”3&#xff09;“playbook” 2、Playbook与ad-hoc简单对比区别联系 3、YAML文件语法&#xff1a;---以及多个---&#xff1f;&#xff1f;使用 include 指令 1. 基本结构2. 数…

搜维尔科技:Haption力反馈遥操作解决方案

硬件设备 多种力反馈设备型号&#xff1a; 1.Haption Virtuose 6D&#xff1a;能在 6 个自由度&#xff08;x、y、z 轴 3 个平移和 3 个旋转&#xff09;上提供精确的力反馈&#xff0c;工作空间相当于一条人体手臂的活动范围&#xff0c;最大力度和旋转扭矩分别高达 35N 和 …

干货:分享6款ai论文写作助手,一键生成原创论文(步骤+工具)

写一篇论文是一个复杂的过程&#xff0c;涉及多个步骤&#xff0c;包括选题、研究、撰写、编辑和校对。AI可以在其中的一些步骤中提供帮助&#xff0c;但最终的论文还是需要人类作者的深入思考和创造性输入。以下是六款值得推荐的AI论文写作助手&#xff0c;其中特别推荐千笔-A…

秃姐学AI系列之:目标检测(物体检测) + 边缘框代码实现 | 锚框 + 代码实现

目录 目标检测 边缘框 目标检测数据集 总结 代码实现 定义在两种表示之间进行转换的函数 定义图像中狗和猫的边界框 将边框在图中画出 锚框 Anchor Box IoU——交并比 赋予锚框标号 使用非极大值抑制&#xff08;NMS&#xff09;输出 总结 代码实现 锚框 IoU——交…

高并发内存池(三):CentralCache与PageCache的实现

目录 CentralCache的实现 主体框架 ​Span 页与页号 WIN32、_WIN32、_W64的区别 条件编译 SpanList 为ThreadCache分配内存结点 补充内容1 补充内容2 具体实现 从PageCache申请非空span 补充内容 具体实现 PageCache的实现 主体框架 关于整体加锁的解释 桶锁…

linux第三课(linux中安装nginx与redis及SpringBoot集成redis)

目录 一.nginx引入 二.关于nginx 1.什么是nginx 2.nginx的特点 3.在nginx中安装nginx 三.关于redis 1.背景引入 2.什么是redis 3.redis的特点 4.在linux下的docker中安装redis 四.redis中的数据结构 (1)String(字符串) (2)Hash (3)list(列表) (5)zset(sorted se…

1734. 解码异或后的排列

1. 题目 1734. 解码异或后的排列 2. 解题思路 要搞明白这个题目可以先来看下它的简化版题目&#xff1a;1720. 解码异或后的数组 [!NOTE] 题目&#xff1a; 未知 整数数组 arr 由 n 个非负整数组成。 经编码后变为长度为 n - 1 的另一个整数数组 encoded &#xff0c;其中 e…

ES6标准---【八】【学习ES6看这一篇就够了!!!】

目录 前言 export命令 输出变量 输出函数/类 export中的as别名 export必须一一对应 export接口的响应性 注意 import命令 import命令的语法 import命令里的as别名 import的只读性 import命令具有提升性 import的一些约定 import的静态执行 import的唯一执行性 模…

windows查找端口号被占用

在很多开发的时候&#xff0c;可能端口号有被占用的情况&#xff0c;导致项目打不开。 用下面这个命令即可&#xff1a; 比如我的3000端口被占用&#xff0c;我找找哪个进程在占用我的3000端口号

SVM原理

SVM 这里由于过了很长时间 博主当时因为兴趣了解了下 博主现在把以前的知识放到博客上 作为以前的学习的一个结束 这些东西来自其他资料上 小伙伴看不懂英文的自行去翻译下吧 博主就偷个懒了 多维空间和低维空间 不一样的分法&#xff0c;将数据映射到高维 &…

【电路笔记】-运算放大器比较器

运算放大器比较器 文章目录 运算放大器比较器1、概述2、表示2.1 同相比较器2.2 反相比较器3、临界点转换4、施密特触发器4.1 同相触发器4.2 反相触发器4.3 应用5、总结1、概述 在前面的大多数运算放大器文章中,电路都有一个到反相输入的反馈环路。 这种设计是最常见的,因为它…

汇总区间计算

给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c;nums 的每个元素都恰好被某个区间范围所覆盖&#xff0c;并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区间范围 [a,b] 应该按…