译码软件系统(共7篇)
译码软件系统 篇1
0 引 言
汉明码[1]是1950年由Hamming首先构造的,它的最小码距为3,是一种能够纠正一位错码或者检测两位错码的高效线性分组码。(7,4)汉明码是指数据位数为4,校验位数为3的一段编码,通过运算得出校验码的值[2],根据校验码的值纠正一位错码或检测出两位错码。它不仅性能好,而且编译码电路非常简单,易于实现。从20世纪50年代问世以来,在提高系统可靠性方面获得了广泛的应用。目前常用于RFID系统中错码的纠正。
鉴于(7,4)汉明编码的重要用途,在科学研究加深对其编译码、纠错、检错原理的理解是非常必要的。因此,选择用Flash[3,4]来仿真(7,4)汉明编译码的功能、展现(7,4)汉明码一位纠错、两位检错的特点,以便将其应用于科学研究的示例说明、相关产品的辅助介绍以及多媒体教学过程中。
1 系统构架
1.1 系统框架
为了较好地体现整个汉明编译码器仿真系统的功能,结合信息传输模型[5]以及汉明编译码的特点,按如下思路设计系统框架:
如图1所示,系统首先生成伪随机码序列,然后将伪随机码输入汉明编码器。编码器将收到的码字每4位进行一次编码,生成监督码。3个监督码字与4位信息码字结合,调整码元速率,构成7位汉明码字在信道中传输。汉明码序列进入解码器后,生成校正子,按照错码表中的对应关系判断收到的码字中有无错码以及错码可能的位置。在有且仅有一位错码的情况下直接进行纠错,恢复原伪随机码序列,当出现两位错码的时候能够判断出存在错码,但无法正确识别错码位置并加以纠正。
1.2 模块划分及功能描述
汉明编译码仿真系统主要能完成无错传输、一位纠错、两位检错的功能演示,且这三种状态可以相互切换,如图2所示。
(1) 无错传输
该模块主要体现了(7,4)汉明编码、解码和纠、检错的详细过程,配合监督关系、可用码表、校正子函数关系和错码表,系统的展示了汉明编译码的全过程。
(2) 一位错码传输
该模块主要体现了系统传输时有且只有一位错码的情况下(7,4)汉明码的纠错能力,通过错码表对应条目的变化和错码标志的判断结果清晰地展示了(7,4)汉明码纠正一位错码的全过程。
(3) 两位错码传输
该模块主要体现了当系统传输时错码个数为两位的情况下(7,4)汉明码的检错能力,通过错码表的对应条目和错码标志的判断结果,清晰地展示了(7,4)汉明码在出现两位错码时无法正确识别和纠正错码,但是能够检测到存在错码的特点。
2 实现原理[6,7,8]
汉明码是一个在原有数据中插入若干校验码来检查和纠正错误的编码技术。以典型的4位数据编码为例,汉明码将加入3个校验码,从而使实际传输的数据位达到7个(位),(7,4)汉明码位安排如表1所示。
2.1 编码原理
本系统中的监督码元和信息码元符合以下函数运算关系:
由监督矩阵H可以得到生成矩阵G,从而得到所有的可用码组,见表2。
2.2 译码原理
当汉明码序列进入解码器后,按以下三个校正子可以判断接收到的码字中有无错码,当且仅当码组中只有一位错码的时候,还可以定位错码的位置,校正子状态与错码位置的对应关系见表3。
3 系统实现过程[9,10]
3.1 无错传输
无错传输系统实现过程如图3所示。
在信道中无错码产生时,系统直接将汉明码序列中的信息序列还原,同时输出没有发现错码的信息。没有发现错码主要体现在两个方面:一个是校正子为000,3-8译码器7个输出端的数值经过异或门后输出为0,即无错码;另一个是解码器旁边的“错码表”中相应的条目会变成红色,显示“000 无错”的信息。
在具体实现的时候,通过调整时间轴,将系统结构、编码输入信息、编码输出信息、可用码表四帧图片同时显示在窗口,从而表现出编码的过程;将系统结构、解码输入信息、解码输出信息、错码状态四帧图片同时显示在窗口,从而表现出解码的过程。
3.2 一位错码传输
一位错码传输系统实现过程如图4所示。当信道传输产生一位错码时,错码用红色标记,3-8译码器7个输出端的数值经过异或门后的判决状态,以及错码表内相应的条目也显示为红色。解码器能够通过校正子判断出收到的信息中含有错码,并且通过校正子确定错码位置与实际错码位置一致,从而通过相应的异或器完成纠错。纠正错码后输出正确信息并显示“有错码,已纠正”。
在具体实现的时候,通过调整时间轴,将系统结构、解码输入信息、解码输出信息、错码状态四帧图片同时显示在窗口,从而表现出纠正一位错码的过程。
3.3 两位错码传输
两位错码传输系统实现过程如图5所示。
当信道传输产生两位错码时,本系统重在展示解码器能够通过校正子判断出收到的信息中含有错码,但此时通过校正子确定的错码位置与实际错码位置不符,从而说明(7,4)汉明码在出现两位错码时无法正确识别和纠正错码但是能够检测到存在错码的特点。
在具体实现的时候,通过调整时间轴,将系统结构、解码输入信息、解码输出信息、有无错码的判断结果四帧图片同时显示在窗口,从而表现出检测到存在错码的过程。
4 结 论
本文以线性分组码中的(7,4)汉明码为理论基础,应用Flash软件设计出(7,4)汉明码的编译码器,并将编译码过程和纠、检错过程演示出来。在科学研究的示例说明、相关产品的辅助介绍以及多媒体教学等诸多方面都具有较高的实用价值
参考文献
[1]江晓林,杨明极.通信原理[M].哈尔滨:哈尔滨工业大学出版社,2010.
[2]常君明,颜彬.数字通信原理[M].北京:清华大学出版社,2010.
[3]张辉.最新Flash CS3入门与提高[M].北京:中国人民大学出版社,2008.
[4]腾飞科技.Flash8基础与实例精讲[M].北京:人民邮电出版社,2007.
[5]樊昌信.现代通信原理[M].北京:人民邮电出版社,2009.
[6]蒋青,吕翊.通信原理与技术[M].北京:北京邮电大学出版社,2007.
[7]姜楠,王健.信息论与编码理论[M].北京:清华大学出版社,2010.
[8][美]SHU Lin.差错控制编码[M].何元智,译.北京:机械工业出版社,2007.
[9]王太冲,李巍,马淑燕.Flash8入门与提高(中文版)[M].北京:清华大学出版社,2007.
[10]鲍雷.Flash CS5动画设计实例教程[M].北京:机械工业出版社,2011.
译码软件系统 篇2
1 差错控制编译码系统的设计
信道编码,又称差错控制编码。总的思路是在待传送信息码中,加入某些人为的规律,在接收端再按此规律对收到的信息码进行检查,从而发现传输错误或进而纠正错误。
1.1 数据处理系统框架
图1为并行数据在传输过程中处理的示意图。在这一数据处理系统中,采用的是汉明编码。发送端,应用(7.4)线形分组码的形式进行编码,将4位并行数据编码成为7位的并行数据;在接收数据端,设计纠错译码模块,将接收的7位数据还原为4位的并行数据流。
1.2 线性分组码编码规则
把信息码按k个码元一组,并按一定的规律编码,产生r个监督码元,形成长度为n=k+r组码,称为分组码,用(n,k)表示。它有两个特点:共有2k个不同的码字,称为许用码组;有2n-2k个码字未用,称为禁用码组。正是存在禁用码组,使得(n,k)码具有纠错能力,禁用码越多,纠错能力越强。
两个码字A,B之间的距离定义如下。
若两个码A、B之间有m个码元不同,则其距离为d(A,B)=m。如果一个集中多个码子的情况,则码子之间的最小距离定义为汉明距离。
检错与纠错能力与汉明距离有关,d0越大,能力越强,可以证明有如下结论:(1)检测t个随机错误,则要求d0≥e+1;(2)纠t个随机错误,则要求d0≥2t+1;(3)纠t个,同时检测e个(e>t)随机错误,则要求d0≥t+e+1。
现在以(7,4)分组码为例来说明线性分组码的特点。设码字为A=[a6,a5,a4,a3,a2,a1,a0],前面四位为信息码元,后三位为监督码元,它们之间的关系式也即监督方程如下。
可以判断出许用码组与禁用码组:许用码字为24=16个;禁用码字为27-24=112个。由于该码具有封闭性,除全0码外,它的最小码重为3,故d0=3。根据不等式得到(7,4)分组码具有能纠一位错的能力。
1.3 差错控制的本质及其控制方式
在信道传输中一般会分为两种差错:随机差错和突发差错。随机差错,是由加性高斯噪声等引起,特点:一般只错一位的可能最大,但哪位出错则是随机的,经计算得:(1)错一位的概率为:Pe(1)=7×10-3;(2)错二位的概率为:Pe(2)=2.1×10-5;(3)错三位的概率为:Pe(3)=3.5×10-8。由上述结果可见,出一位错的可能性最大。突发差错,则是连续的一串码元出现错误,出错的长度称为突发长度。如磁盘上磁粉失落或划伤后,对其读写会出突发错。论文中,我们主要对随机差错进行纠错设计。
差错控制有三种方式。检错重发式:发送端发出能检错的码,接收端收到后,首先进行检测,当发现错误时,通知发送端重发一次,直到正确。如奇偶校验等。特点:译码简单,实时性差,双向传输;前向纠错:发送能自动纠错的码,在接收端能自动纠错。特点:实时性好,单向传输;混合方式:上述两者的组合。在接收端若能自动纠正,则不必重发,若超出自动纠错的范围,则通知对方重发,取各自的优点。
1.4 差错控制编码设计
由式(2),可以得到这样的一个变化。
HAT=0推导出,AHT=0。式中:A=[a6,a5,a4,a3,a2,a1,a0]为码字,H为监督矩阵,可表示为如下式子。
监督矩阵H的物理意义:1)在发送端,可利用监督H来进行编码,因此H实际上是一种编码规则。利用这种编码规则,使得H和码字A满足AHT=0或HAT=0;2)在接收端,可利用H,对经信道传送过来的码字A进行监督或检测,判断其正确性,若正确,必满足AHT=0或HAT=0,若不正确,则AHT不为0或HAT不为0;3)下节中将要讲述的校正子正是根据这一原理来判断接收码字A的正确性并进行纠错的。
结合(7,4)线性分组码的编码规则,可以设计出差错控制电路的编码电路部分,如图2所示。根据以上的设计思想,利用Verilog-HDL硬件描述语言,可将差错控制编码电路转化为图3所示的模块。将此模块烧录到FPGA芯片中,可以实现差错控制编码电路的功能。
1.5 差错控制译码设计
我们通过(7,4)线性分组码来讨论校正子的基本工作原理。设发送码字为A=[an-1,an-2…a1,a0]由于传输过程中可能会发生错误,接收码字变为B=[bn-1,bn-2…b1,b0],定义收发码字之差为错误图样E,也称为误差矢量,即:E=B-A或B=A+E
其中E=[en-1,en-2…e1,e0],并且有
因为接收端解码规则与发送端编码规则应相同,若发送端的编码规则为:S=AHT=0,则令接收端的S校正子为:S=BHT=[A+E]HT=AHT+EHT,由发送端的编码规则知:AHT=0,故可以得到S校正子式。
由上式知,S校正子与错误图样E之间有确定的对应关系,利用这一关系,对接收的码进行纠错。现在讨论(7,4)线性分组码的校正子。由式(2)所示的(7,4)线性分组码的监督方程可以得到其对应的校正子方程。
由上式可以得到如表1所示的结果。由此表可知,S校正子的2r(r=3)=8种形式分别表示码A无错,以及2r-1种有错,即校正子的不同输出可以代表不同的错误图样。
依据发送的码字和接收的码字,我们能产生出校正子,根据校正子设计出纠错电路。这样(7.4)线性分组码的译码电路就能设计出来,如图5所示。该译码电路能校正出信息码[b6,b5,b4,b3]的错误。
利用硬件描述语言将图5所示的差错控制译码电路转化为图6所示的译码模块,将这一模块烧录入FPGA芯片,那么此模块能实现译码电路的功能。为了验证译码电路的功能,在译码电路模块输入端口设计了一个出错模块,并由四位开关来决定哪一位数据出错;在译码电路模块的输出端接了四个发光二极管,通过发光二极管的显示来证实差错控制译码电路的功能。
1.6 差错控制编译码系统的仿真
差错控制编译码系统模块化设计如图7所示。图中第一排为差错控制编码电路模块,第二排为译码电路模块,将这两个模块分别烧录到两块FPGA芯片,可以实现通信平台信道传输的可靠性。图8为编译码系统的数值仿真图,KG为4位的并行输入信号,fasong为编码后的发送信号,jieshou为信道传输时的接收信号,q为译码后的输出信号,SW为出错控制信号。仿真数据显示输出信号q与输入信号KG相同,说明差错控制编译码的设计是成功的。
2 差错控制编译码系统的应用
为了进一步验证差错控制编译码系统的能增强通信系统的可靠性,将其应用在前期设计的基于DE2板的16位数据并行通信平台。采取(7,4)线性分组码的差错控制方式,在发送端设计出编码系统,在接收端设计解码系统。具体的实现见图9所示的信号数据流处理示意图。因为一组(7,4)线性分组码能对4位信息码元进行纠错,而并行通信平台的发送端要传输的是16位信息码元,所以我们采用4组(7,4)线性分组码实现传输的纠错控制。在并行通信平台的发送端设计出4个纠错编码模块,对应的在接收端设计4个纠错译码模块;信道传输的是28位的并行数据信号。为了更好地验证实验,采用16位的数字语音信号和混沌信号进行传输,通过听觉和示波器观察均取得理想的效果。
3 结束语
本文介绍了信道编译码系统的设计,简单的说明了线性分组码的编码规则,在这一基础上运用FPGA技术在DE2板上完成了差错控制编码电路和译码电路的设计。紧接着简明扼要的介绍了差错控制编译码系统在并行通信平台上的应用,经过实验证明信道编译码系统确实能增强通信系统的可靠性,具有一定的现实意义。
参考文献
[1]张志刚.FPGA与SOPC设计教程-DE2实践[M].西安:西安电子科技大学出版社,2007
[2]王冠,黄熙,王鹰.Verilog-HDL与数字电路设计[M].北京:机械工业出版社,2005.
[3]黄智伟.FPGA系统设计与实践[M].北京:电子工业出版社,2005
译码软件系统 篇3
随着高性能数字通信系统需求的迅速增长, 要求信息传输的误码率最小。信道编码是消除或减少误码率的有效手段之一, Turbo码是目前最好的信道编码方案, 它可以获得几乎接近shannon理论极限的译码性能[1]。
Turbo译码器的设计, 是通过构建一个Turbo译码器和以太网络通信的SoPC (System-on-a-Programmable-Chip) 系统来实现的, 译码器的输入和输出数据是借助以太网传输的。同时, Turbo译码器是改进型的, 即在传统译码器结构上添加两个权重模块, 这两个模块的引入是为了补偿Turbo编码器中被删除的校验位的, 这样可提高译码的性能[2,3]。首先, 在Xilinx ISE 9.1i中设计Turbo译码器的硬件电路, 并用ModelSim SE 6.1做功能仿真和时序仿真;然后, 利用Xilinx EDK (Embedded Development Kit) 构建一个内嵌MicroBlaze处理器的SoPC系统, 编写以太网络模块的C程序代码, 通过系统的OPB (On-chip Peripheral Bus) 总线将Turbo译码器 (作为一个IP核) 和以太网络模块加入到SoPC系统中, 用软硬件协同设计的方法来开发整个系统;最后, 把整个SoPC系统的硬件比特流和软件程序下载到Spartan 3s1500MB开发板上进行验证, 将译码输出信息通过以太网口传输到PC机上。
1 Turbo译码器的FPGA实现
Turbo译码器结构 (如图1所示) 是对传统译码器结构的改进, 增加了输入存储、权重模块1和权重模块2三个模块。其中, 输入存储就是为了存储实时通信的数据, 而两个权重模块就是分别对两个分量译码器产生的外信息值进行加权。分量译码器采用的译码算法是软输出的维特比算法SOVA (soft-output Viterbi algorithm) 。
Turbo译码器的FPGA (Field Programmable Gate Array) 实现[4]分为五个模块, 分别是:顶层模块、Turbo译码模块、SOVA分量译码模块、权重模块和交织/解交织模块, 采用超高速集成电路硬件描述语言VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) 编写各模块代码, 利用ISE和ModelSim软件进行仿真、综合、布局布线。
1.1 顶层模块
Turbo译码器的顶层模块, 主要实现FPGA板与PC机之间的通信, 获得译码的输入信息, 包括系统信息和校验信息, 并对译码输入信息进行存储和译码, 并输出译码输出信息。顶层模块的总体框架如图2所示。
该模块用ISE的Core Generator产生了三个SRAM, 分别存储系统信息、校验信息1和校验信息2。由于本设计中帧长为1024位, 故空间大小定义为1024×16。这三个SRAM的写入是在该模块完成的, 而读出是由Turbo译码模块控制的, 即由Turbo译码模块提供三个SRAM的读允许信号及读地址信号。
1.2 Turbo译码模块
Turbo译码模块, 主要实现的功能是对接收到的系统信息和校验信息进行Turbo译码, 产生Turbo译码器的译码输出信息。该模块是根据所设计Turbo译码器的结构来编写代码的, 主要调用了SOVA分量译码模块、权重模块和交织/解交织模块。迭代结束后, 直接将SOVA2产生的似然值作为Turbo译码器的译码输出, 而对似然值进行解交织和硬判决的过程是在SOVA分量译码模块完成的。
SOVA分量译码模块, 主要实现的功能是利用SOVA译码算法产生似然值, 并对似然值进行解交织和硬判决, 以及计算外信息值。权重模块实现的是图1中权重模块1和权重模块2的功能。交织/解交织模块实现的是图1中交织器和解交织器的功能, 交织器采用的是分组交织器[5]。
Turbo译码模块的功能仿真结果如图3所示。假设编码器的输入序列为0100110110101110, 产生的校验信息1为0010001000001010, 校验信息2为0101010001010100。从仿真波形中可以看出, 译码器输入的系统信息 (is_sram_di) 为0100110110100110 (经过加噪) , 则译码器的译码输出信息 (sova_datao) 为0100110110101110, 与编码器的输入序列是一致的, 纠正了译码输入中的一个错误, 说明Turbo译码模块能实现纠错功能。
2 SoPC系统的设计
EDK是Xilinx公司特别为FPGA设计的SoPC软硬件开发工具[6], 利用EDK的设计流程, 可以开发内嵌MicroBlaze与Power PC 处理器的Xilinx嵌入式系统。本文利用EDK软件构建了一个内嵌MicroBlaze处理器的SoPC系统[7], 通过系统的OPB总线将Turbo译码器和以太网络模块加入到SoPC系统中, 并把生成的硬件比特流和软件程序下载到Spartan-3S1500开发板上进行验证。Spartan-3 FPGA芯片是一款高性能的系统级逻辑器件, 特别适合于嵌入式系统设计。
2.1 以太网络模块
为了将译码器的输入和输出数据借助以太网传输, 实现动态传输和实时纠错, 需要构建一个以太网络通信模块, 用来实现PC机和FPGA开发板之间的网络通信。
首先, 利用EDK的软核——OPB 10/100 Ethernet MAC, 作为开发板上网络芯片的控制器, 网络芯片是BroadCom公司的单物理层芯片BCM5221;然后, 利用EDK软件提供的LwIP函数库[8], 来编写网络程序。该网络采用http协议, 基于C/S模式, 将FPGA板作为服务器, PC机作为客户机, 用网页来实现浏览, 只要在浏览器中输入开发板的IP地址, 即可访问该板。利用EDK软件提供的LwIP函数库, 用C语言编写以太网络模块的程序代码, 主要有两个:一是用来建立TCP/IP网络连接和设置板的IP地址、子网掩码、网关等的程序;二是利用http协议来进行网页操作的程序。
2.2 SoPC系统
首先, 在EDK软件平台中, 选择主菜单“Hardware”下的“Create or Import Peripheral...”选项, 生成Turbo译码器IP核, 并进行相应修改;然后, 将Turbo译码器IP核加入SoPC网络系统中, 并将整个SoPC下载到Xilinx Spartan-3S1500开发板上进行硬件验证。所构建的整个SoPC的综合结果如图4所示。
这样, 只要在浏览器中输入FPGA开发板的IP地址即可访问“EDK网络传输系统” 网页 (如图5所示) 。Turbo译码器的输入信息 (包括系统信息和校验信息) 和输出信息可在该网页中显示。
本方案得出的误码率与信噪比的关系如图6所示。
3 结 论
本文利用EDK构建了一个能实现动态传输的Turbo译码SoPC系统。编写了各功能模块的VHDL代码, 在ISE和ModelSim中仿真、综合、布局布线;并将Turbo译码器作为一个IP核加入到SoPC系统中, 在Spartan-3S1500开发板上验证, 通过网络通信得到了Turbo译码器的译码输入信息和输出信息。实验结果表明, 所设计的Turbo译码器能实现网络通信和信道纠错。
参考文献
[1]刘东华.Turbo码原理与应用技术[M].北京:电子工业出版社, 2004.
[2]Fujii H, Saba T, Sasase I.Novel decoding algorithm with weighting ofextrinsic information for punctured turbo-codes[C]//4th EuropeanPersonal Mobile Communications Conference, 2001.
[3]蔡剑卿, 陈怀铭, 黄春晖.Turbo译码器在数据协调中的应用与仿真[J].现代电子技术, 2008, 274 (11) :40-42.
[4]Sharma S, Attri S, Chauhan R C.A Simplified and Efficient Implemen-tation of FPGA-Based Turbo Decoder[J].Performance, computing andcommunications conference, 2003, 4:207-213.
[5]高晶, 达新宇, 褚振勇.基于FPGA的改进型分组交织器的设计与实现[J].微计算机信息:嵌入式与SOC, 2008, 24 (6-2) :228-230.
[6]Xilinx Inc.Embedded System Tools Guide v6.3, 2004.
[7]Embedded System Tools Reference Guide[EB/OL].http://www.xil-inx.com/ise/embedded/edk9_1docs/est_rm.pdf.
译码软件系统 篇4
关键词:并行干扰抵消,OFDM,MIMO,联合检测与译码
0 引言
多入多出 ( MIMO) 和正交频分复用 ( OFDM) 技术各具优点, 且二者可以结合使用, 构成MIMO- OFDM传输技术, 是未来通信系统物理层技术发展趋势之一。
对MIMO-OFDM信号的检测, 最优算法为穷尽信号空间搜索的最大似然 ( ML) 算法, 但该非线性算法过于复杂, 围绕着如何降低复杂度而不牺牲较大的系统性能这个主题。提出了2类检测算法: 一是将非线性检测线性化[1], 以迫零[2]、最小均方误差算法为代表, 此类算法简单性能最差; 二是将最优非线性检测算法次优化[3,4], 主要包括干扰抵消类算法和球形检测类算法等。干扰抵消类算法经过合理的设计可有效利用多径分集, 球形检测类算法在高信噪比 ( SNR) 区域接近最优检测性能, 但算法在天线数较大的情形下仍过于复杂。
借助于Turbo检测思想[5,6], 提出了基于并行干扰对消 ( PIC) 技术的联合检测译码技术。相对于串行干扰抵消算法, 该算法只需进行2次矩阵求逆运算, 降低了复杂度, 同时该算法采用信道译码器反馈信息, 提高了PIC检测算法的性能。
1 基本原理
1. 1 数学模型
考虑一编码MIMO-OFDM系统[7,8,9,10], 配备nT 根发射天线和nR根接收天线, N个子载波。MIMO- OFDM发射端框图如图1所示, 数据信息首先经过信道编码、交织调制然后进行VBLAST编码生成nT 层信息, 每层信息进行串并转换, 生成的N路信息经过IFFT变换和添加循环前缀生成一个OFDM符号。
在接收端, 假设系统已经同步, 经过FFT变换后, 第j根天线收到的第k个子载波信道的信息rj[n, k]为:
式中, Hij[n, k]为第i根发射天线、第j根接收天线以及第n个OFDM符号和第k个子载波上信道频率响应; si[n, k]为第i根发射天线上第n个OFDM符号上的第k个子载波上的发射符号; wj[n, k]为AWGN噪声。
1. 2 算法流程
如图2所示, 在每一个子载波上对MIMO信号进行检测, 先进行MIMO初始检测, 检测算法可以采用MMSE或迫零算法, 然后依靠信道译码和PIC检测器之间的迭代提高系统的性能。
为了实现迭代的过程, 从译码器输出的信号必须经过交织和映射重建发射信号, 然后干扰抵消检测器利用此重建信号进行干扰抵消。其中PIC检测算法描述如下:
其中, G为检测矩阵; H+为矩阵H的Moore- Penrose逆矩阵; Q (·) 为判决函数。
信道译码器输出可以采用软判决或硬判决, 软判决因其反映了判决比特的可靠性信息, 性能比硬判决更优秀, 但增加了算法的复杂度。考虑到该算法需要在每一个子载波上进行迭代的PIC检测译码算法, 从降低算法复杂度的角度出发, 译码器输出采用硬判决。
2 仿真性能分析
2. 1 仿真条件
应用Matlab对算法进行了仿真。因本算法只涉及到均衡和译码步骤, 不涉及信道估计部分, 故假设接收端完全已知信道状态信息。
OFDM系统采用64个子载波, 每个子载波采用QPSK调制方式, 循环前缀长度设定为16个采样点长度。
仿真所用信道WSSUS瑞利信道, 时延功率谱为指数分布函数, 并对其进行了归一化操作, 多径数目为4, 均匀分布在循环前缀长度范围内。
2. 2 非编码 MIMO-OFDM 系统的性能分析
首先在无信道编码系统中仿真了并行干扰对消算法的性能。图3显示了3种算法的误比循率 ( BER) 性能曲线, 在10- 3的误码率上, PIC相对于ZF算法大约有6 dB的增益。在低SNR区域, PIC算法的性能要好于VBLAST算法的性能。而在高SNR区域PIC算法的性能反而不如VBLAST算法的性能, 这是因为在高信噪比区域误差扩散的影响比较微弱。当SNR高于8 dB时, ZF - VBLAST算法性能达到最优。而迫零算法性能最差。
2. 3 编码 MIMO-OFDM 系统的性能分析
图4显示了在编码MIMO-OFDM系统中采用基于PIC的联合检测与解码算法所获得的误码率性能曲线。仿真中使用的信道码为1/2码率的卷积码, 信道译码算法采用最优的逐符号最大后验概率译码算法BCJR算法, 采用QPSK调制, 64个子载波, 循环前缀为16个采样点间隔。
分别仿真了初始迭代时的BER曲线、迭代1次获得的BER曲线以及迭代2次获得的BER曲线。初始迭代时, 即为编码系统中的PIC算法, 此时没有利用从信道编码器反馈的判决信息。
经过1次迭代之后, BER性能有了明显的改善, 第2次迭代的误码率较之第1次迭代的BER改善并不大, 算法趋向于收敛。经过2次迭代之后相对于传统的VBLAST检测算法, 该算法所获得性能增益大概在4 dB左右。
3 结束语
提出了一种MIMO-OFDM系统中的联合检测与译码算法, 该算法基于并行干扰抵消技术 ( PIC) 。利用信道译码器反馈的判决信息进行干扰抵消, 增强了干扰抵消算法的可靠性。为了比较算法的性能, 首先通过计算机仿真比较了VBLAST算法、迫零算法以及并行干扰抵消算法在无编码MIMO-OFDM系统中的性能, 继而在编码MIMO-OFDM系统中仿真了此算法的收敛性能。仿真结果显示, 所获得的BER性能好于传统的MIMO-OFDM接收机使用的VBLAST算法。
参考文献
[1]PROAKIS John G.数字通信 (第4版) [M].北京:电子工业出版社, 2003:540-545.
[2]赵辰, 刘应状, 朱光喜.VBLAST系统中ZF检测算法的研究[J].无线电通信技术, 2007, 33 (2) :37-39.
[3]WOLNIANSKY P W, ROSCHINI G J, GOLDEN G D, et al.V-BLAST:An Architecture for Realizing very High Data Rates over the Rich-scattering Wireless Channel[C]∥Processing International Symposium on Signals, Systems, and Electronics (ISSSE’98) , Pisa, Italy, 1998:230-235.
[4]HASSIBI B.An Efficient Square-root Algorithm for Blast[C]∥Proceedings IEEE International Conference Acoustic, Speech, Signal Processing, Istanbul, Turkey, 2000:5-9.
[5]BERROU C, GLAVIEUM A, THITIMAJSHIMA P.Near Shannon Limit Error-correcting Coding and Decoding:Turbo-Codes[J].Proceedings of ICC’93, 1993 (5) :1 064-1 070.
[6]孟庆萍, 周新力, 田伟.基于DDEA算法的短波信道Turbo均衡研究[J].无线电通信技术, 2011, 37 (6) :28-32
[7]徐信, 宋志群, 蔡跃明, 等.基于一种SC-FDE散射通信系统的MIMO技术方案[J].无线电通信技术, 2009, 35 (6) :4-6, 52.
[8]陈建青, 葛利嘉, 韩辉, 等.MIMO系统中球形解码算法性能仿真比较[J].无线电通信技术, 2012, 38 (6) :38-41.
[9]高凌翔.MIMO系统中检测方法的研究及其改进[J].无线电通信技术, 2005, 31 (5) :9-11.
译码软件系统 篇5
关键词:LT码,软译码,无线信道,误码率
LT码是由Luby提出的第一种实用数字喷泉码[1],因其优异的纠删性能而受到学术界和产业界的广泛关注,并获得了许多实际应用[2]。LT码以删除信道为背景,对于给定的K个原始分组,可以产生任意多个编码分组。接收端只要收到数量略多于K的任意N个分组,就能够成功恢复出所有原始信息。文献[1]指出,LT码还是一种通用的数字喷泉码,也就是说对于具有不同删除概率的各种删除信道均是逼近最优的。
然而,LT码以删除信道为背景的应用条件限制了其在无线信道下的性能[3,4]。由于无线信道固有的噪声和衰减的影响,不能保证译码初始信息的正确,导致LT码在解码过程中出现错误传播[5]。文献[3]指出,在二进制对称信道和高斯白噪声信道条件下,LT码在解码过程中存在错误平台现象,即无论收到多少编码分组,也不可能成功解码。
本文提出了构造系统LT码并进行软信息译码的方法,仿真结果显示了系统LT码在无线信道下应用的良好性能。
1 LT码的编译码原理
LT码最初是针对删除信道环境而提出的纠删码。按照给定的度分布函数,编码器可以源源不断的产生任意多个编码分组。不论信道删除概率如何,接收端只要收到数量略大于原始分组数量的编码分组就可以成功解码,并在成功解码后向发送方确认[6,7]。这一编码方案显著减少了信道反馈,避免了“反馈风暴”,提高了信道利用率。
1.1 编码原理
对于K个原始分组,LT码编码过程如图1所示:
(1)对于给定的度分布函数ρ(d),随机确定一个度数d;
(2)从s1,s2,…,sk中随机选取d个不同的原始分组;
(3)将这d个原始分组做异或和, 得到一个编码分组。
度分布函数ρ(d)的设计是构造LT码并保证成功译码的关键。Luby在文献[1]中给出了理想孤波分布ρ(d)和鲁棒孤波分布μ(d),其表达式为:
式(2)中,Z=∑dρ(d)+τ(d) (3)
式(5)中,c为常数,δ为解码失败概率,K为信息长度。
LT码的编码定义了一个连接原始分组和编码分组的二部图,相当于通过度分布函数在编码时随机确定了一个生成矩阵G,如图2所示。
图2中,C1=S4,C2=S1⊕S2⊕S5⊕S6,依此类推产生编码分组。
1.2 译码原理
译码时,假定译码器知道编码过程所定义的二部图,即知道每个编码分组是由哪几个原始分组生成,但不知道其具体值。LT码译码过程如图3所示:
(1)从二部图中寻找度为1的编码分组,如果没有这样的节点,则继续接收数据;
(2)找到度为1的编码节点Ci后,令与其相连的信息节点Si=Ci,并移去二者之间相连的边;
(3)对于与Si相连的其他所有编码节点Cj,令Cj=Si⊕Cj,然后移去Si与Cj之间相连的边;
(4)重复上述过程,直到所有信息节点解出。
2 系统LT码的软信息译码
在无线信道中,由于噪声和衰减的影响,导致译码起始节点(编码分组)可能出现错误。在这种情况下,由于编码时已将各信息节点的信息分散在各编码分组中,如果继续采用LT码的译码方法,只会带来更多的错误,导致错误传播。
为此,本文提出构造系统LT码,并采用软信息译码的方法,力求降低其在无线信道下的误码率。
2.1 系统模型
所述模型以单比特情形为对象。对于实际应用而言,发送的LT码不可能无限长。假定原始分组S长度为K,LT编码后的码字C长度为N,相当于生成矩阵G大小为KN。通过将生成矩阵扩展为(E|G),产生系统LT码(S|C)。其中,E为单位矩阵。假定译码器知道生成矩阵G,即知道度分布和相邻关系,从而构造校验矩阵(GT|E),采用LLR-BP软信息译码算法进行译码。如图4所示。
2.2 LLR-BP软信息译码
假设编码后的码字为C,发送到信道的比特为x,接收到的比特为y,则最大似然率为:
在迭代过程中,校验节点传向变量节点的信息记为L(rji),变量节点传向校验节点的信息记为L(qij),变量节点收集到的所有信息为L(qi)。
LLR-BP算法步骤如下:
2.2.1 初始化
信道传递给变量节点的初始概率似然比信息L(Pi),令L(0)(qij)=L(Pi);
2.2.2 迭代处理
步骤1:对所有校验节点j和其相邻的变量节点i∈R(j),第m次迭代时,计算变量节点传向校验节点的信息
或:
步骤2:对所有的变量节点i和其相邻的校验节点j∈C(i),第m次迭代时,计算校验节点传向变量节点的消息
步骤3:译码判决
对所有变量节点计算硬判决消息
Lm(qi)>0,则C′=1,否则,C′=0。
2.2.3 停止
设定门限值L0(q),当|L(qi)|<L0(q)时,返回步骤1继续迭代,当|L(qi)|>L0(q)或达到最大迭代次数后结束运算。
3 性能仿真
3.1 仿真参数
实验假设误码仅与噪声相关,LT码的度分布和相邻关系在传输中不会出错。原始分组S长度为1 000; 度分布函数为鲁棒孤波分布, 参数c=0.03, δ=0.5;调制方案为BPSK调制;信道条件为AWGN信道;采用Monte Carlo仿真10 000次。
3.2 仿真结果
图5为不同信噪比下未经编码信号和传统LT码以及采用LLR-BP解码的系统LT码的误码率对照曲线。实验结果验证了传统LT码直接应用于无线信道下的局限性,传输过程造成的误码通过解码算法后产生错误传播,导致出现更多的错误。而系统LT码则由于软信息的引入,大大改善了误码率性能。图6为系统LT码(1 000,3 000)在不同信噪比下的迭代收敛曲线。图7为Monte Carlo仿真1 000次,系统LT码(1 000,3 000)在不同信噪比下的码率与误码率之间的关系。
4 结论
本文针对LT码在无线信道下的应用提出了构造系统LT码并进行LLR-BP软信息译码的方法,克服了在无线信道下传统LT码解码过程中的错误传播现象。通过理论分析和仿真实验,论证了将LT码作为无线信道下的纠错码的可行性和有效性。
参考文献
[1] Luby M.LT Codes.Proceedings of the 43rd Annual IEEE Symposi-um on Foundations of Computer Science(FOCS’02).Vancouver,BC,Canada,2002:271—282
[2] Mitzenmacher M.Digital fountains:a survey and look forward.Pro-ceedings of the IEEE Information Theory Workshop 2004,San An-tonio,TX,USA,Oct.2004:271—276图7不同码率下的误码率曲线
[3] Palanki R,Yedidia J S.Rateless codes on noisy channels.In Proc IntSymp Inf Theory(ISIT),Chicago,Jun.2004:37
[4] Etesami O,Molkaraie M,Shokrollahi A.Raptor codes on symmetricchannels.in Proc.IEEE Int Symp on Inform Theory,2004:38
[5] Tee R,Nguyen T,Yang L,et al.Serially concatenated luby trans-form coding and bit-interleaved coded modulation using iterative deco-ding for the wireless internet.In:Proceedings of IEEE VTC’06Spring,2006:22—26
[6] MacKay D J C.Fountain codes.IEE Communication Proceeding On-line,2005;152(6):1062—1068
译码软件系统 篇6
1 Viterbi算法与实现
Viterbi解码器基本原理为:在 (n, k, m) 卷积码中, 若A表示k L个信息序列, C表示含有N=n L+nm个比特的码字序列, 其中n L是编码后的信息序列的长度, N是整个码字序列的长度。最后一个信息元输入编码器后, 额外输入nm个附加的0比特, 使编码器回到初始状态。编码后的比特流经过调制形成量化输出R, 解码器根据这个信息在解码后R输出A`, 它是一个A的估值。输入时信息序列A是与有效码字V一一对应的, 但是解码后的输出不一定能保证与有效码字对应。通常, 称R跟V的距离 (欧式距离或者汉明距离) 为路径度量, Ri跟Vi的距离为分支度量。最大似然译码的原理就是找到能够使logp (R/V) 最小的解码输出。
对于 (n, k, m) 卷积码, 在单位时间内, 每个状态可能来自于2k个不同分支, Viterbi算法根据每一时刻进入当前状态的2k个分支的分支度量和这些分支原有的路径度量, 计算出2^k个分支的新路径度量。选择其中最大的一个作为当前状态的新的路径度量, 并记录路径作为当前状态的幸存路径。
通常, Viterbi译码器的硬件实现都是由分支度量计算单元 (Branch Metric Unit) , 加比选单元 (Add Compare Select) , 路径度量单元 (Path Metric Unit) , 幸存路径存储及输出单元 (survivor memory unit, SMU) 组成。其系统结构如图1所示。
硬件实现的Viterbi算法中, BMU用来计算一个单位时间内, 各个状态的分支度量。ACS单元根据候选路径的分支度量和路径度量, 比较并选择一个具有较小路径度量的路径作为幸存路径, 并将这个路径对应的比特输出到PMU单元中存储。在所有的码块都计算完成后, 存储器中已经存入了所有状态对应的前向状态 (幸存路径) , 根据所使用的卷积码的尾比特设计, 从0状态或者具有最小路径度量的状态开始, 回溯幸存路径, 输出解码结果。
在实现译码器时, 针对不同的设计要求, 有三种主要的ACS结构, 分别是全并行、全串行和串并行结合。本文采用全并行结构, 在全并行结构中, 含有和状态数相同的ACS单元, 为了提高译码器的解码吞吐量, viterbi的译码器实现了32个并行的计算单元, 对在LTE系统中使用的 (3, 1, 7) Viterbi译码器, 都可以在一个时钟周期完成计算。
由于使用全并行的计算结构。可以快速地完成解码。图2是Viterbi解码器的模块结构图。
Viterbi解码器的硬件模块如图2所示, 主要由输入处理模块, 网格计算模块, 存储控制模块, 回溯和输出模块组成。其中, 输入处理模块对输入数据进行预处理, 主要进行量化处理。网格计算模块是主要的计算模块, 完成viterbi算法中的网格 (Trellis) 计算部分, 生成网格数据。在全部网格数据生成后, 网格计算模块找出有最大路径度量值的状态, 传输给回溯模块。存储控制模块控制整个解码器的状态, 并控制存储器的访问。回溯模块根据网格计算模块得到的网格数据和起始状态, 找出正确的状态转换序列, 进而解码结果并输出, 完成解码操作。
2 性能与分析
本文采用Verilog硬件描述语言对各模块进行RTL级描述, 使用由顶而下的设计方法, 在VCS仿真平台进行仿真验证, 波形如图3所示。
Synopsys Design Compiler对RTL代码进行逻辑综合, 得到面积为0.125mm2, 功耗仅为1.7mw, 综合报告如图4所示。
如表1所示, K值代表维特比译码器的约束长度, 由于本维特比译码器采用全并行结合的设计方法, 使得译码器在速率, 吞吐量上有着较大的提升, 在功耗, 面积上也有所控制。
3 结束语
设计了一种应用于LTE中的 (3, 1, 7) 专用Viterbi译码器, 采用全并行的加比选结构。该译码器具有时钟频率高, 吞吐量大, 功耗较低等优点, 具有良好的应用前景。
参考文献
[1]A.J.Viterbi.Error bounds for convolutional codes and an asymptotically optimum decoding algorithm.IEEE Transactions on Information Theory, 1967.
[2]段华蓉Viterbi译码器的低功耗设计[D].重庆大学, 2006.
[3]朱胜, 杨华中一种高性能可重用Viterbi译码器的设计[J]微电子学2005, 2.
[4]Lin C C, Shih Y H, Chang H C, et al.Design of a Powerreduction Viterbi Decoder for WLANApplications[J].IEEE Trans.on Circuit and Systems I, 2005, 52 (6) :1148-1156.
译码软件系统 篇7
1999年,Viterbo将球形译码应用到MIMO系统的信号检测中[1];2002年,Agrell等人通过利用Schnorr-Euchne(SE)方法[2]改变了各层中候选符号的排序,从而提高了搜索成功的概率;同年,A.M.Chan和I.Lee对Viterbo提出的球形译码算法进行了改进,该算法通过减少对重复点的搜索,有效地提高了搜索效率[3]。以上都是基于硬判决的球形译码检测算法。基于硬判决的检测算法虽然有着较低的复杂度,但是其性能明显低于基于软判决的检测算法。在信道条件比较差的情况下,基于硬判决的检测算法显然不能满足系统的要求,而传统的基于软判决的球形译码检测算法,在实现上有很高的复杂度。因此,本文引入了一种通过减少叶节点的软检测球形译码搜索方法,在保证性能的前提下极大地降低了算法的复杂度。
1 系统模型
在TD-LTE系统中,支持2×2和4×4基本的天线配置。设计一个NT根发射天线、NR根接收天线的MIMO系统,其信道模型如图1所示。
信道为静态平坦衰落情况,在接收端接收到的信号y,用公式表示为:
其中,y是各接收天线接收到的信号矢量,y=[y1,y2,…,yNR]T;x是发射端发射的信号矢量,x=[x1,x2,…,xNT]T;H∈CNR×NT是NR行NT列的信道传输矩阵;n∈CNR×1是零均值复高斯白噪声。在瑞利信道和独立同分布的前提下,H的每个元素h满足复高斯分布,噪声方差为σ2。设发送端总功率为1,则每根接收天线上平均信噪比SNR为1/σ2。
2 软输出球形译码
编码后的复值符号映射到NT维的传输符号向量其中O表示各层星座点可能组成的NT维符号向量。软输出MIMO检测需要计算出各层所对应的所有编码比特的LLR。
2.1 软输出计算
用xj,b表示NT维向量x中第j个符号的所有比特中的第b个。第j个符号第b个比特判决的软信息LLR(xj,b),即对数似然比LLR(Logrithm Lkelihood Ratio)形式的后验概率APP(A Posteriori Probability)定义为[4]:
其中,x为调制方式对应的星座图中的星座点;是不相交的符号向量的集合,表示所有发送符号序列中分别包含xj,b=0和xj,b=1所对应的符号的集合。根据贝叶斯定理,式(2)可转化为:
直接对式(3)进行求解计算复杂度太高,为了降低计算的复杂度,通常利用Max-Log近似值表示为:
则:
对于每一个编码比特,式(5)中两个最小值中必定有一个为:
其中,为最大似然结果。式(6)中另一个最小值定义为:
式(6)和式(7)的Max-Log LLR可以表示为:
2.2 将软检测转化为树搜索
为降低计算复杂度和便于理解,将式(6)和式(7)的求解转化为树搜索的问题,并且通过利用球形译码算法来有效地计算式(8)中各个比特对应的LLR。首先根据H=QR对信道矩阵H进行QR分解,其中Q为酉矩阵,R为上三角矩阵;再将式(1)左乘QH得到修改后的输入输出关系表达式:与噪声向量n有着相同的统计特性。λML和的计算可以等效为:
定义部分符号向量(PSV)其中,i≤NT;当i=1时,x(i)为可能的候选符号向量。初始化式(9)和式(10)中欧氏距离的计算可以等效为递归计算d(x)=d1,其中部分欧氏距离(PED定义为:
其中i层的距离增量(DI)为:
因为部分欧氏距离di只能通过x(i)计算,因此可将ML检测和Max-Log LLR的计算转化为树搜索的问题。
3 球形译码检测算法
树搜索策略包括重复树搜索算法和单树搜索算法两种。
3.1 重复树搜索算法(RTS)
参考文献[4]中阐述了一种利用重复的树搜索算法计算LLR的方法。其主体思想是多次利用SESD算法来确定λML或所有编码比特对应的SESD算法通过设置搜索半径r来限制搜索栅格点的个数,并且保持了深度优先搜索的思想,对于一个给定的节点,优先搜索其PED最小的子树。逐步减小半径的核心思想是首先初始化半径r=∞,每当搜索到一条路径时,根据r2=d(s)来更新半径。这就避免了球形译码算法对半径的依赖,并且对树进行了有效的修剪,减低了运算复杂度。
重复树搜索算法的基本思想是利用SESD算法求解式(9),即利用SESD算法求得离接收数据最近的格点,再根据得到的栅格点求λML;求得λML后,对于每一个编码比特重新利用SESD算法(QMT次)求解式(10)。当再次利用SESD算法求解时,搜索树已经进行了处理,其中去除了包含的候选符号对应的节点。利用SESD算法(QMT次)获得的过程中,初始化半径r=∞,因为该算法有重复搜索的过程故有着很高的计算复杂度。为降低算法的计算复杂度,可以在每次利用SESD算法的过程中,在所有的中寻求使有最小值的符号向量x,赋值给rj,b,通过缩小半径来降低复杂度。
重复树搜索算法的最大优势在于算法比较单一,即每次对修剪之后的树进行搜索用的都是硬判决SESD算法。缺点在于对树中节点的重复搜索造成了计算的冗余。
3.2 单树搜索算法(STS)
参考文献[5]中首先对进行初始化。可以将基于MMSE的半径系数选择法的思想应用到单树搜索算法中,但是需要将利用的MMSE算法改为QR分解算法。因为在将软检测转化为树搜索的过程中,已经对信道矩阵进行了QR分解,因此不会额外增加计算量。
该算法的核心思想在于从一个给定的节点开始有选择地搜索其之后的子树,如果判断到某个子树对应的点中能够更新λML或者其中一个或几个比特对应的才能沿着此子树搜索下去。当该算法搜索完一条路径后,译码器分以下两种情况进行判断:
(1)当d(x)<λML时,对所有的如果则且更新λML=d(x),x ML=x。
(2)当d(x)≥λML时,只需对进行检测。对所有的j和b,如果并且译码器将会更新
以下的修剪准则是该算法中最为关键的部分。部分符号向量s(i)所对应的子树要考虑以下两种状况:(1)将部分符号向量s(i)所对应的二进制比特x(i)与当前最大似然结果所对应的比特进行比较,对于的比特,在对该节点之后的子树进一步搜索的情况下,其对应的可能会发生改变;(2)对应子树s(i)中比特的可能会发生改变,因为对应的比特是未知的。总之,对于部分符号向量s(i)继续搜索其之后的子树可能会影响到的的集合定义为如果节点s(i)处的部分欧氏距离PED d(s(i))满足则节点x(i)其之后的子树要修剪掉,以终止当前的搜索路径,并返回上一层;否则,继续搜索下一层,再次对式(12)进行判断,依次进行循环。修剪准则的目的是为了确保每次搜索都能对λML或其中的一个或几个比特对应的进行更新操作,而且是没有冗余的操作,从而降低实现的复杂度。
4 仿真验证及性能分析
图2和图3分别给出了2发2收情况下,采用QPSK和16QAM两种调制时,RTS和STS两种算法性能的比较。由图2和图3可知,当发送端采用QPSK/16QAM调制方式时,重复树搜索算法和单树搜索算法的性能相同。这是由于两种算法其最终搜索所得结果是相同的,只是它们的搜索路径不同,所以重复树搜索算法和单树搜索算法有着相同的性能。
图4 所示为2发2收采用QPSK的情况下,两种算法的计算复杂度对比。重复树搜索算法的复杂度明显高于单数搜索算法。这是由于重复树搜索算法是多次利用SESD算法,每次树搜索只能完成λML或其中1个编码比特对应的而单树搜索算法是在一次树搜索的过程中完成了λML和所有编码比特对应的重复树搜索算法对很多节点进行了重复的搜索,因此其复杂度明显高于单树搜索算法。
综上所述,单树搜索算法与重复树搜索算法有着相同的性能,但单树搜索算法的复杂度更低。
通过以上分析可知,算法计算复杂度取决于搜索节点的个数,而计算的复杂度直接影响到超大规模集成电路的实现。本文通过对两种软输出球形译码的分析和比较,引入了一种性能相似但复杂度极大降低了的软输出球形译码算法。该算法有着硬判决检测算法的复杂度,但其性能却明显优于硬判决检测算法,有较强的实用性。该算法已应用于TD-LTE无线综合测试仪表的开发中。
参考文献
[1]VITERBO E,BOUTROS J.A universal lattice code decoderfor fading channnels[J].IEEE Transactions on InformationTheory,1999,45(5):1639-1642.
[2]AGRELL E,ERIKSSON T,VARDY A,et al.Closet poinrsearch in lattices[J].IEEE Transactions on InformationTheroy,2002,48(8):2201-2213.
[3]CHAN A M,LEE I.A new reduced-complexity spheredecoder for multiple antenna systems[C].NY:IEEE Interna-tional Conference on Communications,2002:460-464.
[4]WANG R,GIANNAKIS G.Approaching MIMO channelcapacity with reduced-complexity soft sphere decoding[C].Proceedings of IEEE Wireless Communications and Net-working Conference,2004:1620-1625.