文章目录

  • 前言
  • DFT 矩阵
  • ULA的响应向量
  • DFT 码本
  • 使用码本画出空间方向图
  • UPA天线响应
  • 二维DFT
  • 二维DFT对应的UPA码本
  • 正交性证明
    • ULA的正交码字
    • UPA的正交码字
  • 相关阅读

前言

在MIMO信道估计等问题中, 往往需要使用码本, 而最常用的就是DFT码本。 本文介绍了为何DFT码本可以如此适用于作为信道估计的码本。首先会从ULA 阵列天线入手, 然后拓展到UPA 平面天线。

DFT 矩阵

众所周知, 离散傅里叶变换(DFT)可以写为:
X[k]=∑n=0N−1x[n]e−j(2π/N)kn,其中 (0≤k≤N−1)(1)X[k]=\sum_{n=0}^{N-1} x[n] e^{-j(2 \pi / N) k n}, \text { 其中 }(0 \leq k \leq N-1) \tag{1}X[k]=n=0∑N−1​x[n]e−j(2π/N)kn, 其中 (0≤k≤N−1)(1)
DFT的相关资料很多, 这里不多赘述。 X[k]X[k]X[k] 代表的是频域第 kkk 个频点的值(响应), x[n]x[n]x[n] 是 时域的 第 nnn个信号, NNN 是总采样数。
我们可以有下式的DFT矩阵F\mathbf{F}F:

F=(111⋯11ξξ2⋯ξn−11ξ2ξ4⋯ξ2(n−1)⋮⋮⋮⋱⋮1ξn−1ξ2(n−1)⋯ξ(n−1)(n−1))⋅(2)\mathbf{F}=\left(\begin{array}{ccccc} 1 & 1 & 1 & \cdots & 1 \\ 1 & \xi & \xi^{2} & \cdots & \xi^{n-1} \\ 1 & \xi^{2} & \xi^{4} & \cdots & \xi^{2(n-1)} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & \xi^{n-1} & \xi^{2(n-1)} & \cdots & \xi^{(n-1)(n-1)} \end{array}\right) \cdot \tag{2}F=⎝⎜⎜⎜⎜⎜⎛​111⋮1​1ξξ2⋮ξn−1​1ξ2ξ4⋮ξ2(n−1)​⋯⋯⋯⋱⋯​1ξn−1ξ2(n−1)⋮ξ(n−1)(n−1)​⎠⎟⎟⎟⎟⎟⎞​⋅(2)
其中 ξ=e−j(2π/N)\xi = e^{-j(2 \pi / N)}ξ=e−j(2π/N).
由(1)可知:
xfreq=Fxt\mathbf{x}_{freq} = \mathbf{F}\mathbf{x}_{t}xfreq​=Fxt​
其中, xt=[x[0],…,x[N−1]]T\mathbf{x}_{t} = [x[0], \dots, x[N-1]]^Txt​=[x[0],…,x[N−1]]T是时域信号, xfreq=[X[0],…,X[N−1]]T\mathbf{x}_{freq}=[X[0], \dots, X[N-1]]^Txfreq​=[X[0],…,X[N−1]]T是频域信号。 简而言之, 对时域信号左乘DFT矩阵, 即可得到频域信号。
注意: F\mathbf{F}F是正交矩阵, 即FFH=FHF=NI\mathbf{F}\mathbf{F}^H=\mathbf{F}^H\mathbf{F}=N\mathbf{I}FFH=FHF=NI. 这个可以通过等比数列求和公式得到。

ULA的响应向量

对于共NNN个天线, 天线间隔为半波长的阵列, 其响应向量可以表示为:
aULA(ϕ)=1N[1,ejπsin⁡(ϕ),…,ejπ(N−1)sin⁡(ϕ)]T\mathbf{a}_{\mathrm{ULA}}(\phi)=\frac{1}{\sqrt{N}}\left[1, e^{j \pi \sin (\phi)}, \ldots, e^{j \pi(N-1) \sin (\phi)}\right]^{T}aULA​(ϕ)=N​1​[1,ejπsin(ϕ),…,ejπ(N−1)sin(ϕ)]T
响应向量为 入射角度 ϕ\phiϕ 的函数。

DFT 码本

那么, 我们可以把 NNN 个 不同入射角度对应的 响应向量 合写在一个矩阵中, 如下:

