文档库 最新最全的文档下载
当前位置:文档库 › Viterbi译码的FPGA免回溯实现

Viterbi译码的FPGA免回溯实现

Viterbi译码的FPGA免回溯实现
Viterbi译码的FPGA免回溯实现

Viterbi 译码的FPGA 免回溯实现

王栋良,秦建存

(中国电子科技集团公司第54研究所,河北石家庄050081)

摘 要 卷积码在多种通信领域中广泛应用,Viterbi 译码是对卷积码的一种最大似然译码算法。随着卷积码约束度的增加,并行维特比译码所需的硬件资源呈指数增长,限制其硬件实现。介绍了一种串行译码结构的FPG A 实现方案,在保证性能译码的前提下有效地节省资源。同时提出了充分利用FPG A 的RAM 存储单元的免回溯Viterbi 解码实现算法,减少了译码时延,这种算法在串行和并行译码中都可以应用。

关键词 卷积码;Viterbi 译码;免回溯;FPG A

中图分类号 T N911.22 文献标识码 A 文章编号 1003-3106(2007)04-0027-02

A Implementation of a N on 2backtracking Viterbi

Decoding Algorithm in FPGA

W ANG D ong 2liang ,QI N Jian 2cun

(The 54th Research Institude o f CETC ,Shijiazhuang Hebei 050081,China )

Abstract C onv olutional coding has been widely used in many communication fields ,and Viterbi decoding alg orithm is a maximum likelihood alg orithm for the conv olutional code.The hardware res ource required for parallel Viterbi decoding shows an exponential increase with the increase of constraint length of conv olutional code ,which limits its hardware im plementation.In this paper ,a FPG A im plementation of a serial Viterbi decoding architecture is presented ,which saves hardware res ource without per formance deterioration.Meanwhile ,a non 2backtracking s olution of Viterbi decoding alg orithm using the RAM units of FPG A is provided in the paper.The s olution can reduce the delay of decoding ,and can be im plemented in both serial decoding and parallel decoding.

K ey w ords converlutional code ;viterbi decoding ;non 2backtracking ;FPG A

收稿日期:2006212225

0 引言

卷积码因其良好的纠错能力在多种通信领域中得到了广泛的应用。目前,对卷积码的解码一般使用Viterbi 译码算法。Viterbi 译码算法是一种最大似然译码算法,其解决方案是:对各编码状态只保留一个距离最小的幸存路径供下一次比较运算使用,其核心运算即对不同路径度量之间的加比选操作。

当译码进行一段时间之后,即到达一定译码深度后,通过回溯算法可以读出幸存路径即解码输出。这种方案的译码时延随着回溯深度的增大而增大。免回溯实现充分利用了FPG A 中的存储单元,将幸存路径和距离即时存储,待需要译码输出时读出即可,这种方案的译码时延较小。以(2,1,7)卷积码为例介绍了串行结构的Vterbi 译码方案以及免回溯方案的实现,该卷积码的生成多项式为(171,133),这种码型的应用非常广泛。

1 卷积码编码简介

通常称一个卷积码为(n ,k ,m )型卷积码,其中

n 是指编码输出的比特数;k 是指输入的信息比特数;m 为卷积编码的深度。通常(n ,k ,m )就是由m -1位移位寄存器和一些组合逻辑构成。所谓寄存器的状态是由这m -1个寄存器所确定的。但是在FPG A 的实现中,为了保持整个编码模块的输入输出同步性,在输入位增加了一个寄存器。图1是(2,1,7)卷积编码器的一种结构

图1 (2,1,6)卷积编码器结构图1中的(2,1,7)卷积编码器由1个7位移位寄存器和2个异或运算单元组成。每次当1个新的信息比特

到来,就把移位寄

信号与信息处理

2007年无线电工程第37卷第4期27 

存器右移1位,将新比特位移入,这时2个异或运算单元重新计算新的编码比特作为编码输出。2个编码比特和寄存器状态之间的关系是:

Y0=D6 D3 D2 D1 D0

Y1=D6 D5 D3 D2 D0

。(1)可以看出编码比特是由移位寄存器中某些位异或得来的,如果把参加异或的位设为1,把不参与异或的位设为0,那么对于每个编码输出就能得到一个二进制码字,对应Y0的码字是1011011,对应Y1的码字是1111001,如果用八进制来表示那就分别是133、171,即卷积码的生成码字。

2 Viterbi译码算法及实现

Viterbi译码在FPG A中应用时,可以串行实现,也可以并行实现。并行处理是指多个ACS单元同时工作,处理速度较快,电路设计相对简单,但资源耗费较大。串行处理是多个地址在不同时刻利用同一ACS单元进行加比选运算。这种算法处理速度较慢,但在某些场合已经适用,其电路的时序设计相比并行处理要复杂许多,本文将着重实现Viterbi译码的串行处理。

211 路径度量的计算

在加比选运算之前,首先需要计算路径度量,译码的软硬判决方式就在这个单元体现。在硬判决译码中,若最佳判决门限为0,当匹配滤波器输出的电压为负,则输出为-1(相当于0或1码元);若为正,则输出为+1(相当于1或0码元)。硬判决译码器利用解调器送来的已经过硬判决后的0,1信息来进行译码,这种判决方式结果会损失接收信号中所包含的有用的信息。软判决译码是把解调器输出的抽样电压进行n位量化,因而由解调器输出的供给译码器的值就不止2种可能,而有Q(一般Q=2n)种可能;另一方式是译码器直接利用解调器的未量化的模拟电压进行译码,称为模拟译码。无论译码器利用Q进制量化值译码,还是利用模拟量的模拟译码,统称为软判决译码。

本FPG A实现方案中采用软判决译码,即路径度量:

BM=S i+Sq

S i+NOT(Sq)

NOT(S i)+Sq

NOT(S i)+NOT(Sq)

当状态输出为

0,0

0,1

1,0

1,1

。(2)

式中,NOT代表接收信号按位去非,这种方法不仅降低了路径度量本身的计算复杂度,同时由于BM 总为正值,使得ACS单元的设计也变得简单。在计算之前需要先将接收信号表示为偏移码,即将所有信号表示为正值。路径度量计算出之后,送入ACS 单元。

212 ACS单元和蝶形运算

ACS单元是Viterbi译码的核心运算单元,这个单元的基本任务为,将分支度量和存储的距离值相加送入比较器,比较器的输出信号作为选通信号选择幸存路径。对于(2,1,7)卷积码,其状态寄存器为D6D5D4D3D2D1D0,状态S由D

