空间相关信道生成方式

最近在做一些MIMO空间相关信道的仿真,个人存在一些混淆,特此记录下来,欢迎大家学习并指正!

Kronecker相关信道模型

Hcorr=Rr1/2HiidRt1/2 \boldsymbol H_{corr} = \boldsymbol R_r^{1/2} \boldsymbol H_{iid} \boldsymbol R_t^{1/2} Hcorr=Rr1/2HiidRt1/2

  • Hiid\boldsymbol H_{iid}Hiid :独立同分布复高斯随机变量
  • Rr\boldsymbol R_rRr 和 Rt\boldsymbol R_tRt :接收和发送天线间的相关性
    • 指数相关模型,各元素 rijr_{ij}rij 由下式给出(ρ\rhoρ 是天线间相关系数)(本文采用指数相关模型)
      rij={ρj−i,i≤jrji∗,i>j r_{ij} = \begin{cases} \rho^{j-i}, & i \leq j \\ r_{ji}^*, & i>j \end{cases} rij={ρj−i,rji∗,i≤ji>j
    • 3GPP相关信道模型:https://itecspec.com/spec/3gpp-36-101-b-2-3-mimo-channel-correlation-matrices/
    • Rr1/2\boldsymbol R_r^{1/2}Rr1/2 和 Rt1/2\boldsymbol R_t^{1/2}Rt1/2 表示接收发送相关矩阵的平方根分解/cholesky分解。

方式1---直接生成

复制代码
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)));
H_iid = sqrt(0.5) * (randn(nr, nt) + 1j * randn(nr, nt));
H_corr = sqrtm(Rr) * H_iid * sqrtm(Rt);

方式2---complex correlation

该方式由于对 R1/2\boldsymbol R^{1/2}R1/2 的解释不同而产生两种方法,分别是基于平方根分解(sqrtm)和基于cholesky分解(chol)。

平方根分解

根据平方根分解,有
R=Rt⊗RrC2=RC=R1/2=(Rt⊗Rr)1/2\begin{align} & \boldsymbol R = \boldsymbol R_t \otimes \boldsymbol R_r \\ & \boldsymbol C^2 = \boldsymbol R \\ & \boldsymbol C = \boldsymbol R^{1/2} = (\boldsymbol R_t \otimes \boldsymbol R_r)^{1/2} \end{align}R=Rt⊗RrC2=RC=R1/2=(Rt⊗Rr)1/2

最终生成的相关信道矩阵满足
vec(Hcorr)=Cvec(Hiid)=(Rt⊗Rr)1/2vec(Hiid)=(Rt1/2⊗Rr1/2)vec(Hiid)=vec(Rr1/2HiidRtT/2)=vec(Rr1/2HiidRt1/2) (对称)\begin{align*} {\rm vec} (\boldsymbol H_{corr}) = & \boldsymbol C {\rm vec}(\boldsymbol H_{iid})\\ = & (\boldsymbol R_t \otimes \boldsymbol R_r)^{1/2} {\rm vec} (\boldsymbol H_{iid})\\ = & (\boldsymbol R_t^{1/2} \otimes \boldsymbol R_r^{1/2}) {\rm vec} (\boldsymbol H_{iid})\\ = & {\rm vec} (\boldsymbol R_r^{1/2} \boldsymbol H_{iid} \boldsymbol R_t^{T/2})\\ = & {\rm vec} (\boldsymbol R_r^{1/2} \boldsymbol H_{iid} \boldsymbol R_t^{1/2})~(对称)\\ \end{align*}vec(Hcorr)=====Cvec(Hiid)(Rt⊗Rr)1/2vec(Hiid)(Rt1/2⊗Rr1/2)vec(Hiid)vec(Rr1/2HiidRtT/2)vec(Rr1/2HiidRt1/2) (对称)

复制代码
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);
H_iid = sqrt(0.5) * (randn(nr, nt) + 1j * randn(nr, nt));
H_corr = reshape(C * H_iid(:),nr,nt);

cholesky分解

根据cholesky分解,有
R=Rt⊗RrCTC=RC=chol(R)\begin{align} & \boldsymbol R = \boldsymbol R_t \otimes \boldsymbol R_r \\ & \boldsymbol C^T C = \boldsymbol R \\ & \boldsymbol C = {\rm chol} (\boldsymbol R) \end{align}R=Rt⊗RrCTC=RC=chol(R)

