基于FPGA的Viterbi译码器设计
摘要:卷积码及其Viterbi译码是现代通信系统中常用的一种信道编码方法。文中介绍了Viterbi译码算法的原理,分析了Viterbi译码器的结构,然后用Verilog语言设计了一种基于Altera公司的EP3C120F780C8芯片的(2,l,7)Viterbi译码器,同时给出了时序仿真图。
关键词:卷积码;Virelbi译码;FPGA
0 引言
在现代通信系统中,要使信号能够更可靠地在信道中传输,往往需要我们在信道编码中采用纠错码来降低信号受噪声的影响,以降低传输的误码率。这种方法叫做差错控制编码或纠错编码,其思想是在发送端的信息码元序列中增加一些监督码元,这些监督码与信码之间有一定的关系,接收端可以利用这种关系由信道译码器来发现或纠正错误的码元。
1 卷积码
前向纠错(FEC)是目前常用的一种差错控制方法,在这种方法中,发送端发送能够被纠错的码,接收端则在收到这些码后,通过纠错译码器来发现其中的错误并自动纠正接收码字中的错误。在前向纠错方法中,卷积码及其Viterbi译码是常用的信道编码方案。
卷积码通常用(n,k,N)表示,其中n为输出信息比特,k为输入信息比特,N为约束长度,卷积码的编码效率为Rc=k/n,图1所示为(2,l,7)卷积码的编码器框图。
(2,1,7)卷积码编码器由6个延时器(图l中的D模块,可用寄存器实现)和两个模二加法器组成,它的编码约束度为7,码率为1/2。即输入端输入1比特信息,输出端输出2比特编码信息,并分为上、下两路并行输出。
2 Viterbi译码器原理
近年来,维特比算法具有很大的发展,目前在数字通信的前向纠错系统中用的较多。Viterbi译码的基本原理是把已接收到的序列与所有可能的发送序列进行比较,选择其中码距最小的一个序列作为发送序列。下面以(2,1,3)卷积码编码器的编出码为例,来说明Viterbi解码的方法和过程。图2所示是该码的状态图。
评论