6

到D1决定,S2i 和S2i+1仅D1不同,状态转移和路径距离关系仅取决于输入和D1位,可得(2,1,7)卷积码存在如图2的状态转移特性。

图2 (2,1,7)卷积码状态转移特性

因此连续的2个状态的转移可以用1次加比选运算完成,这在计算量上是很大的节省,这就是蝶形运算。式(3)为1次ACS蝶形运算的运算过程: PM i(k+1)=MIN(PM2i(k)+BM1,PM2i+

1

(k)+BM2) PM i+32(k+1)=MIN(PM2i(k)+BM2,PM2i+1(k)+BM1)

(3)式中,PM i(k)为状态i第k次运算后的路径度量; BM1,BM2表示当前输入和标准输入之间的欧式距离,实现式(3)运算的FPG A结构如图3所示。

图3 蝶形运算的FPG A结构

213 存储单元的应用

串行处理时,由于R A M单元不能同时读取和写入

(下转第60页)

信号与信息处理

通信中要求的时钟精度。

4 结束语

本文介绍的射频拉远模块中的时钟锁相方法的目的是为了实现射频拉远模块与上一级时钟同步。现有技术中OCX O经过长期工作后,由于老化和温度的漂移会产生一定的频率误差,本方法可以解决现有技术中存在的OCX O频率漂移问题,实现射频拉远与上一级的同步通信,增加网络覆盖的可靠性,节约网络覆盖的成本。±

参考文献

[1]赵如兵.锁相稳频技术在爱立信基站系统中的应用[J].

广东通信技术,2000,20(12):23-25.

[2]高文昌,罗红,翟文军,等.C DM A基站子系统同步原理

和实现技术[J].北京邮电大学学报,2003,26(4):93-

96.

[3]王福昌,鲁昆生.锁相技术[M].武汉:华中理工大学出

版社,1997:79-96.

作者简介

朱进军 男,(1981-),北京邮电大学理学院硕士。主要研究方向:高速光纤通信和FPG A逻辑设计。

(上接第28页)

2个地址,所以在基本的ACS单元的输入和输出均安排有寄存器,既缓存了数据,又便于处理的时钟安排。

当译码深度增加时,路径度量存储器中存储的数据有可能溢出,这是就需要对路径度量存储RAM 的数据进行归一化处理,一般采取的方法有减去所有距离中的最小值、所有距离值减半等,实现简单。若FPG A资源允许,可以增加RAM存储字长,使其满足译码深度的要求即可。

存储单元RAM应用的关键是幸存路径的管理和组织。传统的算法每产生一位译码输出就需要进行回溯,回溯长度等于译码深度,即每产生一位译码输出需要回溯L步,这需要读L次RAM,因而译码延迟主要由回溯长度L决定。由于通常在工程上回溯长度一般选为约束长度的3~10倍,所以译码延迟由约束长度决定。设译码延迟为Δ,读RAM的延迟为σ,回溯长度为L,则译码延迟的计算公式为:

Δ=L×σ。(4)串行处理本就需要多次的ACS运算,若使用回溯算法,将对译码时延和译码器时序安排造成较大影响。于是考虑利用RAM的存取功能,记录各状态当前的欧式距离总和,同时刷新到达该状态所经过的路径,将其记录在路径存储器当中。这样,在需要译码输出时,只要比较读取路径存储器中相应位置的数据即可。

214 时序的组织

Viterbi译码的串行处理过程占用了较少的硬件资源,但同时其处理的时钟较为复杂。每解一个码元,需要调用32次ACS单元,同时需要对相应的幸存路径和欧氏距离进行读取和存储。在1次ACS 运算中,前2个节拍分别读取状态2i,2i+1的数据,第3节拍用于给ACS运算保留足够的时间,第4个节拍用于将数据存入输出寄存器和写入RAM。这样一个码元就有128个节拍,每个节拍当中又要有相应的时钟沿。使用clk作为读写时钟信号,可以在各节拍中为相应的操作保留足够的时间,保证其按照时序逻辑设计进行。

同时,每解一个码元,需要ACS运算遍历所有的64个状态,顺序读取第2i,2i+1(i=0,1,…31)状态的幸存路径和欧氏距离,顺序存入下一时刻的第i,i+32状态。为了避免写入的数据和需要读出的数据发生混淆,采用“乒乓法则”,即对于幸存路径和欧氏距离,分别使用2个RAM存储器进行存储,在某一节拍内,RAM1读数据,RAM2写数据,下一时刻,RAM2读数据,RAM1写数据。这样使得统一时刻对RAM的读写分开,存储的数据就不会混淆。

3 结束语

该Viterbi解码方案经过编译以后,译码深度为48,使用逻辑单元数为522,使用存储比特数为8704,仅占用FPG A资源的1%。(使用芯片为: Altera公司的Stratix)。运行表明,误码率达到解码器设计要求。该解码器的解码时延为:48个码元周期,若每一节拍为50ns,解码速率可达到15kbps,若需要更快的解码速率,可将核心计算单元并行处理,同时时序设计将更为简单,其速率为串行处理的32倍。±

参考文献

[1]SWEE NEY P.差错控制编码[M].俞越译.北京:清华大

学出版社,2004.

[2]叶淦华.FPG A嵌入式应用系统开发典型实例[M].北

京:中国电力出版社,2005.

[3]张传达,李小文.卷积码编码及其Viterbi译码的实现

[J].无线电工程,2006,36(7):45-48.

作者简介

王栋良 男,(1980-),中国电子科技集团公司第54研究所硕士研究生。主要研究方向:流星余迹通信。

专题技术与工程应用

卷积编码实验报告

实验名称:___ 卷积编码_______ 1、使用MATLAB进行卷积编码的代码编写、运行、仿真等操作; 2、熟练掌握MATLAB软件语句; 3、理解并掌握卷积编码的原理知识。 二、实验原理 卷积码是由Elias于1955 年提出的,是一种非分组码,通常它更适用于前向纠错法,因为其性能对于许多实际情况常优于分组码,而且设备较简单。 卷积码的结构与分组码的结构有很大的不同。具体地说,卷积码并不是将信息序列分成不同的分组后进行编码,而是将连续的信息比特序列映射为连续的编码器输出符号。卷积码在编码过程中,将一个码组中r 个监督码与信息码元的相关性从本码组扩展到以前若干段时刻的码组,在译码时不仅从此时刻收到的码组中提取译码信息,而且还可从与监督码相关的各码组中提取有用的译码信息。这种映射是高度结构化的,使得卷积码的译码方法与分组译码所采用的方法完全不同。可以验证的是在同样复杂度情况下,卷积码的编码增益要大于分组码的编码增益。对于某个

