基于matlab使用广义互相关和三角测量来确定宽带信号源的位置

news2024/11/19 7:25:04

一、前言

此示例说明如何使用广义互相关 (GCC) 和三角测量来确定宽带信号源的位置。为简单起见,此示例仅限于由一个源和两个接收传感器阵列组成的二维方案。您可以将此方法扩展到两个以上的传感器或传感器阵列以及三维。

二、介绍

源定位不同于到达方向 (DOA) 估计。DOA估计仅寻求确定来自传感器的源的方向。源本地化决定了它的位置。在此示例中,源本地化由两个步骤组成,第一个步骤是 DOA 估计。

  1. 使用 DOA 估计算法估计每个传感器阵列的源方向。对于宽带信号,许多众所周知的到达方向估计算法(如Capon方法或MUSIC)无法应用,因为它们采用元件之间的相位差,使其仅适用于窄带信号。在宽带情况下,您可以使用元件之间信号到达时间的差异,而不是相位信息。为了计算到达时间差值,此示例使用广义相变互相关 (GCC-PHAT) 算法。根据到达时间的差异,您可以计算 DOA。

  1. 通过三角测量计算源位置。首先,从数组沿到达方向绘制直线。然后,计算这两条线的交点。这是源位置。源定位需要了解接收传感器或传感器阵列的位置和方向。

三、三角测量公式

三角测量算法基于简单的三角函数公式。假设传感器阵列位于二维坐标 (2,0) 和 (L,0) 处,未知源位置为 (x,y)。

此示例的其余部分说明如何使用相控阵系统工具箱的函数和系统对象来计算源位置。

四、源和传感器几何形状

设置两个沿全局坐标系的 x 轴对齐且间隔 4 米的接收 50 元素 ULA。第一个阵列的相心是 (0,0,0) 。第二个阵列的相心为 (50,0,0) 。源位于(30,100)米处。如图所示,接收阵列增益点在+y方向上。源沿 -y 方向传输。

指定传感器阵列之间的基线。创建全向麦克风的 4 元件接收器 ULA。可以对两个数组的 和 系统对象使用相同的系统对象。指定第一个传感器阵列的位置和方向。创建 ULA 时,数组元素会自动沿 y 轴间隔。必须将阵列的局部轴旋转 90°,才能沿全局坐标系的 x 轴对齐元素。

指定第二个传感器阵列的位置和方向。选择第二个阵列的局部轴以与第一个阵列的局部轴对齐。将信号源指定为单个全向传感器。

五、定义波形

选择源信号为宽带LFM波形。假设系统的工作频率为300 kHz,并将信号带宽设置为100 kHz。假设最大工作范围为 150 m。然后,您可以设置脉冲重复间隔 (PRI) 和脉冲重复频率 (PRF)。假设占空比为10%,并设置脉冲宽度。最后,在1500 m / s的水下通道中使用声速。

设置 LFM 波形参数并创建系统对象。

然后可以生成发射信号。

六、辐射、传播和收集信号

对宽带系统的辐射和传播进行建模比对窄带系统进行建模更复杂。例如,衰减取决于频率。多普勒频移以及由于信号输入方向而导致的元件之间的相移也根据频率而变化。因此,在处理宽带信号时对这些行为进行建模至关重要。此示例使用子带方法。

将子带数设置为 128。指定源辐射器和传感器阵列收集器。为从源到两个传感器阵列的路径创建宽带信号传播器。确定从源到传感器阵列的传播方向。传播方向相对于源的局部坐标系。

沿传感器阵列的方向辐射来自源的信号。然后,将信号传播到传感器阵列。计算传播信号在传感器阵列上的到达方向。由于收集器响应是传感器阵列局部坐标系中到达方向的函数,因此请将局部坐标轴矩阵传递给函数。在接收传感器阵列上收集信号。

七、估计和三角测量

创建 GCC-PHAT 估算器。估计到达方向。使用前面建立的公式对源位置进行三角测量。由于方案仅限于 x-y 平面,因此请将 z 坐标设置为零。

