基于瑞利衰落信道的 SISO/SIMO/MISO/MIMO 系统容量分析

摘要

本文主要研究在瑞利衰落(Rayleigh Fading)信道条件下的 MIMO(Multiple Input Multiple Output,多输入多输出)通信系统。假设系统具有 (M) 个发送天线和 (N) 个接收天线,并分析其遍历容量(Ergodic Capacity)与中断容量(Outage Capacity)的性能。

MIMO 是一种在发送端和接收端同时采用多根天线的通信技术,通过建立多个独立空间信道,可以显著提升系统容量和频谱利用率,而无需增加系统带宽。

在无线通信中,由于信号通过不同传播路径到达接收端,各路径具有不同的传播时延,同时不同方向上的波叠加形成驻波场,从而导致快速衰落现象,这种衰落称为瑞利衰落。

博客背景与论文介绍

本文的学习路线与知识体系主要围绕以下论文展开:论文链接

Z. Shang, “Mitigating Hardware Impairments in Multi-User Multi-Layer MIMO Systems via Weighted Fusion Precoding,” IEEE Communications Letters, vol. 30, pp. 1841–1845, 2026.

该论文主要研究:

  • 多用户多层 MIMO 系统(Multi-User Multi-Layer MIMO)
  • 硬件损伤抑制(Hardware Impairments Mitigation)
  • 融合预编码(Fusion Precoding)
  • 加权优化策略(Weighted Optimization)

论文核心目标是在存在硬件非理想因素的情况下,通过加权融合预编码方法提升系统性能与通信可靠性。

在现代无线通信系统中,由于:

  • 功率放大器非线性;
  • IQ 失衡;
  • 相位噪声;
  • ADC/DAC 量化误差;

等硬件问题的存在,传统理想 MIMO 预编码算法性能会明显下降。因此,如何在硬件损伤条件下设计鲁棒预编码器,已经成为 5G-A 与 6G MIMO 通信中的重要研究方向。

该论文提出了一种:

Weighted Fusion Precoding \text{Weighted Fusion Precoding} Weighted Fusion Precoding

方法,通过融合不同预编码矩阵的优势,实现:

  • 多用户干扰抑制;
  • 硬件损伤缓解;
  • 系统容量提升;
  • BER 性能优化。

因此,在阅读该论文之前,需要系统掌握:

  1. 无线通信基础
  2. 瑞利衰落信道
  3. MIMO 系统模型
  4. 多用户 MIMO
  5. 预编码理论
  6. 硬件损伤建模
  7. 矩阵优化理论

本文后续内容将围绕这些前置知识展开介绍。

关键词

  • 遍历容量(Ergodic Capacity)
  • 中断容量(Outage Capacity)
  • MIMO
  • MISO
  • SIMO
  • SISO
  • 瑞利衰落(Rayleigh Fading)
  • 信噪比(SNR)

一、引言

1.1 MIMO 技术

MIMO(Multiple Input Multiple Output,多输入多输出)是一种在发送端和接收端均采用多天线的通信系统结构,通过构建多个独立信道来提升通信容量。

MIMO 系统的重要特点之一是具有极高的频谱利用效率。在不增加带宽的前提下,MIMO 技术能够显著提升系统容量和频谱效率。

其核心思想是:

  • 利用空间资源获取分集增益与复用增益;
  • 在提升系统可靠性的同时提高传输速率;
  • 代价是发送端与接收端复杂度增加。

由于不同天线之间具有足够间隔,因此:

  • 天线相关性降低;
  • 链路性能提升;
  • 数据吞吐量增加。

研究表明,在瑞利衰落环境下,OFDM 系统结合 MIMO 技术可以显著提升系统容量。

此外,大多数 MIMO 信道在空间上是相关的而非独立的。2001 年 11 月的 3GPP 会议中,Lucent、Nokia、Siemens 与 Ericsson 联合提出了 MIMO 信道标准化建议。

目前 3GPP 和 3GPP2 推荐两种链路级 MIMO 信道模型:

  1. 基于相关性的模型(Correlation-Based)
  2. 基于子路径的模型(Subpath-Based)