特定的应用,采用分组码还是卷积码哪一种更好则取决于这一应用的具体情况和进行比较时可用的技术。 (一)卷积编码的图形表示 卷积码的编码器是由一个有k 个输人位,n 个输出位,且有m 个移位寄存器构成的有限状态的有记忆系统,其原理如图1所示。 图1 卷积码编码器的原理图 描述这类时序网络的方法很多,它大致可分为两大类型:解析表示法与图形表示法。在解析法中又可分为离散卷积法、生成矩阵法、码多项式法等;在图形表示法中也可分为状态图法、树图法和网络图法等。 图2给出的是一个生成编码速率为1/2 卷积码的移位寄存器电路。输人比特在时钟触发下从左边移人到电路中,每输入一位,分别去两个模2加法器的输出值并复用就得到编码器的输出。对这一编码,每输入一比特就产生两个输出符号,故编码效率为

DSP卷积码的维特比译码的分析与实现

编号: 《DSP技术与应用》课程论文卷积码的维特比译码的分析与实现 论文作者姓名:______ ______ 作者学号:___ ______ 所在学院: 所学专业:_____ ___ 导师姓名职称:__ _ 论文完成时间: _

目录 摘要: (1) 0 前言 (2) 1 理论基础 (2) 1.1信道理论基础 (2) 1.2差错控制技术 (3) 1.3纠错编码 (4) 1.4线性分组码 (5) 2 卷积码编码 (7) 2.1 卷积码概要 (7) 2.2 卷积码编码器 (8) 2.3卷积码的图解表示 (8) 2.4 卷积码的解析表示 (11) 3 卷积码的译码 (14) 3.1 维特比译码 (15) 3.2 代数译码 (17) 3.3 门限译码 (18) 4 维特比译码器实现 (18) 4.1 TMS320C54 系列DSP概述 (18) 4.2 Viterbi译码器的DSP实现 (19) 4.3 实现结果 (21) 5 结论 (21) 参考文献 (22) II

卷积码的维特比译码的分析与实现 摘要: 针对数据传输过程中的误码问题,本文论述了提高数据传输质量的一些编码及译码的实现问题。自P.Elias 首次提出卷积码编码以来,这一编码技术至今仍显示出强大的生命力。在与分组码同样的码率R 和设备复杂性的条件下,无论从理论上还是从实际上均己证明卷积码的性能至少不比分组码差,且实现最佳和准最佳译码也较分组码容易。目前,卷积码已广泛应用在无线通信标准中,其维特比译码则利用码树的重复性结构,对最大似然译码算法进行了简化。本文所做的主要工作: 首先对信道编码技术进行了研究,根据信道中可能出现的噪声等问题对卷积码编码方法进行了主要阐释。 其次,对卷积码维特比译码器的实现算法进行了研究,完成了译码器的软件设计。 最后,结合实例,采用DSP芯片实现卷积码的维特比译码算法的仿真和运行。 关键词: 卷积码维特比译码DSP Convolutional codes and Viterbi decoding analysis and realization Zhang Yi-Fei (School of Physics and Electronics, Henan University, Henan Kaifeng 475004, China) Abstract: Considering the error bit problem during data transmission,this thesis discussed some codings and decoders,aiming at enhancing transmission performance. From P.Elias first gave the concept of convolutional code, it has show its’ great advantage. Under the same condition and the same rate of block code, the performance of convolutional code is better than block code, and it’s easier to implement the best decoding.Convolutional codes have been widely used in wireless communication standards, the V iterbi decoding using the repetitive structure of the code tree, the maximum likelihood decoding algorithm has been simplified. Major work done in this article: First, the channel coding techniques have been studied, the main interpretation of the convolutional code encoding method according to the channel may be noise and other issues. Secondly, the convolutional code V iterbi decoder algorithm has been studied, the software design of the decoder. Finally, with examples, simulation and operation of the DSP chip convolutional codes, Viterbi decoding algorithm. 1

高性能维特比在卫星导航接收机中FPGA实现

高性能维特比在卫星导航接收机中PPGA实现IO:卫星定位接收机中卷枳码译码即维特比译码器,在处理器中面临占有资源较多、处理时间过长等间题,为了减少业理器资漏的占用和提高处理速度,采用并fiUDtt选噪形单元的的方法,在fPW 平台上用硬件描述语言设廿一种髙性能维特比译码器,作为gps 12 频点和galileoe1顺点接收机的通用译码器,在gps和galileo接收机上运用,大大械少资源使用,提髙接收机的处理速度。 关鍵词:viterbi译码器;gps /galileo接收机;卷枳码;fpga 引言 在现代通信系统中,要使信号能舉更可靠地在信道中传输,往往需要在信道编码中采用纠錯码来降低信号受噪声的影响,以降低传输的俣码率。卷枳码及其viterbi译码是常用的信道编码方案[1 3L卷枳码在gnss接收机中得到应用,其中约束长度k=7,码率为1/2的卷枳码已经成为商业卫星通信系貌中的标准编码方法。在卫星定位系统中,gpsl2频点fl] galileoe1的电文均采用卷枳码编码,目前在定位接收机中用软件进行viterbi译码较多,为了提髙处理速度通用性,本文设廿一种基于fpga的通用高速viterbi澤码器,能作为gps I2 fD galileo e1的电文的译码器,大大减少资源使用,提髙接收机的处理速度和城少软件复杂度,从而节约处理器的资源。 1卷枳编码K viterbi算法基本原理 卷枳码包含由k个寄存器组(毎组包括k个比特,k通常取1)构成的移位寄存器fUnf模2加法器,其中k是约束长度,编码器的输出由

