当前位置: 首页 > news >正文

3×2 MIMO系统和2×2 MIMO系统对比

SVD(奇异值分解)预编码 的角度分析,3×2 MIMO 系统相比 2×2 MIMO 系统在容量、功率分配灵活性和抗干扰能力方面具有潜在优势。以下是具体分析:


1. SVD预编码的基本原理

SVD 预编码是一种基于信道状态信息(CSI)的 MIMO 技术,通过对信道矩阵进行奇异值分解,将 MIMO 信道分解为多个并行的独立子信道(称为奇异值通道)。具体步骤为:

  1. 信道矩阵分解
    假设信道矩阵为 H \mathbf{H} H,其 SVD 分解为:
    H = U Σ V H \mathbf{H} = \mathbf{U} \mathbf{\Sigma} \mathbf{V}^H H=VH
    其中:
    - U \mathbf{U} U V \mathbf{V} V是酉矩阵(正交矩阵)。
    - Σ \mathbf{\Sigma} Σ是对角矩阵,对角线元素为奇异值 σ 1 ≥ σ 2 ≥ ⋯ ≥ σ r \sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_r σ1σ2σr,其中 r = rank ( H ) r = \text{rank}(\mathbf{H}) r=rank(H)

  2. 预编码与后编码

    • 发射端:使用 V \mathbf{V} V作为预编码矩阵,将信号投影到信道的最优方向。
    • 接收端:使用 U H \mathbf{U}^H UH作为后编码矩阵,恢复原始信号。
  3. 等效信道模型
    经过预编码和后编码后,等效信道变为 Σ \mathbf{\Sigma} Σ,即:
    y = Σ x + n \mathbf{y} = \mathbf{\Sigma} \mathbf{x} + \mathbf{n} y=Σx+n
    其中每个子信道的增益为奇异值 σ i \sigma_i σi,且相互独立。


2. 3×2 MIMO 与 2×2 MIMO 的关键差异

(1) 信道矩阵的秩(Rank)
  • 2×2 MIMO:信道矩阵的最大秩为 r = min ⁡ ( 2 , 2 ) = 2 r = \min(2,2) = 2 r=min(2,2)=2,即最多支持 2 个独立子信道

  • 3×2 MIMO:信道矩阵的最大秩为 r = min ⁡ ( 3 , 2 ) = 2 r = \min(3,2) = 2 r=min(3,2)=2,同样支持 2 个独立子信道

    结论:两者的最大子信道数相同,但 3×2 MIMO 的发射天线更多,为优化功率分配提供了更高的自由度。

(2) 奇异值分布
  • 2×2 MIMO:两个奇异值 σ 1 , σ 2 \sigma_1, \sigma_2 σ1,σ2
  • 3×2 MIMO:两个奇异值 σ 1 , σ 2 \sigma_1, \sigma_2 σ1,σ2,但由于发射天线更多,奇异值的分布可能更优:
    • 发射天线增加会提升信道矩阵的条件数(即 σ 1 / σ 2 \sigma_1 / \sigma_2 σ1/σ2可能更小),减少子信道之间的增益差异。
    • 更多的发射天线可以通过预编码矩阵 V \mathbf{V} V更好地“对齐”信道方向,提升有效增益。
(3) 功率分配的灵活性

在 SVD 预编码中,发射功率可以通过 注水算法(Water-filling) 分配到各个子信道。对于 3×2 MIMO

  • 发射天线更多,预编码矩阵 V ∈ C 3 × 3 \mathbf{V} \in \mathbb{C}^{3 \times 3} VC3×3的维度更高,可以在 三维空间 中优化信号方向。
  • 即使仅使用 2 个子信道,额外的自由度可以更灵活地抑制干扰或增强主信道的增益。

3. 3×2 MIMO 的优势

(1) 更高的容量潜力

MIMO 系统的容量由下式决定:
C = ∑ i = 1 r log ⁡ 2 ( 1 + P i σ i 2 N 0 ) C = \sum_{i=1}^r \log_2 \left( 1 + \frac{P_i \sigma_i^2}{N_0} \right) C=i=1rlog2(1+N0Piσi2)
其中 P i P_i Pi是分配到第 i i i个子信道的功率。

  • 3×2 MIMO 的发射天线更多,可能通过优化功率分配(注水算法)在相同总功率下获得更高的容量。
  • 例如,在信道条件较好时,可以将更多功率分配到主信道(对应 σ 1 \sigma_1 σ1),提升整体容量。
(2) 波束成形增益

额外的发射天线(3Tx vs 2Tx)允许更精确的波束成形:

  • 预编码矩阵 V \mathbf{V} V的维度更高(3×3 vs 2×2),可以更精确地匹配信道的主方向。
  • 在低信噪比(SNR)场景下,波束成形增益对性能提升更显著。