信道相关性对系统容量的影响已经成为 MIMO 技术的重要研究方向。


1.2 瑞利衰落

在无线通信中,接收信号通常通过反射、折射、散射等多条路径传播到接收端。

由于:

  • 各路径传播时间不同;
  • 多方向波叠加形成驻波;

因此会产生快速衰落现象,即瑞利衰落。

瑞利衰落属于小尺度衰落,通常叠加在:

  • 阴影衰落;
  • 路径损耗;

等大尺度衰落之上。

在多径传播环境中,接收信号包络服从瑞利分布。同时由于接收端移动等因素,信号幅度和相位不断变化,因此称为瑞利衰落。


1.3 遍历容量与中断容量

由于无线信道状态随时间随机变化,因此信道容量通常采用统计意义进行描述。

(1)遍历容量

遍历容量(Ergodic Capacity)表示随机信道在所有衰落状态下最大信息速率的时间平均值。

其公式为:

C = B log ⁡ 2 ( 1 + SNR ) C = B \log_2(1+\text{SNR}) C=Blog2(1+SNR)

其中:

  • (B):系统带宽
  • (\text{SNR}):信噪比

(2)中断容量

中断容量(Outage Capacity)表示:

系统以某一传输速率通信时,能够以 (1-p%) 的概率成功传输。

其中:

  • (p):允许中断概率

中断概率定义为:

P out = P ( C ( H ) < R ) P_{\text{out}} = P(C(H)<R) Pout=P(C(H)<R)

对应容量表达式为:

C = ( 1 − P out ) B log ⁡ 2 ( 1 + C ( H ) ) C = (1-P_{\text{out}})B\log_2(1+C(H)) C=(1Pout)Blog2(1+C(H))


二、系统模型与信号模型


2.1 SISO 系统

SISO(Single Input Single Output,单输入单输出)是传统无线通信系统。

特点:

  • 发送端一个天线;
  • 接收端一个天线;
  • 只有一条传输路径;
  • 数据速率较低。

SISO 模型

在这里插入图片描述

  • 发射端:1 根天线
  • 接收端:1 根天线

2.2 SIMO 系统

SIMO(Single Input Multiple Output,单输入多输出)系统中:

  • 发射端:1 根天线
  • 接收端:多根天线

其优势:

  • 降低误码率;
  • 提高数据速率;
  • 提升接收分集增益。

在复杂环境中,电磁波会通过多条路径传播到接收端,因此接收端采用多天线能够有效对抗多径衰落。

SIMO 模型

在这里插入图片描述

  • (N=2)

2.3 MISO 系统

MISO(Multiple Input Single Output,多输入单输出)系统中:

  • 发送端:多根天线
  • 接收端:1 根天线

其主要特点:

  • 发送端进行空间分集;
  • 降低多径传播影响;
  • 提高链路可靠性。

MISO 模型

在这里插入图片描述

  • (M=2)

2.4 MIMO 系统

MIMO(Multiple Input Multiple Output)系统中:

  • 发送端采用多天线;
  • 接收端采用多天线。

MIMO 也被称为空间分集(Spatial Diversity)技术。

其优势包括:

  • 提升系统容量;
  • 增强覆盖范围;
  • 提高系统性能;
  • 提升频谱利用率。

MIMO 模型

在这里插入图片描述
在这里插入图片描述

  • (M=2)
  • (N=2)

三、问题一:遍历容量与 99% 中断容量绘制

本文利用 MATLAB 对以下四种系统进行仿真:

  • SISO
  • SIMO
  • MISO
  • MIMO
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3.1 遍历容量分析

根据实验结果:
\

  • 遍历容量随着 SNR 增大而增加;
  • 当 (M=N=2) 时,容量最大。

即:

C MIMO > C SIMO > C MISO > C SISO C_{\text{MIMO}} > C_{\text{SIMO}} > C_{\text{MISO}} > C_{\text{SISO}} CMIMO>CSIMO>CMISO>CSISO


3.2 中断容量分析

实验结果表明:

  • 中断容量同样随 SNR 增加而增大;
  • (M=N=2) 时性能最佳;
  • 当中断概率达到 99% 时,中断容量远小于遍历容量。

