空间相关信道生成方式

最近在做一些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. 不同的生成方式各自的适用范围/应用场景是什么?
相关推荐
Inhand陈工12 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
半条-咸鱼13 天前
【STM32】I2C协议原理、HAL读写与OLED显示操作
嵌入式硬件·c·信息与通信
@insist12313 天前
系统架构设计师-5G 技术、冗余设计与分层架构
5g·架构·系统架构·软考·系统架构设计师·软件水平考试
OpenIM13 天前
增量版本同步能力介绍 | OpenIM
开源·github·信息与通信
鼎讯信通13 天前
1024J冲击能量+三种放电模式:DLG-1高压发生器覆盖电缆故障全场景
运维·能源·信息与通信
terry60013 天前
5G视频短信服务商选型全攻略:通道资源、架构能力与成本评估2026最新标准
大数据·人工智能·5g·json·asp.net·信息与通信·数据库架构
Inhand陈工13 天前
污水泵站PLC数据上云实战:西门子PLC + 映翰通IG502 + DM平台全流程
人工智能·物联网·网络安全·阿里云·信息与通信·iot
hz5678913 天前
基于音视频 PaaS 的实时音视频解决方案:技术架构与落地实践
安全·架构·音视频·实时音视频·信息与通信·paas
曾阿伦13 天前
netcat / ncat / socat 用法详解与示例
linux·http·信息与通信
鼎讯信通14 天前
性能可拓展+功能一体化 走近 TXMN-BLG1 信号模拟设备
运维·能源·信息与通信