摘要

MIMO检测的核心矛盾是最优性能(ML检测)与指数级复杂度之间的不可调和性。深度学习通过离线训练、在线推理的模式,将复杂度从在线搜索转移到离线学习,是突破该瓶颈的有效路径。然而,神经网络的检测精度高度依赖于标签的信息表示方式——不同的编码策略决定了网络输出层的任务形式(分类 or 多标签回归),进而影响学习难度和泛化能力。本文分析了三种标签策略的设计动机和内在折中。实验验证了该折中关系的存在,并为资源自适应系统提供了明确的设计准则 。

一、背景和意义

1.1 研究背景

在传统MIMO接收机中,最优ML检测器通过穷举所有可能符号组合来最小化错误概率,其计算量随发射天线数和调制阶数呈爆炸式增长。为此,研究者提出了多种次优算法(如ZF、MMSE、球形译码、K-best等),但这些算法要么牺牲性能,要么在最坏情况下仍难以承受高维搜索。

深度学习的介入带来了范式的根本转变:将检测从“在线优化问题”转化为“离线学习问题”。神经网络通过海量标注数据(接收信号→发射符号组合)训练,将信道和噪声的统计特性隐式地编码在权重中。在线阶段仅需若干矩阵乘法(前向传播),复杂度固定且远低于ML搜索。这种“用训练时间换在线时间”的策略,使得深度学习成为大规模MIMO极具潜力的检测方案。

1.2 意义

然而,神经网络的性能并非凭空而来,其上限取决于训练数据的信息质量——尤其是标签y的表示方式。标签编码不仅是将符号组合转换为数字向量的技术手段,更从根本上决定了网络要“学什么”以及“怎么学”。不同的编码会改变输出层的激活函数选择(Softmax vs. Sigmoid)、损失函数的形态以及梯度传播的路径,最终影响收敛速度和检测精度。因此,研究标签编码策略是深度学习检测设计中不可忽视的一环。

本文深入解析三种典型标签策略的设计逻辑与性能折中:

  1. 每天线独热编码(OHA)和直接符号编码(DSE),与传统的独热编码(OH)方案进行对比;
  2. 展示了所提策略在BER性能与检测复杂度之间的灵活折中,可根据硬件资源限制进行选择;

二、MIMO系统模型

2.1 MIMO模式

在这里插入图片描述

2.2 最优ML检测

在这里插入图片描述
ML检测在BER性能上是最优的,但其指数级复杂度使其在实际系统中难以实现。

2.3 神经网络输入

对于接收信号
在这里插入图片描述

2.4 神经网络检测的数学形式

在这里插入图片描述

三、三种标签编码策略[1]

标签编码策略的核心在于如何将 M N t M^{N_t} MNt种发射组合映射到输出向量。本文对于标签编码基本思想是:在训练数据生成阶段,不仅构造输入特征 X \mathbf{X} X(接收信号的实部和虚部),还设计不同的方式将发射符号组合映射为标签向量 y \mathbf{y} y,从而为神经网络提供更有效的学习信号。

3.1 独热编码(One-Hot Encoding, OH)最高信息密度,但维数灾难

在这里插入图片描述
OH策略将每种发射符号组合编码为一个独热向量,向量长度为 M N t M^{N_t} MNt,仅在与该组合对应的位置为1,其余为0。例如,对于 N t = 2 N_t=2 Nt=2、4-QAM系统,共有 4 2 = 16 4^2=16 42=16种组合,标签向量长度为16。

可以看到有如下特点:

  • 输出层激活函数:Softmax(适用于多分类问题)
  • 复杂度 O ( M N t ) \mathcal{O}(M^{N_t}) O(MNt)(指数级)
  • 特点:从信息论角度看,OH编码的信息密度(每个输出神经元携带的平均信息量)最高,因为没有冗余位;但高密度也意味着分类边界复杂,需要大量数据才能学习到有效的决策区域

3.2 每天线独热编码(One-Hot per Antenna, OHA)

