




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TD SCDMATD 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 提出的简化算法应用最多 码距用以表示两个等长序列之间的差异 通常采用的是汉明距离 即 两个长度相同的序列之间对应位取值不同的数目 例如 序列 0 1 1 0 与序列 1 0 1 1 的汉明距离为 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 知道解码一包所大概需要的时间 加上其他的开 销 最后实验出来的结果是大概 0 06m 但是用 64k 速率传输的时候只要 0 03m 即可传完 Viterbi 译码 对于卷积码的解码方法中 Viterbi 译码算法是被应用的最广泛的译码算 法 是一种最大似然译码算法 MLD Maximu LikelihoodDecoding 它接收 输人的信息序列后 寻找任何可能的路径值 而后找一条最佳路径值当作解码 输出 为了描述 Viterbi 译码算法 常用网格图 Trellis Diagram 根 据时 间的增加将网格图扩充所得到的图形 如图 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 S1 S2 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 级量化比无穷级量化的性能损失了仅 0 2dB 由于这个原因 量化级超过 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 最大化就等 价于最大化 lg p 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 Comparison Selection 路径计算部 件 BMG Bran h Metric Generation 以及度量储存模块或者寄存器模块的 不 同 Viterbi 译码流程主要有下面几个部分 1 量化 将接收机接收的模拟信号转化成数字信号 2 码同步 检测码元帧的边界以及码元标志 3 分支度量计算 计算各个状态的接收码元和本地码元的汉明距离 4 状态度量更新 用各个状态新的路径度量代替前一时刻的路径度量 5 幸存路径存储 将 Viterbi 译码所需的网格图上所走过的路径记录下 来 6 输出判决 根据幸存路径存储的信 崽 产生译码序列的输出 图 3 显示了 Viterbi 译码算法的流程 它是根据上述的几个部分来进行的 整个译码器按照功能主要分成 7 个模块 系统框图如图 4 所示 主要由路 径计算模块 BMG Branch Metric Generation 加比选模块 ACS Addition Comparison Selection 状态路径存储管理模块 MMU Metric Memory Management Unit 路径回溯模块 TB Traceback 路径存储模块 SMU Survivor Memory Management Unit 输人输出模块 再加上一个控制电路模块组成 图 3 Viterbi 译码算法流程 图 4 Viterbi 译码系统框图 输入输出模块 输入输出部分提供解码器与外部的接口 在无线通信中 接收端从信道中接收到信息序列 然后通过输 入端传入解码器 经过解码之后 最后得到的解码序列从输出端送出 在经过其他处理输出 ACS 模块 Add Compare Select 模块 即 加比选 模块 它是 Viterbi 译码器中运算量最大的部分 大量的运算都是在 这个模块完成的 ACS 接收原 来的状态度量和当前的度量路径值 每一状态都有两条路径可以到达 对每一 状态的两条路 径的对应值相加 将得到的两个结果进行比较 从中选取较小的 一条 将它作为当前的状态度量 BMG 模块 Branch Metric Generator 模块 即路径度量模块 这个模块计 算每一时刻各个状态的路径度量的 在 BSC 信道 的硬判决 Viterbi 译码过程中 就是计算接收值与期望值之间的汉明距离 TB 模块 Traceback 模块 路径回溯模块 这个模块当译码开始一段序列 后 按照路径回溯算法 历经各个状态 得到 译码输出 MMU 模块 Metric Memory Management Unit 路径度量存储管理模块 这 个模块主要负责对路径度量的存取进行管理 为 ACS 模块提供所需的路径度量 值以及按时更新路径度量 SMU 模块 Survivor Memory Management Unit 幸存路径存储管理模块 这个模块负责对幸存路径 RAM 进行管理 负责 幸存路径的存储和读取 CONTROL 模块 控制电路模块 主要负责提供各种控制信号给各个模块 以保 证时钟上同步 流水线不堵塞 提高系统 的并行能力 由于在卷积码的译码过程中 Viterbi 译码算法的复杂度和寄存器状态数 成正比 与约束长度成指数增长关系 因此解 决计算复杂度大的问题是关键 所以整个译码器的重点在 ACS 模块 MMU
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 职业培训课程开发与改进方案
- 酒店清洁开荒项目合同范例
- 2025年职业病防治工作者考试试卷及答案
- 2025年消防模拟试题(附答案)
- 全国中考语文阅读理解专项训练题
- 农业合作社发展规划与项目管理指南
- 节日促销活动客户回馈方案范例
- 临床营养学考察课试题及答案2025年版
- 2025年下半年信息安全工程师考试题型及答案
- 2025年管理者潜质测试题及答案
- 2025年江西省高考物理试卷真题(含答案及解析)
- 高三励志课件
- 河南省人民医院2025年护士规范化培训招生考试参考题库及答案解析
- 绿色交通系统无人驾驶车辆示范项目可行性研究报告
- 2025年领导干部政治理论知识竞赛题库及答案
- 输电线路工程冬季施工方案
- 矿山安全三级教育培训课件
- 抵押协议书样板3篇
- 拱桥专项施工组织设计方案示范
- 2025年电容器材料行业研究报告及未来行业发展趋势预测
- 北京市车辆指标租赁合同协议书范本4篇
评论
0/150
提交评论