当前位置:首页 > 工业控制 > 电子设计自动化

摘 要: 介绍并用VHDL语言实现了卷积编码和维特比译码。根据编码器特征设计了一种具有针对性的简洁的维特比译码器结构,并通过ModelSim平台验证了该设计的正确性。
关键词: VHDL卷积码; 维特比译码; ModelSim

卷积码自1955年由爱里斯(Elias)提出以来,因其良好的纠错能力,已经在现代通信系统中得到了广泛应用,比如,电力系统通信、卫星通信、移动通信等。Viterbi译码是1967年维特比(Viterbi)基于Viterbi算法提出的,这种译码算法是基于码的网格(trellis)图基础之上的一种最大似然译码算法,是一种最佳的概率译码算法[1]。本设计是在认真研究了卷积编码和维特比译码原理以后,用VHDL语言实现了(2,1,2)卷积编码,并根据这种编码特性简化了相应的维特比译码器结构。
1 卷积编码
卷积码是一种有限记忆系统,它与分组码类似,也是先将信息序列分隔成长度为k的一个个分组;不同的是,某一时刻的编码输出不仅取决于本时刻的分组,而且取决于本时刻以前的L个分组[2],称L+1为约束长度。一般情况下卷积码写成(n,k,L)的形式,其中:n表示编码器有n位编码输出,k表示编码器有k位输入。如果用R表示卷积编码的效率,则R=k/n。
图1是(n,k,L)卷积编码器的一般结构图[2]。从该图可以看出,串行信号可由串/并转换器转换成L个分组,并按位存储到k-1个存储器中,存储器中的每一个单元与线性组合器的连线表示该单元数据参与了线性组合计算,但实际中是否参与取决于线性组合系数。在二进制系统中,该系数为“0”和“1”,当系数为“0”时,表示该单元数据没参与线性组合计算;当系数为“1”时,表示该单元数据参与了线性组合计算。并/串转换器可将线性组合器计算得到的并行结果转化成串行输出。

图1示意的是卷积编码器的一般结构,实际应用时可根据需求进行相应改变。例如图2是(2,1,2)码的编码器,由于只有一位输入,串/并转换器自然不存在,线性组合器就是两个模2加法器,存储单元由两个移位寄存器组成,其生成多项式矩阵可表示为:G(D)=[1+D+D2,1+D2]。
图3是图2所示卷积码的状态转移图,根据这个状态转移图用VHDL语言实现卷积编码。图3中S0、S1、S2、S3表示该卷积码的4个不同状态,编程时用状态机完成状态之间的跳变和编码输出。 

  部分程序如下:
……
  if(clk1=′1′) then
   state <=next_state;
   ……
   else
   state <=state;
……
   case state is
   when "00" =>
   if(datain = ′0′) then
   next_state <= "00";
   enc_out <= "00";
   else
   next_state <= "10";
   enc_out <= "11";
   end if;
  when "01" =>
……
其中,clk1为编码时钟(另一时钟是码输入时钟,为clk1的2倍频),state为本次编码状态,并根据它的值和数据输入(datain)的值给出卷积码的下一个状态值(next_state)和编码输出值(enc_out)。如此往复循环下去,便可得到卷积码。
2 维特比译码
维特比译码算法是一种最大似然译码算法。根据维特比译码算法的译码步骤,译码算法的实现一般包括:加比选模块、度量查找表、状态变量存储器等模块,如图4所示。本设计根据该卷积码的特性,找到一种简便的改进译码方法。

通过图3可知,到达每一状态的输入码均相同。例如,无论是由S0转变成S1还是由S2转变成S1,虽然编码输出段不一样,但是码输入都是‘1’,其他状态之间的转变也是如此。因而,通过这个特征可以去掉该卷积码的维特比译码实现时的度量查找表和路径存储器等模块,只保留加比选模块即可,如图5所示,从而简化了维特比译码算法的实现。再结合该卷积码的状态转移图,画出相应篱笆图,如图6所示。

在这个译码器结构中,“加”是指计算在该时刻实际编码输入与图3中状态转移编码输出之间的汉明距,“比”是指比较出上述汉明距最小距离,“选”是指通过“比”的结果选择一位最佳码字输出。按照这一结构,在本时刻即可得到一位最佳输出码字,例如,在L=0时刻时,实际编码输入若为“01”或“10”,则可以通过判断L=1时刻的实际编码输入来选择一位最佳码字输出。本设计运用VHDL语言编程实现这一译码过程时,采用了两个时钟,在一个clk周期内将16 bit卷积码输入到译码器内,然后再由其8倍频时钟clk1完成“加”、“比”、“选”、译码输出等动作。由于信号只能采用阻塞赋值,因而,“加”与“比”、“选”分别在两个clk1时钟周期内完成,并且“加”先于后两者1个时钟周期。
3 仿真结果
3.1 卷积编码仿真结果

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分,通常嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板,事实上所有带有数字接口的设备,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整...

关键字: 嵌入式 语言 技术

语音编码器的主要功能就是把用户语音的PCM(脉冲编码调制)样值编码成少量的比特(帧)。这种方法使得语音在连路产生误码、网络抖动和突发传输时具有健壮性(Robustness)。在接收端,语音帧先被误码为PCM语音样值,然后...

关键字: 语音编码器 PCM 语言

OFDM可很好地解决多径环境中的信道选择性衰落,但对信道平坦性衰落(即各载波的幅度服从瑞利分布的衰落),尚未得到较好的克服。用信道编码来解决这一问题的OFDM称为COFDM(Coded OFDM)。

关键字: COFDM OFDM 卷积码

模糊控制算法(理论知识)

关键字: 模糊控制 语言

当前最流行的硬件设计语言有两种,即 VHDL 与 Verilog HDL,两者各有优劣,也各有相当多的拥护者。VHDL 语言由美国军方所推出,最早通过国际电机工程师学会(IEEE)的标准,在北美及欧洲应用非常普遍。而 V...

关键字: vhdl verilog

任何一种“语言”,都是各种“语言特性”的组合。

关键字: 程序 语言 嵌入式

    串行总线和并行总线相比具有结构简单、占用引脚少、成本低的优点。常见的串行总线有USB、IEEE1394、I2C等,其中I2C总线具有使用简单的特点,在单片机、串行E2P

关键字: vhdl i2c 串行总线

  目前,许多厂商都提供通用的串行通信芯片,其传输方式分为同步方式和异步方式。其中,异步芯片大多与INTEL的8250芯片兼容;而同步方式,由于一般涉及到所支持的传输协议(BSC、HDLC、SD

关键字: FPGA cpld vhdl 通信芯片

由于新冠疫情,口罩已经成为了一种日常用品。而日本似乎十分热衷于研究不同类型的口罩,例如为了应对夏季的“冰镇口罩”和带微型电扇的口罩,还有为了女性美观研发的“小脸美口罩”。 8月4日,据媒体报道,日本一

关键字: 口罩 日本 智能 翻译 语言

当今汽车行业所面临的挑战与电信行业十多年前所经历的类似。混合动力电动汽车和燃料电池汽车等新技术也促进了研发活动的日趋活跃,正如我们在手机演变成多媒体设备的进程中所看到的一样。同样,电信业面临着功

关键字: vhdl 仿真 系统设计
关闭
关闭