这篇文章想讲一下 智能反射面中 UPA (uniform planar array)的信道建模。 之前在智能反射面| Matlab代码实现的信道仿真一文中, 很简略地给了一个基本的UPA仿真代码, 这篇更详细地说一下 关于 面天线 的建模。
当然了, UPA并不只使用于智能反射面中, 尽管在科研方向上, 为了简化问题, 在MIMO问题中大家假设的往往都是线天线阵(ULA), 但实际中往往都是二维的UPA天线。 而在智能反射面中, 作者们实在无法睁眼说瞎话地假设智能反射面是一个线阵了, 毕竟人家名字里都带着一个“面”字还是要“面子”的。 也因此,在IRS方向中, UPA阵列的信道建模更普遍。
先说结论, 是对需要只需要答案而不求甚解的读者的尊重。
对于一个 P × Q P\times Q P×Q的UPA天线阵列, 即共有 P P P行, Q Q Q列天线。 则对于 ( θ , ϕ ) (\theta, \phi) (θ,ϕ)方向的响应可以写为( θ \theta θ为水平角, 被称为azimuth angle, ϕ \phi ϕ 为 仰角, 被称为 elevation angle) :
a ( θ , ϕ ) = 1 P Q [ 1 , ⋯ , e ȷ π ( p sin θ sin ϕ + q cos ϕ ) , ⋯ e ȷ π ( ( Q − 1 ) sin θ sin ϕ + ( P − 1 ) cos ϕ ) ] T (1) \begin{array}{r} \mathbf{a}(\theta, \phi)=\frac{1}{\sqrt{PQ}}\left[1, \cdots, e^{\jmath \pi(p \sin \theta \sin \phi+q \cos \phi)}, \cdots\right. \left.e^{\jmath \pi((\sqrt{Q}-1) \sin \theta \sin \phi+(\sqrt{P}-1) \cos \phi)}\right]^{T} \end{array} \tag{1} a(θ,ϕ)=PQ1[1,⋯,eȷπ(psinθsinϕ+qcosϕ),⋯eȷπ((Q−1)sinθsinϕ+(P−1)cosϕ)]T(1)
其中 p p p 和 q q q 代表了第 p p p行,第 q q q列的天线, 注意, 是从0行0列开始计数的。 另外需要注意的一点是, 这是默认天线以半波长为间隔。 如果你看到的指数项是类似于 e ȷ 2 π λ d e^{\jmath \frac{2\pi}{\lambda}d} eȷλ2πd 之类的形式, 其实是一样的, 因为我们一般默认 d = 1 2 λ d = \frac{1}{2}\lambda d=21λ。
对于(1), 还有一个非常常用且笔者更推荐的形式:
a ( θ , ϕ ) = a y ( θ , ϕ ) ⊗ a z ( ϕ ) (2) \mathbf{a}(\theta, \phi)=\mathbf{a}_y(\theta, \phi) \otimes \mathbf{a}_z(\phi) \tag{2} a(θ,ϕ)=ay(θ,ϕ)⊗az(ϕ)(2)
其中,
a y ( θ , ϕ ) ≜ 1 Q [ 1 , e j π sin θ l sin ϕ l , … , e j π ( Q − 1 ) sin θ l sin ϕ l ] T a z ( ϕ l ) ≜ 1 P [ 1 , e j π cos ϕ l , … , e j π ( P − 1 ) cos ϕ l ] T \mathbf{a}_{y}(\theta, \phi) \triangleq \frac{1}{\sqrt{Q}}[1, e^{\mathrm{j}\pi\sin\theta_l\sin\phi_l}, \dots, e^{\mathrm{j}\pi(Q-1)\sin\theta_l\sin\phi_l}]^T\\ \mathbf{a}_{z}(\phi_l) \triangleq \frac{1}{\sqrt{P}}[1, e^{\mathrm{j}\pi\cos\phi_l}, \dots, e^{\mathrm{j}\pi(P-1)\cos\phi_l}]^T ay(θ,ϕ)≜Q1[1,ejπsinθlsinϕl,…,ejπ(Q−1)sinθlsinϕl]Taz(ϕl)≜P1[1,ejπcosϕl,…,ejπ(P−1)cosϕl]T
这里显然(2)比(1)清爽了很多, 很容易验证, 两者是等价的。
有了天线响应, 那么信道也就非常容易建模了。 对于发送端和接收端都是UPA阵列的情况下, 多径信道可以写为
H = N r N t ∑ l = 0 L α l a r , l ( θ l , ϕ l ) a t , l H ( ψ l , γ l ) \mathbf{H}=\sqrt{N_{\mathrm{r}} N_{\mathrm{t}}} \sum_{l=0}^{L} \alpha_{l} \mathbf{a}_{\mathrm{r}, l}\left(\theta_{l}, \phi_{l}\right) \mathbf{a}_{\mathrm{t}, l}^{H}\left(\psi_{l}, \gamma_{l}\right) H=NrNtl=0∑Lαlar,l(θl,ϕl)at,lH(ψl,γl)
简而言之, 对于每一径,信道就是接收的 a \mathbf{a} a 与 发送端的 a \mathbf{a} a 的 共轭转置相乘, 再乘上一个标量系数。
(1)和(2)是怎么来的呢? 事实上, 他基于且必须基于下图中的建模:
如图:
以这样的建模, 是可以推出 (1)和(2)式的。
怎么说呢? 以 ϕ \phi ϕ为例。 不考虑UPA的水平方向, 比如令 Q = 1 Q=1 Q=1, 也就是说只有一列, 此时UPA退化为一个ULA。 那么我们都知道, ULA的响应是什么呢? 是以入射波与ULA的夹角作为入射角。 那么在ULA的这个三维建模中, 这个入射角, 显然, 就是且必须是 用户 与 z z z轴负半轴的夹角。 因为UPA中的竖直方向其实就是 z z z轴, 那么竖直方向上的入射夹角就是用户与 z z z的夹角。 或者, 更容易理解的, z z z轴与用户, 一线一点构成一个平面, 这个平面就是ULA的平面。 那么谁是入射角, 一目了然。
至于 θ \theta θ角为什么这么建模? 推导太繁琐了, 不写出了, 按立体几何再利用远场近似就能推导。 这里想说的是其实很简单, (1)中为什么是 sin θ \sin\theta sinθ而不是 cos θ \cos\theta cosθ呢? 因为按照图中的建模, θ \theta θ角的范围显然是-90度到90度之间, 而这样 cos θ \cos\theta cosθ的取值范围只有[0,1], 但 sin θ \sin\theta sinθ的取值范围是[-1,1]。 无疑是后者。
天线响应对于 θ \theta θ和 ϕ \phi ϕ的求导, 在推算CRLB或者优化的时候, 很有用, 那结果是什么呢? 利用(2)外加一个经典的结论:
d ( U ⊗ V ) = d ( U ) ⊗ V + U ⊗ d ( V ) \mathrm{d}(\mathbf{U}\otimes \mathbf{V}) = \mathrm{d}(\mathbf{U})\otimes \mathbf{V} +\mathbf{U}\otimes \mathrm{d}(\mathbf{V}) d(U⊗V)=d(U)⊗V+U⊗d(V)
结合(2), 很容易有:
∂ a ( θ , ϕ ) ∂ θ = ( j π cos θ sin ϕ [ 0 , 1 … , Q − 1 ] T ⊙ a y ( θ , ϕ ) ) ⊗ a z ( ϕ ) ∂ a ( θ , ϕ ) ∂ ϕ = ( j π sin θ cos ϕ [ 0 , 1 … , Q − 1 ] T ⊙ a y ( θ , ϕ ) ) ⊗ a z ( ϕ ) + a y ( θ , ϕ ) ⊗ ( − j π sin ϕ [ 0 , 1 , … , P − 1 ] T ⊙ a z ( ϕ ) ) \frac{\partial\mathbf{a}(\theta,\phi)}{\partial\theta}=\left(\mathrm{j} \pi \cos \theta \sin \phi[0,1 \ldots, Q-1]^{T} \odot \mathbf{a}_{y}(\theta, \phi)\right) \otimes \mathbf{a}_{z}(\phi)\\ \frac{\partial\mathbf{a}(\theta,\phi)}{\partial\phi}=\begin{array}{l} \left(\mathrm{j} \pi \sin \theta \cos \phi[0,1 \ldots, Q-1]^{T} \odot \mathbf{a}_{y}(\theta, \phi)\right) \otimes \mathbf{a}_{z}(\phi) +\mathbf{a}_{y}(\theta, \phi) \otimes\left(-\mathrm{j} \pi \sin \phi[0,1, \ldots, P-1]^{T} \odot \mathbf{a}_{z}(\phi)\right) \end{array} ∂θ∂a(θ,ϕ)=(jπcosθsinϕ[0,1…,Q−1]T⊙ay(θ,ϕ))⊗az(ϕ)∂ϕ∂a(θ,ϕ)=(jπsinθcosϕ[0,1…,Q−1]T⊙ay(θ,ϕ))⊗az(ϕ)+ay(θ,ϕ)⊗(−jπsinϕ[0,1,…,P−1]T⊙az(ϕ))
其中 ⊙ \odot ⊙是哈达玛积。
文章浏览阅读5.9k次,点赞2次,收藏16次。Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术。EF Core 可用作对象关系映射程序 (O/RM),以便于 .NET 开发人员能够使用 .NET 对象来处理数据库,这样就不必经常编写大部分数据访问代码了。core不像framwork一样可以在项目信件中直接选择ado.net实体数据模型。如下说简单点,就是在我们做增删改查的时候,不用再写非常繁琐的SQL语句,在以前,我们写完SQL语句后,查询出来的数据还要_.net core ef
文章浏览阅读2.9k次。ionic 4路由配置方法:步骤一:先新建一个page页面$ ionic g page excute步骤二:在tabs.module.ts里导入import { ExcutePageModule } from ‘…/pages/sub/excute/excute.module’;@NgModule({imports: [IonicModule,CommonModule,Forms..._ionrouteroutlet
文章浏览阅读3.6k次,点赞4次,收藏10次。dict.setdefault(key, default=None)功能:如果键不存在于字典中,将会添加该键并将default的值设为该键的默认值,如果键存在于字典中,将读出该键原来对应的值,default的值不会覆盖原来已经存在的键的值。参数:key----要查找的键default-----查找的键不存在时用于设置的默认值使用方法示例:(以下使用方法是我理解setdefault函..._elf.samples.setdefault(
文章浏览阅读1.9k次。Qt 右击弹出菜单 获取QAction 的文本说明因为QAction的signal triggered不能直接穿参数给槽函数这里是直接把信号与槽的信号转为了QAction类这样就可以直接调用QAction的函数获取当前点击的条目的文本了sender是属于QObject类 可以直接从 高的转为底的类代码 //QAction *action = static_cast<QAction*>(sender()); QAction *action1 = (QAction*)se_qt 右键菜单获取选中项qaction
文章浏览阅读898次。hi,大家好!不知道大家最近休息的怎么样,累不累?正如热评所说,一天天啥也不干,但也觉得很累,现在年轻人“累”点太低了。回想小编考研的那段时间,每天宿管阿姨刚开门就去图书馆看书,中午为了节省时间特意错开吃饭高峰,晚上在宿舍关门前回来,在宿舍接着学习到一点左右,虽然每一天的时间安排得满满的,但是很充实,有自己的小目标,并不感觉到累。真正说到累,也是考完研的那段时间,每天都无所事事,说是要把考研时没有..._计算机研究生累吗
文章浏览阅读631次。My Inbox APP是一种transcational类型的APP,但是它和transcational类型的APP的配置方法有所不同,因为它调用的是ABAP工作流。使用My Inbox APP,可以在任何时间地点在不同设备上make decisions。My Inbox APP可以分为:(1)All Items InboxMy Inbox在SAP Fiori启动板中提供了预配置的“All I..._my inbox
文章浏览阅读6.9k次。DateSet的API详解九joindef join[O](other: DataSet[O], strategy: JoinHint): UnfinishedJoinOperation[T, O]def join[O](other: DataSet[O]): UnfinishedJoinOperation[T, O]Creates a new DataSet by joining this Da_def map[r: typeinformation: classtag]
文章浏览阅读1.4k次,点赞3次,收藏9次。前言最近有粉丝建议博主出一篇讲使用socket进行实际编程应用的帖子。这里博主就讲使用Python socket实现简单的网页服务器.前体准备当前实验将会使用tcp的80端口,请各位读者将当前电脑的网页服务器的80端口修改或关闭。本教材使用python (版本:3.7.2,使用python3即可)工作过程这里我们先简单介绍下服务器是如何响应浏览器访问的:1. 建立连接。 既然..._python使用socket创建网页
文章浏览阅读1.2k次。mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATETABLE INSERT等。如果给mysqldump进行备份,从库上停止复制的sql线程然后mysqldump,这个是个很好的选择,因为停止复制就没有写,就不用担心锁表的问题 。下面提供两只备份方法:一、MyISAM引擎备份1. 由于MyISAM引擎为表级锁,因此,..._mysqldump备份数据库可以备份锁定表吗
文章浏览阅读915次,点赞3次,收藏3次。最小直径生成树问题描述:求无向图中直径最小的生成树图的绝对中心定义:图上的某个在节点或边上的点,使得到该点最远的点的距离最小。根据 图的绝对中心 的定义可以知道,到绝对中心距离最远的结点至少有两个,且这两个最远点经过中心点的最短路是最小直径生成树的直径。求解方法:设 d[i][j]d[i][j]d[i][j] 表示图中节点 i,ji,ji,j 之间的最短路。rk[i][j]rk[i][j]rk[i][j] 表示到点 iii 第 jjj 远的点。如图,d[c][i]=min(d[u][i]+x,_最小直径生成树
文章浏览阅读1.5k次。各领域公开数据集下载上网找到了个数据集的整理,不用再搜就自己转过来。原文地址: https://zhuanlan.zhihu.com/p/25138563金融美国劳工部统计局官方发布数据房地产公司 Zillow 公开美国房地产历史数据沪深股票除权除息、配股增发全量数据,截止 2016.12.31上证主板日线数据,截止 2017.05.05,原始价、前复权价、后复权价,126..._ai challenge 2018 dataset download
文章浏览阅读2.3w次,点赞19次,收藏42次。首先介紹一下我們用360搜索派取城市排名前20。我们爬取的网址:https://baike.so.com/doc/24368318-25185095.html我们要爬取的内容:html字段:robots协议:现在我们开始用python IDLE 爬取import requestsr = requests.get("https://baike.so.com/doc/2436831..._python中的request到目标网址为什么返回未登录的页面