一种基于Kaczmarz算法的大规模MIMO信号检测方法
2020-11-11孙文胜
蒋 晔,孙文胜
(杭州电子科技大学通信工程学院,浙江 杭州 310018)
0 引 言
在大规模多输入多输出(Multiple-input Multiple-output, MIMO)技术中,一般是在基站侧检测上行信道中不同小区不同用户之间的信号,按检测方式可分为线性检测和非线性检测。常用传统线性检测方法有迫零(Zero Forcing,ZF)检测、最小均方误差(Minimum Mean Square Error,MMSE)检测和最大比传输(Maximum Ratio Transmission,MRT)检测。非线性检测则是遍历所有发射信号域中的信号,实现复杂度非常高,难于实现。由于存在信道硬化现象,即使是简单的线性算法检测也能接近最优接收机的性能,同时其检测复杂度为多项式级别,比非线性算法的指数级别的复杂度低很多。所以,近几年的大规模MIMO检测算法研究基本集中在线性算法上。
基于MMSE的简化复杂度的检测方法分为级数展开法和迭代法。基于级数展开的诺曼级数展开法(Norman Series Expansion,NE)是采用级数序列的前几项和近似矩阵求逆,级数展开次数的高低决定了其近似程度。迭代法又可分为求解方程组解的迭代法和直接求逆的迭代法。第一类迭代法有雅克比迭代(Jacobi, JC)、高斯迭代(Gauss-Seidel,GS)、(对称)连续超松弛算法(Successive Over-Relaxation,SOR)[1],第二类迭代法是基于Cholesky分解和Sherman-Morrison公式的CSM检测算法[2],首先使用Cholesky分解信道矩阵,然后使用Sherman-Morrison公式迭代计算信道信息。申滨等[3]把Kaczmarz算法引入大规模MIMO系统,并且引入收敛因子,改变Kaczmarz算法的内部迭代顺序,加快了收敛速度。丁春辉等[4]利用增广矩阵避免了Gram矩阵的计算,减少了Kaczmarz算法的计算量。但是迭代次数增多时,该算法的复杂度反而会急剧增长。本文提出一种改进的Kaczmarz算法——半递推Kaczmarz(Partial Recursive Kaczmarz, PR-Kaczmarz)算法,以递推关系代替部分迭代部分,在保持性能基本不变的同时,降低复杂度。
1 大规模MIMO系统模型
1.1 传输模型
为了简化分析过程,使用用户设备为单天线的单小区大规模MIMO上行链路系统模型。假设用户数量为Mt个,基站天线数量为Mr根,其中Mr≫Mt。上行信道HC(t)为Mr×Mt维,服从循环对称复高斯噪声(Circularly Symmetric Complex Zero-mean White Gaussian Noise, CSCG)分布的时变信道矩阵[5]。假定基站检测信号的时间小于相干时间间隔,那么时变信道函数HC(t)可简记为时间无关信道HC。离散均匀分布的Mt维实基带信号向量为bR={b1,b2,…,bMt},其中的元素bk∈+,+为正整数域。发送信号sC为经过多进制正交幅度调制(Multiple Quadrature Amplitude Modulation,MQAM)后再次经过功率归一化的发射信号,M阶调制的调制符号集为ΩM。为使得总发射功率为单位值,功率归一化因子记为FM:
(1)
调制过程可记为ΩMmap(·)操作符。整个上行传输系统可表示为:
sC=ΩMmap(bR)×FM
(2)
yC=HCsC+nC
(3)
式(2)中的sC=(s1,s2,…,sMt)Η,右上角的Η代表共轭转置。发射信号sC中元素的sk代表第k位用户的发射信号。nC为服从CSCG的独立Mr×1维加性白噪声,nC~CN(0,σ2IMr)。式(3)中yC为基站处的接收信号。
1.2 检测模型
上行信道基站侧的常用线性检测为MMSE检测,可表示为:
(4)
(5)
2 Kaczmarz检测算法
Kaczmarz算法是一种求解大型线性方程组最小范数解的迭代算法。将式(4)代入式(5),经过变形得到:
(6)
(7)
(8)
图1 t=4,k=2时,Kaczmarz算法几何逼近原理
3 PR-Kaczmarz检测算法
3.1 初始值的选取
迭代法的初始值选取影响算法的收敛速度,初始值与解析解越是接近,其收敛速度越快。一般选取零向量作为迭代初始值,但是在MIMO系统中就不适用。考虑到发射天线增多时体现的信道硬化特性,且滤波矩阵W为共轭对称、对角占优。所以滤波矩阵可取W≈MrIMt。初始解为:
(9)
3.2 算法描述
图2 PR-Kaczmarz算法流程图
Kaczmar算法被证明收敛,然而由于其收敛速度比GS算法和SOR算法慢,且复杂度高,所以得不到应用[7]。为此,本文用部分递推代替迭代,提出改进的PR-Kaczmarz算法。PR-Kaczmarz算法把迭代次数N分成两部分:前半部分采用与Kaczmarz算法相同的策略。确保第N次是迭代的前提下,后半部分算法采用交替迭代与递推的方式。需要说明的是,PR-Kaczmarz算法的N>4,否则算法就退化为普通Kaczmarz算法。算法的总迭代次数为N。定义3个新的存储结构。第一个存储结构为内循环结果序列表,记为R。R记录后半部分算法迭代或递推的结果值rk。第二个存储结构为R中相邻结果值的差值表,记为S,S记录迭代或递推的方向向量sk。最后一个存储结构为S中相邻元素的比值表,记为A。A记录方向向量sk改变趋势ak。ak一定程度上描述Kaczmar算法前后两次外迭代的方向相关性。提出半迭代思想,即强相关性的ak之间可以相互替代。实验中发现,基于范数排序的Kaczmar算法的后半部分迭代过程呈现出强相关性。PR-Kaczmarz算法的具体流程如图2所示。
3.3 复杂度分析
表1 计算复杂度对比
3.4 仿真结果和分析
为了验证PR-Kaczmarz算法的检测性能,使用MATLAB进行仿真实验。实验中采用随机瑞利衰落信道,天线配置分别为128×32和128×16配置下的调制方式分别为32QAM调制和64QAM。信噪比区间为-5~20 dB。每用户发送的信号数量为5 000个。t表示算法的迭代次数,n表示诺曼级数的展开次数。实验中PR-Kaczmarz算法的对比算法为展开次数为5次的Neumann级数检测算法、标准MMSE检测算法、迭代5次的梯度下降法、迭代5次的超松弛迭代法、迭代5~8次的Kaczmarz算法和迭代5~8次的PR-Kaczmarz算法。天线配置分别为128×32时,大规模MIMO上行信道系统中各类算法的误比特率(Bit Error Rate, BER)曲线如图3所示。整体上看,各算法的误比特率随着信噪比增加一致降低。同迭代次数下,Kaczmarz算法和PR-Kaczmarz算法的BER基本一致。同迭代次数的Kaczmarz算法和PR-Kaczmarz算法的BER性能远差于梯度下降法和超松弛迭代法,这说明基于MMSE算法的Kaczmarz算法性能有限。图4给出了128×16天线配置下的各算法BER曲线图。图4中,5次迭代的Kaczmarz算法和PR-Kaczmarz算法BER曲线差距明显。其余迭代次数下,两者的BER曲线接近。这说明低迭代次数下PR-Kaczmarz算法的优势不明显,迭代次数超过5次时,PR-Kaczmarz算法的低复杂的优势能够得到体现。对比两图,图3的BER性能远差于图4。这是因为Kaczmarz算法的几何逼近原理导致发射用户Nt越大,算法的收敛速度越慢。
结合表1、图3和图4的性能曲线分析,可知PR-Kaczmarz算法在维持BER性能的同时,最多能降低17%的复乘计算量,在一定程度上降低算法的复杂度,从而减少基站端的硬件开销。表1中数据表明,同样的计算量下,PR-Kaczmarz算法至少比Kaczmarz算法多进行一次迭代或者递推。为了进一步说明PR-Kaczmarz算法的优势,将同计算量不同迭代次数的PR-Kaczmarz算法和Kaczmarz算法对比。从图3可知,误码率为10-2时,8次迭代PR-Kaczmarz算法相比于7次迭代Kaczmarz算法有着15 dB左右的增益。图4中,误码率为10-4时,7次迭代的PR-Kaczmarz算法相比于6次迭代的Kaczmarz算法有着3 dB左右的增益。
图3 128×32系统BER曲线
图4 128×16系统BER曲线
4 结束语
针对大规模上行链路中Kaczmarz检测算法复杂度高的问题,本文依据算法逼近原理,提出一种PR-Kaczmarz算法。算法利用Kaczmarz算法的几何特性,采取将部分迭代过程替换成递推的方法,有效解决了Kaczmarz算法复杂度高的问题。本文算法的简化思想也可应用到大规模MIMO通信系统中的预编码中,具有一定参考价值。后续研究中,可引入因子来控制递推的步长,以改进BER性能;或者引入信道编码,使用软判决代替硬判决以提升误码率性能。