专利名称:一种低复杂度的球形译码检测方法
技术领域:
本发明涉及一种无线通信系统中的检测方法,尤其涉及一种低复杂度的球形译码检测方法,本发明可应用于MIMO和CDMA系统中。
背景技术:
在无线通信系统中,为越来越多的移动用户提供高速率数据和多媒体业务已经日益迫切,设计能够逼近信道容量的有效方法的信号处理方法已经成为一种挑战。最优的极大似然检测(ML)由于它极高的复杂度阻止它在实际中的应用,E.Viterbo and O.Damen提出了MIMO系统中的球形译码方法使得ML算法在实际中得以运用。球形译码使得ML算法得以简化主要在于球形译码降低了遍历星座点的数目。但球形译码的复杂度对球形初始半径的选择非常敏感不合适的球面初始半径将导致一个非常高的译码失败率或非常大运算成本。于是如何降低球形译码的复杂度,降低对初始半径敏感程度引起人们广泛注意。
发明内容
本发明所要解决的技术问题是提供一种低复杂度的球形译码检测方法,该方法能加快查找范围收敛速度,大大减少球形译码过程中遍历的星座点数目,同时系统性能损失不大。
在传统的球形译码中,无论什么时候我们在球内找到一个星座点,球形半径将缩减到新找到的点到圆心的距离。本发明的主要思想在于加快查找范围的收敛速度。
本发明的低复杂度的球形译码检测的方法包括如下步骤步骤1、首先,定义两个变量upline_R和downline_R分别代表球形译码半径的上界和下界。初始化downline_R为球心,等于零;upline_R初始化为球的初始半径r。
步骤2、当在球内(以downline_R为球心,r为球的半径的球)找到一个新的星座点,将新找得星座点到圆心的距离设置为upline_R,根据如下公式计算新的球面半径r=k*(upline_R+downline_R) (1)
其中K是小于1大于零的系数,可以是1/2,或者是黄金分割点等。
步骤3、在更新后的球内(以downline_R为球心,r为球的半径的球)寻找新的星座点。如果在更新后的球内找到一个新的星座点,则根据步骤2再计算新的球面半径,重复此过程直到在更新后的球内找不到一个新的星座点;步骤4、如果在这个新的球内没有找到新的星座点,则将该新的球的球面半径设置为downline_R,根据式1计算半径r=k*(upline_R+downline_R)在环形区域内(在半径为[downline_R,upline_R]的环球内)寻找新的星座点。
步骤5、重复步骤4,若新的球的半径的上限和下限满足设置的门限值或者在环形区域内半径更新的次数达到门限值,则输出最终找到的星座点并结束译码。
所述新的球的半径的上限和下限满足设置的门限值具体是指|upline_R-downline_R|<ω其中downline_R为多次寻找星座点后新的球形译码半径的下界,upline_R为多次寻找星座点后新的球形译码半径的上界。
所述的门限值ω可以根据下述方法获得根据噪声方差和经验因子来定义界值ωω=coefficient*sqrt(noise covariance)其中coefficient为经验因子,所述coefficient=1,2,3,4…,noise covariance为噪声方差。优选地,所述的经验因子小于等于4。
进一步地,本发明还提供另一种低复杂度的球形译码检测的方法,包括如下步骤步骤1、首先,定义两个变量upline_R和downline_R分别代表球形译码半径的上界和下界。初始化downline_R为球心,等于零;upline_R初始化为球的初始半径r。
步骤2、当在球内(以downline_R为球心,r为球的半径的球)找到一个新的星座点,将新找得星座点到圆心的距离设置为upline_R,根据如下公式计算新的球面半径r=k*(upline_R+downline_R) (1)其中K是小于1大于零的系数,可以是1/2,或者是黄金分割点等。
步骤3、在更新后的球内(以downline_R为球心,r为球的半径的球)寻找新的星座点。如果在更新后的球内找到一个新的星座点,则根据步骤2再计算新的球面半径,重复此过程直到在更新后的球内找不到一个新的星座点;
步骤4、当首次在新的球内找不到新的星座点时,则在此时的球形半径下返回传统的球形译码方法结束译码。
图1是本发明的低复杂度的球形译码检测的方法的工作流程图。
图2是基于QPSK调制的SD_RRH算法和传统的球形译码方法所需实数乘法比较。
图3是基于16QAM调制的SD_RRH算法和传统的球形译码方法所需实数乘法比较。
图4是采用第一种结束算法的SD_RRH和传统的球形译码方法BER性能比较图。
图5是采用第二种结束算法的SD_RRH和传统的球形译码方法BER性能比较图。
具体实施例方式
下面提供4个发送4个接收天线MIMO系统的低复杂度球形译码算法(SD_RRH)。
(1)发送端的信息比特未经过信道编码调制到星座点上的符号。然后对得到的符号进行空时编码映射到多个发射天线,由个发射天线同时发射。
(2)考虑准静态平坦衰落的信道模型,在每一时刻,接收信号经过信道后的模型为y=Hx+n其中H是每个元素都是均值为零,方差为1的独立同分布的4×4矩阵。x是4×1发射符号向量,n是均值为零、方差为σ2的复高斯噪声。
(3)在接收端,用球形译码算法进行检测,为了使用球形译码算法,检测可以被认为是如下的求整数的最小方差问题minx∈Zm||y-Hx||2]]>其中,y∈Rn×1,H∈Rn×m。zm表示m维的整数格点。这里m=8;n=8。例如x是8维的整数向量输入。一般,我们研究的空间是在无限格点中的一个有限子集Dzm,minx∈D⋐Zm||y-Hx||2]]>符号向量x中的元素是L2-QAM中的复值星座点,所以实部虚部分别是L-PAM星座点。例如针对QPSK,16QAM,64QAM调制,L分别为2,4,8。所谓球形译码就是在以接收向量y为圆心的一个球内寻找最接近圆心的星座点。传统的球形初始半径的选择是噪声方差的函数r2=αnσ2
其中,在这个球内至少能找到一个星座点的概率为∫0αnλn2-1Γ(n2)e-λdλ=1-ξ]]>式中1-ξ是一个大的概率,当α=3.0,n=8,高概率1-ξ为0.99999990120473.
在传统的球形译码中,无论什么时候我们在球内找到一个星座点,球形半径将缩减到新找到的点到圆心的距离。如图1所示本具体实施例中球形译码检测的方法包括如下步骤步骤(a)、首先,定义两个变量upline_R和downline_R分别代表球形译码半径的上界和下界。初始化downline_R为球心,等于零;upline_R初始化为球的初始半径r。
步骤(b)、当在球内(以downline_R为球心,r为球的半径的球)找到一个新的星座点,将新找得星座点到圆心的距离设置为upline_R,根据如下公式计算新的球面半径r=k*(upline_R+downline_R) (1)其中K是小于1大于零的系数,可以是1/2,或者是黄金分割点等。在本具体实施例中K等于1/2。
步骤(c)、在更新后的球内(以downline_R为球心,r为球的半径的球)寻找新的星座点,如果在更新后的球内找到一个新的星座点,则根据步骤2再计算新的球面半径,重复此过程直到在更新后的球内找不到一个新的星座点;步骤(d)、如果在这个新的球内没有找到新的星座点,则将该新的球的球面半径设置为downline_R,根据式1计算半径r=k*(upline_R+downline_R)本具体实施例中K等于1/2。
在环形区域内(在半径为[downline_R,upline_R]的环球内)寻找新的星座点。
步骤(e)、重复步骤(d),若新的球形译码半径的上限和下限满足设置的门限值则输出最终找到的星座点并结束译码。
可见,在本具体实施例中在每一步查找新的星座点的过程中,剩余的查找范围为传统球形译码的一半来加快收敛。
其中,所述的新的球形译码半径的上限和下限满足设置的门限值具体是指
|upline_R-downline_R|<ω其中downline_R为多次寻找星座点后新的球形译码半径的下界,upline_R为多次寻找星座点后新的球形译码半径的上界。
本具体实施例中可根据噪声方差和经验因子来定义门限值ωω=coefficient*sqrt(noise covariance)coefficient=1,2,3,4…其中coefficient为经验因子,noise covariance为噪声方差。本具体实施例中coefficient的值设为1,2和3。
当然本发明并不局限于上述具体实施例,凡本领域技术人员所熟知的变换均落在本发明的保护范围内,比如,还可以采用第二种实施方式其中步骤(a)-(d)与上述第一实施例相同步骤(e)、重复步骤(d),直到在环形区域半径内的寻找次数达到门限值,则输出最终找到的星座点并结束译码。
所述的门限值ω的计算方法与实施例1相同。
进一步地,还可以采用第三种实施方式一种低复杂度的球形译码检测的方法,包括如下步骤步骤1、首先,定义两个变量upline_R和downline_R分别代表球形译码半径的上界和下界。初始化downline_R为球心,等于零upline_R初始化为球的初始半径r。
步骤2、当在球内(以downline_R为球心,r为球的半径的球)找到一个新的星座点,将新找得星座点到圆心的距离设置为upline_R,根据如下公式计算新的球面半径r=k*(upline_R+downline_R) (1)其中K是小于1大于零的系数,可以是1/2,或者是黄金分割点等。
步骤3、在更新后的球内(以downline_R为球心,r为球的半径的球)寻找新的星座点。如果在更新后的球内找到一个新的星座点,则根据步骤2再计算新的球面半径,重复此过程直到在更新后的球内找不到一个新的星座点;步骤4、当首次在新的球内找不到新的星座点时,则在此时的球形半径下返回传统的球形译码方法结束译码。
本发明的SD_RRH算法能极大的减少译码所遍历的星座点数目,特别是在低信噪比和高阶调制的情况下,并且性能损失很小。
以下将给出详细的SD_RRH算法与传统的球形译码算法的复杂度比较采用找到译码最终的输出值的过程中所遍历的所有星座点数目为比较基准。表1和表2分别给出了两种结束方法的SD_RRH算法和传统球形译码算法的遍历星座点数目。其中Num_half表示为当在新的球面半径下找不到新的星座点时,SD_RRH算法再环形区域继续折半查找的次数。
所需的实数乘法=所有遍历的星座点×搜索每个星座点所需的实数乘法每遍历一个星座点所需的实数乘法为QPSK无回溯的查找一个星座点所需的实数乘法*回溯系数=79*2.53=199.8716QAM无回溯的查找一个星座点所需的实数乘法*回溯系数=79*6.89=544.31回溯系数和所有遍历的星座点是仿真得出的统计参数。
表1 第一种SD_RRH结束方法和传统球形译码的遍历星座点数目比较 表2 第二种SD_RRH结束方法和传统球形译码的遍历星座点数目比较 以下通过仿真结果来说明低复杂度球形译码检测(SD_RRH)的性能。主要考虑不同信噪比下的误比特率性能。假设信道是平坦衰落。在发送端,发送的比特不经过编码的进行QPSK,16QAM调制,相应的L值分别为2,4。初始半径按原始方法设置,α取值为3.0。仿真条件如表3所示表3 仿真条件
图2图3分别给出了在QPSK,16QAM调制下两种SD_RRH结束方法和传统球形译码算法所需的实数乘法比较。
我们通过图2图3,并结合表1表2来分析折半查找算法的复杂度。很容易看出,我们所提出的折半查找方法的两种结束方法有着相似的收敛速度和复杂度。对于方法一,随着系数值的增加复杂度减小,并且性能损失不大。在方法二中,降低在环形区域中折半查找的次数也意味着降低复杂度和增大性能损失。图4和图5仿真性能图显示新的译码方法接近ML性能曲线,但对于QPSK和16QAM分别只需要传统球形译码大约50%和20%的复杂度。
此外,需注意的是,我们提到的球形译码在低信噪比,特别是在高调制阶数的情况下更有效!
权利要求
1.一种低复杂度的球形译码检测的方法,其特征在于,包括如下步骤步骤1、首先,定义两个变量upline_R和downline_R分别代表球形译码半径的上界和下界;初始化downline_R为球心,等于零;upline_R初始化为球的初始半径r;步骤2、当在球内找到一个新的星座点,所述的球是以downline_R为球心,r为半径的球,将新找得星座点到圆心的距离设置为upline_R,计算新的球面半径r=k*(upline_R+downline_R)其中K是小于1大于零的系数;步骤3、在更新后的球内寻找新的星座点,所述的新球是以downline_R为球心,r为半径的球,如果在更新后的球内找到一个新的星座点,则根据步骤2再计算新的球面半径,重复此过程直到在更新后的球内找不到一个新的星座点;步骤4、如果在这个新的球内没有找到新的星座点,则将该新的球的球面半径设置为downline_R,计算半径r=k*(upline_R+downline_R)在半径为[downline_R,upline_R]的环形区域内寻找新的星座点;步骤5、重复步骤4,若新的球的半径的上限和下限满足设置的门限值或者在环形区域内的半径更新的次数达到门限值,则输出最终找到的星座点并结束译码。
2.根据权利要求1所述的低复杂度的球形译码检测的方法,其特征在于,所述步骤5中新的球形译码半径的上限和下限满足设置的门限值具体是指|upline_R-downline_R|<ω其中downline_R为多次寻找星座点后新的球形译码半径的下界,upline_R为多次寻找星座点后新的球形译码半径的上界。
3.根据权利要求1所述的低复杂度的球形译码检测的方法,其特征在于,所述的门限值ω可以根据噪声方差和经验因子来获得ω=coefficient*sqrt(noise covariance)其中noisc covariance为噪声方差,coefficient为经验因子,所述coefficient=1,2,3,4…。
4.根据权利要求3所述的低复杂度的球形译码检测的方法,其特征在于,所述的经验因子小于等于4。
5.根据权利要求1所述的低复杂度的球形译码检测的方法,其特征在于,所述的K为1/2。
6.根据权利要求1所述的低复杂度的球形译码检测的方法,其特征在于,所述的K为黄金分割点。
7.一种低复杂度的球形译码检测的方法,其特征在于,包括如下步骤步骤1、首先,定义两个变量upline_R和downline_R分别代表球形译码半径的上界和下界,初始化downline_R为球心,等于零;upline_R初始化为球的初始半径r;步骤2、当在球内找到一个新的星座点,所述的球为以downline_R为球心,r为球的半径的球,将新找得星座点到圆心的距离设置为upline_R,根据如下公式计算新的球面半径r=k*(upline_R+downline_R)其中K是小于1大于零的系数;步骤3、在更新后的球内寻找新的星座点,所述更新后的球为以downline_R为球心,r为球的半径的球,如果在更新后的球内找到一个新的星座点,则根据步骤2再计算新的球面半径,重复此过程直到在更新后的球内找不到一个新的星座点;步骤4、当首次在新的球内找不到新的星座点时,则在此时的球形半径下返回传统的球形译码方法结束译码。
8.根据权利要求7所述的低复杂度的球形译码检测的方法,其特征在于,所述的K为1/2。
9.根据权利要求7所述的低复杂度的球形译码检测的方法,其特征在于,所述的K为黄金分割点。
全文摘要
本发明提供低复杂度的球形译码检测的方法,首先定义两个变量upline_R和downline_R分别代表球形译码半径的上界和下界,在每一步查找新的星座点的过程中,剩余的查找范围为传统球形译码的K倍,其中K是小于1大于零的系数,即r=k*(upline_R+downline_R),本发明能够加快查找范围收敛的速度,大大减少球形译码过程中遍历的星座点数目,同时系统性能损失不大。
文档编号H04J13/00GK101064579SQ20061002604
公开日2007年10月31日 申请日期2006年4月25日 优先权日2006年4月25日
发明者夏小梅, 赵巍, 杨秀梅, 汪凡, 熊勇, 张小东, 卜智勇, 王海峰 申请人:上海无线通信研究中心