TDSCDMA信道译码概述.docx

上传人:b****5 文档编号:8520924 上传时间:2023-01-31 格式:DOCX 页数:13 大小:411.21KB
下载 相关 举报
TDSCDMA信道译码概述.docx_第1页
第1页 / 共13页
TDSCDMA信道译码概述.docx_第2页
第2页 / 共13页
TDSCDMA信道译码概述.docx_第3页
第3页 / 共13页
TDSCDMA信道译码概述.docx_第4页
第4页 / 共13页
TDSCDMA信道译码概述.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

TDSCDMA信道译码概述.docx

《TDSCDMA信道译码概述.docx》由会员分享,可在线阅读,更多相关《TDSCDMA信道译码概述.docx(13页珍藏版)》请在冰豆网上搜索。

TDSCDMA信道译码概述.docx

TDSCDMA信道译码概述

TD-SCDMA——信道译码概述

信道译码是信道编码的逆进程,作用是从编码后的序列恢复出原始的信息序列。

主要过程包括:

•物理信道解映射•第二次解交织•解比特加扰•传输信道解复用•解速率匹配•第一次解交织•无限帧解均衡•信道解码•编码块分割逆过程•CRC校验

 

 

CCTrCH的译码进程·经过解调后的数据首先需要进行物理信道解映射,把各个码道上的数据恢复到CCTrCH上,以10ms无线帧为单位。

·然后对每个CCTrCH的10ms数据进行第二次解交织,解交织使用与发送端相同的算法。

·解交织后的数据需要进行比特解扰,解扰是加扰的逆运算。

·最后需要把CCTrCH上的数据进行TrCH解复用,从而以10ms无线帧为单位,把数据分到各个TrCH上去,解复用的顺序完全对应复用时的顺序。

 

 

 

TrCH译码进程·经过TrCH解复用后数据被分到各个TrCH上进行计算,首先需要进行速率解匹配,使用与发送端相同的速率匹配算法,把10ms数据速率恢复到速率匹配以前的水平。

·无线帧分割的逆过程就是把数据按照各个TrCH上的TTI大小进行合并。

·之后进行第一次解交织,交织长度为TTI内的数据长度,算法与发送端相同。

·无线帧解均衡需要把发送端加入的多余比特删除。

·信道解码算法对应发送端的信道编码方式,从加入冗余的序列中解码得到原始的信息序列。

·对信道解码后的序列进行CRC校验得到FER判决结

 

解速度匹配·经过TrCH解复用,数据就被分配到各个TrCH上,对应发送端首先需要对经过速率匹配的数据进行恢复,恢复为原来的比特数。

·计算参数完全对应于业务参数,与发送端完全一致。

·对应于发送端的处理,解速率匹配的处理也分为三种:

•对于没有进行速率匹配处理的数据块,接收端也不做处理;•对于速率匹配进行重复处理的数据块,接收端需要对相应位置进行删除;•对于速率匹配进行删除处理的数据块,接收端需要对相应位置进行补足,一般来讲,应该在相应位置填“0”;

 

 

 

解速度匹配速率匹配为重复方式的示例,其中下图一中为发送端进行重复的图样,下图二为接收端进行删除恢复的图样,以╳为标记的即为被删除的比特位置:

速度匹配为打孔方式的例如,其中以下图一中为发送端进行删除的图样,以╳为标记的即为被删除的比特位置,下图二为接收端进行恢复的图样:

 

对应信道编码,信道译码的处置分为三种:

·对于未编码的数据块,不做任何处理·对于采用卷积码编码的数据块,一般采用VITERBI解码算法;·对于TURBO码编码的数据块,译码算法主要有MAP算法和SOVA算法,考虑到性能和实现的综合因素,一般采用MAP算法进行TURBO译码;在3G中信道编码方式中应用了卷积码和TURBO码,TURBO码虽然在1993年才被提出,但以其接近香农限的优越性能而在3G系统中被广泛使用。

对于不同的业务需求,信道编码的方式也不同。

一般卷积码被用于话音和低速数据业务中,而TURBO码则被用于高速数据业务。

 

卷积译码

(一)卷积码译码通常采用最大似然算法,其基本思想是:

把接收序列与所有可能的发送序列相比较,选择码距最小的序列作为发送序列。

这类算法中,由维特比(Viterbi)提出的简化算法应用最多。

 

码距用以表示两个等长序列之间的不同,通常采纳的是汉明距离,即两个长度相同的序列之间对应位取值不同的数目。

例如,序列0110与序列1011的汉明距离为3。

 

维特比译码算法的流程是:

不断计算每条途径(即可能的发送序列)相应的输出与输入之间的汉明距离和(即路径度量);在经过一定时间段后,如M时间段后,根据路径度量值最小的原则,对每一个状态只选留一条路径(即幸存路径);再经过一段时间后,状态数量减少,选留路径也相应减少,到最后只剩下一条选留路径(即码输出)。

 

 

卷积码/Viterbi译码

卷积码在一个二进制分组码(n,k)当中,包括k个信息位,码组长度为n,每一个码组的(n-k)个校验位仅与本码组的k个信息位有关,而与其它码组无关。

为了达到必然的纠错能力和编码效率(=k/n),分组码的码组长度n通常都比较大。

编译码时必需把整个信息码组存储起来,由此产生的延时随着n的增加而线性增加。

为了减少那个延迟,人们提出了各类解决方案,其中卷积码确实是一种较好的信道编码方式。

这种编码方式一样是把k个信息比特编成n个比特,但k和n通常很小,专门适宜于以串行形式传输信息,减小了编码延时。

与分组码不同,卷积码中编码后的n个码元不仅与当前段的k个信息有关,而且也与前面(N-1)段的信息有关,编码进程中彼此关联的码元为nN个。

因此,这N时刻内的码元数量nN通常被称为这种码的约束长度。

卷积码的纠错能力随着N的增加而增大,在编码器复杂程度相同的情形下,卷段积码的性能优于分组码。

另一点不同的是:

分组码有严格的代数结构,但卷积码至今尚未找到如此周密的数学手腕,把纠错性能与码的结构十分有规律地联系起来,目前多数采纳运算机来搜索好码。

下面通过一个例子来简要说明卷积码的编码工作原理。

正如前面已经指出的那样,卷积码编码器在一段时刻内输出的n位码,不仅与本段时刻内的k位信息位有关,而且还与前面m段规按时刻内的信息位有关,那个地址的m=N-1通经常使用(n,k,m)表示卷积码(注意:

有些文献中也用(n,k,N)来表示卷积码)。

图1确实是一个卷积码的编码器,该卷积码的n=2,k=1,m=2,因此,它的约束长度nN=n×(m+1)=2×3=6。

图1(2,1,2)卷集码编码器

在图1中,与为移位寄放器,它们的起始状态均为零。

、与、、之间的关系如下:

(1)

假设输入的信息为D=[11010],为了使信息D全数通过移位寄放器,还必需在信息位后面加3个零。

表1列出了对信息D进行卷积编码时的状态。

表1信息D进行卷积编码时的状态

 

描述卷积码的方式有两类,也确实是图解表示和解析表示。

解析表示较为抽象难懂,而用图解表示法来描述卷积码简单明了。

经常使用的图解描述法包括树状图、网格图和状态图等。

基于篇幅缘故那个地址就不详细介绍了。

卷积码的译码方式可分为代数译码和概率译码两大类。

代数译码方式完全基于它的代数结构,也确实是利用生成矩阵和监督矩阵来译码,在代数译码中最要紧的方式确实是大数逻辑译码。

概率译码比较经常使用的有两种,一种叫序列译码,另一种叫维特比译码法。

尽管代数译码所要求的设备简单,运算量小,但其译码性能(误码)要比概率译码方式差许多。

因此,目前在数字通信的前向纠错中普遍利用的是概率译码方式。

维特比译码法简介

viterbi译码算法是一种卷积码的解码算法。

缺点是随着约束长度的增加算法的复杂度增加专门快。

约束长度N为7时要比较的途径就有64条,为8时途径变成128条。

(2<<(N-1))。

因此viterbi译码一样应用在约束长度小于10的场合中。

编码(举例约束长度为7):

编码器7个延迟器的状态(0,1)组成了整个编码器的64个状态。

每一个状态在编码器输入0或1时,会跳转到另一个当中。

