阵列信号处理笔记(1):预备知识、阵列流形、波数-频率响应

news2024/11/29 4:46:33

阵列信号处理笔记(1)

文章目录

  • 阵列信号处理笔记(1)
    • 预备知识
    • 从延时到阵列流形矢量
    • 频率波数响应

预备知识

球坐标系的示意

  如图所示的球坐标系中,任意一阵元的位置可以用 ( r , ϕ , θ ) (r,\phi,\theta) (r,ϕ,θ)唯一表示,其直角系下的坐标 p = ( x , y , z ) T \mathbf{p}=(x,y,z)^T p=(x,y,z)T的关系可以通过以下三个方程建立
{ x = r sin ⁡ θ cos ⁡ ϕ y = r sin ⁡ θ sin ⁡ ϕ z = r cos ⁡ θ (1) \begin{aligned} \left\{\begin{aligned} x&=r \sin \theta \cos \phi\\y&=r \sin \theta \sin \phi\\z&=r \cos \theta \end{aligned}\right. \end{aligned}\tag{1} xyz=rsinθcosϕ=rsinθsinϕ=rcosθ(1)

  实际上,一个阵列中往往包含若干个阵元,其位置按照某一特定规则布置,例如沿直线均匀排布的均匀线性阵(ULA),沿着球面排布的阵列,甚至以一种类似银河系星图案排布的多旋臂对数螺旋。无论是何种阵列,其对一特定外信号场 f s r c ( t ) f_{src}(t) fsrc(t)的响应总能使用矢量 f ( t , p ) \mathbf{f}(t,\mathbf{p}) f(t,p)表示,也就是各阵元在空域上对外信号场的采样
f ( t , p ) = ( f ( t , p 0 ) f ( t , p 1 ) ⋮ f ( t , p N − 1 ) ) (2) \mathbf{f}(t,\mathbf{p})=\left(\begin{array}{c} f(t,\mathbf{p_0})\\f(t,\mathbf{p_1})\\ \vdots \\f(t,\mathbf{p_{N-1}})\end{array} \right)\tag{2} f(t,p)= f(t,p0)f(t,p1)f(t,pN1) (2)

从延时到阵列流形矢量

阵元、阵列于平面波

  假设外场信号 f s r c ( t ) f_{src}(t) fsrc(t)为一平面波,即各阵元所接收的信号之间没有本质的不同,仅存在时延的差异,那么显然单个阵元的输出应该为 f s r c ( t ) f_{src}(t) fsrc(t)与带有不同延时 τ \tau τ的冲激信号相卷积。现在令
v ( t ) = ( δ ( t − τ 0 ) δ ( t − τ 1 ) ⋮ δ ( t − τ N − 1 ) ) (3) \mathbf{v}(t)=\left(\begin{array}{c} \delta(t-\tau_0)\\\delta(t-\tau_1)\\\vdots\\\delta(t-\tau_{N-1}) \end{array}\right)\tag{3} v(t)= δ(tτ0)δ(tτ1)δ(tτN1) (3)
为了计算 τ \tau τ的大小,现零波达矢量 a \mathbf{a} a(波面的法向量,方向指向阵元)为
a = ( a x a y a z ) = − ( sin ⁡ θ cos ⁡ ϕ sin ⁡ θ sin ⁡ ϕ cos ⁡ θ ) (4) \mathbf{a}=\left(\begin{array}{c} a_x\\a_y\\a_z \end{array}\right)=-\left(\begin{array}{c} \sin \theta \cos \phi \\\sin \theta \sin \phi \\\cos \theta \end{array}\right)\tag{4} a= axayaz = sinθcosϕsinθsinϕcosθ (4)
这里添加负号的原因是,我们要保证计算出来时延能正确反映阵元相对于位置情况,例如某一阵元A比阵元B晚接收到信号,那么B应该在A的后面而不是前面。根据幼儿园学习的“点与平面位置距离公式”,设某一时刻波面表达式为 a x x + a y y + a z z + b = 0 a_xx+a_yy+a_zz+b=0 axx+ayy+azz+b=0,那么坐标为 p n \mathbf{p_n} pn的阵元与该时刻波面的距离 d d d
d n = a x p x n + a y p y n + a z p z n + b a x 2 + a y 2 + a z 2 = a T p n + b (5) d_n=\frac{a_xp_{x_n}+a_yp_{y_n}+a_zp_{z_n}+b}{\sqrt{a_x^2+a_y^2+a_z^2}}=\mathbf{a}^T \mathbf{p_n}+b\tag{5} dn=ax2+ay2+az2 axpxn+aypyn+azpzn+b=aTpn+b(5)
注意 ∣ a ∣ = 1 |a|=1 a=1。实际上我们只关心阵元之间相对距离而不是精确距离,因为波面是可以任取的,故忽略最后的 b b b,从而
τ n = a T p n c (6) \tau_n=\frac{\mathbf{a}^T \mathbf{p_n}}{c}\tag{6} τn=caTpn(6)
其中 c c c为波在介质中的传播速度。现在定义一个新的量波数 k \mathbf{k} k
k = w c a = 2 π λ a (7) \mathbf{k}=\frac{w}{c}\mathbf{a}=\frac{2 \pi}{\lambda}\mathbf{a}\tag{7} k=cwa=λ2πa(7)
其表示在一个波长范围内的角度变化率,也就相当于波的空域角频率。需要注意的是,这里波数是一个矢量而非标量,因为在波数中隐含了波的传播方向(波矢,因为空间是三维的),也就是波面的法线方向。波数是空域的角频率,这个概念可以类比时域角频率 w w w和周期,如图所示。

系统

  由于
f ( t ) = v ( t ) ∗ f s r c ( t ) (8) \mathbf{f}(t)=\mathbf{v}(t)*f_{src}(t)\tag{8} f(t)=v(t)fsrc(t)(8)
(这里省去了变量 p \mathbf{p} p,其实应该是 f ( t , p ) \mathbf{f}(t,\mathbf{p}) f(t,p))对其两边同时做傅里叶变换可得
F ( w ) = V ( w ) F s r c ( w ) (9) \mathbf{F}(w)=V(w)\mathbf{F}_{src}(w)\tag{9} F(w)=V(w)Fsrc(w)(9)
其中
V ( w ) = ( e − j w τ 0 e − j w τ 1 ⋮ e − j w τ N − 1 ) (10) \mathbf{V}(w)=\left(\begin{array}{c} e^{-jw \tau_0}\\e^{-jw \tau_1}\\\vdots\\e^{-jw \tau_{N-1}} \end{array}\right)\tag{10} V(w)= ejwτ0ejwτ1ejwτN1 (10)
令波数为自变量,将 V \mathbf{V} V的变量做个替换,记替换后为 v k ( k ) \mathbf{v}_\mathbf{k}(\mathbf{k}) vk(k),也就是
v ( k ) = ( e − j k T p 0 e − j k T p 1 ⋮ e − j k T p N − 1 ) (11) \mathbf{v}(\mathbf{k})=\left(\begin{array}{c} e^{-j\mathbf{k}^T \mathbf{p}_0}\\e^{-j\mathbf{k}^T \mathbf{p}_1}\\\vdots\\e^{-j\mathbf{k}^T \mathbf{p}_{N-1}} \end{array}\right)\tag{11} v(k)= ejkTp0ejkTp1ejkTpN1 (11)
v k ( k ) \mathbf{v}_\mathbf{k}(\mathbf{k}) vk(k)阵列流形,其中下标 k \mathbf{k} k代表所定义的阵列流形参数属于 k \mathbf{k} k域(波数域)。

频率波数响应

  如果将每一个阵元之前插入一个线性时不变系统用于对阵元接收信号进行独立的处理,再将其输出累加,即
y ( t ) = ∑ n = 0 N − 1 ∫ − ∞ ∞ f n ( t , p n ) h n ( t − τ ) d τ (12) y(t)=\sum _{n=0} ^{N-1}\int _{-\infty} ^{\infty}f_n(t,\mathbf{p_n})h_n(t-\tau) \mathrm{d}\tau\tag{12} y(t)=n=0N1fn(t,pn)hn(tτ)dτ(12)
系统

  实际上,若交换求和与积分次序,不难发现
y ( t ) = ∫ − ∞ ∞ h ( t − τ ) T f ( t , p n ) d τ (13) y(t)=\int _{-\infty} ^{\infty}\mathbf{h}(t-\tau)^T\mathbf{f}(t,\mathbf{p}_n) \mathrm{d}\tau\tag{13} y(t)=h(tτ)Tf(t,pn)dτ(13)

  对两边同时做傅里叶变换可得
Y ( w ) = H ( w ) T F ( w ) = H ( w ) T v k ( k ) F s r c ( w ) (14) Y(w)=\mathbf{H}(w)^T\mathbf{F}(w)=\mathbf{H}(w)^T\mathbf{v}_\mathbf{k}(\mathbf{k})\mathbf{F}_{src}(w)\tag{14} Y(w)=H(w)TF(w)=H(w)Tvk(k)Fsrc(w)(14)

  令
γ ( w , k ) = H ( w ) T v k ( k ) \mathbf{\gamma}(w,\mathbf{k})=\mathbf{H}(w)^T\mathbf{v}_\mathbf{k}(\mathbf{k}) γ(w,k)=H(w)Tvk(k)
  称 γ ( w , k ) \mathbf{\gamma}(w,\mathbf{k}) γ(w,k)为阵列的频率-波数响应

   2023年06月04日 于绍兴

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

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

相关文章

前端045_单点登录SSO_实现流程

单点登录SSO_实现流程 1、背景2、基于同域下 Cookie 实现 SSO1、背景 在企业发展初期,企业使用的系统很少,通常一个或者两个,每个系统都有自己的登录模块,运营人员每天用自己的账号登录,很方便。 但随着企业的发展,用到的系统随之增多,运营人员在操作不同的系统时,需要…

Linux命令(28)之locate

Linux命令之locate 1.locate介绍 linux命令locate用于查找文件所在位置,与which、whereis命令类似,locate命令将会在预先建立好的档案数据库中查询文件。 locate档案数据库路径:/var/lib/mlocate locate档案数据库名称:mlocat…

SpringBoot之Transactional事务

目录 一、事务管理方式二、事务提交方式三、事务隔离级别四、事务传播行为1、Propagation.REQUIRED2、Propagation.SUPPORTS3、Propagation.MANDATORY4、Propagation.REQUIRES_NEW5、Propagation.NOT_SUPPORTED6、Propagation.NEVER7、Propagation.NESTED 五、事务回滚六、只读…

前后端分离项目之登录页面(前后端请求、响应和连接数据库)

目录 一、前端登录发起请求 二、后端请求接收 三、连接数据库 四、后端响应 五、前端处理 六、在前端验证用户是否登录 七、web会话跟踪 八、请求拦截器和响应拦截器 本文Vue-cli前端项目基于文章: Vue-cli搭建项目(包含Node.js安装和ElementUI安装)_小俱的…

2. requests.get()函数访问网页(小白入门)

2. requests.get()函数访问网页(小白入门) 文章目录 2. requests.get()函数访问网页(小白入门)1. 人工访问网页2. 爬虫第一步:发起网络请求3. requests库的安装4. requests.get()函数:发送网络请求5. 代码解析1. 导入库的语法2. 指定网址3. 发送请求4. 输…

chatgpt赋能python:Python取消撤销——让你的代码更加高效

Python取消撤销——让你的代码更加高效 在Python编程的过程中,经常会出现需要撤销操作的场景。但是,在一些复杂的代码编辑器中,常规的CtrlZ撤销操作可能无法满足你对代码精度的要求。为此,Python取消撤销就应运而生。 Python取消…

多变量系统的最小二乘辨识问题的推导以及matlab仿真

1.单输入单输出情况的推导;2.两输入两输出情况的推导,并进行matlab仿真以及完成仿真报告。 多变量系统的最小二乘辨识问题是确定一个线性多输入多输出(MIMO)系统的未知参数,使得该系统能够以最佳方式近似给定输入和输出之间的关系。在本例中,我们将展示单输入单输出(SIS…

软件外包开发的测试用例

软件测试用例是一组详细的步骤、输入数据、预期结果和实际结果,用于验证软件是否满足特定需求或功能。编写测试用例的目的是确保软件的质量和性能。今天和大家分享编写软件测试用例的一般步骤,希望对大家有所帮助。北京木奇移动技术有限公司,…

解决record on line 2: wrong number of fields

背景 基于"encoding/csv"库解析。 共解析多个文档,只有这一个解析有问题,所用代码一致,进行比较后 发现该文档和其它文档不同,其它文档是第一行就是列名,下面都是数据; 而这个文档前两行有数据且…

k8s部署Elasticsearch集群+Kibana方案--开启X-Pack 安全认证

前言 本文中使用StatefulSet 方式部署 Elasticsearch 集群,并且开启X-Pack 安全认证,存储使用的是NFS,属于一个初学者自己探索的方案,如果有比较好的方案,还请不吝评论赐教。 版本说明: Kubernetes v1.25…

微信小程序uniapp医患管理系统预约挂号就诊处方满意评价系统

从系统开发环境、系统目标、设计流程、功能设计等几个方面对系统进行了系统设计。开发出本医患关系管理系统,主要实现了管理员后端;首页、个人中心、用户管理、医生管理、医生信息管理、患者信息管理、预约就诊管理、就诊信息管理、投诉管理、投诉反馈管…

【走进Linux的世界】Linux---基本指令(2)

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【Linux专栏】🎈 本专栏旨在分享学习Linux的一点学习心得,欢迎大家在评论区讨论💌 目录 ls *man指令小…

redis缓存穿透、缓存雪崩 、缓存击穿

一、缓存穿透、缓存雪崩 、缓存击穿 摘自尚硅谷文档 1、缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中,将去查询数据库,但是数 据库也无此记录,我们没有将这次查询的 null 写入缓存,这将导致这个…

Spin加载中(antd-design组件库)loading效果简单使用

1.Spin加载中 用于页面和区块的加载中状态。 2.何时使用 页面局部处于等待异步数据或正在渲染过程时,合适的加载动效会有效缓解用户的焦虑。 组件代码来自: 加载中 Spin - Ant Design 3.本地验证前的准备 参考文章【react项目antd组件-demo:hello-world_…

PyTorch深度学习实战(2)——PyTorch基础

PyTorch深度学习实战(2)——PyTorch基础 0. 前言1. 搭建 PyTorch 环境2. PyTorch 张量2.1 张量初始化2.2 张量运算2.3 张量对象的自动梯度计算 3. PyTorch 张量相对于 NumPy 数组的优势小结系列链接 0. 前言 PyTorch 是广泛应用于机器学习领域中的强大开…

AutoHotKey脚本初步:判断和选择

文章目录 脚本基础连击识别setTimer判断和选择 脚本基础 尽管通过窗口识别与按键映射,就可以胜任很多工作了,但AutoHotKey仍提供了一些简单的编程功能,对一些稍微复杂的任务,也可以做到得心应手。但要注意一点,AHK的V…

【操作系统】Linux 中的 Page Cache

【操作系统】Linux 中的 Page Cache 参考资料: 文件 I/O 简明概述 - page cache 进程写文件时,进程发生了崩溃,已写入的数据会丢失吗? Linux Page Cache 调优在 Kafka 中的应用 【操作系统】一文带你深入浅出零拷贝技术 【操作系…

大数据Doris(三十四):Doris配置Spark与Yarn

文章目录 Doris配置Spark与Yarn 一、Doris配置Spark 1、配置 SPARK_HOME 环境变量 2、配置SPARK 依赖包

JavaScript之BOM(八)

JavaScript之BOM 1、BOM中的对象2、window对象2.1、简介2.2、常用的属性与方法2.3、常用的事件2.4、定时器和延时器 3、navigator 常用属性与方法4、history 常用属性与方法5、location 常用属性与方法 BOM:浏览器对象模型(Browser Object Model&#xf…

交直流系统潮流计算及相互关联特性分析(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…