3.3 遍历容量与中断容量对比

结论如下:

  1. 两种容量均随 SNR 提升而增加;
  2. MIMO 系统始终具有最大容量;
  3. 遍历容量明显大于中断容量。

四、问题二:遍历容量推导与证明


4.1 遍历容量公式

遍历容量定义为:

C = 1 n ∑ i = 1 n C i C=\frac{1}{n}\sum_{i=1}^{n}C_i C=n1i=1nCi

其中:

C i = log ⁡ 2 ( 1 + ϕ 2 σ 2 ) C_i=\log_2\left(1+\frac{\phi^2}{\sigma^2}\right) Ci=log2(1+σ2ϕ2)

上述公式适用于并行信道。


4.2 MIMO 系统模型

MIMO 信号模型:

Y = H X + N Y=HX+N Y=HX+N
在这里插入图片描述

其中:

  • (Y):接收信号向量
  • (H):信道矩阵
  • (X):发送信号向量
  • (N):高斯噪声

噪声满足:

N ∼ N ( 0 , σ 2 I N ) N \sim \mathcal{N}(0,\sigma^2 I_N) NN(0,σ2IN)

协方差矩阵:

E [ X X H ] = R X E[XX^H]=R_X E[XXH]=RX

E [ Y Y H ] = R Y E[YY^H]=R_Y E[YYH]=RY

在非并行信道条件下,发送功率分配为:

R X = P M I M R_X=\frac{P}{M}I_M RX=MPIM
在这里插入图片描述

其中:

  • (P):总发送功率
  • (M):发送天线数

五、问题三:高 SNR 条件下验证

在这里插入图片描述

在:

SNR = 40 / 45 / 50 / 55 / 60  dB \text{SNR}=40/45/50/55/60\text{ dB} SNR=40/45/50/55/60 dB

条件下,分析天线数量与遍历容量关系。

实验结果表明:

  • 遍历容量随天线数量增加而增加;
  • 在高 SNR 条件下近似呈线性增长;
  • SNR 越高,增长斜率越大。

六、主要实验结果

通过实验可以得到以下结论:

6.1 SNR 对容量的影响

无论是:

  • 遍历容量;
  • 中断容量;

都随着 SNR 提升而增大。


6.2 不同系统容量比较

遍历容量大小规律:

MIMO > SIMO > MISO > SISO \text{MIMO}>\text{SIMO}>\text{MISO}>\text{SISO} MIMO>SIMO>MISO>SISO

即:

  • MIMO 容量最高;
  • SISO 容量最低。

6.3 高信噪比特性

在高 SNR 条件下:

  • 遍历容量近似线性增长;
  • 增加天线数量可以显著提高系统容量。

七、总结

本文研究了:

  • 瑞利衰落环境下的 MIMO 信道;
  • 不同天线结构系统容量性能。

分析对象包括:

  • SISO
  • SIMO
  • MISO
  • MIMO

通过 MATLAB 仿真研究:

  • 遍历容量;
  • 中断容量;

并完成对应公式推导与验证。

最终得到以下结论:

  1. 所有系统容量均随 SNR 增加而提高;
  2. MIMO 系统容量始终最高;
  3. 遍历容量大于中断容量;
  4. 高 SNR 条件下容量近似线性增长。

总体而言,MIMO 技术能够显著提高无线通信系统容量与频谱利用率,在未来无线通信系统中具有广阔的发展前景。

附录 2:证明与数学推导

1. MIMO 系统模型

在 MIMO 系统中,接收信号模型可表示为:

Y = H X + N Y = HX + N Y=HX+N

其中:

  • Y Y Y 表示接收信号向量;
  • H H H 表示信道矩阵;
  • X X X 表示发送信号向量;
  • N N N 表示信道噪声。

噪声矩阵 N N N 服从复高斯分布:

N ∼ N ( 0 , σ 2 I N ) N \sim \mathcal{N}(0,\sigma^2 I_N) NN(0,σ2IN)

其协方差满足:

E [ X X H ] = R X E[XX^H] = R_X E[XXH]=RX