比如110100输入1时,变成101001(其实确实是移位寄放器)。

而且输出也是随之而改变的。

解码的进程确实是逆进程。

算法规定t时刻收到的数据都要进行64次比较,确实是64个状态每条路有两条分支(因为输入0或1),同时,跳传到不同的两个状态中去,将两条相应的输出和实际接收到的输出比较,量度值大的抛弃(也确实是比较结果相差大的),留下来的就叫做幸存途径,将幸存途径加上上一时刻幸存途径的量度然后保留,如此64条幸存途径就增加了一步。

在译码终止的时候,从64条幸存途径当选出一条量度最小的,反推出这条幸存途径(叫做回溯),得出相应的译码输出。

如此的算法在TI的C54x的dsp上利用100M的速度运行,都无法达到数传速度的要求,要紧的时刻消耗在每条途径的两次比较上,两次比较的时候一共需要从内存中取3个数(上一时刻幸存途径的量度,两个状态跳转相应的输出值),比较终止以后,还需要对内存写入2个数(幸存途径新的总量度,下一个跳转的状态),如此,每一个时钟节拍需要比较的次数确实是64*2次,每次存取数就要5次。

一个数据包是256byte,明白解码一包所可能需要的时刻。

加上其他的开销,最后实验出来的结果是可能,可是用64k速度传输的时候只要即可传完。

 

 

Viterbi译码

  关于卷积码的解码方式中,Viterbi译码算法是被应用的最普遍的译码算法。

是一种最大似然译码算法(MLD,Maximu  LikelihoodDecoding)。

它接收输人的信息序列后,寻觅任何可能的途径值,而后找一条最正确途径值看成解码输出。

为了描述Viterbi译码算法,经常使用网格图(TrellisDiagram,根据时刻的增加将网格图扩充所取得的图形,如图1所示)来表示演算进程。

网格图中的节点,代表编码器中的各个状态,而在其中的分支代表编码器的所有可能的状态转移情形。

图1显示为(2,1,3)网格图。

 图1(2,1,3)网L=5时的网格图

  此图是L=5时,该(2,1,3)码的状态转移时刻关系图,总共有L+m+1个时刻单位(节点),以0至L+m标号,其中m=k ̄1为编码存储。

假设编码器从SO(00)状态开始,而且终止于SO状态,那么最先的m=2个节点(0,1),相应于编码器由SO状态动身往各个状态行进,而最后m2个节点(6,7),相应于编码器由各状态返回到SO状态。

因此,在开始和最后m个时刻单位,编码器不可能处于任意状态中,而只能处于某些特定状态(如SO,Sl)中之一,仅仅从第m

(2)至第L(5)节点,编码器能够处于任何状态当中(即4个状态SO、S一、S二、S3中之任一个)。

编码器从全0的SO状态动身,最后叉回到SO状态时所输出的码序列,称为结尾卷积码序列。

因此,当送完L段信息序列后,还必需向编码器再送入m段全0序列,以迫使编码器回到SO状态。

  网格图中每一状态有两个输入和两个输出分支。

在某一节点i,离开每一状态的虚线分支(下面分支),表示输人编码器中的信息子组ml=1;而实线分支(上面分支)表示现在刻输人至编码器的信息子组ml=o;每一分支上的2(nO)个数字,表示第i时刻编码器输出的子组01=(cl

(1),cl

(2)),因此网格图中的每一条途径都对应于不同输入的信息序列。

由于所有可能输人的信息序列共有2k1条不同的途径,相应于编码器输出的2k1个码序列。

  Viterbi译码算法考虑的是如何去掉不可能成为最大似然选择对象的格形图上的途径,即若是有两条途径抵达同一个状态,那么具有最正确气宇的途径被选中,称为幸存途径(survtvmgpath)。

对所有状态都将进行如此的选路操作,译码器不断在格形图上深人,通过去除可能性最小的途径实现裁决。

较早地抛弃不可能的途径从而降低了译码器上实现的复杂度。

Omura在1969年证明了Viterbi译码算法其实确实是最大似然算法。

也确实是说,选择最优途径能够表述为选择具有最大似然气宇的码字,或选择具有最小距离的码字。

  Viterbi译码算法中硬裁决Viterbi译码和软裁决Viterbi译码的性能不同。

