卷积码的viterbi译码设计毕业设计论文(编辑修改稿)内容摘要:

处理能力,从而获得高速的运算能力。 很多 DSP 有两套或者两套以上的内部数据总线,这种总线 结构称为修正的哈佛结构。 对于乘法或者加法等运算,一条指令 毕业设计(论文) 第 6 页 共 52 页 要从存储器中取两个操作数,多套数据总线就使得两个操作数可以同时取得。 TI公司的 DSP 采用改进型的哈佛结构,改进之处有三点。 第一,数据总线和程序总线之间的局部交叉链接。 第二,具有高速缓存器。 总线之间的交叉使得程序和数据之间的信息传递更加灵活、方便,运行数据存在程序存储区中,并被算术运算指令直接使用。 第三,设置高速缓存器,可以省去从存储器中读取指令的时间,大大提高了运行速度。 (2) 流水线技术 所谓流水线操作,就是取指令和执行指令可以同时进行,从而减少 指令的执行时间,进一步增强处理器的数据处理能力。 流水线技术是提高 DSP 程序执行效率的一个重要手段。 流水线技术使两个或者更多的不同操作可以重叠执行。 在处理结构上,每条指令的执行分为取指、解码、执行等若干阶段,每个阶段称为一级流水。 流水处理使得若干条指令的不同执行阶段并行执行 , 而能够提高程序执行速度。 流水线的深度为二级以上,不同产品的流水线深度也不同。 模拟设备公司的 ADSP 深度为二级, TI 公司的 TMS320C54 为五级,也就是说可以同时运行 5条指令。 对于流水线编程还有一个延迟间隙( Delay Slot)的问题 ,即有些指令的执行时间不是单个周期,指令结果可以使用前一个或者几个周期的等待时间,称为延迟间隙。 采用线性汇编语言编程,程序效率可以达到标准汇编程序效率 的 95%— 100%。 (3) 特殊的指令系统 DSP 芯片通常都有一套自己的特殊指令,这个指令系统都是专门为数字信号处理而设计的。 (4) 采用硬件乘法器 一般计算机没有硬件乘法器,它的算术逻辑单元只能完成两个操作数的加、减和逻辑运算,而乘法和除法时由加法和 移 位来实现,因此在一般的计算机上实现乘法和除法很费时间。 但是在信号处理中,又有大量的乘法运算,所以, DSP芯片都有专门的硬件乘法器, TMS320C54x 系列 DSP 就有两个乘法器。 另一方面,各种算法也在不断地改进,尽量减少乘法运算。 通过硬件乘法器和算法的改进,基本上解决了乘法运算速度的瓶颈问题。 硬件乘法器是 DSP 区别于通用微处理器的一个重要标志。 (5) 支持多种寻址方式 DSP 处理大量的数据,这些数据都存放在片内 或者 片外存储器上。 伴随着频繁的数据访问,数据地址的计算时间也线性增长,有时计算地址的时间比实际的算术操作还长。 因此,在地址计算上作特殊考虑。 DSP 通常都有支持地址计算的算术单元 —— 地址产生器。 地址产生器 与 ALU 并行工作,因此地址的计算不再额外占用 CPU 时间。 由于有些算法通常需要一次从存储器中取两个操作数,因 毕业设计(论文) 第 7 页 共 52 页 此 DSP 内的地址产生器一般也有两个。 DSP 的地址产生器一般都支持间接寻址。 (6) 高速的时钟周期和强大的处理能力 DSP 芯片的主频和处理能力不断地提高, TMS320C5000 系列 DSP 的 主频已经达到 200MHz。 最初的芯片时钟周期也将达到 600MHz~ 800MHz,处理能力将达到( 4800~ 6400)兆条指令 /s。 TI 宣称到 20xx 年,其 DSP 的处理能力可以达到3 10E6 兆条指令 /s。 (7) 设有 片内存储器和内存接口 由于 DSP 面向的是数据密集型应用,因此存储器访问速度对处理器的性能影响很大。 通用微处理器的特点是程序一般都很大,片内存储器不会给处理器性能带来明显改善。 因此现在微处理器片内一般不设 ROM(存储程序)和 RAM(存储数据),但是集成有高速缓存( Cache)。 而 DSP 算法的特点是需要大量的简单计算,其相应的程序比较短小。 将程序指令存放 DSP 芯片内可以减少指令的传输时间,并有效缓解芯片外部总线接口的压力。 除了片内程序存储器外, DSP 芯片一般还集成数据 RAM,用于存放参数和数据。 片内数据存储器不 存在外部存储器的总线竞争问题和访问速度不匹配问题,因此访问速度快,可以缓解 DSP 的数据瓶颈,充分利用 DSP 强大的处理能力。 CSSU 单元概述 比较、 选择和存储单元是 TMS320C54X 器件专门为 Viterbi 算法设计的加法、比较、选择( ACS)操作的硬件单元。 其功能框图如图 21 所示。 CSSU 支持信道译码器所用的各种 Viterbi 算法。 Viterbi 算法的加法、比较、p TRN TC mux MSW/LSW SELECT 16 EB15EB0 From barrel shifter From accumulator A From accumulator B CSSU 图 21 CSSU 功能框图 毕业设计(论文) 第 8 页 共 52 页 选择操作的来此加法运算由 ALU 完成。 将 ST1 中的 C16 位置 1, ALU 被设为双 16位工作模式,这样 就可以在一个机器周期内同时完成俩次加法运算。 俩次加法运算的结果分别放在了累加器的高 16 位和低 16 位。 CSSU 通过 CMPS 指令完成比较、选择操作 [7]。 完成累加器 B 的高位字和低位字之间的比较,然后将累加器中的较大的字放在数据存储器中,同时 TRN 左移 1 位,将 0 或 1 存入 TRN 的第 0 位及 ST0 的 TC位。 如此可以利用优化的片内硬件促进 Viterbi 的蝶形运算。 CCS 概述 CCS 是一个完整的 DSP 集成开发环境,包括了编辑、编译、汇编、链接、软件模拟、调试等几乎所有需要的软件,是目前使用最为广泛的 DSP 开发软件之一。 它有两种工作模式,一是软件仿真器,即脱离 DSP 芯片,在 PC 上模拟DSP 指令集与工作机制,主要用于前期算法和调试;二是硬件开发板相结合在线编程,即实时运行在 DSP 芯片上,可以在线编制和调试应用程序。 CCS 支持如 图 22 所示的开发周期的所有阶段 [7]。 图 22 ccs 开发阶段 本章小结 本章着重介绍 DSP 的特点与集成开发环境 CCS。 本论文选用的是 TMS320C54x系列的 DSP 芯片,一是因为 C54X 系列因其片内特殊的单元结构,能够快速完成Viterbi 运算,其二是由于 数字化时代的到来已经是一个不可逆转的趋势,数字产品必将代替模拟产品,而数字信号处理器 (DSP)正是这场数字化革命的核心。 设计 前期算法规划 编辑和编译 创建工程文件、源文件、配置文件 调试 语法调试、断点调试和日志保存 分析 实时调试、分析统计和跟踪 毕业设计(论文) 第 9 页 共 52 页 基础 卷积 码的概述 卷积码基本原理 卷积码通常记作 ( n, k, N)。 它将输入信息序列分成长度为 k 的码段 ,然后按照既定编码规则 ,将 k 位码元编码成为 n 比特 ,构成一个码字。 N 表示约束长度 ,代表编码后的 n 位码元不仅与当前输入码段有关 , 而且与前面 N1 个输入码段的信息有关。 编码效率为 k / n。 卷积码的纠错能力随着 N 的增加而增 大 ,而差错率则随着 N 的增加呈指数下降 [17]。 如果给定一个卷积码的生成多项式,就可以根据这个生成多项式将相应时刻输入的数据相异或(模 2 加),产生新的编码输出。 图 31 就是一个( 2,1,9)卷积码编码器的基本结构。 图 31 ( 2,1,9)编码器结构 卷积 码的纠错能力 卷积码 ( n, k, N)主要用来纠随机错误,编码复杂度可用编码约束长度 N*n来表示。 衡量卷积码的纠错能力是用它的距离特性(距离是指两个码字中对应位取值不同的个数)来描述的。 由于卷积码的纠错能力与它采用的 译码方法有很大关系,因此不同的译码方法就有不同的距离度量。 本文采用了的译码方式是概率译码 —— Viterbi 译码,衡量概率译码纠错能力是用自由距离 df 来描述。 在卷积码( n, k, N)中,若自由距离为 df,则能在N+1 连续段内纠正( df1) /2(向下取整)个随机错误 [1]。 D D D D D D D D 信息比特 (输入) c0 编码输出 c1 编码输出 毕业设计(论文) 第 10 页 共 52 页 卷积码的表示方法 卷积编码可以用生成多项式表示, 如果我们将参与异或的位设为 1,不参与异或的位设为 0,那么对应于 c0 可以得到一个二进制码字 111101011,对应于 c1可以得到一个二进制码字 101110001。 这就是卷积码生成的 码字,只要生成码字确定了,该卷积码的码型也就选定了。 通常,生成码字还可以用时延算子来表示 84321)(1 DDDDDG  ( 31) 875321)(0 DDDDDDDG  ( 32) 式( 31)和( 32)中, D 代表时延算子, D 的幂表示延迟时间单元数, D表示延迟 1bit,即上个时刻输入码元, D2 表示延迟 2bit,即上两个时刻输入码元,以此类推。 假设输入码元序列为 111101011........,用时延算子表示为 ...1)( 7532  DDDDDDU ( 33) 则输出编码序列也可用时延算子表示为 )(1)()(1 DGDUDC  ( 34) )(0)()(0 DGDUDC  ( 35) 根据 C1(D), C0(D)的时延算子表达式,即可求出编码输出序列 C0,C1。 可以证明,式( 34)和( 35)与时域运算 c1=u*g1 和 c0=u*g0 是等效的,符号 *代表卷积运算,编码输出序列 c0,c1 是输入信息序列 u 与编码器生成多项式的卷积,这就是卷积码名称的由来。 当然,我们也可以用图解法表示,如码树图、状态图和网格图。 通过卷积码的几何描述表示,可以非常清楚和直观地观察编码和解码的过程。 以约束度 为 3 的卷积码为例,将输入的最近两个时刻的数据作为状态,则寄存器总的状态数有 22=4 种,其状态标号为 a( 00), b( 01), c( 10)和 d( 11)。 按时间展开,对应每个状态值指出去的上支路(实线)表示最新输入数据为 0,下支路(虚线)表示最新输入数据为 1,则 编码过程的网状图如图 32 所示。 同样按时间展开,还可以生成( 2,1,3)卷积码的树状图,如图 33 所示。 图 32 卷积码网格图 状态 a( 00) 状态 b( 01) 状态 c( 10) 状态 d( 11) 毕业设计(论文) 第 11 页 共 52 页 Viterbi 译码 的概述 卷积码的译码方式可以分为两大类:代数译码和概率译码。 代数译码时利用编码本身的代数结构进行解码,不考虑信道的统计特性。 大数逻辑译码,又称门限译码,是卷积码代数译码的最主要的一种方式。 大数逻辑译码对于约束长度较短的卷积码最为有效,而且设备较简单。 概率译码(又称最大似然译码)则是基于信道的统计特性和卷积码的特点进行计算。 首先由沃曾 克拉夫特针对无记忆信道提出的 序列 译码就是概率译码方式之一;另一种概率译码方式是维特比算法。 当码 的约束长度较短时,它比 序列 译码算法的效率更高,速度更快,目前得到广泛的应用。 维特比译码器是一种最大似然解码器。 设信道输出的 R 是一个二进制 (或四进制 )序列,而译码器的输出是一个信息序列 M 的估值序列 M’。 译码器的基本任务就是根据一套译码规则,根据接收序列 R 给出与发送的信息序列 M 最接近的估值序列 M’。 由于 M 与码字 C 之间存在一一对应关系,所以这等价于译码器根据 R 产生一个 C 的估值序列 C’。 显然,当且仅当 C’=C 和 M’=M 时 ,译码器正确译码。 当给定接收序列 R 时,译码器的条件译码错误概率定义为 39。 ( / ) ( / )P E R P C C R ( 36) 所以译码器的错误译码概率: ( / ) ( )EP P E R P R  ( 37) ()PR是接收 R 的概率,与估值序列无关,所以译码错误概率最小的最佳译码规则是使 EP 最小,这等价于使。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。