E [ Y Y H ] = R Y E[YY^H] = R_Y E[YYH]=RY

E [ N N H ] = R N E[NN^H] = R_N E[NNH]=RN


2. 互信息推导

根据信息论定义,输入与输出之间的互信息为:

I ( X ; Y ) = H ( X ) − H ( X ∣ Y ) I(X;Y)=H(X)-H(X|Y) I(X;Y)=H(X)H(XY)

也可以写成:

I ( X ; Y ) = H ( Y ) − H ( Y ∣ X ) I(X;Y)=H(Y)-H(Y|X) I(X;Y)=H(Y)H(YX)

由于:

Y = H X + N Y=HX+N Y=HX+N

在给定 X X X 的情况下,仅剩噪声项,因此:

H ( Y ∣ X ) = H ( N ) H(Y|X)=H(N) H(YX)=H(N)

于是:

I ( X ; Y ) = H ( Y ) − H ( N ) I(X;Y)=H(Y)-H(N) I(X;Y)=H(Y)H(N)


3. 高斯噪声熵计算

噪声的概率密度函数为:

f ( n ) = 1 2 π σ exp ⁡ ( − μ 2 2 σ 2 ) f(n)=\frac{1}{\sqrt{2\pi}\sigma} \exp\left(-\frac{\mu^2}{2\sigma^2}\right) f(n)=2π σ1exp(2σ2μ2)

根据信息熵定义:

H ( N ) = ∫ − ∞ ∞ − f ( n ) log ⁡ 2 f ( n )   d n H(N)=\int_{-\infty}^{\infty} -f(n)\log_2 f(n)\,dn H(N)=f(n)log2f(n)dn

代入高斯分布后可得:

H ( N ) = 1 2 log ⁡ 2 ( 2 π e σ 2 ) H(N)= \frac{1}{2}\log_2(2\pi e\sigma^2) H(N)=21log2(2πeσ2)

因此互信息可以表示为:

I ( X ; Y ) = H ( Y ) − 1 2 log ⁡ 2 ( 2 π e σ 2 ) I(X;Y)= H(Y)-\frac{1}{2}\log_2(2\pi e\sigma^2) I(X;Y)=H(Y)21log2(2πeσ2)


4. 接收信号熵

由于接收信号 Y Y Y 同样服从高斯分布,因此其概率密度函数为:

H ( Y ) = 1 2 π ( P + σ 2 ) exp ⁡ ( − y 2 2 ( P + σ 2 ) ) H(Y)= \frac{1}{\sqrt{2\pi(P+\sigma^2)}} \exp\left( -\frac{y^2}{2(P+\sigma^2)} \right) H(Y)=2π(P+σ2) 1exp(2(P+σ2)y2)

信道容量定义为互信息的最大值:

C = max ⁡ I ( X ; Y ) C=\max I(X;Y) C=maxI(X;Y)

因此:

C = 1 2 log ⁡ 2 ( 2 π e ( P + σ 2 ) ) − 1 2 log ⁡ 2 ( 2 π e σ 2 ) C=\frac{1}{2}\log_2\left(2\pi e(P+\sigma^2)\right)-\frac{1}{2} \log_2 \left( 2\pi e\sigma^2 \right) C=21log2(2πe(P+σ2))21log2(2πeσ2)

化简可得经典 AWGN 信道容量公式:

C = 1 2 log ⁡ 2 ( 1 + P σ 2 ) C= \frac{1}{2} \log_2 \left( 1+\frac{P}{\sigma^2} \right) C=21log2(1+σ2P)


5. SVD 奇异值分解

对信道矩阵 H H H 进行奇异值分解(SVD):

H = U D V H H = UDV^H H=UDVH

其中:

  • U ∈ C M × M U \in \mathbb{C}^{M\times M} UCM×M
  • D ∈ C M × N D \in \mathbb{C}^{M\times N} DCM×N
  • V ∈ C N × N V \in \mathbb{C}^{N\times N} VCN×N

经过变换后:

y ^ = D x ^ + n ^ \hat{y}=D\hat{x}+\hat{n} y^=Dx^+n^

设奇异值为:

λ i \sqrt{\lambda_i} λi

则 MIMO 信道被分解为多个并行子信道。


6. 接收信号最大熵分析

设接收信号概率密度函数为:

g ( y ) g(y) g(y)

则其熵为:

H ( y ) = − ∫ − ∞ ∞ g ( y ) log ⁡ g ( y )   d y H(y)= -\int_{-\infty}^{\infty} g(y)\log g(y)\,dy H(y)=g(y)logg(y)dy

满足:

∫ − ∞ ∞ g ( y )   d y = 1 \int_{-\infty}^{\infty} g(y)\,dy = 1 g(y)dy=1

以及:

∫ − ∞ ∞ g ( y ) y 2 d y ≤ P + σ 2 \int_{-\infty}^{\infty} g(y)y^2dy \le P+\sigma^2 g(y)y2dyP+σ2

H ( Y ) H(Y) H(Y) 最大时,互信息达到最大,从而获得最大信道容量。


7. 噪声熵进一步推导

由于:

N ∼ N c ( 0 , σ 2 I N ) N\sim \mathcal{N}_c(0,\sigma^2I_N) NNc(0,σ2IN)

因此:

H ( N ) = log ⁡ ( π e σ 2 ) H(N)=\log(\pi e\sigma^2) H(N)=log(πeσ2)


8. 接收信号协方差矩阵

接收信号协方差矩阵为:

E [ ( Y − E ( Y ) ) ( Y − E ( Y ) ) H ] E[(Y-E(Y))(Y-E(Y))^H] E[(YE(Y))(YE(Y))H]

展开可得:

= E [ ( H X + N − E ( Y ) ) ( H X + N − E ( Y ) ) H ] =E[(HX+N-E(Y))(HX+N-E(Y))^H] =E[(HX+NE(Y))(HX+NE(Y))H]

进一步化简:

= E { [ H ( X − E ( X ) ) + N ] [ H ( X − E ( X ) ) + N ] H } =E\left\{ [H(X-E(X))+N] [H(X-E(X))+N]^H \right\} =E{[H(XE(X))+N][H(XE(X))+N]H}

继续推导:

= E [ H H H ( X − E ( X ) ) ( X − E ( X ) ) H + N N H ] =E \left[ HH^H(X-E(X))(X-E(X))^H + NN^H \right] =E[HHH(XE(X))(XE(X))H+NNH]

最终得到:

= σ 2 I N + H H H R X =\sigma^2I_N + HH^HR_X =σ2IN+HHHRX

因此:

H ( Y ) max ⁡ = log ⁡ [ π e ( σ 2 I N + H H H R X ) ] H(Y)_{\max}= \log \left[ \pi e ( \sigma^2I_N+HH^HR_X ) \right] H(Y)max=log[πe(σ2IN+HHHRX)]


9. MIMO 信道容量最终表达式

因此 MIMO 信道容量为:

C = log ⁡ [ π e ( H H H R X + σ 2 I N ) ] − log ⁡ ( π e σ 2 ) C=\log\left[\pi e(HH^HR_X+\sigma^2I_N)\right] -\log(\pi e\sigma^2) C=log[πe(HHHRX+σ2IN)]log(πeσ2)

最终化简为:

C = log ⁡ ∣ I N + 1 σ 2 H H H R X ∣ C= \log \left| I_N + \frac{1}{\sigma^2} HH^HR_X \right| C=log IN+σ21HHHRX

这就是经典的 MIMO 信道容量表达式。


10. 结论

通过上述推导可以得到:

  1. MIMO 信道容量来源于多个空间并行子信道;
  2. 信道容量与:
    • 发射功率;
    • 信噪比;
    • 天线数量;
    • 信道矩阵秩;
      密切相关;
  3. 在高 SNR 条件下,MIMO 系统容量近似线性增长;
  4. 奇异值分解(SVD)能够将 MIMO 信道转化为多个独立并行信道;
  5. 增加收发天线数量能够显著提升频谱效率与系统容量。

代码

