一种卷积编码器的制作方法

文档序号:7614344阅读:240来源:国知局
专利名称:一种卷积编码器的制作方法
技术领域
本发明属于通信领域,尤其涉及一种WCDMA通信系统中使用的卷积编码器。
背景技术
卷积编码具有较高的编码处理增益的同时,具有译码实现较简单的特点,在各种信道编码中得到了广泛的应用,在WCDMA(Wideband Code DivisionMultiple Access,宽带码分多址)中作为一种重要的编码方法被采用,主要应用于对处理延时较敏感的业务,如语音业务等,在3GPP225.212协议中,卷积编码包括1/2卷积编码和1/3卷积编码。1/2卷积编码和1/3卷积编码对每个输入比特的处理时间不一样,对于1/2卷积编码,1个输入比特对应2个输出比特,处理占用2个时钟周期;对于1/3卷积编码,1个输入比特对应3个输出比特,处理占用3个时钟周期。
上述卷积编码过程可以采用软件实现,由于卷积编码进行的是单比特数据流处理,需要把单比特数据流扩展成字节,占用较多的存储空间,处理效率不是很高。同时,用软件实现的处理延时比较大,对于处理延时要求较高的应用不太适用。
图1示出了支持1/2和1/3卷积编码的逻辑实现结构图,卷积编码器101接收CRC(Cyclic Redundancy Check,循环冗余校验)添加处理模块102输入的比特流,进行卷积编码处理,CRC添加处理模块102对比特流的输出进行流量控制,包括2分频处理单元1021、3分频处理单元1022以及MUX(Multiplexer,多路选择器)1023,2分频处理单元1022、3分频处理单元1023按卷积编码输出的速率对比特流进行分频处理,对于1/2卷积编码,每2个时钟输出1个数据,对于1/3卷积编码,每3个时钟输出1个数据,保证在卷积编码器101内部处理来得及,多路选择器1023根据不同的编码率选择对应的比特输入到卷积编码器101进行卷积编码处理。
在上述卷积编码的逻辑实现中,匹配前后级处理模块速率的机制导致模块之间的关联性较大,不利于各个模块独立、高速流水处理,影响整个编码的处理延时。

发明内容
本发明的目的在于解决现有技术在实现卷积编码过程中存在的处理延时比较长,处理效率低的问题。
为了实现上述目的,本发明提供了一种卷积编码器,对前级处理模块的一个输入比特进行卷积编码处理后产生多个输出比特给后级处理模块,所述卷积编码器包括缓存前级处理模块输出的数据,并对前级处理模块的数据输出进行控制的先进先出存储器;将先进先出存储器输出的数据输入至卷积运算单元,或者向卷积运算单元输入0的多路选择器;对多路选择器的输入进行卷积编码处理,并向后级处理模块输出运算结果的卷积运算单元,以及对编码过程进行控制的控制器。
当处于半满状态时,先进先出存储器向前级处理模块发出前级暂停控制信号。
所述控制器在初始状态、码块编码状态和空闲状态之间转换(1)复位后,进入初始状态;(2)收到编码启动信号后,进入码块编码状态;
(3)在码块编码状态,对已经编码处理的输入比特进行计数,当比特计数值到码块长度时,进入空闲状态;(4)在空闲状态,对码块个数计数,若码块计数值与码块个数相等,进入初始状态,若码块计数值与码块个数不等,进入码块编码状态。
所述控制器进一步包括比特计数器,对已经编码处理的输入比特进行计数,卷积运算单元每处理完一个输入比特,比特计数值加1;码块计数器,对码块个数计数,控制器每进入一次空闲状态,码块计数值加1。
当先进先出存储器为空时,或者后级处理模块发出暂停控制信号时,控制器暂停编码处理。
在码块编码过程中,控制器在等待状态,以及与一个输入比特对应的多个不间断的比特输出状态之间转换(1)当编码使能有效时,控制器从等待状态转入比特输出状态,控制卷积运算单元输出运算结果,并向后级处理模块发送结果有效标志有效的控制信号;(2)当一个输入比特对应的多个输出比特输出完毕后,若编码使能有效,控制器继续比特输出状态,对下一个输入比特进行卷积编码处理,否则进入等待状态,并向后级处理模块发送结果有效标志无效的控制信号;当先进先出存储器非空且未收到后级处理模块发出的暂停控制信号时,编码使能有效。
所述卷积编码包括1/2编码,所述比特输出状态包括第一比特输出状态和第二比特输出状态。
所述卷积编码包括1/3编码,所述比特输出状态包括第一比特输出状态、第二比特输出状态和第三比特输出状态。
本发明通过对前后级处理模块的输出速率进行匹配控制,同时对卷积编码器内部的卷积编码状态进行合理控制,实现了卷积编码的流水处理,减少了编码的处理时间,提高了编码效率。


