前言
关于MIMO空间相关信道的生成,《MIMO-OFDM wireless communications with MATLAB》中给出了“complex correlation”和“power (field) correlation”两种方式(P89),之前就没有理解两者的区别。
今天在进行5G NR空间相关信道仿真时又遇到了这一问题,这里进行记录和讨论。
5G NR空间相关信道仿真
一、 Kronecker相关信道模型
H
c
o
r
r
=
R
r
1
/
2
H
i
i
d
R
t
1
/
2
(1)
\mathbf{H}_{\rm corr}=\mathbf{R}_r^{1/2}\mathbf{H}_{\rm iid}\mathbf{R}_t^{1/2} \tag1
Hcorr=Rr1/2HiidRt1/2(1)
其中
R
r
\mathbf{R}_r
Rr和
R
t
\mathbf{R}_t
Rt分别表示接收和发送天线间的相关性,使用指数相关模型生成(以下均考虑此模型生成的实对称相关矩阵),其各元素
r
i
,
j
r_{i,j}
ri,j由下式给出
r
i
,
j
=
{
ρ
j
−
i
,
i
≤
j
r
j
,
i
∗
,
i
>
j
,
r_{i,j}=\left\{ \begin{array}{ll} \rho^{j-i},& i\leq j\\ r_{j,i}^{\ast},&i>j \end{array}\right.,
ri,j={ρj−i,rj,i∗,i≤ji>j,
其中,
ρ
\rho
ρ是天线间相关系数。
R
r
1
/
2
\mathbf{R}_r^{1/2}
Rr1/2和
R
t
1
/
2
\mathbf{R}_t^{1/2}
Rt1/2表示矩阵收发相关矩阵的平方根分解。
二、生成方式1
1.公式
直接按Kronecker相关信道模型的公式实现
2.MATLAB代码
nr = 2; nt = 2;
rho_r = 0.3; rho_t = 0.3;
rr = toeplitz((rho_r*ones(1,nr)).^(0:(nr-1)));
rt = toeplitz((rho_t*ones(1,nt)).^(0:(nt-1)));
hiid = randn(nr, nt);
hcorr = sqrtm(rr)*hiid*sqrtm(rt);
三、生成方式2-complex correlation
1.公式
首先计算
R
r
\mathbf{R}_r
Rr和
R
t
\mathbf{R}_t
Rt的Kronecker积
R
=
R
t
⊗
R
r
\mathbf{R}=\mathbf{R}_t \otimes \mathbf{R}_r
R=Rt⊗Rr
对
R
\mathbf{R}
R做平方根分解(
C
2
=
R
\mathbf{C}^2=\mathbf{R}
C2=R),即
C
=
R
1
/
2
=
(
R
t
⊗
R
r
)
1
/
2
(2)
\mathbf{C}=\mathbf{R}^{1/2}=(\mathbf{R}_t \otimes \mathbf{R}_r)^{1/2} \tag2
C=R1/2=(Rt⊗Rr)1/2(2)
最终生成的相关信道矩阵满足:
v
e
c
(
H
c
o
r
r
)
=
C
v
e
c
(
H
i
i
d
)
(3)
{\rm vec}(\mathbf{H}_{\rm corr}) = \mathbf{C}{\rm vec}(\mathbf{H}_{\rm iid})\tag3
vec(Hcorr)=Cvec(Hiid)(3)
利用
⊗
\otimes
⊗和
v
e
c
(
⋅
)
\rm vec(\cdot)
vec(⋅)运算符的性质
v
e
c
(
A
X
B
)
=
(
B
T
⊗
A
)
v
e
c
(
X
)
(
A
⊗
B
)
1
/
2
=
A
1
/
2
⊗
B
1
/
2
(
待
确
认
)
\begin{aligned} {\rm vec}(\mathbf{AXB})&=(\mathbf{B}^{T}\otimes\mathbf{A}){\rm vec}(\mathbf{X})\\ (\mathbf{A}\otimes\mathbf{B})^{1/2}&=\mathbf{A}^{1/2}\otimes\mathbf{B}^{1/2}(待确认) \end{aligned}
vec(AXB)(A⊗B)1/2=(BT⊗A)vec(X)=A1/2⊗B1/2(待确认)
同时将
(
2
)
(2)
(2)代入
(
3
)
(3)
(3),可以得到
v
e
c
(
H
c
o
r
r
)
=
(
R
t
⊗
R
r
)
1
/
2
v
e
c
(
H
i
i
d
)
=
v
e
c
(
R
r
1
/
2
H
i
i
d
R
t
T
/
2
)
=
v
e
c
(
R
r
1
/
2
H
i
i
d
R
t
1
/
2
)
\begin{aligned} {\rm vec}(\mathbf{H}_{\rm corr}) &= (\mathbf{R}_t \otimes \mathbf{R}_r)^{1/2} {\rm vec}(\mathbf{H}_{\rm iid})\\ &={\rm vec}(\mathbf{R}_r^{1/2}\mathbf{H}_{\rm iid}\mathbf{R}_t^{T/2})\\ &={\rm vec}(\mathbf{R}_r^{1/2}\mathbf{H}_{\rm iid}\mathbf{R}_t^{1/2}) \end{aligned}
vec(Hcorr)=(Rt⊗Rr)1/2vec(Hiid)=vec(Rr1/2HiidRtT/2)=vec(Rr1/2HiidRt1/2)
其中利用了
R
t
\mathbf{R}_t
Rt对称的性质。由此即导出了
(
1
)
(1)
(1)的Kronecker模型。
注:也有文章中给出方案为,将以上操作中的平方根分解替换为cholesky分解,即有
C
T
C
=
R
v
e
c
(
H
c
o
r
r
)
=
C
T
v
e
c
(
H
i
i
d
)
\begin{aligned} \mathbf{C}^{T}\mathbf{C}&=\mathbf{R}\\ {\rm vec}(\mathbf{H}_{\rm corr}) &= \mathbf{C}^{T}{\rm vec}(\mathbf{H}_{\rm iid}) \end{aligned}
CTCvec(Hcorr)=R=CTvec(Hiid)
其中
C
\mathbf{C}
C是主对角元恒正的上三角矩阵。将
C
\mathbf{C}
C记作
c
h
o
l
(
R
)
{\rm chol}(\mathbf{R})
chol(R),将
(
2
)
(2)
(2)代入可以得到
C
T
=
[
c
h
o
l
(
R
t
)
⊗
c
h
o
l
(
R
r
)
]
T
=
c
h
o
l
(
R
t
)
T
⊗
c
h
o
l
(
R
r
)
T
\begin{aligned} \mathbf{C}^{T}&=[{\rm chol}(\mathbf{R}_t)\otimes{\rm chol}(\mathbf{R}_r)]^{T}\\ &={\rm chol}(\mathbf{R}_t)^{T}\otimes{\rm chol}(\mathbf{R}_r)^{T} \end{aligned}
CT=[chol(Rt)⊗chol(Rr)]T=chol(Rt)T⊗chol(Rr)T
故
C
T
v
e
c
(
H
i
i
d
)
=
[
c
h
o
l
(
R
t
)
T
⊗
c
h
o
l
(
R
r
)
T
]
v
e
c
(
H
i
i
d
)
=
v
e
c
(
c
h
o
l
(
R
r
)
T
H
i
i
d
c
h
o
l
(
R
t
)
)
\begin{aligned} \mathbf{C}^{T}{\rm vec}(\mathbf{H}_{\rm iid}) &=[{\rm chol}(\mathbf{R}_t)^{T}\otimes{\rm chol}(\mathbf{R}_r)^{T}]{\rm vec}(\mathbf{H}_{\rm iid})\\ &={\rm vec}({\rm chol}(\mathbf{R}_r)^{T}\mathbf{H}_{\rm iid}{\rm chol}(\mathbf{R}_t)) \end{aligned}
CTvec(Hiid)=[chol(Rt)T⊗chol(Rr)T]vec(Hiid)=vec(chol(Rr)THiidchol(Rt))
由此同样可以导出式
(
1
)
(1)
(1),只不过也是将平方根分解替换为cholesky分解。
需要注意的是,使用两种方式最终得到的分解结果和相关信道矩阵不同。
2.MATLAB代码
nr = 2; nt = 2;
rho_r = 0.3; rho_t = 0.3;
rr = toeplitz((rho_r*ones(1,nr)).^(0:(nr-1)));
rt = toeplitz((rho_t*ones(1,nt)).^(0:(nt-1)));
r = kron(rt, rr);
%% 平方根分解
c = sqrtm(r);
hcorr = reshape(c*hiid(:),nr,nt);
%% cholesky分解
c = chol(r)';
hcorr = reshape(c*hiid(:),nr,nt);
% 对应的生成方式1为:
% hcorr = chol(rr).'*hiid*chol(rt);
四、生成方式三-power (field) correlation
1.公式
从《MIMO-OFDM wireless communications with MATLAB》给出的代码来看,power (field) correlation相当于将相关矩阵的量纲视作功率,与生成方式2唯一的不同是式
(
2
)
(2)
(2)变为
C
=
(
R
t
⊗
R
r
)
1
/
2
\mathbf{C}=(\sqrt{\mathbf{R}_t \otimes \mathbf{R}_r})^{1/2}
C=(Rt⊗Rr)1/2文章来源:https://www.toymoban.com/news/detail-404365.html
2.MATLAB代码
c = sqrtm(sqrt(kron(rt, rr))); % 其余与生成方式2代码相同
总结
尚未解决的问题:文章来源地址https://www.toymoban.com/news/detail-404365.html
- 何时使用平方根分解,何时使用cholesky分解
- 以上公式推导中待确认的部分
到了这里,关于【MIMO】两种空间相关信道生成方式的记录(公式+MATLAB代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!