由于对模拟信号的处置比较复杂,因此在软裁决译码之前,一样先要对接收序列进行量化。

事实上,能够将硬裁决译码看做软裁决译码的特殊情形,即采纳了1比特量化。

而软裁决采纳的是多比特量化。

在理想的软裁决情形下,信道接收值直接用于译码器。

相应地,卷积码的Viterbi译码也有硬裁决Viterbi译码和软裁决Viterbi译码两种译码方式。

从仿真的结果来看,关于高斯信道来讲,8级量化比2级量化的信噪比提高了大约2dB,这说明了为了取得相同的比特过失性能,8级软裁决需要的Ec/No比硬裁决低2dB,模拟装置比2级量化的性能提高2.2dB;因此,8级量化比无穷级量化的性能损失了仅。

由于那个缘故,量化级超过8级只能取得较少的性能提高。

因此,软裁决Viterbi译码算法一样采纳3比特量化,它比硬裁决Viterbi算法所要处置的数据量要多3倍。

可见,软裁决译码的代价是译码器所需存储量的增大。

  卷积码的编码码字序列c是输入信息序列m与编码器冲激响应g卷积的结果。

码字序列c通过信号传输映射并送至有噪信道传输,在接收端取得接收序列r。

Viterbi译码算法确实是利用接收序列r,依照最大似然估量准那么来取得估量的码字序列y。

即寻觅在接收序列r的条件下使条件概率p(r/y)取得最大值时所对应的码字序列y。

序列y必需取自许用码字集合。

  关于码率为R的(no,k0,m)卷积码,在每一个时刻单位并行输人k0个码元,同时并行输出no个码元。

一样输人序列表示为:

  其中下标中的m表示卷积码编码器中寄放单元的个数,L表示输入信息序列的长度。

事实上,最后增加的m个码元为零码元,目的是取得结尾码字,即便编码器在编码终止时的状态回到初始全零状态。

相应的接收序列表示为:

  类似地,接收序列r和估量序列y也有类似的表示形式:

  关于最大似然译码,Viterbi算法选择使p(r/y)最大的y作为估量序列。

若是假设信道是无经历的,那么噪声对每一名发送码元的阻碍都是独立(不相关)的,从而条件概率p(r/y)就等于每一个独立同散布接收码元条件概率的乘积,即

  上式即为给定接收序列r的条件下序列y的似然函数。

由于对数函数lg是一个单调递增函数,因此使p(r/y)最大化就等价于最大化lgp(r/y)。

为降低似然函数的计算复杂性,常采纳如下概念的对数似然函数:

  为简化上式中的对数函数求和运算,能够概念如下码元气宇:

  其中常数a和b的选取原那么是使码元气宇值是或尽可能接近于某个小的正整数。

在BSC信道或采纳硬裁决译码时能够用不同的方式概念常数a和b:

  在这种情形下,Viterbi算法确实是在编码格图上选择与接收序列r之间汉明(Hamming)距离最大的码字序列作为译码输出。

关于一样的信道,能够依照误差最小化的原那么选择常数a和b的值来取得可同意的码元气宇。

依照码元气宇的概念能够概念格图途径气宇:

  这意味着在编码格图上译码估量码元序列y与接收码元序列r之间的总代价。

关于BSC,即两个序列之间的汉明距离。

  Vitervi算法确实是利用卷积码编码器的格形图来计算途径气宇。

算法第一给格图中的每一个状态(结点)指定一个部份路径气宇值。

那个部份途径气宇值由从起始时刻t=0的So状态到当前各个时刻的So状态决定。

在每一个状态,选择达到该状态的具有“最好”部份途径气宇的分支。

  最优的部份途径气宇依照前述常数a和b的选择不同,能够是“最大”气宇,也能够是“最小”气宇。

依照所采纳的度量,选择知足条件的部份途径作为幸存途径,而将其他达到该状态的分支从格图上删除。

viterbi算法确实是在格形图上选择从起始时刻到终止时刻的惟一幸存途径作为最大似然途径。

沿着最大似然途径,从终止时刻回溯到开始时刻,所走过的途径|对应的编码输出确实是最大似然译码输出序列。

  硬裁决viterbi算法能够依照如下步骤实现。

  