图1是现有技术中支持1/2和1/3卷积编码的逻辑实现结构图;图2是1/2和1/3卷积编码器的一般构成图;图3是本发明提供的卷积编码器结构图;图4是本发明中的编码子状态示意图;图5是本发明中的编码状态示意图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图2示出了1/2和1/3卷积编码器的一般构成形式,包括8比特移位寄存器和多个模2加法器,其中1/2卷积编码器对1个输入比特进行卷积编码后输出2个输出比特,1/3卷积编码器对1个输入比特进行卷积编码后输出3个输出比特,1/2卷积编码和1/3卷积编码都是对移位寄存器中的结果进行模2加,只是每个输出抽头上参加运算的寄存器不一样。对于协议里规定的1/2卷积编码,第一比特输出参加运算的寄存器分别是第1、2、3、7等4个寄存器;第二比特输出参加运算的寄存器分别是第0、1、2、4、6、7等5个寄存器。对于1/3卷积编码,第一比特输出参加运算的寄存器分别是1、2、4、5、6、7;第二比特输出参加运算的寄存器分别是0、2、3、6、7;第三比特输出参加运算的寄存器分别是0、1、4、7。如下所述,在本发明中,卷积运算单元303采取这种结构对输入数据进行编码处理。
图3示出了本发明提供的卷积编码器300的组成结构。卷积编码器300接收前级处理模块输入的数据,进行卷积编码处理后输出给后级处理模块。
FIFO301的目的主要是缓存前级处理模块发送的数据,并对前级处理模块的数据输出速率进行控制。在编码启动信号启动后,FIFO301开始接收前级处理模块输出的数据,用数据有效标志作为FIFO301的写使能,每次标志有效时FIFO301执行一次写操作,把前级处理模块输出的数据写入存储器。作为本发明的一个实施例,用FIFO301的半满标志作为前级处理模块的暂停控制信号,当FIFO301半满时,前级暂停控制标志有效,暂停前级处理模块的数据输出。FIFO301可以设计成深度为64比特,深度可以根据实际情况进行调整。
控制器304控制整个编码的过程,在下面的实施例中,对于每个输入比特的编码,设置等待状态S_w和多个比特输出状态,比特输出状态的数目与编码方式相关,在1/2编码中,比特输出状态包括第一比特输出状态S_a和第二比特输出状态S_b,而在1/3编码中,比特输出状态包括第一比特输出状态S_a、第二比特输出状态S_b以及第三比特输出状态S_c,很明显,可以类推到其他编码率的情况。控制器304停留在哪个状态根据编码使能是否有效来控制。
在进行非尾比特输出,当后级暂停控制信号标志无效时,控制器304每进行1个输入比特的编码,首先判断FIFO301的空标志信号,看FIFO301中是否有数据,如果空标志无效,即FIFO301非空,控制器304向FIFO301发出一个读使能,从FIFO301读出一个数据,并通过多路选择器302送给卷积运算单元303;如果FIFO空标志有效,控制器304需要停留在等待状态S_w,暂停当前的编码处理,直到FIFO301的空标志变为无效。在进行尾比特输出时,不需要从FIFO301读取数据,控制器304不判断FIFO301的空标志信号,直接控制多路选择器302输出“0”给卷积运算单元303。
无论是尾比特输出还是非尾比特输出,如果后级暂停信号标志有效,控制器304在进行当前输入比特的编码完成后进入等待状态S_w,直到后级暂停信号撤消。
卷积运算单元303对输入的数据进行卷积运算,并在控制器304的控制下依次串行输出运算结果。输出比特的个数和编码的方式相关,对于1/2卷积编码,输出2比特结果;对于1/3卷积编码,输出3比特结果。在串行输出结果时(对应S_a、S_b或S_c),控制器304控制输出比特有效标志有效,其他时刻(对应S_w)输出比特有效标志为无效。当输出比特输出完成时,卷积运算单元303在控制器304的控制下对内部移位寄存器进行一次移位操作。
卷积编码都是针对码块进行的,一个码块有多个比特。如图4所示,在本发明中,控制器304在对多个码块进行卷积编码时在3个状态中进行转换初始状态S0、码块编码状态S1和空闲状态S2,控制器304位于哪个状态根据比特计数器3041和码块计数器3042的计数信息控制。
在复位后,控制器304处于初始状态S0。
当控制器304收到编码启动信号后,进入码块编码状态。
在码块编码状态,比特计数器3041对已经编码处理的输入比特进行计数,当计数到码块长度时,表示1个码块即将处理结束,在计数到码块长度时,继续计数,计数到“码块长度+8”为止,这段时间卷积运算单元303输出尾比特。当一个码块处理结束后,控制器304进入空闲状态。
在空闲状态,码块计数器3042对码块个数进行计数,控制器304每进入一次空闲状态,码块个数加1。在空闲状态,码块计数器3042判断码块计数是否等于码块个数,如果码块计数与码块个数相等,说明所有码块处理完成,控制器304回到初始状态;如果码块计数与码块个数不等,控制器304进入码块编码状态。
在码块编码状态,需要对数据进行卷积处理和输出,控制器304根据比特计数器3041的值判断当前需要处理尾比特还是非尾比特。在进行非尾比特处理时,每处理一个输入比特需要从FIFO301读取一个数据;在尾比特处理时,不需要从FIFO301读取数据,多路选择器302向卷积运算单元303的移位寄存器输入0。比特计数器3041每处理完一个输入比特时加1,同时卷积运算单元303移位寄存器移位一次。对于1/2卷积和1/3卷积比特计数器加1的位置不同。1/2卷积编码是在第二比特输出后(第二比特输出状态延1拍)加1,1/3卷积编码是在第三比特输出后(第三比特输出状态延1拍)加1。卷积运算单元303的移位寄存器的移位时刻也一样。
为了使卷积编码的处理时间尽量短,控制器304的内部进行“流水”处理,即中间无空闲处理节拍,从而保证输出数据流尽量连续。具体而言,在控制器304内部,把每个输入比特的处理看成一个整体,在每个输入比特之间可以暂停处理,在输入比特内部的一个输入比特对应的多个输出比特,如2个比特或3个比特输出之间不能暂停。
控制器304是否处于暂停状态根据编码使能是否有效进行判断。编码使能是否有效是根据FIFO301的状态以及是否被后级处理模块暂停进行判断。在输出非尾比特时,如果FIFO301中为非空且不被后级处理模块暂停,编码使能有效。在输出尾比特时,不需要从FIFO301读数据,只需要判断是否被后级处理模块暂停,如果不被后级处理模块暂停,编码使能有效。
如图5所示,在复位后,控制器304进入等待状态S_w。
如果可以进行编码,即编码使能有效,控制器304进入第一比特输出S_a状态。
接着进入第二比特输出S_b状态,不暂停。
在1/3卷积编码时,控制器304在进入第二比特输出S_b状态后,接着进入第三比特输出S_c状态;如果编码使能有效,则卷积运算单元303继续进入第一比特输出S_a状态,否则进入等待状态S_w,暂停数据输出。
如此循环下去。
在S_w状态,控制器304向后级处理模块输出的编码结果有效标志置0,其他状态编码有效标志置1。
尾比特和非尾比特其他处理基本一样,都是分为等待S_w、第一比特输出S_a、第二比特输出S_b和第三比特输出S_c等4个子状态进行处理,不再赘述。
很明显,本发明可以广泛适用于对于一个输入比特(码元或者数据),进行编码处理后输出多个对应的比特的情况,如Turbo编码等,同样,本发明中仅以1/2和1/3的编码率为例进行了描述,同样可以适用于对于在其他编码率下的编码处理。
本发明可以集成在一块ASIC(Application-Specific Integrated Circuit,专用集成电路)或者DSP(Digital Signal Processing,数据信号处理)芯片中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种卷积编码器,对前级处理模块的一个输入比特进行卷积编码处理后产生多个输出比特给后级处理模块,其特征在于,所述卷积编码器包括缓存前级处理模块输出的数据,并对前级处理模块的数据输出进行控制的先进先出存储器;将先进先出存储器输出的数据输入至卷积运算单元,或者向卷积运算单元输入0的多路选择器;对多路选择器的输入进行卷积编码处理,并向后级处理模块输出运算结果的卷积运算单元,以及对编码过程进行控制的控制器。
2.如权利要求1所述的卷积编码器,其特征在于,当处于半满状态时,先进先出存储器向前级处理模块发出前级暂停控制信号。
3.如权利要求1所述的卷积编码器,其特征在于,所述控制器在初始状态、码块编码状态和空闲状态之间转换(1)复位后,进入初始状态;(2)收到编码启动信号后,进入码块编码状态;(3)在码块编码状态,对已经编码处理的输入比特进行计数,当比特计数值到码块长度时,进入空闲状态;(4)在空闲状态,对码块个数计数,若码块计数值与码块个数相等,进入初始状态,若码块计数值与码块个数不等,进入码块编码状态。
4.如权利要求3所述的卷积编码器,其特征在于,所述控制器进一步包括比特计数器,对已经编码处理的输入比特进行计数,卷积运算单元每处理完一个输入比特,比特计数值加1;码块计数器,对码块个数计数,控制器每进入一次空闲状态,码块计数值加1。
5.如权利要求1所述的卷积编码器,其特征在于,当先进先出存储器为空时,或者后级处理模块发出暂停控制信号时,控制器暂停编码处理。
6.如权利要求5所述的卷积编码器,其特征在于,在码块编码过程中,控制器在等待状态,以及与一个输入比特对应的多个不间断的比特输出状态之间转换(1)当编码使能有效时,控制器从等待状态转入比特输出状态,控制卷积运算单元输出运算结果,并向后级处理模块发送结果有效标志有效的控制信号;(2)当一个输入比特对应的多个输出比特输出完毕后,若编码使能有效,控制器继续比特输出状态,对下一个输入比特进行卷积编码处理,否则进入等待状态,并向后级处理模块发送结果有效标志无效的控制信号;当先进先出存储器非空且未收到后级处理模块发出的暂停控制信号时,编码使能有效。
7.如权利要求6所述的卷积编码器,其特征在于,所述卷积编码包括1/2编码,所述比特输出状态包括第一比特输出状态和第二比特输出状态。
8.如权利要求6所述的卷积编码器,其特征在于,所述卷积编码包括1/3编码,所述比特输出状态包括第一比特输出状态、第二比特输出状态和第三比特输出状态。
全文摘要
本发明适用于通信领域,提供了一种卷积编码器,对前级处理模块的一个输入比特进行卷积编码处理后产生多个输出比特输出给后级处理模块,所述卷积编码器包括缓存前级处理模块输出的数据,并对前级处理模块的数据输出进行控制的先进先出存储器;将先进先出存储器输出的数据输入至卷积运算单元,或者向卷积运算单元输入0的多路选择器;对多路选择器的输入进行卷积编码处理,并向后级处理模块输出运算结果的卷积运算单元,以及对编码过程进行控制的控制器。本发明通过对前后级处理模块的输出速率进行匹配控制,同时对卷积编码器内部的卷积编码状态进行合理控制,实现了卷积编码的流水处理,减少了编码的处理时间,提高了编码效率。
文档编号H04J13/02GK1855734SQ200510034520
公开日2006年11月1日 申请日期2005年4月29日 优先权日2005年4月29日
发明者张家佶 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1