估计的源位置与真实位置匹配,在 30 厘米以内。

八、总结

此示例演示如何使用三角测量执行源本地化。具体而言,该示例展示了如何仿真、传播和处理宽带信号。GCC-PHAT 算法用于估计宽带信号的到达方向。

九、程序

使用Matlab R2022b版本,点击打开。(版本过低,运行该程序可能会报错)

打开下面的“XXX.mlx”文件,点击运行,就可以看到上述效果。

程序下载:https://download.csdn.net/download/weixin_45770896/87666379

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

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

相关文章

速锐得工业物联网技术无线自动化解决方案在物流业的应用

物流业一直走在工业物联网的最前沿,因为许多工业物联网的机会和技术与物流业完美匹配。因此,物流业多年依赖一直使用许多工业物联网相关的传感器和技术。 例如,多年来,物流业一直在包装、托盘和集装箱中使用条形码,从9…

Redis(18. 面试题简析)学习笔记

上一篇 :17. Redis 分布式锁 - 周阳 下一篇 :18. 面试题简析 文章目录 1. 为什么要用缓存?2. redis 和 memcached 有什么区别?3. redis 的线程模型4. 为啥 redis 单线程模型也能效率这么高?5. redis 都有哪些数据类型…

CodeArts持续发力输出,华为云重塑软件开发

配图来自Canva可画 互联网时代,软件技术对企业成功的助益越来越明显。不管是为了顺遂大众趋势,还是迫于生存压力,可以确定的是,目前各类软件的开发已经被纳入众多企业的发展规划当中。 只是,长期以来国内软件行业一直…

机器学习回归任务指标评价及Sklearn神经网络模型评价实践

机器学习回归模型评价是指对回归模型的性能进行评估,以便选择最佳的回归模型。其中,MAE、MSE、RMSE 用于衡量模型预测值与真实值之间的误差大小,R 用于衡量模型对数据的拟合程度。在实际应用中,我们可以使用这些指标来评估回归模型…

git 撤销中间某次提交,保留其他提交的方法

今天上班脑抽了,吧test直接合到了uat,因为项目近期就我一个人开发,自己拉个三个分支再改不同的东西,最后都是发到test分支发测试,发生产的时候一个个和嫌麻烦,直接吧test分支怼到了uat,结果生产就出问题了&…

Revit插件 | 精装模块15个新功能正式上线,快来体验

大家好,这里是建模助手。 建模助手建模、算量、出图,一站搞定的——精装模块,正式上线了! 简单来说,精装模块就是辅助用户快速搭建精装修模型,便于后续的模型渲染、出量、出图工作。 目前暂时上线15个功能&#xff0…

ShardingSphere数据分片、读写分离、数据屏蔽教程

本文不讨论框架实现原理以及源码分析,只做功能使用案例说明 数据分片: 表分片可以帮助评论应用程序更有效地管理其不断增长的评论表,提高性能和可扩展性,同时还使备份和维护任务更易于管理 Apache ShardingSphere 有两种形式&am…

公众号推文添加附件秀米添加附件?三步轻松实现

很多人都不知道,其实公众号文章正文是支持添加附件的,只是需要借助一个叫做“文章附件”的网站来实现。公众号自身是不支持直接上传文件的,但是我们可以通过另外的方式来实现。 其实原理很简单,公众号文章中是可以添加小程序链接…

AOP(小卡拉米!!!)温故!

前面我们说了AOP底层是使用代理模式进行实现,spring写的接口是通过代理反射,实现方法,然后定义切入点: springAOP接口定义的方法有:被加强的方法前执行,被加强的方法后执行,出错了执行&#xf…

docker数据卷volume详细配置案例讲解

docker数据卷 文章目录 docker数据卷1.docker挂载宿主机数据卷1.2.具体配置1.3.挂载命令1.3.1访问页面 2.多端口的容器nginx配置2.1.创建目录位置2.2.访问结果 3.数据卷volume持久化配置3.1.语法格式3.2.详细参数3.3.操作案例3.4.数据改动3.5.查看卷的详细属性 4.与某个容器使用…

