一种用于Turbo码译码器中减少存储资源的方法
技术领域
本发明涉及一种应用于通信***或者无线通信***的,特别是码分多址(Code-Division Multiple Access,简称CDMA)***中节省Turbo码译码器存储资源的方法。
背景技术
信道编、解码技术在整个移动通信***中具有相对独立的地位,是其关键技术之一,决定着移动通信***的性能。信道编、解码主要是降低信号传播功率和解决信号在无线传播环境中不可避免的衰落问题。编、解码技术结合交织技术的使用可以降低误码率性能,与无编码情况相比,传统的卷积码可以将误码率降低两个数量级达到10-3~10-4,而Turbo码可以将误码率进一步降低到10-6,逼近香农极限。此外,Turbo码还具有编、解码实现较为简单等优点。
由于Turbo码的一系列优点,它已经在各个移动通信标准中得到了很大的应用,第三代移动通信标准的cdma2000、WCDMA(Wideband Code-DivisionMultiple Access,宽带码分多址)和时分同步码分多址(Time DivisionSynchronous Code-Division Multiple Access,简称TD-SCDMA)***中都将Turbo码作为信道编码方案之一,用于高数据速率(32kbps以上)、高业务质量的物理链路。
Turbo码的原理是基于对传统级联码的算法和结构的修正,内交织器的引入使得迭代解码的正反馈得到了很好的消除。Turbo码编码器由两个递归***卷积码(recursive systematic convolutional code,简称RSC码)、内交织器和删除器组成。如图1所示,为cdma2000***中的Turbo码编码器的结构,根据符号删除器打孔(puncture)形式的不同,该Turbo码的编码码率可以在1/6到1/2之间变化。从译码复杂度和译码性能两方面综合考虑,Turbo码一般采用迭代形式的最大后验概率(maximum a posteriori,简称MAP)译码算法进行译码。由于MAP算法的运算复杂度较高,近来又衍生出了两类简化的MAP算法,分别为Log-MAP算法和Max-Log-MAP算法。图2给出了经典的Turbo码迭代译码器结构图。Turbo码译码器由两个基于MAP算法的软输入、软输出译码器(soft-input soft-output decoder,简称SISO译码器)、交织器和去交织器构成,经对输入信号交替译码、软输出多次迭代译码、过零硬判决后得到译码输出。
Turbo码译码器实现的一个难点在于它需要消耗大量的存储单元。以WCDMA***Turbo码为例,它需要支持的最大帧长为5114,同时由于WCDMA***Turbo码的码率为1/3,再加上12个尾比特,因此Turbo码译码器的输入数据个数为(5114×3+12)。假设译码器的输入信号为N比特(通常需要6比特),则译码器输入共有(5114×3+12)×N=15354×N比特;同时假设译码器内部两个软输入/软输出译码器(SISO译码器)产生的外附信息(extrinsic information,zik)为M比特(通常需要10比特),则外附信息共有5114×2×M=10288×M比特。因此如何在尽可能不降低译码器性能的情况下,减少输入比特和外附信息的位宽,将大大节省Turbo码译码器的存储资源消耗,减少专用集成电路(Application Specified Integrated Circuit,简称ASIC)的面积,降低成本。
Turbo码译码器需要的存储器资源主要用来存储输入数据和外附信息,很显然可以采用线性压扩的方法节省Turbo码译码器的存储资源消耗。但是如果采用线性压缩的方法,信号幅度小的值将被进一步压缩为0,仿真结果表明这将对Turbo码译码器的性能产生较大的劣化。
故可采用非均匀压扩的方法节省Turbo码译码器的存储资源消耗,目前在语音编码***中使用较为普遍的非均匀压缩的方法包括μ率非均匀压缩算法和A率非均匀压缩算法:
所述的μ率非均匀压缩算法公式如下所示:
其中,μ是一正常数,x和y分别代表输入和输出信号,xmax和ymax分别是输入和输出信号的最大值。
所述的A率非均匀压缩算法公式如下所示:
其中,A是一正常数,x和y分别代表输入和输出信号,xmax和ymax分别是输入和输出信号的最大值。
但上述两种非均匀压缩算法均为对数压缩方法,由于Turbo码译码器的输入数据和SISO译码器产生的外附信息都是定点数据,故在硬件实现上是相当复杂,有一定难度的,故μ率/A率非均匀压缩算法均不适用于Turbo码译码器。
发明内容
本发明的目的在于提供一种用于Turbo码译码器中减少存储资源的方法,对Turbo码译码器的输入信号和外附信息进行非均匀压扩,可以在基本不降低Turbo译码器性能的情况下,大大节省Turbo码译码器的存储资源消耗。
为达上述目的,本发明提供一种用于Turbo码译码器中减少存储资源的方法,其包含以下步骤:
步骤1:对Turbo码译码器的输入信号,以及软输入/软输出译码器产生的外附信息进行非均匀压缩,减少数据的位宽比特数:
所述的非均匀压缩算法为:对需要进行非均匀压缩的数据信号根据幅度的大小进行分段;对于幅度较小的数据信号,保持输入信号不变;对于幅度依次增大的信号,采用斜率依次递减,且斜率均小于1的线性函数进行分段线性压缩;该非均匀压缩算法的分段函数表达式为:
其中,1/ki表示斜率,ki>1,ki体现了各分段函数的压缩特性;调整Ai和Bi的值,使各分段函数接口处的值保持一致;
步骤2:将经过非均匀压缩的数据存入存储器(Memory)中,可节省存储资源;
步骤3:应用与步骤1中的非均匀压缩算法对应的非均匀解压缩算法,对从存储器中读出的数据进行解压缩,恢复原始信号所包含的信息;
所述的非均匀解压缩算法与步骤1中所述的非均匀压缩算法互为逆函数关系,其函数表达式为:
步骤4:Turbo码译码器用步骤3中产生的非均匀解压缩后的数据进行译码运算。
本发明提供的一种用于Turbo码译码器中减少存储资源的方法,采用非均匀压缩算法对Turbo码译码器的输入信号和外附信息进行非均匀压缩:即对信号在幅度小的区域内增加量化级数,保持数据精度,对信号在幅度大的区域减少量化级数,节省数据存储宽度,在保证Turbo码译码器的译码性能的情况下,节省Turbo码译码器的存储资源。
附图说明
图1为背景技术中cdma2000***的Turbo码编码器;
图2为背景技术中Turbo码迭代译码器;
图3为本发明提供的用于Turbo码译码器中减少存储资源的方法的示意图;
图4为采用不同的压缩方案时,帧长5114的WCDMA***Turbo码译码器的误码率曲线;
图5为采用不同的压缩方案时,帧长5114的WCDMA***Turbo码译码器的误帧率曲线。
具体实施方式
以下通过图3~图5,结合WCDMA***的Turbo码,说明本发明的一个具体实施例,以使进一步了解本发明的发明内容。
由于采用的WCDMA***Turbo码译码器的输入信号的数据位宽为6比特,软输入/软输出译码器(SISO译码器)产生的外附信息的数据位宽为10比特,故该译码器所需要的存储单元为:
(5114×3+12)×6+5114×2×10=194404比特。
如图3所示,本实施例的具体步骤如下:
步骤1:对Turbo码译码器的输入信号,以及软输入/软输出译码器产生的外附信息进行非均匀压缩,减少数据的位宽比特数:
所述的非均匀压缩算法为:对需要进行非均匀压缩的数据信号根据幅度的大小进行分段;对于幅度较小的数据信号,保持输入信号不变;对于幅度依次增大的信号,采用斜率依次递减,且斜率均小于1的线性函数进行分段线性压缩;
对所述的Turbo码译码器的输入信号采用如下的非均匀压缩算法,将原来6比特的数据位宽压缩为4比特:
对所述的SISO译码器产生的外附信息采用如下的非均匀压缩算法,将原来10比特的数据位宽压缩为6比特:
步骤2:将经过非均匀压缩的数据存入存储器(Memory)中,可节省存储资源;
采用上述的非均匀压缩算法分别对Turbo码译码器的输入信号和SISO译码器产生的外附信息进行压缩后,该Turbo码译码器所需要的存储单元共为:
(5114×3+12)×4+5114×2×6=122784比特;与未压缩时相比,节省了约37%的存储资源。
步骤3:应用与步骤1中的非均匀压缩算法对应的非均匀解压缩算法,对从存储器中读出的数据进行解压缩,恢复原始信号所包含的信息;
所述的非均匀解压缩算法与步骤1中所述的非均匀压缩算法互为逆函数关系;
对所述的Turbo码译码器的输入信号采用如下的非均匀解压缩算法,将4比特的数据位宽解压缩为6比特:
对所述的SISO译码器产生的外附信息采用如下的非均匀解压缩算法,将6比特的数据位宽解压缩为10比特:
步骤4:Turbo码译码器用步骤3中产生的非均匀解压缩后的数据进行译码运算。
请参见图4和图5,分别给出了帧长为5114时,采用非均匀压缩与不采用非均匀压缩时的译码器误的码率(BER)曲线和误帧率(BLER)曲线。
从图中可以看出,如果不采用非均匀压缩的话,Turbo码译码器直接用4比特输入,译码性能大约会劣化0.2dB;而直接采用6比特来存储SISO译码器输出的外附信息,译码器在比特信噪比(Eb/No)增大到某个值后,由于外附信息饱和,译码器性能将出现“平板效应”(error floor)。
而如果采用本发明的方法,对SISO译码器输出的外附信息采用10比特压缩为6比特的非均匀压缩,基本对译码性能没有损失;对Turbo码译码器输入信号采用6比特压缩为4比特的非均匀压缩,大约有0.06dB的性能劣化。
由此可见,仿真结果表明,本发明采用的非均匀压缩的方法对Turbo码译码器的输入信号和软输入/软输出译码器产生的外附信息进行压扩。可以在基本不降低译码器性能的情况下,大大节省Turbo码译码器的存储资源消耗。