(1)第一以Skj代表编码器格图中第t时刻的状态Sk。

给格形图中的每一个状态指定一个气宇呈V(Skj)。

  

(2)初始化。

在时刻t=0,V(So,o)=0,其他时刻V(Skj)为无穷大。

  (3)t+1→t。

计算在t时刻抵达Sk状态的所有途径的部份途径气宇,即第一找到时刻t的分支气宇,这能够通过计算汉明距离来完成。

第二,计算t时刻的部份途径气宇。

  (4)将V(Skj)设置为t时刻抵达Sk状态的“最好”部份途径气宇。

通常情形下,最优的部份途径气宇是具有最小度量值的部份途径气宇;若是有多个最优的部份途径气宇,能够选择其中任意一个。

  (5)存储最优的部份途径气宇及其相应的幸存途径和状态途径。

  (6)假设t<L+m-1,返回(3)。

  viterbi算法取得的最终幸存途径在格形图中是惟一的,也确实是最大似然途径。

  下面给出硬裁决viterbi算法实现卷积码译码的一个简单例子。

考察(2,1,3)卷积码。

假设输入序列为m=(1011100);相应的码字序列为c=(11,10,00,01,10,01,11)。

若是通过BSC信道传输后取得的接收硬裁决序列为F(10,10,00,01,11,01,11)。

其中两位显现了错误,下面考察通过viterbi算法以最小汉明距离为准那么实现译码,从而获得估量信息序列m和码字序列c。

  图2给出了在编码器格形图上依照接收序列进行Viterbi译码的进程。

图顶用粗线画出了在每一时刻进入每一个状态的幸存途径。

在t=2时刻以前,进人每一个状态的分支只有一个,因此这些途径确实是幸存途径;从t=2时刻开始,进入每一个状态结点的途径有两条,依照最小距离准那么,选择一条幸存途径。

在t=7时刻,只剩下惟一的一条幸存途径,即最大似然途径,与这条似然途径相对应的码字确实是译码输出,显然,依照前述该输人序列的编码码字,可知(II,10,00,01,10,01,II);相应的译码输出信息序列为(1011100)。

 图2译码进程流程

  表1进入每一个状态节电的幸存途径的部份气宇值

  通常,实现软裁决viterbi算法是利用欧几里德距离气宇代替硬裁决时的汉明距离气宇,其中接收码元采纳多比特量化;接收机并非是将每一个接收码元简单地裁决为0或1,而是利用多比特量化或直接利用未量化的模拟信号。

理想情形下,接收序列r直接用于软裁决viterbi译码器。

软裁决viterbi译码器的工作进程与硬裁决viterbi译码器的工作进程相似,惟一的区别是在气宇中以欧几里德距离的平方代替汉明距离。

  从实现方式来看,硬裁决viterbi译码算法和软裁决viterbi译码算法区别要紧在加比选部件(ACS,Addition ComparisonSelection),途径计算部件(BMG;Bran。

hMetricGeneration)和气宇贮存模块或寄放器模块的不同。

  Viterbi译码流程要紧有下面几个部份。

  

(1)量化。

将接收机接收的模拟信号转化成数字信号。

  

(2)码同步。

检测码元帧的边界和码元标志。

  (3)分支气宇计算。

计算各个状态的接收码元和本地码元的汉明距离。

  (4)状态气宇更新。

用各个状态新的途径气宇代替前一时刻的途径气宇。

  (5)幸存途径存储。

将Viterbi译码所需的网格图上所走过的途径记录下来。

  (6)输出裁决。