如何利用技术做到脱颖而出?亚马逊云科技泛娱乐高峰论坛为你揭秘

互联网技术的飞速进步与数字内容消费的蓬勃发展,使得泛娱乐市场越来越红火,用户对于高品质内容的个性化需求也在不断提升,这对技术底座也提出了更加严苛的要求,时代潮流已至,如何利用技术在一片红海中做到脱颖而出&…

【溯源反制】CDN域前置云函数-流量分析|溯源

文章目录 CDN隐藏C2地址环境搭建上传至威胁感知平台直接分析使用DNSQuerySniffer和Process Monitor定位进程网络流量分析文件属性(IDAPro Ollydbg) 域前置隐藏环境搭建威胁感知流量分析 云服务API网关/云函数云函数使用HTTPcs的流量可以简单的分为三个阶段 云函数使用HTTPS 总结…

kali Linux root密码修改

kali root 密码修改有时候是经常发生的,要么忘记,要么是必须限时要改的,今天记录下,修改方法,以便后续。 Kali Linux的前身是BackTrack Linux发行版。Kali Linux是一个基于Debian的Linux发行版,它被认为是最好的渗透测试的 Linux 发行版之一,而且名副其实。 作为一名从…

Vivado使用技巧:时钟的约束方法

时钟的基础知识 数字设计中,“时钟”表示在寄存器之间可靠地传输数据所需的参考时间;Vivado的时序引擎利用时钟特征来计算时序路径需求,通过计算时间裕量(Slack)的方法报告设计的时序空余;时钟必须…

C++11 -- 入门基础知识

文章目录 C11简介列表初始化std::initializer_list 变量类型推导nullptr范围for循环STL中的一些变化 C11简介 在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1),使得C03这个名字已经取代了C98称为C11之前的最新C标准名称。不过由于C03(TC1)主要是对C98标准中…

怎么在照片上添加logo

怎么在照片上添加logo?现在是全面自媒体的时代,很多旅行博主或者摄影爱好者喜欢将自己拍摄的照片发布到各大平台上,分享自己的摄影作品,不过互联网属于一个开放平台,所以盗取照片的事情时有发生,很多不法分…

LabVIEWCompactRIO 开发指南16 有效使用网络共享变量的技巧

LabVIEWCompactRIO 开发指南16 有效使用网络共享变量的技巧 在使用网络共享变量进行编程时,可以遵循三个技巧来最大化性能并避免任何不需要的行为。图4.11显示了包含每个技巧的初始化过程。 技巧1:初始化共享变量 在应用程序开始时将共享变量初始化为已知值。如…

全文检索-Elasticsearch-整合SpringBoot

文章目录 前言一、整合检索服务1.1 创建 gulimall-search 模块1.2 配置 Maven 依赖1.3 搜索服务注册到注册中心1.4 新增 es 配置类1.5 测试 RestHighLevelClient 组件 二、存储数据到 ES2.1 测试 ES 简单插入数据2.2 测试 ES 查询复杂语句2.3 读入数据 前言 前面记录了 Elasti…

如何修复d3dcompiler_47.dll缺失?多种解决方法分享

在使用Windows操作系统的过程中,有时候会遇到d3dcompiler_47.dll缺失的情况。这个问题可能会导致某些应用程序无法正常运行,因此需要及时解决。本文将介绍如何修复d3dcompiler_47.dll缺失的问题。 一.什么是d3dcompiler_47.dll D3dcompiler_47.dll是Di…

Kali-linux查看打开的端口

对一个大范围的网络或活跃的主机进行渗透测试,必须要了解这些主机上所打开的端口号。在Kali Linux中默认提供了Nmap和Zenmap两个扫描端口工具。为了访问目标系统中打开的TCP和UDP端口,本节将介绍Nmap和Zenmap工具的使用。 4.4.1 TCP端口扫描工具Nmap 使…