(3) 抗干扰能力
  • 3×2 MIMO 的预编码矩阵有更多自由度来抑制干扰(例如,通过零陷技术)。
  • 在存在多用户干扰或噪声时,3×2 系统可能表现出更好的鲁棒性。

4. 仿真对比示例

假设两种系统在瑞利衰落信道下使用 SVD 预编码和注水算法:

  • 3×2 MIMO

    • 信道矩阵 H ∈ C 2 × 3 \mathbf{H} \in \mathbb{C}^{2 \times 3} HC2×3,秩为 2。
    • 预编码矩阵 V ∈ C 3 × 3 \mathbf{V} \in \mathbb{C}^{3 \times 3} VC3×3,可优化三维空间中的信号方向。
  • 2×2 MIMO

    • 信道矩阵 H ∈ C 2 × 2 \mathbf{H} \in \mathbb{C}^{2 \times 2} HC2×2,秩为 2。
    • 预编码矩阵 V ∈ C 2 × 2 \mathbf{V} \in \mathbb{C}^{2 \times 2} VC2×2

结果

  • 容量:3×2 MIMO 的容量可能更高(尤其在低信噪比时)。
  • 误码率:3×2 MIMO 的误码率更低(因波束成形增益和更优的功率分配)。

5. 总结

从 SVD 预编码的角度看,3×2 MIMO 相比 2×2 MIMO 的优势主要体现在:

  1. 更高的自由度:通过更多发射天线优化信号方向和功率分配。
  2. 更强的波束成形能力:提升主信道的有效增益。
  3. 更优的抗干扰性能:利用额外自由度抑制干扰。

尽管两者的最大子信道数相同(均为 2),但 3×2 MIMO 在灵活性和性能潜力上更优,尤其是在信道条件复杂或需要高可靠性的场景中。


值得注意的是,在3×2 MIMO系统中,仅选择V的前两列作为预编码矩阵,第三根天线是否被浪费需结合具体场景分析:

  1. 物理层面的"浪费"

    • 信道矩阵H的秩为2,SVD分解后仅前两列V对应有效信道空间,第三列属于零空间(无法传输能量)。
    • 此时第三根天线未参与有效信号传输,物理上确实存在未被利用的情况。
  2. 实际优化手段

    • 动态天线选择(参考第二篇论文):系统可通过算法周期性地选择最优的两根发射天线,关闭第三根以降低干扰和功耗。
    • 功率重分配:零空间对应的天线可通过功率控制关闭(如注水算法中分配功率为0),避免能量浪费。
    • 多用户复用:在多用户场景下,第三根天线可服务其他用户(如MU-MIMO),实现空间资源复用。
  3. 性能权衡

    • 若强制使用第三根天线,需扩展为3×3系统(需增加接收天线),否则会导致信道间干扰。
    • 在有限反馈系统中(参考第一篇论文),保留第三根天线可作为冗余,提高信道估计鲁棒性。
场景第三天线状态资源利用率
单用户传输关闭或零功率物理层部分闲置,但避免干扰
多用户协作(CoMP)服务其他用户空间复用提升系统容量
信道时变环境作为备用天线通过天线选择实现分集增益

结论:在单用户3×2场景下,第三根天线确实无法用于当前数据流传输,但通过天线选择、功率控制或多用户调度,可转化为系统级资源优化,而非绝对意义上的浪费。实际系统中常会保留冗余天线以应对信道变化和实现分集增益。


3*2MIMO系统SVD预编码(MMSE检测)