A=(111⋯1ejπsin⁡(ϕ0)ejπsin⁡(ϕ1)ejπsin⁡(ϕ2)⋯ejπsin⁡(ϕN−1)ejπ2sin⁡(ϕ0)ejπ2sin⁡(ϕ1)ejπ2sin⁡(ϕ2)⋯ejπ2sin⁡(ϕN−1)⋮⋮⋮⋱⋮ejπ(N−1)sin⁡(ϕ0)ejπ(N−1)sin⁡(ϕ1)ejπ(N−1)sin⁡(ϕ2)⋯ejπ(N−1)sin⁡(ϕN−1))⋅(3)\mathbf{A}=\left(\begin{array}{ccccc} 1 & 1 & 1 & \cdots & 1 \\ e^{j \pi \sin (\phi_0)} & e^{j \pi \sin (\phi_1)} & e^{j \pi \sin (\phi_2)} & \cdots & e^{j \pi \sin (\phi_{N-1})} \\ e^{j \pi 2\sin (\phi_0)} & e^{j \pi 2\sin (\phi_1)} & e^{j \pi 2\sin (\phi_2)} & \cdots & e^{j \pi 2\sin (\phi_{N-1})} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ e^{j \pi (N-1)\sin (\phi_0)} & e^{j \pi (N-1)\sin (\phi_1)} & e^{j \pi (N-1)\sin (\phi_2)} & \cdots & e^{j \pi (N-1)\sin (\phi_{N-1})} \end{array}\right) \cdot \tag{3}A=⎝⎜⎜⎜⎜⎜⎛​1ejπsin(ϕ0​)ejπ2sin(ϕ0​)⋮ejπ(N−1)sin(ϕ0​)​1ejπsin(ϕ1​)ejπ2sin(ϕ1​)⋮ejπ(N−1)sin(ϕ1​)​1ejπsin(ϕ2​)ejπ2sin(ϕ2​)⋮ejπ(N−1)sin(ϕ2​)​⋯⋯⋯⋱⋯​1ejπsin(ϕN−1​)ejπ2sin(ϕN−1​)⋮ejπ(N−1)sin(ϕN−1​)​⎠⎟⎟⎟⎟⎟⎞​⋅(3)

如果我们令[sin⁡(ϕ0),sin⁡(ϕ1),…,sin⁡(ϕN−1)]=[0,−2N,…,−2(N−1)N][\sin(\phi_0), \sin(\phi_1), \dots, \sin(\phi_{N-1})] = [0, -\frac{2}{N}, \dots, -\frac{2(N-1)}{N}][sin(ϕ0​),sin(ϕ1​),…,sin(ϕN−1​)]=[0,−N2​,…,−N2(N−1)​], 那么比较(2) 和 (3), 可知 A=F\mathbf{A} = \mathbf{F}A=F.但需要注意: sin⁡(ϕ)∈[−1,1]\sin(\phi)\in[-1, 1]sin(ϕ)∈[−1,1], 所以有些值是取不到的。 同时也有: ejπ2a=ejπ(2a+2)e^{j\pi 2a} = e^{j\pi (2a+2)}ejπ2a=ejπ(2a+2).
因此,我们应该令,[sin⁡(ϕ0),sin⁡(ϕ1),…,sin⁡(ϕN−1)]=[0,−2N,…,−NN,−N+2N+2,…,−2(N−1)N+2][\sin(\phi_0), \sin(\phi_1), \dots, \sin(\phi_{N-1})] = [0, -\frac{2}{N}, \dots, -\frac{N}{N}, -\frac{N+2}{N} + 2, \dots, -\frac{2(N-1)}{N} +2][sin(ϕ0​),sin(ϕ1​),…,sin(ϕN−1​)]=[0,−N2​,…,−NN​,−NN+2​+2,…,−N2(N−1)​+2], 此时 A=F\mathbf{A} = \mathbf{F}A=F 仍成立。 同时, 我们可以倒推出所有ϕn\phi_nϕn​。

这里, A\mathbf{A}A 就是基于 DFT矩阵得到的 DFT码本。A\mathbf{A}A 的每一列 代表了 一个入射角度 的 对应天线响应。 其最大的特点是, 每一个入射角度的 天线响应之间互相正交 (DFT矩阵的性质)。码本覆盖了空间0~180度的范围(对应sin值从-1到1),分辨力(最小间隔)为 sin⁡(2N)\sin(\frac{2}{N})sin(N2​).

下面是简单的matlab代码实现一个DFT码本A\mathbf{A}A, N为阵列天线数:

N = 8;
% columns
t = 0 : -2 / N : -2 * (N-1) / N;
t((t<-1)) = t((t<-1)) + 2;
% rows
g = 0 :(N-1);
A = exp(1j * pi * g' * t);

作为对比, DFT的码本生成代码为:

% DFT
for i = 1 :Nfor j = 1 : NF(i,j) = exp(-1j * 2 * pi * (i-1) * (j-1) / N);end
end

可以发现A=F\mathbf{A}=\mathbf{F}A=F。
很容易验证, A\mathbf{A}A的每一列(代表一个入射方向的天线响应)都是互相正交的。 这也是DFT码本最大的意义。 作为对比, 大家可以试试, 同样是生成N个码字(对应N个入射角度)的码本, 如果我们只是简单的将空间0-180度均匀分成N份,如第一个码字是入射角度为0度的天线响应, 第二个码字为180N\frac{180}{N}N180​度的天线响应, 这样得到的码本,码字间是不会互相正交的。 正交码本的好处有很多, 本文中不赘述了。 简单总结一下:DFT码本相当于将0-180度的空间, 对应到sin值-1到1的空间。 再将-1到1按等间隔 2N\frac{2}{N}N2​划分N个码字, 即可得到正交的码本。 当然,由于三角函数的性质, 对cos值这样划分也有类似的结论,不再赘述。

使用码本画出空间方向图

通过上面的分析, 我们知道, 其实想生成一个正交码本的核心在于相邻码字间的sin值间隔为2N\frac{2}{N}N2​即可, 不要求从哪个开始,哪个结束。 因此我们可以把A\mathbf{A}A中的列按从sin值-1到1从小到大排序如下, 此时A\mathbf{A}A仍是正交矩阵:

N = 64;
% columns
t = -1 : 2 / N : (N-1) / N;
% rows
g = 0 :(N-1);
A = exp(1j * pi * g' * t);

这里ttt中就不会出现超过-1或1的情况, 且对应的弧度制是从小到大顺序排列的, 这样的A\mathbf{A}A更合适。

假设我们的波束成形(不管是发送或是接收)向量为W∈CN×1\mathbf{W}\in \mathbb{C}^{N \times 1}W∈CN×1,其对应的空间方向图(在空间每个角度上的能量响应)可以表示为:
r=∥WHA∥\mathbf{r} = \|\mathbf{W}^H\mathbf{A}\|r=∥WHA∥,
rk\mathbf{r}_krk​对应的是A\mathbf{A}A的第kkk列, 代表的方向是
ϕ=sin⁡−1(2(k−1)N−1)\phi =\sin^{-1}(\frac{2(k -1) }{N}-1)ϕ=sin−1(N2(k−1)​−1)
写个简单的小程序验证一下:

N = 64;
% columns
t = -1 : 2 / N : (N-1) / N;
% rows
g = 0 :(N-1);
A = exp(1j * pi * g' * t);
idx =  0 : (N-1);
phi = 50 / 180 * pi;
W = 1 / sqrt(N) * exp(1j * pi * idx.' * sin(phi));
r = abs(W' * A);
xlabel = asin(t) / pi * 180;
plot(xlabel, r)

这里我们用对准50度方向的波束成形向量, 画出其对应的空间方向图, 如下:

可以看到, 确实在50度的时候, 响应值是最大的, 符合预期。

UPA天线响应

除了ULA, 实际中平面天线阵列(UPA)的应用更为广泛。 UPA的天线响应则与两个参数相关: 入射水平角 θ\thetaθ 和 仰角 ϕ\phiϕ. UPA的响应公式可以表示为:
aUPA(ϕ,θ)=1N[1,…,ejπ(qsin⁡(ϕ)cos⁡(θ)+pcos⁡(ϕ))…,ejπ((Q−1)sin⁡(ϕ)cos⁡(θ)+(P−1)cos⁡(ϕ))]T(4)\begin{aligned} \mathbf{a}_{\mathrm{UPA}}(\phi, \theta)=\frac{1}{\sqrt{N}}\left[1, \ldots, e^{j \pi(q \sin (\phi) \cos(\theta)+p \cos (\phi))}\right. \left.\ldots, e^{j \pi((Q-1) \sin (\phi) \cos(\theta)+(P-1) \cos (\phi))}\right]^{T} \end{aligned} \tag{4}aUPA​(ϕ,θ)=N​1​[1,…,ejπ(qsin(ϕ)cos(θ)+pcos(ϕ))…,ejπ((Q−1)sin(ϕ)cos(θ)+(P−1)cos(ϕ))]T​(4)
PPP 和 QQQ 代表了UPA共有PPP行,QQQ列天线。 对应的UPA建模如图:

图中, 我们以中心的接收端UPA的左下角的天线作为第一行第一列元素。 θ\thetaθ发送UPA(图中右下角的小UPA)投影到xyxyxy平面后与xxx轴的夹角, ϕ\phiϕ是与zzz轴负半轴的夹角。 简单理解这个响应公式:由于相位与距离成反比。 那么ppp行的天线相对于第一行的天线, 与发射UPA的距离是增加的, 那么相位就是减小的。 如果第一行第一列天线的相位我们归一化为1作为初始相位, 那么第ppp行天线的相位就是一个负值。 而信道H\mathbf{H}H通常被我们写为H=aratH\mathbf{H} = \mathbf{a}_r\mathbf{a}_t^HH=ar​atH​, 其中at\mathbf{a}_tat​就是我们想求的UPA天线响应。这里有点绕。 需要注意的是, (4)式是一个正确UPA响应的表达式。 但是对于不同的建模方式, 如, 以左上角第一个元素为第一行第一列进行建模, 那么结果就不一样了。 包括对θ\thetaθ 和 ϕ\phiϕ的不同定义,也会使最后的建模结果有所不同。但万变不离齐总, 核心都是基于 相位与距离成反比这一点上。

因为我在项目里用的是(4)式的响应, 下面也沿用这个响应表达式。 需要指出, 后续的DFT码本推导适用于各种不同建模下的响应, 只需要简单的变量代换即可。

二维DFT

二维DFT的公式如下:
F(u,v)=∑x=0M−1∑y=0N−1f(x,y)e−j2π(uxM+vyN)(5)F(u, v)=\sum_{x=0}^{M-1} \sum_{y=0}^{N-1} f(x, y) e^{-j 2 \pi\left(\frac{u x}{M}+\frac{v y}{N}\right)} \tag{5}F(u,v)=x=0∑M−1​y=0∑N−1​f(x,y)e−j2π(Mux​+Nvy​)(5)
其中 u=0,…,M−1u=0, \dots, M-1u=0,…,M−1, v=0,…,N−1v=0, \dots, N-1v=0,…,N−1.

G=[f(0,0)f(0,1)⋯f(0,N−1)f(1,0)f(1,1)⋯f(1,N−1)⋮⋮⋯⋮f(M−1,0)f(M−1,1)⋯f(M−1,N−1)]\mathbf{G}=\left[\begin{array}{cccc} f(0,0) & f(0,1) & \cdots & f(0, N-1) \\ f(1,0) & f(1,1) & \cdots & f(1, N-1) \\ \vdots & \vdots & \cdots & \vdots \\ f(M-1,0) & f(M-1,1) & \cdots & f(M-1, N-1) \end{array}\right]G=⎣⎢⎢⎢⎡​f(0,0)f(1,0)⋮f(M−1,0)​f(0,1)f(1,1)⋮f(M−1,1)​⋯⋯⋯⋯​f(0,N−1)f(1,N−1)⋮f(M−1,N−1)​⎦⎥⎥⎥⎤​
可将其列化为 g=vec(G)\mathbf{g} = \mathrm{vec}(\mathbf{G})g=vec(G). 同时也可将F\mathbf{F}F列化为f\mathbf{f}f, 那么存在二维DFT矩阵T\mathbf{T}T, 使得 f=Tg\mathbf{f} = \mathbf{T}\mathbf{g}f=Tg。根据(5)式, 可以得到T\mathbf{T}T的第kkk行第jjj列的元素如下: (kkk对应于f\mathbf{f}f的第kkk个元素, 也就是F\mathbf{F}F的第uuu行第vvv列, 即k=u+(v−1)∗Mk=u + (v-1) * Mk=u+(v−1)∗M; 第jjj列对应于g\mathbf{g}g的第jjj个元素, 也就是G\mathbf{G}G的第xxx行第yyy列, j=x+(y−1)∗Mj = x + (y-1) * Mj=x+(y−1)∗M:
T(k,j)=e−j2π((u−1)(x−1)M+(v−1)(y−1)N)\mathbf{T}(k, j)=e^{-j 2 \pi\left(\frac{(u-1)(x-1)}{M}+\frac{(v-1)(y-1)}{N}\right)}T(k,j)=e−j2π(M(u−1)(x−1)​+N(v−1)(y−1)​)
其实应该从0开始算较好。 这里的写法只是避免了第0行的说法。 下面是实现的代码:

%2D DFT
M = 16;
N = 8;
K = M * N;
T = zeros(K, K);
for k = 0 : K-1v = floor(k / M);u = k - v * M;for j = 0 : K-1y = floor(j / M);x = j - y * M;T(k + 1, j + 1) = exp(-1j * 2 * pi * (u * x/ M + v * y / N));end
end

类似一维DFT矩阵, T\mathbf{T}T矩阵有两个性质:

  • 第kkk行和第kkk列完全相等。
  • 列与列,行与行之间均正交。

而第二个性质, 就是我们用来设计正交码本的思路。

二维DFT对应的UPA码本

回顾一下两个式子, 二维DFT:
T(k,j)=e−j2π(uxM+vyN)\mathbf{T}(k, j) = e^{-j 2 \pi\left(\frac{u x}{M}+\frac{v y}{N}\right)}T(k,j)=e−j2π(Mux​+Nvy​)
UPA的响应式子:
aUPA(ϕ,θ)=1N[1,…,ejπ(qsin⁡(ϕ)cos⁡(θ)+pcos⁡(ϕ))…,ejπ((Q−1)sin⁡(ϕ)cos⁡(θ)+(P−1)cos⁡(ϕ))]T\begin{aligned} \mathbf{a}_{\mathrm{UPA}}(\phi, \theta)=\frac{1}{\sqrt{N}}\left[1, \ldots, e^{j\pi(q \sin (\phi) \cos(\theta)+p \cos (\phi))}\right. \left.\ldots, e^{j \pi((Q-1) \sin (\phi) \cos(\theta)+(P-1) \cos (\phi))}\right]^{T} \end{aligned}aUPA​(ϕ,θ)=N​1​[1,…,ejπ(qsin(ϕ)cos(θ)+pcos(ϕ))…,ejπ((Q−1)sin(ϕ)cos(θ)+(P−1)cos(ϕ))]T​
通过变量代换,可以有:
e−j2π(uxM+vyN)=e−jπ(u2xM+v2yN)=e−jπ(p2xM+q2yN)e^{-j 2 \pi\left(\frac{u x}{M}+\frac{v y}{N}\right)} = e^{-j \pi(u\frac{2x}{M} + v\frac{2y}{N})} = e^{-j \pi(p\frac{2x}{M} + q\frac{2y}{N})}e−j2π(Mux​+Nvy​)=e−jπ(uM2x​+vN2y​)=e−jπ(pM2x​+qN2y​),
只需令 cos⁡(ϕ)=−2xM\cos (\phi)=-\frac{2x}{M}cos(ϕ)=−M2x​, sin⁡(ϕ)cos⁡(θ)=−2yN\sin (\phi) \cos(\theta)=-\frac{2y}{N}sin(ϕ)cos(θ)=−N2y​,通过改变x,yx,yx,y的值, 我们就可以得到多个对应不同θ\thetaθ和ϕ\phiϕ的码字, 且互相之间是正交的。 同样的, 我们有cos⁡(ϕ)∈[−1,1]\cos(\phi)\in [-1, 1]cos(ϕ)∈[−1,1] 和 sin⁡(ϕ)cos⁡(θ)∈[−1,1]\sin(\phi)\cos(\theta)\in [-1, 1]sin(ϕ)cos(θ)∈[−1,1], 当2xM>1\frac{2x}{M} > 1M2x​>1 或 2yN>1\frac{2y}{N} > 1N2y​>1 时, cos⁡(ϕ)=−2xM+2\cos (\phi)=-\frac{2x}{M} + 2cos(ϕ)=−M2x​+2,sin⁡(ϕ)cos⁡(θ)=−2yN+2\sin (\phi) \cos(\theta)=-\frac{2y}{N} + 2sin(ϕ)cos(θ)=−N2y​+2。

假设我们现在有波束成形矩阵W\mathbf{W}W, 想获取其在各个角度上的响应, 只需要计算:
r=∥WHT∥\mathbf{r} = \|\mathbf{W}^H\mathbf{T}\|r=∥WHT∥
(注意, TT=T\mathbf{T}^T=\mathbf{T}TT=T)
rk\mathbf{r}_krk​代表了第kkk个码字(方向)上的响应, 可通过kkk算出其对应的xxx和yyy值。如, k=2k=2k=2 就代表x=2x=2x=2, y=0y=0y=0 (所有数从0开始计算)。
那么:
ϕ={cos⁡−1(−2xM),2xM≤1cos⁡−1(−2xM+2),2xM>1\phi = \left\{\begin{array}{c} \cos^{-1}\left(-\frac{2 x}{M}\right) ,\frac{2 x}{M}\le 1\\ \cos^{-1}\left(-\frac{2 x}{M}+2\right) ,\frac{2 x}{M}> 1 \end{array}\right.ϕ={cos−1(−M2x​),M2x​≤1cos−1(−M2x​+2),M2x​>1​

θ={cos⁡−1(−2yNsin⁡ϕ),2yN≤1cos⁡−1(−2yN+2sin⁡ϕ),2yN>1\theta = \left\{\begin{array}{c} \cos^{-1}\left(-\frac{2 y}{N\sin\phi}\right) ,\frac{2 y}{N}\le 1\\ \cos^{-1}\left(\frac{-\frac{2 y}{N}+2}{\sin\phi}\right) ,\frac{2 y}{N}> 1 \end{array}\right.θ=⎩⎨⎧​cos−1(−Nsinϕ2y​),N2y​≤1cos−1(sinϕ−N2y​+2​),N2y​>1​

需要注意的是, 在求θ\thetaθ的时候, 某个码字有一定概率是不对应一个有意义的θ\thetaθ。因为 2yNsin⁡ϕ>1\frac{2 y}{N\sin\phi} > 1Nsinϕ2y​>1时, θ\thetaθ是没有意义的。 但为了正交性, 我们没有舍弃这些无意义的码字。

类似ULA, 我们验证下方向图,由于二维DFT不好画图了, 我们直接找出最大能量点对应的θ\thetaθ和ϕ\phiϕ看是否与我们使用的波束成形向量的角度一致:

M = 64;
N = 64;
K = M * N;
T = zeros(K, K);
for k = 0 : K-1v = floor(k / M);u = k - v * M;for j = 0 : K-1y = floor(j / M);x = j - y * M;T(k + 1, j + 1) = exp(-1j * 2 * pi * (u * x/ M + v * y / N));end
endphi = 50 / 180 * pi;
theta = 40 / 180 * pi;
for i = 1 : Mfor j = 1 : NW(i, j) = exp(1j * pi * (j * sin(phi) * cos(theta) + i * cos(phi)));end
endw = W(:);
r = abs(w' * T);
[~, k] = max(r);
k = k - 1; %从0开始计算
y = floor(k / M);
x = k - y * M;
tmp = 2 * x / M;
if tmp > 1tmp = tmp -2;
end
est_phi = acos(-tmp) / pi * 180;
tmp = 2 * y / M;
if tmp > 1tmp = tmp -2;
end
est_theta = acos(-tmp / sin(phi)) / pi * 180;

如上,我们使用了40度的θ\thetaθ和50度的ϕ\phiϕ, 最后最大的能量所对应的方向的角度分别是39.18和48.95,可以认为基本是对应上的。

类似ULA,我们也可以自主调换矩阵的列,只要保证间隔分别是2M\frac{2}{M}M2​和1N\frac{1}{N}N1​即可了。
以下为示例代码:

Aset = [];
for m = -1 : 2/N : (N-1)/Nfor n = -1 : 2/M : (M-1)/MA = zeros(M, N);for p = 1 : Mfor q = 1 : NA(p, q) = exp(1j*pi*(q-1)*m+1j*pi*(p-1)*n);endenda = A(:);Aset = [Aset, a];end
end

寻找最大响应值对应的角度:

[~, idx] = max(S);
idx = idx - 1; % 从0开始算
a = mod(idx, M);
b = floor(idx / M);
est_phi = acos(-1 + a * 2 / M) / pi * 180;
tmp = -1 + b * 2 / N;
est_theta = acos(tmp / sin(phi)) / pi * 180;

正交性证明

在我看来, DFT其实和正交码本的设计本身没有关系。 事实上, 我们的目的只是为了设计出的码字能尽量均匀地分割整个角度空间, 并彼此之间互相正交。 而类似DFT的形式, 可以做到这一点。 这一节我们脱离DFT, 仅从ULA, UPA的天线响应本身, 来设计正交的码本。

ULA的正交码字

ULA的天线响应:
aULA(ϕ)=1N[1,ejπsin⁡(ϕ),…,ejπ(N−1)sin⁡(ϕ)]T\mathbf{a}_{\mathrm{ULA}}(\phi)=\frac{1}{\sqrt{N}}\left[1, e^{j \pi \sin (\phi)}, \ldots, e^{j \pi(N-1) \sin (\phi)}\right]^{T}aULA​(ϕ)=N​1​[1,ejπsin(ϕ),…,ejπ(N−1)sin(ϕ)]T
先假设我们有两个码字,分别为:
aULA(ϕ1)=1N[1,ejπsin⁡(ϕ1),…,ejπ(N−1)sin⁡(ϕ1)]TaULA(ϕ2)=1N[1,ejπsin⁡(ϕ2),…,ejπ(N−1)sin⁡(ϕ2)]T\mathbf{a}_{\mathrm{ULA}}(\phi_1)=\frac{1}{\sqrt{N}}\left[1, e^{j \pi \sin (\phi_1)}, \ldots, e^{j \pi(N-1) \sin (\phi_1)}\right]^{T} \\\mathbf{a}_{\mathrm{ULA}}(\phi_2)=\frac{1}{\sqrt{N}}\left[1, e^{j \pi \sin (\phi_2)}, \ldots, e^{j \pi(N-1) \sin (\phi_2)}\right]^{T}aULA​(ϕ1​)=N​1​[1,ejπsin(ϕ1​),…,ejπ(N−1)sin(ϕ1​)]TaULA​(ϕ2​)=N​1​[1,ejπsin(ϕ2​),…,ejπ(N−1)sin(ϕ2​)]T

他们的内积可以写为:
aULA(ϕ1)HaULA(ϕ2)=1NΣi=0N−1ejπi(sin⁡(ϕ1)−sin⁡(ϕ2))(6)\mathbf{a}_{\mathrm{ULA}}(\phi_1)^H\mathbf{a}_{\mathrm{ULA}}(\phi_2)=\frac{1}{N}\Sigma_{i=0}^{N-1} e^{j \pi i(\sin (\phi_1)-\sin (\phi_2))} \tag{6}aULA​(ϕ1​)HaULA​(ϕ2​)=N1​Σi=0N−1​ejπi(sin(ϕ1​)−sin(ϕ2​))(6)
这是一个等比数列求和问题,
而等比数列求和公式为:
Sn=a1⋅1−qn1−q(q≠1)S_{n}=a_{1} \cdot \frac{1-q^{n}}{1-q} \quad(q \neq 1)Sn​=a1​⋅1−q1−qn​(q​=1)
其中, a1a_1a1​是首项, 在(6)中就是1, qqq是比例, 也就是ejπ(sin⁡(ϕ1)−sin⁡(ϕ2))e^{j \pi (\sin (\phi_1)-\sin (\phi_2))}ejπ(sin(ϕ1​)−sin(ϕ2​)), n是求和的总项数,也就是NNN(不是N−1N-1N−1)因此:
aULA(ϕ1)HaULA(ϕ2)=1N1−ejπN(sin⁡(ϕ1)−sin⁡(ϕ2))1−ejπ(sin⁡(ϕ1)−sin⁡(ϕ2))(7)\mathbf{a}_{\mathrm{ULA}}(\phi_1)^H\mathbf{a}_{\mathrm{ULA}}(\phi_2)=\frac{1}{N}\frac{1-e^{j \pi N (\sin (\phi_1)-\sin (\phi_2))}}{1-e^{j \pi (\sin (\phi_1)-\sin (\phi_2))}}\tag{7}aULA​(ϕ1​)HaULA​(ϕ2​)=N1​1−ejπ(sin(ϕ1​)−sin(ϕ2​))1−ejπN(sin(ϕ1​)−sin(ϕ2​))​(7)
由(7)可知, 只要sin⁡(ϕ1)−sin⁡(ϕ2)=2kN,k=1,2,…\sin (\phi_1)-\sin (\phi_2)=\frac{2k}{N}, k= 1, 2, \dotssin(ϕ1​)−sin(ϕ2​)=N2k​,k=1,2,…时, (7)的分子就为0, 也就是aULA(ϕ1)HaULA(ϕ2)=0\mathbf{a}_{\mathrm{ULA}}(\phi_1)^H\mathbf{a}_{\mathrm{ULA}}(\phi_2)=0aULA​(ϕ1​)HaULA​(ϕ2​)=0, 实现了正交。 因此,只要相邻码字的sin值互相间隔2N\frac{2}{N}N2​, 所有码字就是正交的。

这里提一下, 如果我们以2N\frac{2}{N}N2​为间隔设计码本, 那么刚好有NNN个码字, 每个码字的长度为NNN, 总的码本矩阵A\mathbf{A}A就是个N×NN\times NN×N的矩阵。 这个矩阵是个正交矩阵。 但如果以1N(\frac{1}{N}(N1​(甚至0.5N\frac{0.5}{N}N0.5​)为间隔设计呢? 那A\mathbf{A}A会是个N×2NN\times 2NN×2N的矩阵, 即总共会有2N2N2N个码字。 这些码字之间就不是完全正交的了。 但这个码本A\mathbf{A}A却仍然会满足AAH\mathbf{A}\mathbf{A}^HAAH 是个单位阵。 也就是说码本的行之间仍是正交的, 这个也是可以证明的。

UPA的正交码字

aUPA(ϕ,θ)=1N[1,…,ejπ(qsin⁡(ϕ)cos⁡(θ)+pcos⁡(ϕ))…,ejπ((Q−1)sin⁡(ϕ)cos⁡(θ)+(P−1)cos⁡(ϕ))]T\begin{aligned} \mathbf{a}_{\mathrm{UPA}}(\phi, \theta)=\frac{1}{\sqrt{N}}\left[1, \ldots, e^{j\pi(q \sin (\phi) \cos(\theta)+p \cos (\phi))}\right. \left.\ldots, e^{j \pi((Q-1) \sin (\phi) \cos(\theta)+(P-1) \cos (\phi))}\right]^{T} \end{aligned}aUPA​(ϕ,θ)=N​1​[1,…,ejπ(qsin(ϕ)cos(θ)+pcos(ϕ))…,ejπ((Q−1)sin(ϕ)cos(θ)+(P−1)cos(ϕ))]T​
UPA的响应虽然繁琐, 但我们其实只需要求两个码字间的内积。 也就是说, 将两个码字的同位置的元素一一相乘后求和, 而改变求和的顺序并不影响结果。因此, 我们可以把求和排成我们想要的顺序。 比如, 第一个码字对应原UPA第qqq列的PPP行元素,与第二个码字的对应原UPA第qqq列的PPP行元素进行相乘求和, 结果如下:
Sq=ejπq(sin⁡ϕ1cos⁡θ1−sin⁡ϕ2cos⁡θ2)Σi=0P−1ejπi(cos⁡ϕ1−cos⁡ϕ2)(7)S_q = e^{j\pi q( \sin\phi_1 \cos\theta_1- \sin\phi_2 \cos\theta_2)}\Sigma_{i=0}^{P-1} e^{j\pi i(\cos\phi_1-\cos\phi_2)} \tag{7}Sq​=ejπq(sinϕ1​cosθ1​−sinϕ2​cosθ2​)Σi=0P−1​ejπi(cosϕ1​−cosϕ2​)(7),
因此, 类似ULA的, 只需要cos值以2P\frac{2}{P}P2​为间隔的话, SqS_qSq​的求和项就为0, 那么SqS_qSq​就也是0了, 同理类推到其他列。 最后总的内积就是0, 也就是正交了。

这里的推导有什么问题吗? 如果没有问题的话, 为什么我们还需要对前面水平角那部分做一个2Q\frac{2}{Q}Q2​为间隔的限制呢?
因为这里还忽略了一种情况。 如果是ϕ1=ϕ2\phi_1=\phi_2ϕ1​=ϕ2​, 而θ1≠θ2\theta_1 \ne \theta_2θ1​​=θ2​,这显然也是两个独立的码字,那如何使他们正交呢? 答案很显而意见了, 代入(7), 有:
Sq=Pejπq(sin⁡ϕ1cos⁡θ1−sin⁡ϕ2cos⁡θ2)S_q = Pe^{j\pi q( \sin\phi_1 \cos\theta_1- \sin\phi_2 \cos\theta_2)}Sq​=Pejπq(sinϕ1​cosθ1​−sinϕ2​cosθ2​)
因此,
S=PΣq=0Qejπq(sin⁡ϕ1cos⁡θ1−sin⁡ϕ2cos⁡θ2)S = P\Sigma_{q=0}^{Q}e^{j\pi q( \sin\phi_1 \cos\theta_1- \sin\phi_2 \cos\theta_2)}S=PΣq=0Q​ejπq(sinϕ1​cosθ1​−sinϕ2​cosθ2​)
写到这里, 就可以明白了为什么还有2Q\frac{2}{Q}Q2​为间隔的限制了。

相关阅读

  • 专栏: 混合波束成形
  • 专栏: 智能反射面
  • 混合波束成形|基础:深入浅出5G,毫米波,大规模MIMO与波束赋形
  • 混合波束成形|进阶:深入浅出混合波束赋形
  • 混合波束成形| 基于坐标迭代更新法的混合波束赋形算法
  • 混合波束成形| 基于正交匹配追踪(Orthogonal Matching Pursuit)法的混合波束赋形算法
  • 混合波束成形| 论文:基于MMSE准则的混合波束成形算法
  • 混合波束成形| 通过天线空间方向图理解波束成形的物理意义
  • 混合波束成形| 基于深度学习的大规模天线阵列混合波束成形设计
  • 混合波束成形| MIMO系统的DFT码本
  • 混合波束成形| HBF系统的克拉美罗下界

混合波束成形| MIMO系统的DFT码本相关推荐

  1. 混合波束成形| 宽带系统基于码本的信道估计 《Channel Estimation for Hybrid Architecture-Based Wideband Millimete

    关于 <Channel Estimation for Hybrid Architecture-Based Wideband Millimeter Wave System>一文的中文笔记. ...

  2. 混合波束成形| 部分连接系统 :Hybrid Precoding for mmWave Massive MIMO Systems With Partially-Connected Structure

    文章目录 问题背景 系统模型 PCS-HP设计的分析 PCS-HP的分阶段设计 模拟precoding的设计 情况一 情况二 结论 相关阅读 <Hybrid Precoding for mmWa ...

  3. 混合波束成形|基础:深入浅出5G,毫米波,大规模MIMO与波束赋形

    在进入5G热门研究技术:混合波束赋形的介绍之前, 笔者想先以这篇文章深入浅出的介绍5G,大规模MIMO以及波束赋形等概念的直观理解.旨在用最浅显的语言,尽可能让零基础的读者也能轻易的掌握其本质,从而为 ...

  4. 混合波束成形|进阶:深入浅出混合波束赋形

    系列前一篇文章 混合波束成形专栏|基础:深入浅出5G,毫米波,大规模MIMO与波束赋形, 帮助了许多需要帮助的人.这几个月一直偷懒,没有写文章.需要再次强调的是,写这一系列文章的主旨在于: 许多人以把 ...

  5. 混合波束成形| 通过天线空间方向图理解波束成形的物理意义

    波束成形的物理意义 如图, 是在各种教材中经常看到的天线方向图. 上图表示的是当前天线经过波束成形后在空间中 指向 30度方向 (一般考虑的方向是0-180度).这里解释一下天线方向: 不失一般性的, ...

  6. 混合波束成形| 论文:基于MMSE准则的混合波束成形算法

    文章目录 前言 背景简介 问题建模 波束成形设计: 数字波束成形 波束成形设计: 模拟波束成形 流形优化 GEVD算法 波束成形设计: 接收端 拓展到宽带系统 仿真性能 窄带情形 宽带情形 总结 相关 ...

  7. 混合波束成形| 高速铁路通信系统的信道估计:Location-Aided mMIMO Channel Tracking and Hybrid Beamforming for High-Speed

    关于 <Location-Aided mMIMO Channel Tracking and Hybrid Beamforming for High-Speed Railway Communica ...

  8. 混合波束成形| 基于深度学习的大规模天线阵列混合波束成形设计

    文章目录 背景 系统模型 文章贡献 NN(Neural Network)设计 一些挑战 两阶段设计方法 仿真性能 结论 相关阅读 该论文是实验室师兄最新发表于WCL(IEEE Wireless Com ...

  9. mimo的误码率_混合波束成形专栏|基础:深入浅出5G,毫米波,大规模MIMO与波束赋形...

    在进入5G热门研究技术:混合波束赋形的介绍之前, 笔者想先以这篇文章深入浅出的介绍5G,大规模MIMO以及波束赋形等概念的直观理解.旨在用最浅显的语言,尽可能让零基础的读者也能轻易的掌握其本质,从而为 ...

最新文章

  1. 【yolov4目标检测】(4) opencv+yolov4-tiny 实现选择性目标检测,附python完整代码
  2. D - Sand Fortress CodeForces - 985D
  3. R语言使用ggplot2包的快速可视化函数qplot绘制分组直方图(分组颜色设置)实战
  4. python创建对象后调用对象的方法,报错TypeError: getName() takes 0 positional arguments but 1 was given
  5. tcp reno 介绍
  6. 光源时间_天哪!你们居然都错了!D65光源,指的是上午还是下午的太阳光?
  7. 关于Dictionary字典和List列表
  8. 在html页面提交值到动态页面时出现中文值为乱码的解决方案
  9. java log4j 多个文件_java – Log4j:每个请求一个日志文件
  10. Codeforces Round #358 (Div. 2) A. Alyona and Numbers 水题
  11. android移动应用基础教程源代码,Android移动应用基础教程 【程序活动单元Activity】...
  12. javascript学习系列(21):数组中的reduceRight法
  13. Linux命令之cut详解
  14. 学点 C 语言(22): 数据类型 - 多维数组与指针
  15. java异常处理:finally中不要return
  16. 译:Self-Modifying cod 和cacheflush
  17. inurl .php sid=,SEO如何快速挖掘找寻可用的外链平台,可以发锚文本的网站平台
  18. IDEA Maven 使用教程
  19. java根号n元素的合并排序算法_根号N段合并排序
  20. python.exe无法找到入口 无法定位程序输入点

热门文章

  1. 三星note10 android q,三星Note10 一款严重被低估的安卓上代次机皇
  2. 学习笔记-Web Generic
  3. 字符类型与整形之间的转换
  4. 绎维软件F-One获得B轮融资,华创资本领投,齐银基金跟投...
  5. 企业上云业务系统上云是怎么回事儿?
  6. Airpods连接到windows10没有声音(其他办法都试过最后这样才行)
  7. 系统集成项目管理|十大管理
  8. java项目---探花交友
  9. 程序员数学--卡特兰数(Catalan number)
  10. 【FHQ Treap】洛谷P5055 【模板】可持久化文艺平衡树