当前输入数据和寄存器组中的数据共同决定。对T gps 12和galileoe1 为(2, 1, 7)卷枳码,其生成多项式为g=(171, 133),电路图如图1所示。(2, 1, 7)卷枳码编码器由6个延时器(图1中的卜1模块,可用寄存器实现)和两个模20II法器组成,它的编码约束度为7,码率为1/2, fid输人端输人1b信息,聯出端输出2 b 编码信息,并分为上、下两路并行輪出[4]。 图1 (171, 133 )卷枳码生成电路对信号进行卷枳编码后,通常采用viterbi算法(va)译码o viterbi算法是对于卷枳码的最大似然译码, 即利用様率译码。1967年viterbi第一个提出了这个算法,forney对这种算法及其性能做了可读强、见解深刻的描述[1]。最大做然译阿函数,就是在已知收到的信道輸出序列,找到最有可能的传输序列,BD通过网格图找出一条路径对应,要求胳径输出的码序列貝有对数最大值。对于二进制对称信道来说,函数的最大化等价于在网格图中找到与接收序列之同有最小汉明I?离的路径[5L viterbi算法是通过动态规刘的方法找出网格图中具有最大度量的最大做廉胳径,即局部最优等效全局最优。在每一步中,它将进入毎一状态的所有胳径进行比较,并存晞貝有最大度量值的路径,即幸存路径,步骤为[4]: (1 )"、时刻l=mff始,廿算进人某一狀态的单f路径舸部分度量值,并存储每一状态的幸存路径及其度量值。 (2) I增加1, l=m+1,将进入某一状态的分支度量值与前一段时间的幸存度量值累加,然后廿算进入该状态的所有最大度量的胳

Viterbi译码的Matlab实现

2010年12月(上) Viterbi 译码的Matlab 实现 张慧 (盐城卫生职业技术学院,江苏盐城 224006) [摘要]本文主要介绍了Viterbi 译码是一种最大似然译码算法,是卷积编码的最佳译码算法。本文主要是以(2,1,2)卷积码为例,介 绍了Viterbi 译码的原理和过程,并用Matlab 进行仿真。[关键词]卷积码;Viterbi 译码 1卷积码的类型 卷积码的译码基本上可划分为两大类型:代数译码和概率译码,其中概率译码是实际中最常采用的卷积码译码方法。 2Viterbi 译码 Viterbi 译码是由Viterbi 在1967年提出的一种概率译码,其实质是最大似然译码,是卷积码的最佳译码算法。它利用编码网格图的特殊结构,降低了计算的复杂性。该算法考虑的是,去除不可能成为最大似然选择对象的网格图上的路径,即,如果有两条路径到达同一状态,则具有最佳量度的路径被选中,称为幸存路径( surviving path )。对所有状态都将进行这样的选路操作,译码器不断在网格图上深入,通过去除可能性最小的路径实现判决。较早地抛弃不可能的路径降低了译码器的复杂性。 为了更具体的理解Viterbi 译码的过程,我们以(2,1,2)卷积码为例,为简化讨论,假设信道为BSC 信道。译码过程的前几步如下:假定输入数据序列m ,码字U ,接收序列Z ,如图1所示,并假设译码器确知网格图的初始状态。 图1 时刻t 1接收到的码元是11,从状态00出发只有两种状态转移方向,00和10,如图a 所示。状态转换的分支量度是2;状态转换的分支径量度是0。时刻t 2从每个状态出发都有两种可能的分支,如图b 所示。这些分支的累积量度标识为状态量度┎a ,┎b ,┎c ,┎d ,与各自的结束状态相对应。同样地,图c 中时刻t 3从每个状态出发都有两个分支,因此,时刻时到达每个状态的路径都有两条,这两条路径中,累积路径量度较大的将被舍弃。如果这两条路径的路径量度恰好相等,则任意舍弃其中一条路径。到各个状态的幸存路径如图d 所示。译码过程进行到此时,时刻t 1和t 2之间仅有一条幸存路径,称为公共支(com-mon stem )。因此这时译码器可以判决时刻t 1和t 2之间的状态转移是00→10;因为这个状态转移是由输入比特1产生的,所以译码器输出1作为第一位译码比特。由此可以看出,用实线表示输入比特0,虚线表示输入比特1,可以为幸存路径译码带来很大的便利。注意,只有当路径量度计算进行到网格图较深处时,才产生第一位译码比特。在典型的译码器实现中,这代表了大约是约束长度5倍的译码延迟。 图2幸存路径选择 在译码过程的每—步,到达每个状态的可能路径总有两条,通过比较路径量度舍弃其中一条。图e 给出了译码过程的下一步:在时刻t 5到达各个状态的路径都有两条,其中一条被舍弃;图f 是时刻t 5的幸存路径。注意,此例中尚不能对第二位输入数据比特做出判决,因为在时刻t 2离开状态10的路径仍为两条。图g 中的时刻t 6同样有路径合并,图h 是时刻t 6的幸存路径,可见编码器输出的第二位译码比特是1,对应了时刻t 2和t 3之间的幸存路径。译码器在网格图上继续上述过程,通过不断舍弃路径直至仅剩一条,来对输入数据比特做出判决。 网格图的删减(通过路径的合并)确保了路径数不会超过状态数。对于此例的情况,可证明在图b 、d 、f 、h 中,每次删减后都只有4条路径。而对于未使用维特比算法的最大似然序列彻底比较法,其可能路径数(代表可能序列数)是序列长度的指数函数。对于分支字长为L 的二进制码字序列,共有2L 种可能的序列。下面我们用Matlab 函数viterbi (G,k,channel_output )来产生输入序列经Viterbi 译码器得到的输出序列,并将结果与输入卷积码编码器的信息序列进行比较。在这里,G =g ,k=k0,channel_output=output 。用Matlab 函数得到的译码输出为10011100110000111,这与我们经过理论分析得出的结果是一致的。 我们用subplot 函数将译码器最终的输出结果与(下转第261页) 250

Matlab的卷积码译码器的仿真要点

基于Matlab的卷积码译码器的 设计与仿真 学生姓名:指导老师:** 摘要本课程设计主要解决对一个卷积码序列进行维特比(Viterbi)译码输出, 并通过Matlab软件进行设计与仿真,并进行误码率分析。在课程设计中,系统开发平台为Windows Vista Ultimate,程序设计与仿真均采用Matlab R2007a(7.4),最后仿真详单与理论分析一致。 关键词课程设计;卷积码译码器;Matlab;Simulink;设计与仿真 1引言 本课程设计主要解决对一个卷积码序列进行维特比(Viterbi)译码输出,并通 过Matlab软件进行设计与仿真。卷积码的译码有两种方法——软判决和硬判决,此课程设计采用硬判决的维特比译码。 1.1课程设计目的 卷积码是一种向前纠错控制编码。它将连续的信息比特序列映射为连续的编码器输出符号。这种映射是高度结构化的,使得卷积码的译码方法与分组码译码所采用的方法完全不同。可以验证的是在同样复杂度情况下,卷积码的编码增益要大于分组码的编码增益。对于某个特定的应用,采用分组编码还是采用卷积编码哪一种更好则取决于这一应用的具体情况和进行比较时可用的技术[1]。 本课程设计便是通过Matlab设计一个硬判决维特比译码输出的完整电路,并进行误码率分析。

1.2 课程设计的原理 卷积码,又称连环码,是由伊莱亚斯(P.elias)于1955年提出来的一种非分组码。 卷积编码的最佳译码准则为:在给定已知编码结构、信道特性和接收序列的情况下,译码器将把与已经发送的序列最相似的序列作为传送的码字序列的估值。对于二进制对称信道,最相似传送序列就是在汉明距离上与接收序列最近的序列。 卷积码的译码方法有两大类:一类是大数逻辑译码,又称门限译码(硬判决,编者注);另一种是概率译码(软判决,编者注),概率译码又分为维特比译码和序列译码两种。门限译码方法是以分组码理论为基础的,其译码设备简单,速度快,但其误码性能要比概率译码法差[2]。 当卷积码的约束长度不太大时,与序列译码相比,维特比译码器比较简单,计算速度快。维特比译码算法是1967年由Viterbi提出,近年来有大的发展。目前在数字通信的前向纠错系统中用的较多,而且在卫星深空通信中应用更多,该算法在卫星通信中已被采用作为标准技术。 2维特比译码原理 采用概率译码的基本思想是:把已接收序列与所有可能的发送序列做比较,选择其中码距最小的一个序列作为发送序列。如果发送L组信息比特,那么对于(n,k)卷积码来说,可能发送的序列有2kL个,计算机或译码器需存储这些序列并进行比较,以找到码距最小的那个序列。当传信率和信息组数L较大时,使得译码器难以实现。维特比算法则对上述概率译码做了简化,以至成为了一种实用化的概率算法。它并不是在网格图上一次比较所有可能的2kL条路径(序列),而是接收一段,计算和比较一段,选择一段最大似然可能的码段,从而达到整个码序列是一个最大似然值得序列。 下面以图2.1的(2,1,3)卷积码编码器所编出的码为例,来说明维特比解码的方法和运作过程。为了能说明解码过程,这里给出该码的状态图,如图2.2所

卷积码实验报告

苏州科技大学天平学院电子与信息工程学院 信道编码课程设计报告 课设名称卷积码编译及译码仿真 学生姓名圣鑫 学号1430119232 同组人周妍智 专业班级通信1422 指导教师潘欣欲 一、实验名称 基于MAATLAB的卷积码编码及译码仿真 二、实验目的 卷积码就是一种性能优越的信道编码。它的编码器与译码器都比较容易实现,同时它具有较强的纠错能力。随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。本实验简明地介绍了卷积码的编码原理与Viterbi译码原理。并在SIMULINK模块设计中,完成了对卷积码的编码与译码以及误比特统计整个过程的模块仿真。最后,通过在仿真过程中分别改变卷积码的重要参数来加深理解卷积码的这些参数对卷积码的误码性能的影响。经过仿真与实测,并对测试结果作了分析。 三、实验原理

1、卷积码编码原理 卷积码就是一种性能优越的信道编码,它的编码器与解码器都比较易于实现,同时还具有较强的纠错能力,这使得它的使用越来越广泛。卷积码一般表示为(n,k,K)的形式,即将 k个信息比特编码为 n 个比特的码组,K 为编码约束长度,说明编码过程中相互约束的码段个数。卷积码编码后的 n 各码元不经与当前组的 k 个信息比特有关,还与前 K-1 个输入组的信息比特有关。编码过程中相互关联的码元有 K*n 个。R=k/n 就是编码效率。编码效率与约束长度就是衡量卷积码的两个重要参数。典型的卷积码一般选 n,k 较小,K 值可取较大(>10),但以获得简单而高性能的卷积码。 卷积码的编码描述方式有很多种:冲激响应描述法、生成矩阵描述法、多项式乘积描述法、状态图描述,树图描述,网格图描述等。 2、卷积码Viterbi译码原理 卷积码概率译码的基本思路就是:以接收码流为基础,逐个计算它与其她所 有可能出现的、连续的网格图路径的距离,选出其中可能性最大的一条作为译码估值输出。概率最大在大多数场合可解释为距离最小,这种最小距离译码体现的正就是最大似然的准则。卷积码的最大似然译码与分组码的最大似然译码在原理上就是一样的,但实现方法上略有不同。主要区别在于:分组码就是孤立地求解单个码组的相似度,而卷积码就是求码字序列之间的相似度。基于网格图搜索的译码就是实现最大似然判决的重要方法与途径。用格图描述时,由于路径的汇聚消除了树状图中的多余度,译码过程中只需考虑整个路径集合中那些使似然函数最大的路径。如果在某一点上发现某条路径已不可能获得最大对数似然函数,就放弃这条路径,然后在剩下的“幸存”路径中重新选择路径。这样一直进行到最后第 L 级(L 为发送序列的长度)。由于这种方法较早地丢弃了那些不可能的路径,从而减轻了译码的工作量,Viterbi 译码正就是基于这种想法。对于(n, k, K )卷积码,其网格图中共 2kL 种状态。由网格图的前 K-1 条连续支路构成的路径互不相交,即最初 2k_1 条路径各不相同,当接收到第 K 条支路时,每条路径都有 2 条支路延伸到第 K 级上,而第 K 级上的每两条支路又都汇聚在一个节点上。在Viterbi译码算法中,把汇聚在每个节点上的两条路径的对数似然函数累加

卷积码编码和维特比译码

卷积码编码维特比译码实验设计报告 SUN 一、实验目的 掌握卷积码编码和维特比译码的基本原理,利用了卷积码的特性, 运用网格图和回溯以得到译码输出。 二、实验原理 1.卷积码是由连续输入的信息序列得到连续输出的已编码序列。其编码器将k个信息码元编为n个码元时,这n个码元不仅与当前段的k个信息有关,而且与前面的(m-1)段信息有关(m为编码的约束长度)。 2.一般地,最小距离d表明了卷积码在连续m段以内的距离特性,该码可以在m个连续码流内纠正(d-1)/2个错误。卷积码的纠错能力不仅与约束长度有关,还与采用的译码方式有关。 3. 维特比译码算法基本原理是将接收到的信号序列和所有可能的发送信号序列比较,选择其中汉明距离最小的序列认为是当前发送序列。卷积码的Viterbi 译码是根据接收码字序列寻找编码时通过网格图最佳路径的过程,找到最佳路径即完成了译码过程,并可以纠正接收码字中的错误比特。 4.所谓“最佳”, 是指最大后验条件概率:P( C/ R) = max [ P ( Cj/ R) ] , 一般来说, 信道模型并不使用后验条件概率,因此利用Beyes 公式、根据信道特性出结论:max[ P ( Cj/ R) ]与max[ P ( R/ Cj) ]等价。考虑到在系统实现中往往采用对数形式的运算,以求降低运算量,并且为求运算值为整数加入了修正因子a1 、a2 。令M ( R/ Cj) = log[ P ( R/ Cj) ] =Σa1 (log[ P( Rm/ Cmj ) ] + a2) 。其中, M 是组成序列的码字的个数。因此寻找最佳路径, 就变成寻找最大M( R/ Cj) , M( R/ Cj) 称为Cj 的分支路径量度,含义为发送Cj 而接收码元为R的似然度。 5.卷积码的viterbi译码是根据接收码字序列寻找编码时通过网格图最佳路径的过程,找到最佳路径即完成了译码过程并可以纠正接收码字中的错误比特。 三、实验代码 #include<> #include "" #define N 7 #include "" #include <> #include<> #define randomize() srand((unsigned)time(NULL)) encode( unsigned int *symbols, /*编码输出*/ unsigned int *data, /*编码输入*/ unsigned int nbytes, /*nbytes=n/16,n为实际输入码字的数目*/ unsigned int startstate /*定义初始化状态*/

Viterbi译码的MATLAB仿真研究

BUPT 卷积码编码及Viterbi译码 班级:07114 学号:070422 姓名:吴希龙 指导老师:彭岳星 邮箱:FusionBupt@https://www.wendangku.net/doc/fb7514108.html,

1. 序言 卷积码最早于1955年由Elias 提出,稍后,1957年Wozencraft 提出了一种有效地译码方法即序列译码。1963年Massey 提出了一种性能稍差但是比较实用的门限译码方法,使得卷积码开始走向实用化。而后1967年Viterbi 提出了最大似然译码算法,它对存储级数较小的卷积码很容易实现,被称作Viterbi 译码算法,广泛的应用于现代通信中。 2. 卷积码编码及译码原理 2.1 卷积码编码原理 卷积码是一种性能优越的信道编码,它的编码器和解码器都比较易于实现,同时还具有较强的纠错能力,这使得它的使用越来越广泛。卷积码一般表示为(n,k,K)的形式,即将k 各信息比特编码为n 个比特的码组,K 为编码约束长度,说明编码过程中相互约束的码段个数。卷积码编码后的n 各码元不经与当前组的k 个信息比特有关,还与前K-1个输入组的信息比特有关。编码过程中相互关联的码元有K*n 个。R=k/n 是编码效率。编码效率和约束长度是衡量卷积码的两个重要参数。典型的卷积码一般选n,k 较小,但K 值可取较大(>10),以获得简单而高性能的卷积码。 卷积码的编码描述方式有很多种:冲激响应描述法、生成矩阵描述法、多项式乘积描述法、状态图描述,树图描述,网格图描述等。 2.1.1 卷积码解析表示法 卷积码的解析表示发大致可以分为离散卷积法,生成矩阵法,码多项式法。下面以离散卷积为例进行说明。 卷积码的编码器一般比较简单,为一个具有k 个输入端,n 个输出端,m 级移位寄存器的有限状态有记忆系统。下图所示为(2,1,7)卷积码的编码器。 若输入序列为u =(u 0u 1u 2u 3……), 则对应两个码字序列c ①=(c 0①c 1①c 2①c 3①……)和c ②=(c 0②c 1②c 2②c 3② ……) 相应的编码方程可写为c ①=u ?g ①,c ②=u ?g ②,c=(c ①,c ②)。 “?” 符号表示卷积运算,g ①,g ②表示编码器的两个冲激响应,即编码器的输出可以由输入序列和编码器的两个冲击响应卷积而得到,故称为卷积码。这里的冲激响应指:当输入为[1 0 0 0 0 … … ]序列时,所观察到的两个输出序列值。由于上图K 值为7,故冲激响应至

213卷积码编码和译码

No.15 (2,1,3)卷积码的编码及译码 摘要: 本报告对于(2,1,3)卷积码原理部分的论述主要参照啜刚教材和课件,编程仿真部分绝对原创,所有的程序都是在Codeblocks 8.02环境下用C语言编写的,编译运行都正常。完成了卷积码的编码程序,译码程序,因为对于短于3组的卷积码,即2 bit或4 bit纠错是没有意义的,所以对正确的短序列直接译码,对长序列纠错后译码,都能得到正确的译码结果。含仿真结果和程序源代码。 如果您不使用Codeblocks运行程序,则可能不支持中文输出显示,但是所有的数码输出都是正确的。

一、 卷积码编码原理 卷积码编码器对输入的数据流每次1bit 或k bit 进行编码,输出n bit 编码符号。但是输出的分支码字的每个码元不仅于此时可输入的k 个嘻嘻有关,业余前m 个连续式可输入的信息有关,因此编码器应包含m 级寄存器以记录这些信息。 通常卷积码表示为 (n,k,m). 编码率 k r n = 当k=1时,卷积码编码器的结构包括一个由m 个串接的寄存器构成的移位寄存器(成为m 级移位寄存器、n 个连接到指定寄存器的模二加法器以及把模二加法器的输出转化为穿行的转换开关。 本报告所讲的(2,1,3)卷积码是最简单的卷积码。就是2n =,1k =,3m =的卷积码。每次输入1 bit 输入信息,经过3级移位寄存器,2个连接到指定寄存器的模二加法器,并把加法器输出转化为串行输出。 编码器如题所示。 二、卷积码编码器程序仿真 C 语言编写的仿真程序。 为了简单起见,这里仅仅提供数组长度30 bit 的仿真程序,当然如果需要可以修改数组大小。为了更精练的实现算法,程序输入模块没有提供非法字符处理过程,如果需要也可以增加相应的功能。 进入程序后,先提示输入数据的长度,请用户输入int (整型数)程序默认用户输入的数据小于30,然后提示输入01数码,读入数码存储与input 数组中,然后运算输出卷积码。经过实验仿真,编码完全正确。 以下是举例: a.课件上的输入101 输出11 10 00 的实验

Viterbi译码器研究目的意义及现状

Viterbi译码器研究目的意义及现状Viterbi译码器研究目的意义及现状 1研究的目的和意义 由于卷积码的优良性能,被广泛的应用于深空通信,卫星通信和2G及3G移动通信中,卷积码有三种译码方法:门限译码,门限译码,概率译码和Viterbi 算法,其中Viterbi算法是一种基于网格图的最大似然译码算法,是卷积码的最佳译码方式,具有效率高、速度快等优点。Viterbi译码充分发挥了卷积码的特点,使译码错误概率达到最小,在码的约束度较小时,它具有译码算法效率高,速度快,译码器也简单的特点。 FPGA(Field,Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 同时在FPGA的基础上实现Viterbi译码器,迎合了当前FPGA迅猛发展的趋势。把相对成熟的技术应用到某些特定领域如通讯,视频,信息处理等等开发出满足行业需要并能被行业客户接受的产品这方面主要是FPGA技术和专业技术的结合问题,另外还有就是与专业客户的界面问题产品设计还包括专业工具类产品及民用产品,前者重点在性能,后者对价格敏感产品设计以实现产品功能为主要目的,FPGA技术是一个实现手段在这个领域,FPGA因为具备接口,控制,功能IP,内嵌CPU等特点有条件实现一个构造简单,固化程度高,功能全面的系统产品设计将是FPGA技术应用最广大的市场,具有极大的爆发性的需求空间产品设计对技术人员的要求比较高,路途也比较漫长不过现在整个行业正处在组建“首发团队”的状态,只要加入,前途光明产品设计是一种职业发展方向定位,不是简单的爱好就能

Viterbi译码程序代码

译码主要部分 #include"stdafx.h" //#define DEBUG void deci2bin(int d, int size, int *b); int bin2deci(int *b, int size); int nxt_stat(int current_state, int input, int *memory_contents); void init_quantizer(void); void init_adaptive_quant(float es_ovr_n0); int soft_quant(float channel_symbol); int soft_metric(int data, int guess); int quantizer_table[256]; void sdvd(int g[2][K], float es_ovr_n0, long channel_length, float*channel_output_vector, int *decoder_output_matrix) { int i, j, l, ll; //循环控制变量 long t; //时间 int memory_contents[K]; //记录输入内容 int input[TWOTOTHEM][TWOTOTHEM]; //对当前状态以及下一个状态映射 int output[TWOTOTHEM][2]; //卷积码编码输出矩阵 int nextstate[TWOTOTHEM][2]; //下一个状态矩阵 int accum_err_metric[TWOTOTHEM][2]; //误差累计矩阵 int state_history[TWOTOTHEM][K * 5 + 1]; //历史状态表 int state_sequence[K * 5 + 1]; //状态序列 int *channel_output_matrix; //信道输出序列 int binary_output[2]; int branch_output[2]; //0或者1的输出分支 int m, n, number_of_states, depth_of_trellis, step, branch_metric, sh_ptr, sh_col, x, xx, h, hh, next_state, last_stop; n = 2; //1/2为卷积码传输数据的码率 m = K - 1;//寄存器个数 number_of_states = (int)pow(2.0, m);//状态个数number of states = 2^(K - 1) = 2^m depth_of_trellis = K * 5; for (i = 0; i < number_of_states; i++)

MATLAB实现卷积码编译码-

本科生毕业论文(设计) 题目:MATLAB实现卷积码编译码 专业代码: 作者姓名: 学号: 单位: 指导教师: 年月日

目录 前言----------------------------------------------------- 1 1. 纠错码基本理论---------------------------------------- 2 1.1纠错码基本理论 ----------------------------------------------- 2 1.1.1纠错码概念 ------------------------------------------------- 2 1.1.2基本原理和性能参数 ----------------------------------------- 2 1.2几种常用的纠错码 --------------------------------------------- 6 2. 卷积码的基本理论-------------------------------------- 8 2.1卷积码介绍 --------------------------------------------------- 8 2.1.1卷积码的差错控制原理----------------------------------- 8 2.2卷积码编码原理 ---------------------------------------------- 10 2.2.1卷积码解析表示法-------------------------------------- 10 2.2.2卷积码图形表示法-------------------------------------- 11 2.3卷积码译码原理---------------------------------------------- 15 2.3.1卷积码三种译码方式------------------------------------ 15 2.3.2V ITERBI译码原理---------------------------------------- 16 3. 卷积码编译码及MATLAB仿真---------------------------- 18 3.1M ATLAB概述-------------------------------------------------- 18 3.1.1M ATLAB的特点------------------------------------------ 19 3.1.2M ATLAB工具箱和内容------------------------------------ 19 3.2卷积码编码及仿真 -------------------------------------------- 20 3.2.1编码程序 ---------------------------------------------- 20 3.3信道传输过程仿真-------------------------------------------- 21 3.4维特比译码程序及仿真 ---------------------------------------- 22 3.4.1维特比译码算法解析------------------------------------ 23 3.4.2V ITERBI译码程序--------------------------------------- 25 3.4.3 VITERBI译码MATLAB仿真----------------------------------- 28 3.4.4信噪比对卷积码译码性能的影响 -------------------------- 28

实验九 (2,1,5)卷积码编码译码技术

实验九 (2,1,5)卷积码编码译码技术 一、实验目的 1、掌握(2,1,5)卷积码编码译码技术 2、了解纠错编码原理。 二、实验内容 1、(2,1,5)卷积码编码。 2、(2,1,5)卷积码译码。 三、预备知识 1、纠错编码原理。 2、(2,1,5)卷积码的工作原理。 四、实验原理 卷积码是将发送的信息序列通过一个线性的,有限状态的移位寄存器而产生的编码。通常卷积码的编码器由K级(每级K比特)的移位寄存器和n个线性代数函数发生器(这里是模2加法器)组成。 若以(n,k,m)来描述卷积码,其中k为每次输入到卷积编码器的bit数,n 为每个k元组码字对应的卷积码输出n元组码字,m为编码存储度,也就是卷积编码器的k元组的级数,称m+1= K为编码约束度m称为约束长度。卷积码将k 元组输入码元编成n元组输出码元,但k和n通常很小,特别适合以串行形式进行传输,时延小。与分组码不同,卷积码编码生成的n元组元不仅与当前输入的k元组有关,还与前面m-1个输入的k元组有关,编码过程中互相关联的码元个数为n*m。卷积码的纠错性能随m的增加而增大,而差错率随N的增加而指数下降。在编码器复杂性相同的情况下,卷积码的性能优于分组码。 编码器 随着信息序列不断输入,编码器就不断从一个状态转移到另一个状态并同时输出相应的码序列,所以图3所示状态图可以简单直观的描述编码器的编码过程。因此通过状态图很容易给出输入信息序列的编码结果,假定输入序列为110100,首先从零状态开始即图示a状态,由于输入信息为“1”,所以下一状态为b并输出“11”,继续输入信息“1”,由图知下一状态为d、输出“01”……其它输入信息依次类推,按照状态转移路径a->b->d->c->b->c->a输出其对应的编码结果“110101001011”。 译码方法 ⒈代数 代数译码是将卷积码的一个编码约束长度的码段看作是[n0(m+1),k0(m+1)]线性分组码,每次根据(m+1)分支长接收数字,对相应的最早的那个分支上的信息数字进行估计,然后向前推进一个分支。上例中信息序列 =(10111),相应的码序列 c=(11100001100111)。若接收序列R=(10100001110111),先根据R 的前三个分支(101000)和码树中前三个分支长的所有可能的 8条路径(000000…)、(000011…)、(001110…)、(001101…)、(111011…)、(111000…)、(110101…)和(110110…)进行比较,可知(111001)与接收

动态规划:卷积码的Viterbi译码算法

动态规划:卷积码的Viterbi译码算法 学院:网研院?姓名:xxx 学号:xxx一、动态规划原理 动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解,每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。 动态规划程序设计是对解最优化问题的一种途径、一种方法,而不是一种特殊算法。不象搜索或数值计算那样,具有一个标准的数学表达式和明确清晰的解题方法。动态规划程序设计往往是针对一种最优化问题,由于各种问题的性质不同,确定最优解的条件也互不相同,因而动态规划的设计方法对不同的问题,有各具特色的解题方法,而不存在一种万能的动态规划算法,可以解决各类最优化问题。 二、卷积码的Viterbi译码算法简介 在介绍维特比译码算法之前,首先了解一下卷积码编码,它常常与维特比译码结合使用。(2,1,3)卷积码编码器是最常见的卷积码编码器,在本次实验中也使用了(2,1,3)卷积码编码器,下面介绍它的原理。 (2,1,3)卷积码是把信源输出的信息序列,以1个码元为一段,通过编码器输出长为2的一段码段。该码段的值不仅与当前输入码元有关,而且也与其之前的2个输入码元有关。如下图所示,输出out1是输入、第一个编码器存储的值和第二个编码器存储的值逻辑加操作的结果,输出out2是输入和第二个编码器存储的值逻辑加操作的结果。 (2,1,3)卷积码编码器

卷积码中的维特比译码和序贯译码算法

卷积码是1955年由Elias 等人提出的,是一种非常有前途的编码方法。我们在一些资料上可以找到关于分组码的一些介绍,分组码的实现是将编码信息分组单独进行编码,因此无论是在编码还是译码的过程中不同码组之间的码元无关。卷积码和分组码的根本区别在于,它不是把信息序列分组后再进行单独编码,而是由连续输 入的信息序列得到连续输出的已编码序列。即进行分组编码时,其本组中的n-k 个校验元仅与本组的k 个信息元有关,而与其它各组信息无关;但在卷积码中,其编 码器将k 个信息码元编为n 个码元时,这n 个码元不仅与当前段的k 个信息有关,而且与前面的(m -1)段信息有关(m 为编码的约束长度)。同样,在卷积码译码过程中,不仅从此时刻收到的码组中提取译码信息,而且还要利用以前或以后各时刻收到的码组中提取有关信息。而且卷积码的纠错能力随约束长度的增加而增强,差错率则随着约束长度增加而呈指数下降 。卷积码(n,k,m) 主要用来纠随机错误,它的码元与前后码元有一定的约束关系,编码复杂度可用编码约束长度m*n 来表示。一般地,最小距离d 表明了卷积码在连续m 段以内的距离特性,该码可以在m 个连续码流内纠正(d-1)/2个错误。卷积码的纠错能力不仅与约束长度有关,还与采用的译码方式有关。总之,由于n ,k 较小,且利用了各组之间的相关性,在同样的码率和设备的复杂性条件下,无论理论上还是实践上都证明:卷积码的性能至少不比分组码差。 编码原理[回目录] 以二元码为例,编码器如图。输入信息序列为u =(u 0, u 1,…),其多项式表示为u (x )=u 0+u 1x +…+u l x l +…。 编码器的连接可用多项式表示为g (1,1)(x )=1+x +x 2和 g (1,2)(x )=1+x 2,称为码的子生成多项式。它们的系数矢 量g (1,1)=(111)和g (1,2)=(101)称作码的子生成元。以子生成多项式为阵元构成的多项式矩阵G (x )= [g (1,1)(x ),g (1,2)(x )],称为码的生成多项式矩阵。由生成元构成的半无限矩阵 称为码的生成矩阵。其中(11,10,11)是由g (1,1)和g (1,2)交叉连接构成。编码器输出序列为c =u ·G ,称为码序 列,其多项式表示为c (x ),它可看作是两个子码序列c (1)(x )和c (2)(x )经过合路开关S 合成的,其中c (1)(x )=u (x )g (1,1)(x )和c (2)(x )=u (x )g (1,2)(x ),它们分别是信息序列和相应子生成元的卷积,卷积码由此得名。 在一般情况下,输入信息序列经过一个时分开关被分成k 0个子序列,分别以u (x )表示,其中i =1,2,…k 0,即u (x )=[ u (x ),…, u (x )]。编码器的结构由k 0×n 0阶生成多项式矩阵给定。输出码序列由n 0个子序列组成,即c (x )=[ c (x ), c (x ),…,c (x )],且c (x )=u (x )·G (x )。若m 是所有子生成多项式 g (x )中最高次式的次数,称这种码为(n 0,k 0,m ) 卷积码。 表示方法[回目录] 描述卷积码编码器过程的方法有很多,如矩阵法、多项式、码树和网格图等,这里我们主要介绍和卷积码编码器结构密切相关的多项式法,以及与卷积码译码密切相关的网格图法。 一种卷积码编码器 卷积码编码器

相关文档