import numpy as np
import matplotlib.pyplot as plt# ================== 系统参数配置 ==================
Nt = 3  # 发射天线数
Nr = 2  # 接收天线数
Ns = 2  # 数据流数
num_symbols = 1000  # 总符号数
SNR_dB = 10  # 信噪比(dB)
np.random.seed(0)# ================== QPSK调制模块 ==================
def qpsk_mod(bits):bit_pairs = bits.reshape(-1, 2)symbols = 1 / np.sqrt(2) * (2 * bit_pairs[:, 0] - 1 + 1j * (2 * bit_pairs[:, 1] - 1))return symbols# ================== 信道生成模块 ==================
def generate_correlated_channel():# 天线相关矩阵corr_tx = np.array([[1, 0.3, 0.1],[0.3, 1, 0.2],[0.1, 0.2, 1]])corr_rx = np.array([[1, 0.5],[0.5, 1]])# 生成独立信道矩阵H_temp = np.random.randn(Nr, Nt) + 1j * np.random.randn(Nr, Nt)# Kronecker信道建模R = np.kron(corr_rx, corr_tx)H_vec = R @ H_temp.reshape(-1, 1)return np.sqrt(0.5) * H_vec.reshape(Nr, Nt)# ================== 预编码模块 ==================
def svd_precoding(H):U, S, Vh = np.linalg.svd(H)return Vh.conj().T[:, :Ns]# ================== 接收端检测模块 ==================
def mmse_detection(y, H, V, noise_var):H_eff = H @ VW = np.linalg.inv(H_eff.T.conj() @ H_eff + noise_var * np.eye(Ns)) @ H_eff.T.conj()return W @ y# ================== 主仿真流程 ==================
if __name__ == "__main__":# 生成随机比特流bits = np.random.randint(0, 2, 2 * num_symbols)# QPSK调制(维度调整为Ns x (num_symbols/2))s = qpsk_mod(bits).reshape(Ns, -1)# 信道生成与预编码H = generate_correlated_channel()U, S, Vh = np.linalg.svd(H)V= Vh.conj().T[:, :Ns]# 预编码处理s_precoded = V @ s# 信道传输(添加噪声)noise_power = 10 ** (-SNR_dB / 10)noise = np.sqrt(noise_power / 2) * (np.random.randn(Nr, s.shape[1]) + 1j * np.random.randn(Nr, s.shape[1]))y = H @ s_precoded + noise# MMSE检测s_hat = mmse_detection(y, H, V, noise_power)# SVD解码# s_hat = np.dot(U.conj().T, y)  # 恢复符号# 信号解调s_hat = s_hat.reshape(-1)bits_hat = np.zeros_like(bits)bits_hat[::2] = (np.real(s_hat) > 0).astype(int)bits_hat[1::2] = (np.imag(s_hat) > 0).astype(int)# 性能评估ber = np.mean(bits != bits_hat)mse = np.mean(np.abs(s.reshape(-1) - s_hat) ** 2)print(f"BER: {ber}")print(f"MSE: {mse}")# ================== 可视化模块 ==================
plt.figure(figsize=(10, 4))
plt.subplot(121)
plt.scatter(np.real(s_hat), np.imag(s_hat), alpha=0.6)
plt.title('Receiving constellation chart')
plt.subplot(122)
plt.plot(np.abs(H.reshape(-1)), 'o-')
plt.title('Amplitude of the channel coefficient')
plt.tight_layout()
plt.show()

相关文章:

3×2 MIMO系统和2×2 MIMO系统对比