% License: This code is licensed under the GPLv2 license. If you in any way
% use this code for research that results in publications, please cite our
% original article listed above.
% Z. Shang, "Mitigating Hardware Impairments in Multi-User Multi-Layer MIMO Systems via % Weighted Fusion Precoding," in IEEE Communications Letters, vol. 30, pp. 1841-1845, 
% 2026, doi: 10.1109/LCOMM.2026.3688411.
clc
clear all
close all

SNR  = 0:1e-1:4e1;   
% the system signal-to-noise ratio with dB 
r= 0.7;  
%% Author:zixia shang  
% University of New South Wales
% Telecommunications Engineering
% Email address: zixia.shang@ieee.org
% 05/11/2022

ergodic11=ergodiccapacities (1,1,SNR,r);
ergodic12=ergodiccapacities (1,2,SNR,r);
ergodic21=ergodiccapacities (2,1,SNR,r);
ergodic22=ergodiccapacities (2,2,SNR,r);
outage11=outagecapacities (1,1,SNR,r,99);
outage12=outagecapacities (1,2,SNR,r,99);
outage21=outagecapacities (2,1,SNR,r,99);
outage22=outagecapacities (2,2,SNR,r,99);

figure(11)
subplot(2,2,1)
semilogy(SNR,ergodic11,'r')
subtitle('M_T=N_R=1')
grid on
xlabel('SNR  (dB)')
ylabel('Capacity  (bit/s/Hz)')
subplot(2,2,2)
semilogy(SNR,ergodic12,'g')
grid on
xlabel('SNR  (dB)')
ylabel('Capacity  (bit/s/Hz)')
subtitle('M_T=1 N_R=2')
subplot(2,2,3)
semilogy(SNR,ergodic21,'b')
grid on
xlabel('SNR  (dB)')
ylabel('Capacity  (bit/s/Hz)')
subtitle('M_T=2 N_R=1')
subplot(2,2,4)
semilogy(SNR,ergodic22,'k')
grid on
xlabel('SNR  (dB)')
ylabel('Capacity  (bit/s/Hz)')
subtitle('M_T=N_R=2')
sgtitle('MIMO Ergodic Capacity')

figure(12)
hold on
semilogy(SNR,ergodic11, ...
    'r',SNR,ergodic12, ...
    'g',SNR,ergodic21, ...
    'b',SNR,ergodic22,'k')
grid on
title('MIMO Ergodic Capacity for different number of antennas')
xlabel('SNR  (dB)')
ylabel('Ergodic Capacity  (bit/s/Hz)')
legend('M_T=N_R=1','M_T=1 N_R=2','M_T=2 N_R=1','M_T=N_R=2')
hold off

figure(13)
subplot(2,2,1)
semilogy(SNR,outage11,'r')
grid on
xlabel('SNR  (dB)')
ylabel('Capacity  (bit/s/Hz)')
subtitle('M_T=N_R=1')
subplot(2,2,2)
semilogy(SNR,outage12,'g')
grid on
xlabel('SNR  (dB)')
ylabel('Capacity  (bit/s/Hz)')
subtitle('M_T=1 N_R=2')
subplot(2,2,3)
semilogy(SNR,outage21,'b')
grid on
xlabel('SNR  (dB)')
ylabel('Capacity  (bit/s/Hz)')
subtitle('M_T=2 N_R=1')
subplot(2,2,4)
semilogy(SNR,outage22,'k')
grid on
xlabel('SNR  (dB)')
ylabel('Capacity  (bit/s/Hz)')
subtitle('M_T=N_R=2')
sgtitle('MIMO Outage Capacity')