在这里插入图片描述
OHA策略为每个天线独立生成一个长度为 M M M的独热向量,然后拼接成总长度为 M × N t M \times N_t M×Nt的标签向量。例如, N t = 2 N_t=2 Nt=2、4-QAM时,每个天线用4比特表示,总标签长度为8。

  • 输出层激活函数:Sigmoid(每个天线独立分类)

  • 复杂度 O ( M ⋅ N t ) \mathcal{O}(M \cdot N_t) O(MNt)(线性级)

  • 特点:将联合检测分解为 N t N_t Nt个独立的 M M M类分类子任务,这利用了天线间的统计独立性(在ZF均衡后,各天线的噪声近似独立,尽管实际仍有相关性,但工程上可近似)。

  • 但分解也带来了信息损失:由于各个天线的分类是独立进行的,网络无法显式地建模天线间符号的联合分布(例如某些组合可能同时受到信道相关性影响)。在BER性能和复杂度之间取得良好折中。

3.3 直接符号编码(Direct Symbol Encoding, DSE)进一步压缩为比特级二分类

在这里插入图片描述

表1:4-QAM符号的比特标签映射

符号 复数值 比特标签
s 1 s_1 s1 − 1 + j -1+j 1+j 10
s 2 s_2 s2 − 1 − j -1-j 1j 11
s 3 s_3 s3 + 1 + j +1+j +1+j 00
s 4 s_4 s4 + 1 − j +1-j +1j 01
  • 特点:DSE将检测任务进一步转化为比特级的多标签二分类问题。每个比特只依赖其对应天线的符号,且比特之间独立建模。复杂度最低,适合资源受限系统
  • 输出层激活函数:Sigmoid(适用于多标签二分类)
  • 复杂度 O ( log ⁡ 2 ( M ) ⋅ N t ) \mathcal{O}(\log_2(M) \cdot N_t) O(log2(M)Nt)(对数级)
  • 然而,比特级独立判决忽略了比特之间的相关性和错误传播。例如,某个天线的两个比特如果都被错判,可能导致符号误判到距离很远的区域,造成突发错误。
3.4 三种标签编码的综合对比
表2:三种标签编码策略的全面对比(以 N t = 2 , M = 4 N_t=2, M=4 Nt=2,M=4 为例)
对比维度 独热编码(OH) 每天线独热(OHA) 直接符号编码(DSE)
输出维数 N c N_c Nc M N t = 16 M^{N_t} = 16 MNt=16 M ⋅ N t = 8 M \cdot N_t = 8 MNt=8 log ⁡ 2 M ⋅ N t = 4 \log_2 M \cdot N_t = 4 log2MNt=4
任务类型 单分类( M N t M^{N_t} MNt 类) 多任务分类( N t N_t Nt 个独立的 M M M 类子任务) 多标签二分类( log ⁡ 2 M ⋅ N t \log_2 M \cdot N_t log2MNt 个独立比特)
输出层激活函数 Softmax Sigmoid(或分组 Softmax) Sigmoid
判决方式 取最大概率类别 逐天线取最大概率符号 每个比特阈值判决(0.5)后映射回符号
信息保留 完全保留联合分布信息 保留各天线边缘分布,忽略天线间相关性 保留比特级信息,忽略比特间相关性
复杂度(前向) O ( N r ⋅ d h + d h ⋅ M N t ) \mathcal{O}(N_r \cdot d_h + d_h \cdot M^{N_t}) O(Nrdh+dhMNt) O ( N r ⋅ d h + d h ⋅ M N t ) \mathcal{O}(N_r \cdot d_h + d_h \cdot M N_t) O(Nrdh+dhMNt) O ( N r ⋅ d h + d h ⋅ log ⁡ 2 M ⋅ N t ) \mathcal{O}(N_r \cdot d_h + d_h \cdot \log_2 M \cdot N_t) O(Nrdh+dhlog2MNt)
参数量(输出层) d h × M N t d_h \times M^{N_t} dh×MNt(指数级) d h × ( M N t ) d_h \times (M N_t) dh×(MNt)(线性级) d h × ( log ⁡ 2 M ⋅ N t ) d_h \times (\log_2 M \cdot N_t) dh×(log2MNt)(对数级)
训练难度 最难(类别多,需大量数据) 中等(子任务独立,收敛较快) 较易(二分类任务简单,但存在饱和区)
BER 性能(相对 ML) 最优(gap < 0.5 dB) 良好(gap ~ 0.5~1 dB) 可接受(gap ~ 2 dB)
F1‑score(2×2) 0.97 0.93 0.96
推荐场景 宏基站、边缘服务器(算力充足) 小基站、CPE(平衡型) IoT 传感器、可穿戴设备(资源极限)