依照幸存途径存储的信`崽,产生译码序列的输出。

  图3显示了Viterbi译码算法的流程,它是依照上述的几个部份来进行的。

  整个译码器依照功能要紧分成7个模块。

系统框图如图4所示,要紧由途径计算模块(BMG,BranchMetricGeneration),加比选模块(ACS,AdditionComparisonSelection),状态途径存储治理模块(MMU,MetricMemoryManagement Unit),途径回溯模块(TB,Traceback),途径存储模块(SMU,SurvivorMemoryManagementUnit),输人输出模块再加上一个操纵电路模块组成。

图3Viterbi译码算法流程

图4Viterbi译码系统框图

  输入输出模块:

输入输出部份提供解码器与外部的接口。

在无线通信中,接收端从信道中接收到信息序列,然后通过输入端传入解码器。

通过解码以后,最后取得的解码序列从输出端送出,在通过其他处置输出。

  ACS模块:

AddCompareSelect模块,即“加比选”模块。

它是Viterbi译码器中运算量最大的部份,大量的运算都是在那个模块完成的。

ACS接收原先的状态气宇和当前的气宇途径值,每一状态都有两条途径能够抵达,对每一状态的两条路径的对应值相加,将取得的两个结果进行比较,从当选取较小的一条,将它作为当前的状态气宇。

  BMG模块:

BranchMetricGenerator模块,即途径气宇模块。

那个模块计算每一时刻各个状态的途径气宇的,在BSC信道的硬裁决Viterbi译码进程中,确实是计算接收值与期望值之间的汉明距离。

  TB模块:

Traceback模块,途径回溯模块。

那个模块当译码开始一段序列后,依照途径回溯算法,历经各个状态,取得译码输出。

  MMU模块:

MetricMemoryManagementUnit,途径气宇存储治理模块。

那个模块要紧负责对途径气宇的存取进行治理,为ACS模块提供所需的途径气宇值和按时更新途径气宇。

  SMU模块:

SurvivorMemoryManagementUnit,幸存途径存储治理模块。

那个模块负责对幸存途径RAM进行治理,负责幸存途径的存储和读取。

模块:

操纵电路模块,要紧负责提供各类操纵信号给各个模块,以保证时钟上同步,流水线不堵塞,提高系统的并行能力。

  由于在卷积码的译码进程中,Viterbi译码算法的复杂度和寄放器状态数成正比,与约束长度成指数增加关系。

因此解决计算复杂度大的问题是关键,因此整个译码器的重点在ACS模块、MMU模块、SMU模块和TB模块上。

  基于DSP的Viterbi译码实现进程分为欧几里德距离计算、寻觅最短距离、计算累加距离、跟踪回溯途径、微分等步

 

 

 

 

在译码前,第一需要对进入译码器前的比特进行数据分离,依照发送端编码器的复合情况将数据在分离器处重新按照两个RSC编码器的输出来作为MAP子译码器(Decoder1和Decoder2)的输入,即input1和input2。

Decoder1和Decoder2均采用软输入、软输出(SISO)的迭代译码算法,每次迭代都有三路输入信息,一是信息码对应原始的信息序列,二是校验码,三是先验信息或称边信息。

子译码器的输出为软输出,不仅包含了本次译码对接收码字的硬估值,而且还给出了这些估计的最大似然度。

Decoder1和Decoder2是两个独立的编码器产生并分别传输的,所不同的是他们的信息源不同,Decoder2所对应的信息源比Decoder1的信息源多经过一次交织。

Decode1把自己的似然序列经过一次交织作为同信息源序列的软信息输入给Decoder2,从而使Decoder2的信息量增加,提高了译码的正确性。

同理,Decoder2的软输出经过解交织也可以再作为Decoder1的输入,这样反复迭代运算最后在完成所有迭代后,得到最后的关于信息序列的软输出,在硬判决之后作为最后译码的结果。

 

Turbo码性能·要得到非常好的性能,需要译码过程中进行多次迭代(20次左右),在实现中因为复杂性和时延的原因,一般进行4次迭代。

·对于TURBO码来讲,数据块长度越大,性能越好,但是长度有一定的限制,40<=L<=5114。

·长度低于200比特的数据块性能与卷积码类似,性能变差。

·TURBO码性能已经接近Shannon限,尤其是在低SNR条件按下的性能。

CRC校验和性能估量·对FER的统计,是通过CRC校验来得到的,因此CRC的统计有非常重要的意义。

·CRC校验主要是通过对解码后加在数据块后面的CRC校验序列和解码后的数据块重新加上CRC校验比特(模拟发送CRC)来进行比较,通过校验序列是否完全一致来判断该传输块是否为误块。

CRC校验比特长度为0、12、16、24四种。

·一般需要估计用户业务的实际传输的BE

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1