版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精选资料精选资料可修改编辑可修改编辑摘要积码已广泛应用在无线通信标准中,如和IS-95等无线通信标准中。针对N-CDMA数据传输过程中的误码问题,本文论述了旨在提高数据传输质量的维特比译码器的设计。虽然Viterbi译码复杂度较大,实现较为困难,但效率高,速度快。1/2(2,1,9)ViterbiViterbi算法原理后,提出了(2,1,9)卷积码编码以及ViterbiTMS320C54X系列DSP卷积码编码和Viterbi译码的程序。关✃词:差错控制编码、卷积码、Viterbi译码、TMS320C54X、DSPAbstractIndigitalcommunicationsystems,errorcontrolcodingisusuallyusedtoimprovesystemreliability.SinceP.Eliasputforwardtheconvolutionalcodingthefirsttime,thecodingisstillshowingstrongvitality.,hasbecomewidelyusedinsatellitecommunications,wirelesscommunicationsandmanyothercommunicationsystemsasakindofchannelcodingmethod.suchasGSM,CDMA2000andhasbeenawirelesscommunicationstandardsofIS-95.InviewoftheerrorproblemintheprocessofN-CDMAdatatransmission,thispaperdiscussestheaimstoimprovethequalityofdatatransmissionofvictordesignthanthedecoder.AlthoughViterbidecodingcomplexityisbigger,moredifficulttoachieve,buthighefficiencyandfastspeed.Sothisarticleemphaticallyanalyzedanddiscussedthe1/2rate(2,1,9)convolutioncodecodinganditsViterbidecodingalgorithm.In-depthstudyonprincipleofconvolutioncodecodingandViterbialgorithm,proposedtheconvolutioncodecodingandViterbialgorithm(2,1,9)initialization,add-than-chooseandbackdesign,usinglook-uptablemethod,toavoidalargeamountoftediouscalculation,thedecodingandquick,goodreal-timeperformanceofthedecoder.MakefulluseoftheseriesofTMS320C54XDSPchip,usingassemblylanguagetocompletethe(2,1,9)convolutioncodecodingandViterbidecodingprocess.Keywords:errorcontrolcoding,convolutionalcode,Viterbidecoding,TMS320C54X目录摘要 1Abstract 2目录 3绪论 1移动通信及N-CDMA背景 1数字通信概述 1卷积编码与译码的发展 3主要研究工作 3DSP与CCS简介 5DSP概述 5DSP的主要特点 5CSSU单元概述 7CCS概述 8本章小结 8卷积码的理论基础 9卷积码的概述 9卷积码基本原理 9卷积码的纠错能力 9卷积码的表示方法 10Viterbi译码的概述 11本章小结 14卷积编码的实现 154.1(2,1,9)卷积码编码 154.1.1(2,1,9)卷积码编码设计方案 154.1.2(2,1,9)卷积码编码流程图 164.1.3(2,1,9)卷积编码程序实现 164.1.4(2,1,9)的程序仿真 174.2(2,1,9)卷积码状态转换表 17(2,1,9)卷积码状态转换表的设计算法 18(2,1,9)卷积码状态转换表的流程图 184.2.3(2,1,9)卷积码状态表 184.2.4(2,1,9)卷积码状态表的蝶形结构 214.3本章小结 22Viterbi译码的实现 23Viterbi译码基础 23Viterbi译码算法 23变量定义情况 25初始化 26初始化流程图 27初始化程序仿真 275.5加-比-选 28加-比-选流程图 29加-比-选程序仿真 305.6回溯 31回溯流程图 32回溯仿真图 33Viterbi纠错测试 34本章小结 34总结 36致谢 错误!未定义书签。参考文献 37附录1(9)卷积编码器原程序 38附录2(9)i译码原程序 40绪论N-CDMA而这就是移动通信所为人们提供的服务。顾名思义,移动通信是指通信双方至少有一方在移动中(或者临时停留在一个非预定的位置上)进行信息传输和交换,这包括移动体(车辆、船舶、飞机或行人)和移动体之间的通信,移动体和固定点(固定无线电台或有线用户)之间的通信。拟蜂窝网、模拟无绳电话与模拟集群调度系统等)称作第一代移动通信(G,(第二代移动通信系统主要包括广泛使用的GSM公用移动通信网和窄带数字移动公用网(N-CDMA)。N-CDMAGSM的✲本区别在于采用了不同的多址技术TDMA,N-CDMACDMACDMA技术的移动网有很多的优越性,比如A(分配的码不同,相邻的基站CDMA移动通信网的容量大,通话(时间分集、空间分集和频率分集)和软切换[17]。数字通信概述观察电的信号波形,我们可以发现如图1-1所示,模拟信号的波形是在自由1-21010”信号。下面将从保密性和抗干扰能力两方面对模拟信号和数字信号进行比较。保密性/数输,在接收端解密后经过数/模(D/A)转换还原出原始信号,其保密性好。抗干扰能力模拟信号沿线路的传输过程中会受到外界和通信系统内部的各种噪声干扰。噪声和信号混合后难以分开,从而使得通信质量下降。但是,对于数字通信,尽精选资料精选资料(称为阈值)+电压时间- 1-1模拟信号波形高 1 0 1 1 0 1电压时间低 图1-2 数字信号波形称为模/数转换)一般要经过抽样、量化和编码三个过程,最终变成一连串由“0”和“1”代表的脉冲数字信号1-3信源信源信源编码信道编码调制噪声信道可修改编辑信宿信源解码信道解码解调精选资料精选资料可修改编辑可修改编辑卷积编码与译码的发展Elias1955nk分组码中的监督码元仅与本码组的信息码元有关,而与其他码组的信息码元无t7在19631967ViterbiViterbi译码,广泛应用于现代通信中。ViterbiDSP汇编语言实现卷积ViterbiDSP20可以说在通信系统中越来越多的功能部件是采用数字信号处理技术实现的。主要研究工作本论文所做的工作:首先深入学习N-CDMAViterbi其次,以复杂度较低的(2,1,3)卷积码为例,了解卷积码的基本理论,并初步讲诉了Viterbi译码的基础算法及原理,从而为理解复杂度较高的(2,1,9)ViterbiDSPC54xViterbiCSSU单元,DSPDSPCCSCCSViterbi然后,对卷积码译码器的实现算法进行了研究,提出了适于运算的算法,并完成了实现译码器的软件设计。依次通过“初始化“加-比-选Viterbi译码。由于(2,1,9)较为复杂,本论文采用“查表法”来节省时间、提高效率,从而避免了大量繁琐计算,使得译码简洁迅速,。最后,CCSTMS320C54XDSPViterbi算法,用CCSViterbiViterbi译码器具有纠正随机错误的功能。DSP概述DSPCCS简➴DSPDigitalsignalprocessor2080仪表、家用电器等众多领域得到了极为广泛的应用。TITMS320C54XDSPCPU134址总线,因而在一个周期内可以从程序存储器取1条指令、从数据存储器读个操作数和向数据存储器写1ViterbiALU(算术逻辑单元)结合使用,利用专用的指令CMPS使得碟型运算中的相加、比较和选择操作更Viterbi译码的性能。DSP的主要特点DSP的主要结构特点可以概括为以下几点:哈佛结构总线结构可以分为两种。一种是冯·诺依曼结构,另一种是哈佛结构。冯·诺工艺的飞速发展,这一问题基本得到解决。传统的微处理器通常采用冯·诺依曼结构,它已经成为计算机发展的一个主要标准。哈佛结构和冯·诺依曼结构相比,更适合处理器具有高度实时要求的数字信DSP有两套或者两套以上的内部数TIDSP采用改进型的哈佛结构,改进之处有三点。第一,数据总线和程间,大大提高了运行速度。流水线技术DSPADSPTITMS320C545对于流水线编程还有一个延迟间隙(DelaySlot)95%—100%。特殊的指令系统DSP芯片通常都有一套自己的特殊指令,这个指令系统都是专门为数字信号处理而设计的。采用硬件乘法器DSPDSP支持多种寻址方式DSP处理大量的数据,这些数据都存放在片内或者片外存储器上。伴随着DSP通常都有支持地址计ALU并行工作,因此地址的计算CPUDSPDSP的地址产生器一般都支持间接寻址。高速的时钟周期和强大的处理能力DSPDSP200MHz600MHz~800MHz,处理能力将达到(4800~6400)/sTI2010DSP3×10E6/s。设有片内存储器和内存接口DSPROM(存储程序)和(存储数据,但是集成有高速缓存(ePDSP芯片内可以减少指DSPRAM,用于存放参数和数据。片内数据存储器不存在DSP强大✁处理能力。CSSU单元概述TMS320C54XViterbi算法设计✁加法、比较、选择(ACS)2-1FromaccumulatorAFromaccumulatorAFromaccumulatorBFrombarrelshiftermuxcompMSW/LSWTRN1TCEB0CSSUEB15-图2-1CSSU功能框图CSSUViterbiViterbiALUST1C161,ALU被设为161616CSSUCMPS指令完成比较、选择操作。完成累加器BTRN101TRN0ST0TCViterbiCCS概述CCS是一个完整的DSP集成开发环境,包括了编辑、编译、汇编、链接、软件模拟、调试等几乎所有需要的软件,是目前使用最为广泛的DSP开发软件之一。它有两种工作模式,一是软件仿真器,即脱离DSP芯片,在PC上模拟DSP指令集与工作机制,主要用于前期算法和调试;二是硬件开发板相结合在线编程,即实时运行在DSP芯片上,可以在线编制和调试应用程序。CCS支持如图2-2所示的开发周期的所有阶段[7]。设计 编辑和编译 调试 分析前期算法规划
创建工程文配置文件
语法调试、断点调试和日志保存
析统计和跟踪本章小结
2-2ccs本章着重介绍DSP的特点与集成开发环境 CCS。本论文选用的是TMS320C54x系列的DSP芯片一是因为C54X系列因其片内特殊的单元结构,能够快速完成Viterbi运算,其二是由于数字化时代的到来已经是一个不可逆转的趋势,数字产品必将代替模拟产品,而数字信号处理(DSP)正是这场数字化革命的核心。卷积码的理论基础卷积码的概述卷积码基本原理卷积码通常记作k,然后按照既定编码规则,kn,构成一个码字。N,代表编码后的n,而且与前面N-1k/N,N的增加呈指数下降[17]。219)卷积码编码器的基本结构。c 编码输出0信息比特(输入)c 编码输出1图3-1(2,1,9)编码器结构卷积码的纠错能力卷积码N*n来表示。(距离是指两个码字中对应位取值不同的个数因此不同的译码方法就有不同的距离度量。本文采用了的译码方式是概率译码——Viterbidf(n,k,N)dfN+1(df-1)/2(向下取整)[1]。精选资料精选资料卷积码的表示方法卷积编码可以用生成多项式表示,如果我们将参与异或的位设为1异或的位设为0,那么对应于c0可以得到一个二进制码字111101011,对应于c1可以得到一个二进制码字101110001。这就是卷积码生成的码字,只要生成G1(D)1D2D3D4D8 (3-1)G0(D)1DD2D3D5D7D8 (3-2)式(3-1)和(3-2)中,D代表时延算子,D的幂表示延迟时间单元数,D表示延迟t即上个时刻输入码元2表示延迟t即上两个时刻输入码元,以此类推。假设输入码元序列为111101011. ,用时延算子表示为U(D)1DD2D3D5D7... (3-3)则输出编码序列也可用时延算子表示为C1(D)U(D)G1(D) (3-4)C0(D)U(D)G0(D)
(3-5)C1(D),C0(DC0,C1。可以证明,式和c1=u*g1c0=u*g0符号*c0,c1u的卷积,这就是卷积码名称的由来。当然,我们也可以用图解法表示,如码树图、状态图和网格图。通过卷积码的几何描述表示,可以非常清楚和直观地观察编码和解码的过程。324(011。按时间展开,对应每个状态值指出去的上支路(实线)0,下支路(虚线)13-2状态a(00)b(01)c(10)d(11)图3-2卷积码网格图同样按时间展开,还可以生成(2,1,3)卷积码的树状图,如图3-3所示。00000000辑00011101001起始 11状态 0010精选资料精选资料可修改编辑可修改编辑ViterbiRMM’RMM’MCRCC’C’=CM’=M确译码。R时,译码器的条件译码错误概率定义为P(E/R)P(CC'/R) (3-6)所以译码器的错误译码概率:EP P(E/R)P(R) (3-7)EP(R)R码规则是使PE
最小,这等价于使P(C'C/R)最小,亦即使P(C'C/R)最大。因此,如果译码器对输入的R,能在2K个码字中选择一个使P(C'i
C/R),i=1,2,…2K最大的码字Ci
C的估值序列C,则这种译码规则一定使译码器输出错误概率最小,称这种译码规则为最大后验概率译。由贝叶斯公式P(Ci
/R)P(Ci
)P(R/Ci
)/P(R) (3-8)i可知,若发端发送每个码字的概率P(C)均相同,且由于P(R)与译码方法无i关,所以使PE
最小,即使P(Ci
/R)最大,这等价于使P(R/C)最大。一个译码器iC中选择某一个Ci
使上式最大,则这种译码规则称为最大似然译码。而对于无记忆二进制对称信道,最大似然又等价于使汉明距离d(RC)最小[15]。ii2kL条路径(序列,而是接收一段,计算、比较、选择一段最可能的码段(分支序列是一个由最大似然函数的序列。Viterbij=Njj1j<L+N径。NL,网格图中2kN状态中的每一个有一条幸存路径,共有2kNLL+N0这条路径就是要找的最大似然函数的路径,也就是译码输出序列。现在仍用(2,1,3)卷积码的例子说明维特比译码的原理,此编码器的基本结3-5[15]。2-501110010并且假110001001011004状态输入序列输入序列MMjMj-1Mj-2x1x2输出序列X图3-4(2,1,3)卷积编码基本结构由于这是一个(n,k,N)=(2,1,3)N=3,所661013-54acd488aa000,101”的汉明距离等于;下面一条102ad83-18径和其汉明距离。现在将达到的每个状态的两条路径的汉明距离作比较,将距离最小的一条保留,称为幸存路径。如这两天的汉明距离相同。则可以任意保留一条。这要就剩下4条路径了,即在表中的第2、4、6、8条的路径。表3-1维特比算法解码第一步运算结果序号路径对应序列距离幸否存序号路径对应序列距离幸否存1aaaa0000003否5aabc0011106否2abca1110112是6abdc1101011是3aaab0000113否7aabd0011014否4abcb1110002是8abdd1101103是20483-71abdc+b110101。它和发送序列相同,故对11013-23-61)的路径。表3-2维特比算法译码第二步计算结果序号路径原幸存路径距新增路径段新增距离总距离幸存否离1abca+a2aa02否2abdc+a1ca23否3abca+b2ab24否4abdc+b1cb01是5abcb+c2bc13否6abdd+c3dc14否7abcb+d2bd13否8abdd+d3dd14否100为结尾而补充的0a。11110000001010111110000001010101状态(状态c状态
1图3-6对应信息位“1101”的幸存路径网格图3-64的最后一位。因此3-8a→b→d→c→ba、b、dcb011011101,与输入序列相同,即还原出原始信息。Viterbi可应用。本章小结Viterbi译码起到促进我们理解的作用。Viterbi译码重点研究、介绍。最后以(2,1,3)卷积码译码Viterbi卷积编码的实现4.1(2,1,9)卷积码编码(2,1,9)卷积码的编码器是由八个移位寄存器和两个模2221进入信道被传输的位数的比率。常常用延迟算子多项式来描述卷积码。图3-1所示系统的多项式为:0g(x)1xx2x5x6x7x8 (4-1)0g(x)1x21
x3x4
x8
(4-2)(2,1,9)卷积码编码设计方案由上面的讨论可知,编码的实质就是在已知状态的情况下,由输入0或c0c101c0c1。c0c1的值可以通过公式和来求得,即c0c0c1c0c1,即所要求的输出。1/2的卷积码,一帧有96bit960、109696w192wa96(2,1,9)卷积码编码流程图开始开始B90后,最低位取输入信息wA取输入信息wAB累加器的特定位异或产生cc ,01wa空间B累加器左移1位,最低位取输入信息w否96次?是结束图4-1编码流程图(2,1,9)卷积编码程序实现B908c0B0,1,2,3,5,7,8B0,2,3,4,8A10A1c,0c,Awa96192卷积码。ABc0ld*ar2,a;a==b0xorb,-1,a;a==b0xorb1xorb,-2,a;a==b0xorb1xorb2xorb,-3,a;a==b0xorb1xorb2xorb3xorb,-5,a;a==b0xorb1xorb2xorb3xorb5xorb,-7,a;a==b0xorb1xorb2xorb3xorb5xorb7xorb,-8,a;a==b0xorb1xorb2xorb3xorb5xorb8rolaand#2,a;a1放c04.1.4(2,1,9)的程序仿真4-2CCS96bit,w空间的数据图4-2编码输入192bitwa空间的数据图4-3编码输出Waw空间的数据经过(2,1,9)卷积后得到的卷积码。(2,1,9)卷积码状态转换表33能够清楚地反映各个状态之间的转移关系。而本文所讨论的Viterbi译码的关键序得到(2,1,9)卷积码的状态之间的关系。(2,1,9)卷积码状态转换表的设计算法(2,1,9)280000000011111111。状态转换0、10000000011111111时产生的c0c110、1,那么c00,1,2,3,5,7,8c10,2,3,4,8(2,1,9)卷积码状态转换表的流程图开始开始B90A0A累加器与B累加器的特定位异或产生cc 存入wa空间01A1A累加器与B累加器的特定位异或产生cc 存入wa空间01B1否256次?是是结束图4-4状态表流程图4.2.3(2,1,9)卷积码状态表表4-1(2,1,9)状态转换表分支初始分支到达初始分支到达初始分支到达初始分支到达输入状态输出状态状态输出状态状态输出状态状态输出状态0 0 001 110 1 101 010 2 111 000 3 011 100 4 111 000 5 011 100 6 001 110 7 101 010 8 011 100 9 111 000 10 101 010 11 001 110 12 101 010 13 001 110 14 011 100 15 111 000 16 101 010 17 001 110 18 011 100 19 111 000 20 011 100 21 111 000 22 101 010 23 001 110 24 111 000 25 011 100 26 001 110 27 101 01
0 64 101 012 65 003 114 66 015 106 67 117 008 68 019 1010 69 1111 0012 70 1013 0114 71 0015 1116 72 1117 0018 73 0119 1020 74 0021 1122 75 1023 0124 76 0025 1126 77 1027 0128 78 1129 0030 79 0131 1032 80 0033 1134 81 1035 0136 82 1137 0038 83 0139 1040 84 1141 0042 85 0143 1044 86 0045 1146 87 1047 0148 88 0149 1050 89 1151 0052 90 1053 0154 91 0055 11
128 1100129 0110130 0011131 1001132 0011133 1001134 1100135 0110136 1001137 0011138 0110139 1100140 0110141 1100142 1001143 0011144 0110145 1100146 1001147 0011148 1001149 0011150 0110151 1100152 0011153 1001154 1100155 0110
0 192 011 102 193 113 004 194 105 016 195 007 118 196 109 0110 197 0011 1112 198 0113 1014 199 1115 0016 200 0017 1118 201 1019 0120 202 1121 0022 203 0123 1024 204 1125 0026 205 0127 1028 206 0029 1130 207 1031 0132 208 1133 0034 209 0135 1036 210 0037 1138 211 1039 0140 212 0041 1142 213 1043 0144 214 1145 0046 215 0147 1048 216 1049 0150 217 0051 1152 218 0153 1054 219 1155 00
1281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821830 28 001 110 29 101 010 30 111 000 31 011 100 32 001 110 33 101 010 34 111 000 35 011 100 36 111 000 37 011 100 38 001 110 39 101 010 40 011 100 41 111 000 42 101 010 43 001 110 44 101 010 45 001 110 46 011 100 47 111 000 48 101 010 49 001 110 50 011 100 51 111 000 52 011 100 53 111 000 54 101 010 55 001 11
5657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
92 100193 001194 011095 110096 100197 001198 011099 1100100 0110101 1100102 1001103 0011104 1100105 0110106 0011107 1001108 0011109 1001110 1100111 0110112 0011113 1001114 1100115 0110116 1100117 0110118 0011119 1001
156 1100157 0110158 0011159 1001160 1100161 0110162 0011163 1001164 0011165 1001166 1100167 0110168 1001169 0011170 0110171 1100172 0110173 1100174 1001175 0011176 0110177 1100178 1001179 0011180 1001181 0011182 0110183 1100
5657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
220 0110221 1100222 1001223 0011224 0110225 1100226 1001227 0011228 1001229 0011230 0110231 1100232 0011233 1001234 1100235 0110236 1100237 0110238 0011239 1001240 1100241 0110242 0011243 1001244 0011245 1001246 1100247 0110
18418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823905611112120012401840011224810240100113102411111301241057011141211124218510114249002421101150024301115112430158001111611712210012442451861100116117250011024424501591001118119123001124624718701101181192511100246247060001201241024818811120252012481111210124900121102490161100112212312500112502511890110122123253110025025106211124126012521900012425410252100125102531112501253063011261271125419110126255002541101270025501127112554-1到达状态表示初始状态通过(2,1,9)卷积编码器得到的新的状态。例:在(2,1,9)卷积编码器中,若初始状态为00000000,用十进制表示即为0,输入序列为1011,求输出序列和状态变化情况。4-111,11;初始状态为1,分支输入为02,分支输出102,分支输入为1500;511110。即11100010。4.2.4(2,1,9)卷积码状态表的蝶形结构通过对(2,1,9)卷积码的观察与对(2,1,9)卷积码的理解,我们可以得到一些(2,1,9)Viterbi-t-ti t -t-ti+2 2i+1t4-5(2,1,9)卷积码的蝶形结构8i10i7(i01。abi00000011i3313106a=01b=10a与b呈按位相异关系。即a10b1100ia01i、i+128态。0127tab_statetab_statetab_state:
时的分支输出。Viterbi译码.word0,2,3,.word0,2,3,1,3,1,0,2,1,3,2,0,2,0,1,3,2,0,1.word3,1,3,2,0,3,1,0,2,0,2,3,1,0,2,3,1,3,1.word0,2,1,3,2,0,2,0,1,3,2,0,1,3,1,3,2,0,3.word1,0,2,0,2,3,1,2,0,1,3,1,3,2,0,3,1,0,2.word0,2,3,1,0,2,3,1,3,1,0,2,1,3,2,0,2,0,1.word3,2,0,1,3,1,3,2,0,3,1,0,2,0,2,3,1,0,2.word3,1,3,1,0,2,1,3,2,0,2,0,1,3DSP实现1/296bit192bit的输出信息。在编码器的基础上,我们又用DSP获得了卷积码的状态tab_stateViterbi精选资料精选资料ViterbiViterbiViterbi的工作,主要就是寻找网格图中的这一最大似然路径。本课题研究的卷积码在Viterbi译码网格图上,总共2k(N-1)=256220N-1N-1=8256256N=99256”也称为“碟型”运算,是i在每一级中都有256条幸存路径,当序列发送完毕后,为了判断最后的结88080译码所得的路径。所以我们可以从最末级的状态反推出幸存路径,也称作回溯。ViterbiViterbi器在状态转移图上所走过的路径。Viterbi5-1开始开始可修改编辑初始化精选资料精选资料可修改编辑可修改编辑ViterbibefaftR=1/C (5-1)sdnGn(J)J是路径指示值,C为编码速率的倒数。将上述展开得(5-2)其中所有的分支的 和都是相等的。可以不考虑其值进行路径度量值比较的时候。所有我们可以有个简化的公式(5-3)1/2为 其中Gn(J)与sdn都用双极性来表示,即+10,-1T0T1T0=+sd0+sd1,T1=+sd0-sd1Viterbisdtab_intab_in400、01、10、11,我们如果T5-15-1tab_in_tTab_inTab_inT0T100200102100-211-20DSP中,我们可以这样定义。tab_in_t:.word2,0.word0,2.word0,-2.word-2,0对于(2,1,9)的卷积码来讲,期望输入值就是表4-1(2,1,9)状态转换表400011011。通过上述公式4T25-2tab_in_fcANDt分支输出值分支度量值分支度量正负分支度量T00+T00001+T10110-T11111-T010”用0-”用10011TT,DSP中这样定义。tab_in_fcANDt:.word0,0,0,1,1,1,1,0变量定义情况.bss.bss
output,96tab_t,2;t0.bss i,6 ;i,*i,func,T,countercol,counterln.bss cache,2.bss bef_2,2.bss bef,256.bss aft,256.bss tab_trn,1408 ;8~9588*256/16数组output存储输出序列。tab_ttab_in5-2tab_in_tT0T1的值。i6i[0]和输入序列tab_in4-7tab_statei[2]、i[3i[1]tab_in5-2tab_in_fcANDtT。011i[4]表示输入信息的级数。i[5]表示初始化时,i[4]级最多的初始状态最大值。cache2bef_2DSPdadstdsadt。bef256数组aft记录碟算后256个节点的度量值。tab_trn895初始化前面提到当从全0状态开始讨论时由于网格图的前8条连续支路构成的路82562565-2“0”“1”的转移路径。+T+T-T状态i 状态2i 状态j +T+T-T
状态2i状态2i+1 状态2i+1图5-2状态展开两种基本模块DSPdadstDSPdsadtii101Ttab_inTOT1。始化。开始i0开始i0i0==i5j=i5T由i0更新i1i2、i3dadstdsadt是(--j)≥0?否i4++,i5=2*i5+1否i4=8?是加-比选图5-3初始化流程图初始化程序仿真图5-4初始化程序仿真8bef256字,分别对应256个状态的分支度量值。加-比-选9299Viterbi9256丢弃一半,结果留存下来的路径总数保持常数。上述译码过程的基本操作就是“加—比—选,每级求出对欧氏距离累计值,下可以任意选择其中一条作为幸存路径。在图4-5(2,1,9)卷积码的蝶形结构中我们提到这图有助于我们理解Viterbi译码。现在我们结合本章的内容对图4-5进行整理归纳,可以得到俩种基本结构,5-55-6i
-T+T+T-T+T+T-T状态i+1285-5
状态2i+1状态i状态i+128
+T-T-T状态-T-T+T 状态图5-6碟型运算的基本形式22.1.2DSPCCSUViterbiCCSU用。bfly_a.macrossbxc16dadst*ar3,a0i+Ti+128-Tdsadt*ar3,b1i-Ti+128+Tcmpsa,*ar4+;比较选择存储到达状态2i的路径精选资料精选资料cmpsrsbx.endm
b,*ar4+;比较选择存储到达状态2i+1的路径c16bfly_b
.macrossbxdsadtdadstcmpscmpsrsbx.endm
c16*ar3,a;分支输入为0时,状态i-T,状态i+128+T*ar3,b1i+Ti+128-Ta,*ar42ib,*ar4+;比较选择存储到达状态2i+1的路径c16bfly_a5-62bfly_b5-51bfly_abfly_bi到到达状DSPii[2]i[2]=0bfly_ai[2]=1bfly_b。*ar3bef_22i+128*ar4aftaftbefaftbefbefaftar3aftbefbefaft择度量值大路径保存,而丢弃另一条路径。将上面的路径记为015-70、1tab_trn状态i
0状态2i0
i
0状态2i+1011状态i+128 状态i+12811图5-7存储所选路径的两个基本类型加-比选流程图初始化初始化可修改编辑i0,i48,ar5=87T精选资料精选资料是否否是否是加-比选程序仿真可修改编辑可修改编辑精选资料精选资料图5-9加-比-选仿真5-9beftab_trnft96-8=88回溯000000000000000000000000tab_trn记录的选择进行回溯。tab_trn116bit16256161tab_trn级的路径选择情况,所以需要88*16=1408字的空间。每个比特中存储的都0”或“1”,为“0”则表示选择两条路径中上面的一条。为“1”则表示选择两条路CMPS语句完成的。例:CMPSA,*AR4+说明:比较A累加器的低16位和高16位,把较大值放在*AR4中。如果A(31-16)>A(15-0)A(31-16)送人*AR4TRN10TRN0*AR4A(15-0TRN10CMPS语句完成后16bittab_trn根据图4-5(2,1,9)卷积码的蝶形结构,由于回溯是从到达状态反推初始状态,所以我们可以整理归纳,得到回溯蝶形结构图,如图5-10所示。jj+1
0(trn)1(trn)可修改编辑1(trn)可修改编辑0(trn)
j/2j/2+1精选资料精选资料0<5j211;当到达状态为偶数时,即用200。0tab_trn00m。将m=16*x+ym82m4m4tab_trnxym958804-1(2,1,9)状态转换表查得分支输入值。回溯流程图加加-比-选0由到达状态得分支输入值查tab_trn,更新到达状态可修改编辑精选资料精选资料回溯仿真图图5-12译码输入可修改编辑可修改编辑精选资料精选资料可修改编辑可修改编辑图5-13译码输出5-125-134-24-3ViterbiViterbi下面做的是Viterbi译码程序纠正随机差错的尝试,在原来的输入的最后一列输入信息全部出错。更改后的输入序列如图5-14所示。图5-14错误的输入序列经过Viterbi译码程序后,我们得到纠错译码输出,如图5-15所示。图5-15纠错译码输出5-155-12译码输出,发现二者一模一样,成功Viterbi本章小结本章对Viterbi3DSP行编写,并对每个模块进行了仿真测试。最后验证了Viterbi译码具有纠正错误的能力。总结N-CDMATIDSPCCS1/2(2,1,9)卷积码编译码。(2,1,3)卷积码为例分ViterbiViterbi然后,开始了解纠错能力更强但复杂较高的(2,1,9)卷积码Viterbi译码器。从(2,1,3)Viterbi3Viterbi数据,也就是说程序起了作用。参考文献]胥凌燕李定志i译码碟型算法的实现及性能分析.通信技术[2]陈源、江修富 Viterbi算法的关键问题研究及DSP实现[J].装备指挥技术学院学报,2005.10[3]赵冰 卷积编码及基于DSP的Viterbi译码器设[J].信息与控制,2002.10[4]方向前、魏平俊基于DSP的Viterbi译码[J].半导体技术,2005.6[5]张慎 卷积码编码器及Viterbi译码器的设计[J],成:电子科技大学[6]强秀丽、刘党辉、秦桂枝(2,1,7)维特比译码器的并行算法实现[J].指挥技术学院学报,2000.12杨风开 DSP原理及应[M].武汉:华中科技大学出版社,2012汪安民 TMS320C54xxDSP应用技术[M].北京:清华大学出版社,2002.7[9]樊昌信、曹丽娜通信原[M].北京:国防工业出版社,2012.1李建东、郭梯云、邬国扬 移动通信[M].西安:西安电子科技大学出版社2012.11石文孝 通信网理论与应[M].成都:电子工业出版社,2012.5[12]周霖 DSP信号处理技术应[M].北京:国防工业出版社,2004.1[13]李利、李迎春DSP原理及应用[M].北京:中国水利水电出版社,2012.11[14DSPViterbi[J].电子工程师,2008.10曹雪虹、张宗橙信息论与编码[M].北京:清华大学出版社,2009.2周冲、胡剑浩、张忠培CDMAViterbi[J].通信技术,2009.12邬国杨、孙献璞蜂窝通信[M].西安:西安电子科技大学出版社,2002.6移动通信原理[M],2009AJ.ErrorBoundsforConvolutionalCodesandAnAsymptoticallyOptimumDecodingAlgorithm[J].IEEETransactionsonInformationTheory,1967(13):260-269.[20]CHI-YINGTSUI,ROGERS-K.CHENGandCURTISLING.LowPowerRakeReceiverandViterbiDecoderDesignforCDMAApplications.Wirelessls:9,附录1:(2,1,9)卷积编码器原程序.title "juanji.asm".def_c_int00_c_int00:.mmregs.bss w,96.bss wa,96.datadata_w:.word1,0,1,1,1,1,0,0,0,0.word1,1,1,1,0,0,0,0,0,0.word0,0,0,0,1,0,1,0,1,1.word1,1,0,1,1,0,1,1,0,1.word1,0,0,1,0,1,0,0,0,0.word1,0,1,0,0,0,0,1,0,1.word1,0,1,1,0,1,0,0,0,1.word1,1,0,1,1,0,1,1,0,1.word1,0,1,1,0,0,0,1,0,0.word0,0,0,0,0,0.textld #data_w,astm #w,ar2rpt #95readaloop0:
ld #0,bld #0,astm #95,ar7stm #w,ar2stm #wa,ar3and add*ar2,bld*ar2,a;a==b0xorb,-1,a;a==b0xorb1xorb,-2,a;a==b0xorb1xorb2xorb,-3,a;a==b0xorb1xorb2xorb3xorb,-5,a;a==b0xorb1xorb2xorb3xorb5xorb,-7,a;a==b0xorb1xorb2xorb3xorb5xorb7xorb,-8,a;a==b0xorb1xorb2xorb3xorb5xorb8rolaand#2,a ;a1stla,*ar3ld*ar2+,axorb,-2,axorb,-3,axorb,-4,axorb,-8,aand#1,axor*ar3,astlrolbnopbanz nop.end2:(2,1,9)Viterbi.title "viterbi9.asm".def_c_int00_c_int00:.mmregs.bss output,96.bss tab_t,2;t0t1.bss i,6 ;i,*i,func,T,countercol,counterln.bss cache,2.bss.bss.bss.bss.datatab_state:3,2,0,1.word
bef_2,2bef,256aft,256tab_trn,1408;8~9588*256/160,2,3,1,3,1,0,2,1,3,2,0,2,0,1,3,1,3,2,0,3,1,0,2,0,2,3,1,0,2,3,3,3,0,3,
3,10,30,20,10,2.word
0,2,1,3,2,0,2,0,1,3,2,0,1,3,1,1,0,2,0,2,3,1,2,0,1,3,1,3,2,0,0,2,3,1,0,2,3,1,3,1,0,2,1,3,2,3,2,0,1,3,1,3,2,0,3,1,0,2,0,2,3,1,3,1,0,2,1,3,2,0,2,0,1,3tab_in_fcANDt:.word0,0,0,1,1,1,1,0 ;00+t0\01+t1\10-t1\11-t0 0t001t11tab_in:.word0x0003,0x0002,0x0000,0x0002,0x0003,0x0003,0x0003,0x0001,0x0003,0x0003.word0x0000,0x0000,0x0003,0x0002,0x0003,0x0003,0x0000,0x0001,0x0003,0x0003.word0x0001,0x0003,0x0000,0x0000,0x0003,0x0002,0x0000,0x0001,0x0001,0x0003.word0x0003,0x0001,0x0000,0x0002,0x0002,0x0000,0x0000,0x0002,0x0003,0x0003.word0x0001,0x0003,0x0001,0x0003,0x0000,0x0001,0x0003,0x0003,0x0002,0x0003.word0x0003,0x0001,0x0002,0x0002,0x0002,0x0001,0x0001,0x0003,0x0001,0x0003.word0x0001,0x0000,0x0001,0x0003,0x0000,0x0002,0x0002,0x0001,0x0002,0x0003.word0x0002,0x0001,0x0000,0x0001,0x0001,0x0002,0x0003,0x0002,0x0003,0x0003.word0x0001,0x0003,0x0002,0x0001,0x0003,0x0001,0x0000,0x0001,0x0003,0x0003.word0x0002,0x0002,0x0002,0x0000,0x0002,0x0003tab_in_t:.word2,0.word0,2.word0,-2.word-2,0.textbfly_a.macrossbxc16dadst*ar3,adsadt*ar3,bcmpsa,*ar4+cmpsb,*ar4+bfly_b
rsbx c16.endm.macrossbxdsadtdadstcmpscmpsrsbx.endm
c16*ar3,a*ar3,ba,*ar4+b,*ar4+c16.if1 ;befaft、tab_trn0stm#bef,ar2rpt#255st#0,*ar2+stm#aft,ar2rpt#255st#0,*ar2+stm#tab_trn,ar2rpt#240st#0,*ar2+.endif************************初始化**********************************;;;;;;;;i0stm #i,ar2rpt #5st #0,*ar2+ld #i,dp;;;;;;;;大循环loop1:;;;;;;;;j=i5i0=i5ld i+5,astl mvkd#i+5h,i;;;;;;;;tab_t存对应的t0t1 stm #cache,ar7ld #tab_in,aaddreadaldaddstmadd6
i+4,a*ar7*ar7,aa,a#tab_t,ar5#tab_in_t,a;00《》0,01《》2,10《》4,11《》reada *ar5+ ;a送到数据段,并数据段指针+1t0add #1,areada *ar5 nop;;;;;;;小循环loop2:;;;;;;;;由i0得i1,由i1得i2与i3ld i+0,aadd #tab_state,areadai+1 ld i+1,aadd i+1,aadd #tab_in_fcANDt,areadai+2 ;+-add #1,areadai+3 ;t0ort1;;;;;;;;T寄存器存t0ort1 ld #tab_t,aadd i+3,astlm nopnopld *ar2,t;;;;;;;bef_2[0]=bef[i0]bef[1]=bef[i0]ld i,aadd #bef,astlm a,ar2stm nopmvdd*ar2,*ar3+mvdd*ar2,*ar3nopstm #bef_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗行为侵害优生优育选择权问题研究
- 基于微结构光纤的低折射率传感特性研究
- 二零二五年度城市绿地绿化养护服务协议
- 二零二五年度二手车过户交易双方责任保障协议
- 2025年度人工智能研发中心用工劳务雇佣合同
- 二零二五年度股权与合伙人协议书协同管理指导
- 2025年度教育机构资金代管与监管合同
- 2025年度租赁房屋租赁合同纠纷处理协议范本
- 二零二五年度LED道路灯具研发与推广合作协议
- 2025年度深观察韩国版广场协议管窥:中韩能源安全合作框架协议
- 2023-2024学年度人教版一年级语文上册寒假作业
- 软件运维考核指标
- 空气动力学仿真技术:格子玻尔兹曼方法(LBM)简介
- 对表达方式进行选择与运用
- GB/T 18488-2024电动汽车用驱动电机系统
- 投资固定分红协议
- 高二物理题库及答案
- 职业发展展示园林
- 七年级下册英语单词默写表直接打印
- 2024版医疗安全不良事件培训讲稿
- 中学英语教学设计PPT完整全套教学课件
评论
0/150
提交评论