从 SVD(奇异值分解)预编码 的角度分析,32 MIMO 系统相比 22 MIMO 系统在容量、功率分配灵活性和抗干扰能力方面具有潜在优势。以下是具体分析: 1. SVD预编码的基本原理 SVD 预编码是一种基于信道状态信息(CSI&#xf…...

【MySQL — 数据库基础】深入解析 MySQL 的联合查询

1. 插入查询结果 语法 insert into table_name1 select* from table_name2 where restrictions ;注意:查询的结果集合,列数 / 类型 / 顺序 要和 insert into 后面的表相匹配;列的名字不要求相同; create table student1(id int , …...

【医院运营统计专题】3.解码医院运营统计:目标、原则与未来蓝图

医院成本核算、绩效管理、运营统计、内部控制、管理会计专题索引 一、医院运营统计的关键意义 在医疗行业持续发展与变革的大背景下,医院运营统计作为医院管理的关键组成部分,其重要性愈发凸显。从国内医院的普遍现状来看,运营统计已深度融入日常管理,为医院的有序运转提…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_atomic_cmp_set 函数

目录 修正 执行 ./configure 命令时,输出: checking for OS Linux 6.8.0-52-generic x86_64 checking for C compiler ... found using GNU C compiler gcc version: 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) 所以当前环境是 x86_64 于是在 src…...

CNN-BiLSTM卷积神经网络双向长短期记忆神经网络多变量多步预测,光伏功率预测

代码地址:CNN-BiLSTM卷积神经网络双向长短期记忆神经网络多变量多步预测,光伏功率预测 CNN-BiLSTM卷积神经网络双向长短期记忆神经网络多变量多步预测 一、引言 1.1、研究背景和意义 光伏功率预测在现代电力系统中占有至关重要的地位。随着可再生能源…...

【YOLO系列】YOLOv5 NMS源码理解、更换为DIoU-NMS

代码来源:GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite 使用的代码是YOLOv5 6.1版本 参考笔记:YOLOv5改进系列(八) 更换NMS非极大抑制DIoU-NMS、CIoU-NMS、EIoU-NMS、GIoU-NMS 、SIoU-NMS、Soft-…...

Android RenderEffect对Bitmap高斯模糊(毛玻璃),Kotlin(1)

Android RenderEffect对Bitmap高斯模糊(毛玻璃),Kotlin(1) import android.graphics.Bitmap import android.graphics.BitmapFactory import android.graphics.HardwareRenderer import android.graphics.PixelFormat import android.graphic…...

【linux学习指南】线程同步与互斥

文章目录 📝线程互斥🌠 库函数strncpy🌉进程线程间的互斥相关背景概念🌉互斥量mutex 🌠线程同步🌉条件变量🌉同步概念与竞态条件🌉 条件变量函数 🚩总结 📝线…...

JavaScript函数与方法详解

目录 一、函数的定义 1. 函数声明 2. 函数表达式 3. 箭头函数 二、函数的调用 1. 调用方式 2. 参数数量的灵活性 三、arguments 对象 1. 基本概念 2. 属性 3. 应用场景 4. 转换为真数组 5. 总结 四、Rest参数 1. 基本概念 2. 特点 3. 应用场景 4. 总结 五、变…...

【论文笔记】ZeroGS:扩展Spann3R+GS+pose估计

spann3r是利用dust3r做了增量式的点云重建,这里zeroGS在前者的基础上,进行了增量式的GS重建以及进行了pose的联合优化,这是一篇dust3r与GS结合的具有启发意义的工作。 abstract NeRF和3DGS是重建和渲染逼真图像的流行技术。然而,…...

AtCoder - arc058_d Iroha Loves Strings解答与注意事项

链接:Iroha Loves Strings - AtCoder arc058_d - Virtual Judge 利用bitset这一数据结构,定义bitset类型的变量dp[i]表示第i到n个字符串能拼成的字符串长度都有哪些,比如00100101,表示能拼成的长度有0,2,5,&#xff0…...

企业使用统一终端管理(UEM)工具提高端点安全性

什么是统一终端管理(UEM) 统一终端管理(UEM)是一种从单个控制台管理和保护企业中所有端点的方法,包括智能手机、平板电脑、笔记本电脑、台式机和 IoT设备。UEM 解决方案为 IT 管理员提供了一个集中式平台,用于跨所有作系统和设备类型部署、配置、管理和…...

Leetcode 算法题 9 回文数

起因, 目的: 数学法。 % 求余数, 拆开组合,组合拆开。 这个题,翻来覆去,拆开组合, 组合拆开。构建的过程。 题目来源,9 回文数: https://leetcode.cn/problems/palindrome-number…...

设计模式Python版 命令模式(上)

文章目录 前言一、命令模式二、命令模式示例 前言 GOF设计模式分三大类: 创建型模式:关注对象的创建过程,包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式:关注类和对象之间的组合&…...

C语言之循环结构:直到型循环

C语言 循环结构 直到型循环的实现 特点:先执行,后判断,不管条件是否满足,至少执行一次。典型代表:do…while,goto(已淘汰,不推荐使用) do…while 语法: d…...

细说STM32F407单片机RTC的备份寄存器原理及使用方法

目录 一、备份寄存器的功能 二、示例功能 三、项目设置 1、晶振、DEBUG、CodeGenerator、USART6 2、RTC 3、NVIC 4、GPIO 及KEYLED 四、软件设计 1、main.h 2、main.c 3、rtc.c 4、keyled.c、keyled.h 五、运行调试 本实例旨在介绍备份寄存器的作用。本实例继续使…...

MATLAB计算反映热需求和能源消耗的度数日指标(HDD+CDD)(全代码)

目录 度数日(Degree Days, DD)概述计算公式MATLAB计算代码调用函数1:计算单站点的 CDD参考度数日(Degree Days, DD)概述 度数日(Degree Days, DD)是用于衡量建筑、城市和地区的热需求和能源消耗模式的指标。它分为两部分: 加热度日(Heating Degree Days, HDD):当室…...

J6 X8B/X3C切换HDR各帧图像

1、OV手册上的切换命令 寄存器为Ox5074 各帧切换: 2、地平线control tool实现切换命令 默认HDR模式出图: HCG出图: LCG出图 SPD出图 VS出图...

09-轮转数组

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 方法一:使用额外数组 function rotate(nums: number[], k: number): void {const n nums.length;k k % n; // 处理 k 大于数组长度的情况const newNums new A…...

用vue3写一个好看的wiki前端页面

以下是一个使用 Vue 3 Element Plus 实现的 Wiki 风格前端页面示例&#xff0c;包含现代设计、响应式布局和常用功能&#xff1a; <template><div class"wiki-container"><!-- 头部导航 --><el-header class"wiki-header"><d…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...