最终生成的相关信道满足
vec(Hcorr)=CTvec(Hiid)=(chol(Rt⊗Rr))Tvec(Hiid)=(chol(Rt)⊗chol(Rr))Tvec(Hiid)=(chol(Rt)T⊗chol(Rr)T)vec(Hiid)=vec(chol(Rr)THiidchol(Rt))\begin{align*} {\rm vec} (\boldsymbol H_{corr}) = & \boldsymbol C^T {\rm vec} (\boldsymbol H_{iid})\\ = & ({\rm chol} (\boldsymbol R_t \otimes \boldsymbol R_r))^T {\rm vec} (\boldsymbol H_{iid})\\ = & ({\rm chol} (\boldsymbol R_t) \otimes {\rm chol} (\boldsymbol R_r))^T {\rm vec} (\boldsymbol H_{iid})\\ = & ({\rm chol} (\boldsymbol R_t)^T \otimes {\rm chol} (\boldsymbol R_r)^T) {\rm vec} (\boldsymbol H_{iid})\\ = & {\rm vec} ({\rm chol} (\boldsymbol R_r)^T \boldsymbol H_{iid} {\rm chol} (\boldsymbol R_t))\\ \end{align*}vec(Hcorr)=====CTvec(Hiid)(chol(Rt⊗Rr))Tvec(Hiid)(chol(Rt)⊗chol(Rr))Tvec(Hiid)(chol(Rt)T⊗chol(Rr)T)vec(Hiid)vec(chol(Rr)THiidchol(Rt))

复制代码
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 = chol(R).';
H_iid = sqrt(0.5) * (randn(nr, nt) + 1j * randn(nr, nt));
H_corr = reshape(C * H_iid(:), nr, nt);
% 对应的方式1为:
% H_corr = chol(Rr).' * H_iid * chol(Rt);

需要注意的是,使用两种分解方法最终得到的分解结果和相关信道矩阵不同。

方式3---power(field) correlation

从《MIMO-OFDM wireless communications with MATLAB》给出的代码来看,power(field) correlation相当于将相关矩阵的量纲视作功率,与方式2唯一不同的是
C=(Rt⊗Rr)1/2 \boldsymbol C = (\sqrt{\boldsymbol R_t \otimes \boldsymbol R_r})^{1/2} C=(Rt⊗Rr )1/2

复制代码
C = sqrtm(sqrt(kron(Rt, Rr))); % 其余与方式2代码相同

待解决的问题

  1. 何时使用平方根分解?何时使用cholesky分解?
  2. 不同的生成方式各自的适用范围/应用场景是什么?
相关推荐
奋进的电子工程师12 小时前
AI与网络测试的结合,会碰撞出怎样的火花?
人工智能·信息与通信
爱浦路 IPLOOK13 小时前
高校 5G 实验室核心设备清单与选型建议
5g
无线图像传输研究探索13 小时前
5G布控球 5g布控球
5g·单兵图传·无人机图传·布控球·5g布控球·布控球机·应急布控球
北京耐用通信13 小时前
预算减半,效率翻倍:耐达讯自动化Profibus六路中继器如何成为工程师的“省钱利器”
人工智能·物联网·网络协议·自动化·信息与通信
北京耐用通信13 小时前
告别布线烦恼:耐达讯自动化Profibus六路中继器如何让您的网络“无限续航”
人工智能·物联网·网络协议·自动化·信息与通信
Just_Paranoid1 天前
【Settings】Android 设备信息相关参数的获取
android·5g·wifi·ip·sn·network
小龙报2 天前
【初阶数据结构】从 “数组升级” 到工程实现:动态顺序表实现框架的硬核拆解指南
c语言·数据结构·c++·算法·机器学习·信息与通信·visual studio
小龙报3 天前
【算法通关指南:算法基础篇 】双指针专题:1.唯一的雪花 2.逛画展 3.字符串 4.丢手绢
c语言·数据结构·c++·人工智能·深度学习·算法·信息与通信
chen_ever3 天前
Protobuf详解(从安装到实战)
c++·rpc·信息与通信
旺仔Sec4 天前
2025年安徽省职业院校技能大赛(高职组)5G组网与运维赛项竞赛样题
运维·5g