显然,从OH到DSE,输出维数呈指数→线性→对数下降,而性能也随之递减。这正是本文的研究目的:看能否用微小的性能损失换取复杂度降低

四、神经网络架构与训练

4.1 超参数

超参数 2×2 配置 4×4 配置
输入层神经元数 2 N r = 4 2N_r = 4 2Nr=4(4个特征) 2 N r = 8 2N_r = 8 2Nr=8(8个特征)
隐藏层数量 1 2
每层神经元数 100 1000(每层)
输出层神经元数 取决于标签策略:
• OH: M N t = 16 M^{N_t}=16 MNt=16
• OHA: M ⋅ N t = 8 M\cdot N_t=8 MNt=8
• DSE: log ⁡ 2 M ⋅ N t = 4 \log_2 M \cdot N_t = 4 log2MNt=4
取决于标签策略:
• OH: M N t = 256 M^{N_t}=256 MNt=256
• OHA: M ⋅ N t = 16 M\cdot N_t=16 MNt=16
• DSE: log ⁡ 2 M ⋅ N t = 8 \log_2 M \cdot N_t = 8 log2MNt=8
隐藏层激活函数 ReLU ReLU
输出层激活函数 • OH: Softmax
• OHA: Sigmoid
• DSE: Sigmoid
同左
训练轮数(Epochs) 2000 50000
学习率( α \alpha α 0.01 0.01
权重初始化 Xavier(均匀分布,范围 [ − 6 / ( n i n + n o u t ) , 6 / ( n i n + n o u t ) ] [-\sqrt{6/(n_{in}+n_{out})}, \sqrt{6/(n_{in}+n_{out})}] [6/(nin+nout) ,6/(nin+nout) ] 同左
损失函数 归一化均方误差(NRMSE) 同左
优化算法 随机梯度下降(SGD) 同左
训练集大小 0.8 × 10 4 = 8000 0.8 \times 10^4 = 8000 0.8×104=8000 样本 0.8 × 10 5 = 80000 0.8 \times 10^5 = 80000 0.8×105=80000 样本
测试集大小 0.2 × 10 4 = 2000 0.2 \times 10^4 = 2000 0.2×104=2000 样本 0.2 × 10 5 = 20000 0.2 \times 10^5 = 20000 0.2×105=20000 样本
训练信噪比(SNR) 3 dB 3 dB
数据预处理 全局均值归零,方差归一化 同左
批量处理 全批量(Full-batch,即每次迭代使用全部训练集) 同左

4.2 训练过程

数据生成:代码首先生成所有 M N t M^{N_t} MNt种发射符号组合,然后为每个训练样本随机选择一种组合,通过瑞利信道并添加AWGN后,将接收信号经迫零均衡后的实部和虚部作为输入特征 X \mathbf{X} X

标签生成:三种策略的标签生成方式不同——

  • OH:将组合索引编码为独热向量
  • DSE:将每个符号的比特标签拼接
  • OHA:为每个天线独立生成独热向量

前向传播:实现了两层全连接网络( 2 × 2 2 \times 2 2×2配置),隐藏层使用ReLU激活,输出层根据策略选择Softmax或Sigmoid。

反向传播:采用SGD更新权重。

五、实验结果与分析

5.1 损失函数收敛性

在这里插入图片描述
可以看到:

  • 训练集与测试集的损失曲线之间无明显差距,表明模型未出现过拟合。

5.2 BER性能

在这里插入图片描述

在这里插入图片描述
可以看到

  • OH方案最接近最优ML检测器;
  • OHA方案与ML检测器约有0.5 dB的差距(BER = 10 − 4 = 10^{-4} =104时);
  • DSE方案与ML检测器约有2 dB的差距。

5.3 分类性能

三种策略的F1-score、精确率和召回率如下:

MIMO配置 标签策略 精确率 召回率 F1-score
2 × 2 2 \times 2 2×2 OH 0.97 0.98 0.97
2 × 2 2 \times 2 2×2 OHA 0.93 0.93 0.93
2 × 2 2 \times 2 2×2 DSE 0.96 0.98 0.96
4 × 4 4 \times 4 4×4 OH 0.96 0.94 0.95
4 × 4 4 \times 4 4×4 OHA 0.89 0.89 0.91
4 × 4 4 \times 4 4×4 DSE 0.91 0.92 0.93

所有方案的F1-score均达到0.9以上,表明深度学习检测器具有良好的分类性能。

5.4 复杂度分析

ML检测的复杂度为 O ( N t ⋅ N r ⋅ M N t ) \mathcal{O}(N_t \cdot N_r \cdot M^{N_t}) O(NtNrMNt)。DL检测器的复杂度主要来自前向传播的矩阵乘法:

标签策略 复杂度( 2 × 2 2 \times 2 2×2 复杂度( 4 × 4 4 \times 4 4×4
OH O ( 2 ( N r + d ℓ + 1 ) + M N t ) \mathcal{O}(2(N_r + d_{\ell+1}) + M^{N_t}) O(2(Nr+d+1)+MNt) O ( d ℓ + 1 ( 2 N r + M N t ) ) \mathcal{O}(d_{\ell+1}(2N_r + M^{N_t})) O(d+1(2Nr+MNt))
OHA O ( 2 ( N r + d ℓ + 1 ) + M ⋅ N t ) \mathcal{O}(2(N_r + d_{\ell+1}) + M \cdot N_t) O(2(Nr+d+1)+MNt) O ( d ℓ + 1 ( 2 N r + M ⋅ N t ) ) \mathcal{O}(d_{\ell+1}(2N_r + M \cdot N_t)) O(d+1(2Nr+MNt))
DSE O ( 2 ( N r + d ℓ + 1 ) + log ⁡ 2 ( M ) ⋅ N t ) \mathcal{O}(2(N_r + d_{\ell+1}) + \log_2(M) \cdot N_t) O(2(Nr+d+1)+log2(M)Nt) O ( d ℓ + 1 ( 2 N r + log ⁡ 2 ( M ) ⋅ N t ) ) \mathcal{O}(d_{\ell+1}(2N_r + \log_2(M) \cdot N_t)) O(d+1(2Nr+log2(M)Nt))

OHA将复杂度从指数级 M N t M^{N_t} MNt降为线性级 M ⋅ N t M \cdot N_t MNt,DSE进一步降为对数级 log ⁡ 2 ( M ) ⋅ N t \log_2(M) \cdot N_t log2(M)Nt

部分代码:

clear
close all
clc
% 生成训练数据集所用的QAM符号
N = 1e4; % 训练符号数量
M = 4;   % 调制阶数
qam_idx = 0:M-1; % QAM调制索引
Nt = 2;  % 发射天线数
Nr = 2;  % 接收天线数

% 神经网络初始参数
n_neuronas_oculta = 100; % 隐藏层神经元数
input_size = 2*Nt;       % 输入特征数(实部+虚部)
output_size = log2(M)*Nt; % 输出位数(每个天线log2(M)比特)
n_epocas = 2000;         % 训练轮数

% 随机选择符号组合的索引(共M^Nt种组合)
rand_sym_idx = randi(M^Nt,1,N);

% 初始化标签和输入数据
y = zeros(N,output_size);    % 标签:每个天线对应的比特
X = zeros(N,input_size);     % 输入:均衡后的接收信号实虚部
qam_sym = qammod(qam_idx,M); % QAM符号表
alpha = 0.01;                % 学习率

% 计算所有可能的发射符号组合(笛卡尔积)
[Xx, Yy] = meshgrid(qam_sym,qam_sym);
prod_cart = [Xx(:) Yy(:)];

% 提取每个符号的实部和虚部符号位(用于直接编码)
real_sign = real(prod_cart)<0;
imag_sign = imag(prod_cart)<0;
idx_sign = [real_sign(:,1) imag_sign(:,1) real_sign(:,2) imag_sign(:,2)];

SNR_dB = 3;                % 训练数据信噪比(dB)
SNR_l = 10.^(SNR_dB./10);
No = 1;

% 生成训练数据
for i=1:N
    sel_symbol = prod_cart(rand_sym_idx(i),:); % 选择一组符号
    y(i,:) = idx_sign(rand_sym_idx(i),:);      % 标签为该组合的符号位
    H = (1/sqrt(2))*(randn(Nr,Nt) + 1i*randn(Nr,Nt)); % 瑞利信道
    n = (No/sqrt(2))*(randn(Nr,1) + 1i*randn(Nr,1));
    n = (1/sqrt(SNR_l))*n;
    r_x = H*sel_symbol.';
    H_inv = pinv(H);
    r_x = H_inv*r_x + n;                       % 迫零均衡
    X(i,:) = [real(r_x.') imag(r_x.')];
end
% 重排顺序:[real(r1) imag(r1) real(r2) imag(r2)]
orden = [1,3,2,4];
X = X(:,orden);

% 数据归一化(零均值单位方差)
X = X - mean(X(:));
X = X ./ std(X(:));

% 划分训练集和测试集(80%训练,20%测试)
train_qty = round(0.8*length(X));
test_qty = N - train_qty;

Xtrain = X(1:train_qty,:);
ytrain = y(1:train_qty,:);
idx_train = rand_sym_idx(1:train_qty);

Xtest = X(train_qty+1:end,:);
ytest = y(train_qty+1:end,:);
idx_test = rand_sym_idx(train_qty+1:end);

% 神经网络架构:输入(4) → 隐藏(100) → 输出(4比特)
% Xavier初始化
xavier_limit = sqrt(6)/sqrt(input_size+output_size);
W1 = rand(n_neuronas_oculta,input_size);
W1 = -xavier_limit + 2*xavier_limit*W1;
b1 = randn(n_neuronas_oculta,1);

W2 = rand(output_size,n_neuronas_oculta);
W2 = -xavier_limit + 2*xavier_limit*W2;
b2 = randn(output_size,1);

% 记录损失和准确率
train_loss = zeros(1,n_epocas);
test_loss = zeros(1,n_epocas);
train_acc = zeros(1,n_epocas);
test_acc = zeros(1,n_epocas);

for i=1:n_epocas
    % **************************
    % 前向传播
    % **************************
    Z1 = W1*Xtrain';
    b1_rep = repmat(b1,1,train_qty);
    Z1 = Z1 + b1_rep;
    A1 = max(0,Z1); % ReLU激活

    Z2 = W2*A1;
    b2_rep = repmat(b2,1,train_qty);
    Z2 = Z2 + b2_rep;
    A2 = 1./(1+exp(-Z2)); % Sigmoid激活(输出比特)

    % 将输出(>0.5)转换为对应的符号组合索引
    [~, y_hat] = ismember((A2>0.5)', idx_sign, 'rows');
    y_hat = y_hat';

    % 计算训练损失(均方误差,比较索引)
    train_loss(i) = (1/train_qty)*sum((y_hat - idx_train).^2);
    f = (y_hat == idx_train);
    train_acc(i) = length(find(f==1))/train_qty;

    % **************************
    % 反向传播
    % **************************
    dZ2 = A2 - ytrain';        % 输出层梯度(Sigmoid导数已包含)
    dW2 = (1/train_qty)*(dZ2*A1');
    db2 = (1/train_qty)*(sum(dZ2,2));

    dZ1_prev = (W2'*dZ2);
    dZ1 = dZ1_prev .* (Z1>0); % ReLU导数
    dW1 = (1/train_qty)*(dZ1*Xtrain);
    db1 = (1/train_qty)*sum(dZ1,2);

    % 恢复b1,b2为列向量(因之前repmat)
    b1 = b1(:,1);
    b2 = b2(:,1);

    % 更新权重
    W1 = W1 - alpha*dW1;
    b1 = b1 - alpha*db1;
    W2 = W2 - alpha*dW2;
    b2 = b2 - alpha*db2;

    % ****************************
    % 测试集验证
    % ****************************
    Z1_V = W1*Xtest';
    b1_rep = repmat(b1,1,test_qty);
    Z1_V = Z1_V + b1_rep;
    A1_V = max(0,Z1_V);

    Z2_V = W2*A1_V;
    b2_rep = repmat(b2,1,test_qty);
    Z2_V = Z2_V + b2_rep;
    A2_V = 1./(1+exp(-Z2_V));

    [~, y_hat_v] = ismember((A2_V>0.5)', idx_sign, 'rows');
    y_hat_v = y_hat_v';
    test_loss(i) = (1/test_qty)*sum((y_hat_v - idx_test).^2);
    f_test = (y_hat_v == idx_test);
    test_acc(i) = length(find(f_test==1))/test_qty;

    %100轮输出一次状态
    if rem(i,100)==0
        fprintf('******************************** \n');
        txt = '轮次 %d | 训练损失 %2.2f | 测试损失 %2.2f | 训练准确率 %2.2f | 测试准确率 %2.2f \n';
        fprintf(txt,i,train_loss(i),test_loss(i), train_acc(i), test_acc(i));
    end

    % 恢复b1,b2
    b1 = b1(:,1);
    b2 = b2(:,1);
end

% 绘制损失曲线
figure
title('损失曲线')
plot(train_loss,'LineWidth',2), grid on, hold on,
plot(test_loss,'--r','LineWidth',2),
xlabel('轮次')
ylabel('损失')
legend('训练损失','测试损失')

% 绘制准确率曲线
figure
title('准确率曲线')
plot(train_acc, 'LineWidth',2), grid on, hold on,
plot(test_acc,'--r','LineWidth',2),
xlabel('轮次')
ylabel('准确率')
legend('训练准确率','测试准确率')

% 保存模型(可选)
% save('modelMIMO2x2_4QAMNoOneHot_3dB.mat','W1','W2','b1','b2');

% 计算混淆矩阵和F1分数(宏平均)
ytrue = idx_test;
ypred = y_hat_v;
clases = output_size;
cm = zeros(clases);
for i=1:clases
    for j=1:clases
        for l=1:length(ytrue)
            if (ytrue(l) == i) && (ypred(l) == j)
                cm(i,j) = cm(i,j) + 1;
            end
        end
    end
end

F1 = 0;
sum_prec = 0;
sum_recall = 0;
for ii=1:clases
    if (cm(ii,ii)==0)
        Prec = 0;
        Recall = 0;
        F1 = F1 + 0;
    else
        Prec = cm(ii,ii)/sum((cm(ii,:)));
        Recall = cm(ii,ii)/sum((cm(:,ii)));
        F1 = F1 + (2*Prec*Recall)/(Prec+Recall);
        sum_prec = sum_prec + Prec;
        sum_recall = sum_recall + Recall;
    end
end

F1_macro = F1/clases;
Prec_macro = sum_prec/clases;
Recall_macro = sum_recall/clases;

fprintf('------ 分类报告 -------------------------------- \n');
txt2 = ' 宏平均F1: %2.2f | 宏平均精确率: %2.2f | 宏平均召回率: %2.2f \n';
fprintf(txt2,F1_macro,Prec_macro,Recall_macro);

六、结论与展望

本文分析了基于深度学习的MIMO信号检测方案。主要结论如下:

  1. 深度学习能够有效解决MIMO检测的复杂度问题,以较低的在线计算代价实现接近最优ML检测的BER性能。

  2. 标签编码策略对检测性能有显著影响:OH策略BER性能最优但复杂度最高;OHA策略在性能和复杂度间取得良好平衡(BER损失<1 dB);DSE策略复杂度最低但BER损失约2 dB。

  3. 所提方案适用于资源受限的自适应系统:可根据硬件条件和性能需求灵活选择标签策略。

未来的研究方向包括:测试更高阶QAM调制方案、超参数调优以优化系统资源、以及考虑非理想信道估计的影响。

参考文献

[1] Ibarra-Hernández, R.F.; Castillo-Soria, F.R.; Gutiérrez, C.A.; Del-Puerto-Flores, J.A; Acosta-Elías J., Rodríguez-Abdalá V. and Palacios-Luengas L. Efficient Deep Learning-Based Detection Scheme for MIMO Communication Systems.

仿真代码可见文末VX公众号,所见即所得

更多推荐