figure(14)
hold on
semilogy(SNR,outage11,'r')
semilogy(SNR,outage12,'g')
semilogy(SNR,outage21,'b')
semilogy(SNR,outage22,'k')
grid on
xlabel('SNR  (dB)')
ylabel('Capacity  (bit/s/Hz)')
grid on
title('MIMO Outage Capacity for different number of antennas')
xlabel('SNR  (dB)')
legend('M_T=N_R=1','M_T=1 N_R=2','M_T=2 N_R=1','M_T=N_R=2')
ylabel('Capacity  (bit/s/Hz)')
hold off
figure(15)
hold on
semilogy(SNR,ergodic11,'k')
semilogy(SNR,ergodic12,'k')
semilogy(SNR,ergodic21,'k')
semilogy(SNR,ergodic22,'k')
semilogy(SNR,outage11,'b')
semilogy(SNR,outage12,'b')
semilogy(SNR,outage21,'b')
semilogy(SNR,outage22,'b')
grid on
title('Ergodic Capacity vs Outage Capacity')
xlabel('SNR  (dB)')
legend('ergodiccapacities M_T=N_R=1','ergodiccapacities M_T=1 N_R=2','ergodiccapacities M_T=2 N_R=1','ergodiccapacities M_T=N_R=2','outagecapacities M_T=N_R=1','outagecapacities M_T=1 N_R=2','outagecapacities M_T=2 N_R=1','outagecapacities M_T=N_R=2')
ylabel('Capacity  (bit/s/Hz)')
hold off
figure(16)
clear all
w=1:1:20;
%x = ones(1,20);
for n = 1:20
    x40(n) = ergodiccapacities (n,n,40,0);
    x45(n) = ergodiccapacities (n,n,45,0);
    x50(n) = ergodiccapacities (n,n,50,0);
    x55(n) = ergodiccapacities (n,n,55,0);
end
hold on
plot(w,x40,'k-+')
plot(w,x45,'g-+')
plot(w,x50,'r-+')
plot(w,x55,'b-+')
hold off
grid on
xlabel('the number of antennas(M=N)')
ylabel('Ergodic Capacity  (bit/s/Hz)')
legend('SNR=40','SNR=45','SNR=50','SNR=55')
title('Ergodic Capacity of mimo systems with different number of antennas at high SNR')

function [capacities] = ergodiccapacities (M,N,SNR,r)
% M-the number of transmitted antennas M 
% N-the number of Receive antennas N 
% SNR-the system signal-to-noise ratio with dB 
% rt-Correlation coefficient of the transmitter. 
% (Equal to zero when the channel transmission is not correlated)
for X =1:M
    for Y=1:M
        Rt(X,Y) = r^(abs(X-Y));
    end
end
Re = 0.7;  
for X =1:N
    for Y=1:N
        Rr(X,Y) = Re^(abs(X-Y));
    end
end
MCrun = 1000;
snr  = 10.^(0.1*SNR);  % Signal to noise ratio conversion
capacities = zeros(1,length(SNR));
for ll = 1:length(SNR)
    capa = zeros(1,MCrun);    
    for nn =1:MCrun
        % Rayleigh 
        H = Rr^(1/2)*(sqrt(1/2).* (randn(N,M) + Y.* randn(N,M)))*Rt^(1/2);
        capa(nn) = log2(det(eye(N)+snr(ll)/M*H*H'));
    end
    capacities(ll)=mean(capa);
    Hh = waitbar(ll/length(SNR));
end
close(Hh)
end

function [capacities] = outagecapacities (M,N,SNR,rt,n)
% M-the number of transmitted antennas M 
% N-the number of Receive antennas N 
% SNR-the system signal-to-noise ratio with dB 
% rt-Correlation coefficient of the transmitter. 
% (Equal to zero when the channel transmission is not correlated)
% n-outage(Interruption rate)

for X =1:M
    for Y=1:M
        Rt(X,Y) = rt^(abs(X-Y));
    end
end

Re = 0.7; 
for X =1:N
    for Y=1:N
        Rr(X,Y) = Re^(abs(X-Y));
    end
end

MCrun = 1000;
snr  = 10.^(0.1*SNR); % Signal to noise ratio conversion
capacities = zeros(1,length(SNR));
for ll = 1:length(SNR)
    capa = zeros(1,MCrun);    
    for nn =1:MCrun
        % Rayleigh        
        H = Rr^(1/2)*(sqrt(1/2).* (randn(N,M) + Y.* randn(N,M)))*Rt^(1/2);      
        capa(nn) = (1-0.01*n)*log2(det(eye(N)+snr(ll)/M*H*H'));
    end
    capacities(ll)=mean(capa);
    Hh = waitbar(ll/length(SNR));
end
close(Hh)
end

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