CN114745076B - 一种基于fpga的码长自适应交织/解交织器及方法 - Google Patents
一种基于fpga的码长自适应交织/解交织器及方法 Download PDFInfo
- Publication number
- CN114745076B CN114745076B CN202210280968.9A CN202210280968A CN114745076B CN 114745076 B CN114745076 B CN 114745076B CN 202210280968 A CN202210280968 A CN 202210280968A CN 114745076 B CN114745076 B CN 114745076B
- Authority
- CN
- China
- Prior art keywords
- identification
- sub
- stream
- mapping pattern
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000013507 mapping Methods 0.000 claims abstract description 193
- 238000010586 diagram Methods 0.000 description 5
- 230000001934 delay Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0071—Use of interleaving
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种基于FPGA的码长自适应交织/解交织器及方法,可应用于多码长Turbo译码或其它可变长度译码。本发明在FPGA或ASIC中实现硬件电路,实时根据不同码长度要求,通过遍历多个交织或解交织映射图样子表,生成多个标识流和映射图样流,再通过解析多标识流取得有效映射图样完成交织或解交织。标识流的数目由所支持的最大码长和最小码长的倍数关系决定。本发明解决了多码长译码中交织器/解交织器的处理延时不小于最大码长时间导致吞吐率受限的问题,使得不同码长交织器/解交织器的处理延时等于各自的码长时间,在硬件资源受限的前提下,可有效提高可变码长译码器的吞吐率和性能。
Description
技术领域
本发明涉及信息感知与识别技术领域,尤其是多码长Turbo译码或其它可变长度译码中使用交织映射图样表方法实现的多码长交织器和解交织器。
背景技术
Turbo编码是一种可以实现接近香农极限的编码方式,它将卷积码和交织器结合,从而实现随机编码,以其优异的性能广泛应用于卫星通信、移动通信、网络、广播等通信系统。
Turbo码的误码性能和译码延时和码长度直接相关。码长度越大,译码性能越好,但译码延时也越大。实际应用时,可以根据信道环境改变Turbo码长度以获得最佳性能,也可以通过多个信道解调器复用同一个Turbo码译码器来降低硬件资源的使用,从而降低系统成本。这些情况都需要其交织器/解交织器能够适应多码长或可变码长。
Turbo码通过多次迭代实现译码。每次迭代都需要经过两个或多个分量译码器、交织器和解交织器的处理。在流水线结构下,译码器的数据吞吐率由各个分量译码器延时、交织器延时和解交织器延时中的延时最大值决定。延时最大值越大,译码器的吞吐率越低。
交织器/解交织器通过预先生成的交织映射图样表实现时,映射图样表的存储深度等于码长度。每次交织/解交织都需要对映射图样表进行遍历,遍历时间和表深度成正比。映射图样表的遍历时间决定了交织/解交织的处理延时,码长越长,交织/解交织的处理延时越长。
对于多码长或可变码长,为实现实时处理,需要存储器存储所有码长的映射图样表,当码长数量很大时,映射图样表会占用大量的存储器资源,使得系统成本无法满足实际需要。如果多个码长共用映射图样表,则可以降低存储器资源的使用。但是,因为共用的映射图样表的深度需要按照最大码长设计,所以不同码长的交织/解交织都需要对最大映射图样表进行遍历,处理延时都等于最大码长的处理延时,导致非最大码长时的交织/解交织的处理延时大大增加,从而降低了Turbo译码的吞吐能力。
发明内容
本发明的目的是在多码长译码时,共用交织/解交织映射图样表,在降低存储器资源的情况下,对于不同码长,实时地、自适应地实现交织/解交织的处理延时等于使用独立映射图样表的遍历时间,从而极大的降低多码长Turbo译码的延时,最大限度的增加Turbo译码的吞吐率。
为了实现上述目的,本发明采用的技术方案为:
一种基于FPGA的码长自适应交织器,包括以下模块:
映射图样子表模块,包含n个映射图样子表,用于存储k项交织映射图样数据,子表数量n等于所支持最大码长除以最小码长的商向上取整;
多标识流生成器,用于生成多标识流和映射图样流;
标识流和映射图样流FIFO模块,用于缓存多标识流和映射图样流数据,匹配多标识流生成器和标识流解析器的处理时序;
标识流解析器,用于解析多标识流以取得有效映射图样数据;
交织映射器,根据从标识流解析器收到的有效映射图样数据,对输入码流进行交织并输出。
进一步的,所述k项交织映射图样数据依据交织器支持的最大码长计算得出,按照交错形式依次分配给n个子表,即,第1项分配给子表1第1项,第2项分配给子表2第1项,第n项分配给子表n第1项,第n+1项分配给子表1第2项,依此类推。
进一步的,所述多标识流生成器并行遍历读取映射图样子表的内容,将每个子表内容数据与实时码长进行比较,比较结果经过标识、编码,组成n个标识流,同时各子表内容数据经过排列组成映射图样流。
进一步的,所述标识流解析器从标识流和映射图样流FIFO模块中同时读出多标识流和映射图样流数据,依据多标识流对应比特选择映射图样流数据取得有效映射图样数据,然后对多标识流数据移位,循环上述操作,直至判断码长结束。
一种基于FPGA的码长自适应解交织器,包括以下模块:
映射图样子表模块,包含n个映射图样子表,用于存储k项解交织映射图样数据,子表数量n等于所支持最大码长除以最小码长的商向上取整;
多标识流生成器,用于生成多标识流和映射图样流;
标识流和映射图样流FIFO模块,用于缓存多标识流和映射图样流数据,匹配多标识流生成器和标识流解析器的处理时序;
标识流解析器,用于解析多标识流以取得有效映射图样数据;
解交织映射器模块,根据从标识流解析器收到的有效映射图样数据,对输入码流进行解交织并输出。
进一步的,所述k项解交织映射图样数据依据解交织器支持的最大码长计算得出,按照交错形式依次分配给n个子表,即,第1项分配给子表1第1项,第2项分配给子表2第1项,第n项分配给子表n第1项,第n+1项分配给子表1第2项,依此类推。
进一步的,所述多标识流生成器并行遍历读取映射图样子表的内容,每个子表内容数据与实时码长进行比较,比较结果经过标识、编码,组成n个标识流,同时各子表内容数据经过排列组成映射图样流。
进一步的,所述标识流解析器从标识流和映射图样流FIFO模块中同时读出多标识流和映射图样流数据,依据多标识流对应比特选择映射图样流数据取得有效映射图样数据,然后对多标识流数据移位,循环上述操作,直至判断码长结束。
一种基于FPGA的码长自适应交织方法,包括以下步骤:
(1)将交织的映射图样总表按照交错形式分割成多个子表存储;具体方式为:
使用Turbo译码器所支持的最大码长计算出交织映射图样总表;
根据最大码长与最小码长的倍数关系确定交织映射图样表子表数目n,即最大码长除以最小码长的商向上取整;
按照交错形式依次分配给n个子表,即,第1项分配给子表1第1项,第2项分配给子表2第1项,第n项分配给子表n第1项,第n+1项分配给子表1第2项,依此类推;
将生成的n个交织映射图样子表存储在FPGA的内部存储器中;
(2)根据实时码长度信息,并行遍历多个映射图样子表,经编码后生成多标识流和映射图样流;具体方式为:
多标识流生成器并行对n个子表进行遍历,将每个子表的内容数据与实时码长进行比较,如果小于码长,则子表的标识位为1,否则清0;如果n个子表的标识位不全为0,则对标识位进行编码;编码后每个标识位对应log2(n)+1比特数据(log2(n)值为向上取整,下同),最高位为有效标志,其余比特表示子表的位置值,n个子表对应的位置值是0 ~ (n-1);n个子表标识位编码后成为n组新的标识数据,按照有效标识靠左、子表位置值从小到大排列的原则,输出成为n个标识流;
(3)将多标识流和映射图样流输入FIFO缓存器;具体方式为:把n个标识流写入标识流FIFO缓存器,同时把n个子表的内容数据按照子表位置值从小到大、从右到左排列组成映射图样流,并写入映射图样流FIFO缓存器;
(4)解析FIFO缓存器输出的多标识流识别映射图样流中有效的映射图样数据;具体方式为:
标识流解析器从标识流FIFO缓存器和映射图样流FIFO缓存器中同时读出多标识流和映射图样流数据;n组标识流数据组成(log2(n)+1)*n比特位宽的标识数据;
按照最高位右边log2(n)比特数据所表示的子表位置值信息取映射图样流数据中对应的子表内容数据送给交织映射器,如果码长没有结束,则把(log2(n)+1)*n比特位宽的标识数据左移(log2(n)+1)比特,即左移一组标识数据,继续判断最高位,如果为1表示有效,按照最高位右边log2(n)比特数据所表示的子表位置值信息取映射图样流数据中对应子表内容数据送给交织映射器,继续重复此流程;如果最高位为0则表示无效,此时读出新的标识流和映射图样流数据,再继续重复上述流程;
(5)使用有效映射图样数据完成交织映射。
一种基于FPGA的码长自适应解交织方法,包括以下步骤:
(1)将解交织的映射图样总表按照交错形式分割成多个子表存储;具体方式为:
使用Turbo译码器所支持的最大码长计算出解交织映射图样总表;
根据最大码长与最小码长的倍数关系确定解交织映射图样表子表数目n,即最大码长除以最小码长的商向上取整;
按照交错形式依次分配给n个子表,即,第1项分配给子表1第1项,第2项分配给子表2第1项,第n项分配给子表n第1项,第n+1项分配给子表1第2项,依此类推;
将生成的n个解交织映射图样子表存储在FPGA的内部存储器中;
(2)根据实时码长度信息,并行遍历多个映射图样子表,经编码后生成多标识流和映射图样流;具体方式为:
多标识流生成器并行对n个子表进行遍历,将每个子表的内容数据与实时码长进行比较,如果小于码长,则子表的标识位为1,否则清0;如果n个子表的标识位不全为0,则对标识位进行编码;编码后每个标识位对应log2(n)+1比特数据,最高位为有效标志,其余比特表示子表的位置值,n个子表对应的位置值是0 ~ (n-1);n个子表标识位编码后成为n组新的标识数据,按照有效标识靠左、子表位置值从小到大排列的原则,输出成为n个标识流;
(3)将多标识流和映射图样流输入FIFO缓存器;具体方式为:把n个标识流写入标识流FIFO缓存器,同时把n个子表的内容数据按照子表位置值从小到大、从右到左排列组成映射图样流,并写入映射图样流FIFO缓存器;
(4)解析FIFO缓存器输出的多标识流识别映射图样流中有效的映射图样数据;具体方式为:
标识流解析器从标识流FIFO缓存器和映射图样流FIFO缓存器中同时读出多标识流和映射图样流数据;n组标识流数据组成(log2(n)+1)*n比特位宽的标识数据;
按照最高位右边log2(n)比特数据所表示的子表位置值信息取映射图样流数据中对应的子表内容数据送给解交织映射器,如果码长没有结束,则把(log2(n)+1)*n比特位宽的标识数据左移(log2(n)+1)比特,即左移一组标识数据,继续判断最高位,如果为1表示有效,按照最高位右边log2(n)比特数据所表示的子表位置值信息取映射图样流数据中对应子表内容数据送给解交织映射器,继续重复此流程;如果最高位为0则表示无效,此时读出新的标识流和映射图样流数据,再继续重复上述流程;
(5)使用有效映射图样数据完成解交织映射。
本发明的有益效果在于:
1、本发明通过多标识流和映射图样流形成高效流水线结构,其中多标识流生成器对映射图样子表的遍历时间小于等于最小码长时间,标识流解析器和交织/解交织映射器的处理时间等于实时码长时间,所以,对于多码长交织/解交织,吞吐率等于实时码长数据处理的吞吐率。
2、本发明有效解决了背景技术中的资源和性能问题,使得Turbo译码器在硬件资源受限的条件下有效提升了吞吐率和性能。
附图说明
图1是本发明实施例的原理框图。
图2是交织/解交织映射图样表分成多个子表的示意图。
图3是多标识流生成器的原理框图。
图4是标识流解析器处理流程示意图。
具体实施方法
下面结合附图对本发明的技术方案及技术效果做进一步的详细说明。
为了简化叙述,下面将交织器和解交织器一同描述。
一种基于FPGA的码长自适应交织/解交织器,该装置由映射图样子表、多标识流生成器、标识流和映射图样流FIFO、标识流解析器及交织/解交织映射器等部分组成。各部分并行工作,多标识数据和映射图样数据在各部分之间以流的形式传输,形成高效地流水线结构。
该装置的实现方式如下:
将交织/解交织的映射图样总表按照交错形式分割成多个子表存储;
根据实时码长度信息,并行遍历多个映射图样子表,经编码后生成多标识流和映射图样流;
将多标识流和映射图样流输入FIFO;
解析FIFO输出的多标识流识别映射图样流中有效的映射图样数据;
使用有效映射图样数据完成交织和解交织。
具体步骤如下:
首先,使用Turbo译码器所支持的最大码长计算出交织/解交织映射图样总表。
根据最大码长与最小码长的倍数关系确定交织/解交织映射图样表子表数目,即最大码长除以最小码长,对商向上取整,所得整数n就是交织/解交织映射图样子表数。
把交织/解交织映射图样总表按照交错形式分配给n个交织/解交织映射图样子表;即,第1项分配给子表1第1项,第2项分配给子表2第1项,第n项分配给子表n第1项,第n+1项分配给子表1第2项,依此类推;生成n个交织/解交织映射图样子表。n个交织/解交织映射图样子表存储在FPGA或ASIC的内部存储器中。
多标识流生成器并行对n个子表进行遍历,将每个子表的内容数据与实时码长进行比较,如果该子表小于码长,该子表的标识位为1,否则清0。如果n个子表的标识位不全为0,则对标识位进行编码。
编码后每个标识位对应log2(n)+1比特数据,最高位为有效标志,其余比特表示子表的位置值,n个子表对应的位置值是0 ~ (n-1)。
n个子表标识位编码后成为n组新的标识数据,按照有效标识靠左、子表位置值从小到大排列的原则,输出成为n个标识流。
把n个标识流写入标识流FIFO,同时把n个子表的内容数据按照子表位置值从小到大、从右到左排列组成映射图样流写入映射图样流FIFO。
标识流解析器从多标识流和映射图样流FIFO同时读出多标识流和映射图样流数据。
n组标识流数据组成(log2(n)+1)*n比特位宽的标识数据。首先按照最高位右边log2(n)比特数据所表示的子表位置值信息取映射图样流数据中对应的子表内容数据送给交织/解交织映射器。如果码长没有结束,把(log2(n)+1)*n比特位宽的标识数据左移(log2(n)+1)比特,即左移一组标识数据,继续判断最高位,如果为1表示有效,按照最高位右边log2(n)比特数据所表示的子表位置值信息取映射图样流数据中对应子表内容数据送给交织/解交织映射器,继续重复此流程;如果最高位为0表示无效,则从标识流和映射图样流FIFO同时读出新的标识流和映射图样流数据,再继续重复上述流程。
交织/解交织映射器根据收到的映射图样表项数据进行交织或解交织映射。
下面为一个更具体的例子:
一种基于FPGA的码长自适应交织器/解交织器,其总体原理如图1所示,由五部分组成,分别是映射图样子表、多标识流生成器、标识流和映射图样流FIFO、标识流解析器和交织/解交织映射器。多标识流生成器从多个映射图样子表中同时读取映射图样数据并依据实时码长信息产生多标识流和映射图样流。多标识流生成器、标识流和映射图样流FIFO、标识流解析器和交织/解交织映射器组成高效流水线结构,多标识流和映射图样流从多标识流生成器产生,经标识流和映射图样流FIFO后由标识流解析器解析出对当前码长有效的映射图样数据送给交织/解交织映射器完成输入码流的交织/解交织。
实施例中,最大码长是最小码长的3.9倍,向上取整为4。预先计算出最大码长的交织/解交织映射图样总表,如图2所示,分成4个子表。方法是总表表项1分配给子表1的表项1,总表表项2分配给子表2的表项1,总表表项3分配给子表3的表项1,总表表项4分配给子表4的表项1。依次类推,把总表表项数据交错分配给4个子表,生成4个交织/解交织映射图样子表。4个子表在FPGA中使用内部块存储器存储,所需存储资源和存储1个总表相等。
多标识流生成器原理框图如图3所示。同时读取BRAM存储的4个子表,每个时钟周期读取4个映射图样数据,在最大码长的四分之一的时钟数内完成对4个子表的遍历。4个数据分别与实时码长进行比较,小于码长则标识位为1,否则为0,生成的4个标识位比特。如果4个标识位不全为0,对每个标识位编码,每个标识位编码为3比特数据。最高位为有效标志,等于前面生成的标识位比特。当最高位为1时,其余两位是子表位置值0~3,最高位为0时,其余两位为0。例如子表2当内容数据小于实时码长时,对应的有效标识编码后为b’101。4个子表项标识位编码后成为4组新的标识数据,按照有效标识数据组靠左、子表位置值从小到大排列的原则,形成4个标识流。例如,子表1~4对应的标识位编码后是b’000、b’101、b’000和b’111,排列后为b’101、b’111、b’000和b’000。
此编码和标识数据组排列过程通过编码表查表实现,编码表使用FPGA内的分布式RAM,不需占用块存储器资源。4个子表项标识位组合成4比特查表地址,子表1在最低位。编码表如下:
如前例,地址为b’1010,或地址10,查表后的标识码为0xbc0,即b’101 111 000000。
当其它实施例中最大码长和最小码长相比倍数很大时,可以把码长区间进行分段处理,以避免编码表深度过深和标识流数据位宽过大。
多标识流生成器把查表后的标识码数据作为4标识流写入标识流FIFO。同时把4个子表内容数据按照子表位置值从小到大、从右到左排列组成映射图样流写入映射图样流FIFO。
标识流解析器从标识流和映射图样流FIFO同时读出4个标识流和映射图样流数据。4个标识流数据组成12比特位宽的标识数据,处理流程如图4所示。首先按照最高位右侧2比特数据所表示的子表位置值信息取映射图样流数据中对应子表内容数据送给交织/解交织映射器。如果码长结束,则此次解析结束,如果码长没有结束,把12比特位宽的标识数据左移3比特,判断最高位,如果为1表示有效,按照最高位右侧2比特数据所表示的子表位置值信息取映射图样流数据中对应子表内容数据送给交织/解交织映射器,继续此流程;如果最高位为0表示无效,则返回从标识流和映射图样流FIFO,读出新的4个标识流和映射图样流数据,再继续上述流程。
交织/解交织映射器根据收到的对实时码长有效的映射图样数据对输入码流进行交织或解交织。
本发明在FPGA或ASIC中实现硬件电路,实时根据不同码长度要求,通过遍历多个交织或解交织映射图样存储子表,生成多个标识流和映射图样流,再通过解析多标识流取得有效映射图样完成交织或解交织,可应用于多码长Turbo译码或其它可变长度译码。标识流的数目由所支持的最大码长和最小码长的倍数关系决定。本发明解决了多码长译码中交织器/解交织器的处理延时不小于最大码长时间导致吞吐率受限的问题,使得不同码长交织器/解交织器的处理延时等于各自的码长时间,在硬件资源受限的前提下,可有效提高可变码长译码器的吞吐率和性能,适用于多码长Turbo译码或其它可变长度译码。
Claims (2)
1.一种基于FPGA的码长自适应交织方法,其特征在于,采用基于FPGA的码长自适应交织器实现,该码长自适应交织器包括以下五个模块:
映射图样子表模块,包含n个映射图样子表,用于存储k项交织映射图样数据,子表数量n等于所支持最大码长除以最小码长的商向上取整;
多标识流生成器,用于生成多标识流和映射图样流;
标识流和映射图样流FIFO模块,用于缓存多标识流和映射图样流数据,匹配多标识流生成器和标识流解析器的处理时序;
标识流解析器,用于解析多标识流以取得有效映射图样数据;
交织映射器,根据从标识流解析器收到的有效映射图样数据,对输入码流进行交织并输出;
五个模块并行工作,多标识数据和映射图样数据在各模块之间以流的形式传输,形成流水线结构;
该方法包括以下步骤:
(1)将交织的映射图样总表按照交错形式分割成多个子表存储;具体方式为:
使用Turbo译码器所支持的最大码长计算出交织映射图样总表;
根据最大码长与最小码长的倍数关系确定交织映射图样表子表数目n,即最大码长除以最小码长的商向上取整;
按照交错形式依次分配给n个子表,即,第1项分配给子表1第1项,第2项分配给子表2第1项,第n项分配给子表n第1项,第n+1项分配给子表1第2项,依此类推;
将生成的n个交织映射图样子表存储在FPGA的内部存储器中;
(2)根据实时码长度信息,并行遍历多个映射图样子表,经编码后生成多标识流和映射图样流;具体方式为:
多标识流生成器并行对n个子表进行遍历,将每个子表的内容数据与实时码长进行比较,如果小于码长,则子表的标识位为1,否则清0;如果n个子表的标识位不全为0,则对标识位进行编码;编码后每个标识位对应ceil(log2(n)+1)比特数据,ceil( )表示向上取整,最高位为有效标志,其余比特表示子表的位置值,n个子表对应的位置值是0 ~ (n-1);n个子表标识位编码后成为n组新的标识数据,按照有效标识靠左、子表位置值从小到大排列的原则,输出成为n个标识流;
(3)将多标识流和映射图样流输入FIFO缓存器;具体方式为:把n个标识流写入标识流FIFO缓存器,同时把n个子表的内容数据按照子表位置值从小到大、从右到左排列组成映射图样流,并写入映射图样流FIFO缓存器;
(4)解析FIFO缓存器输出的多标识流识别映射图样流中有效的映射图样数据;具体方式为:
标识流解析器从标识流FIFO缓存器和映射图样流FIFO缓存器中同时读出多标识流和映射图样流数据;n组标识流数据组成ceil(log2(n)+1)*n比特位宽的标识数据;
按照最高位右边ceil(log2(n))比特数据所表示的子表位置值信息取映射图样流数据中对应的子表内容数据送给交织映射器,如果码长没有结束,则把ceil(log2(n)+1)*n比特位宽的标识数据左移ceil(log2(n)+1)比特,即左移一组标识数据,继续判断最高位,如果为1表示有效,按照最高位右边ceil(log2(n))比特数据所表示的子表位置值信息取映射图样流数据中对应子表内容数据送给交织映射器,继续重复此流程;如果最高位为0则表示无效,此时读出新的标识流和映射图样流数据,再继续重复上述流程;
(5)使用有效映射图样数据完成交织映射。
2.一种基于FPGA的码长自适应解交织方法,其特征在于,采用基于FPGA的码长自适应解交织器实现,该码长自适应解交织器包括以下五个模块:
映射图样子表模块,包含n个映射图样子表,用于存储k项解交织映射图样数据,子表数量n等于所支持最大码长除以最小码长的商向上取整;
多标识流生成器,用于生成多标识流和映射图样流;
标识流和映射图样流FIFO模块,用于缓存多标识流和映射图样流数据,匹配多标识流生成器和标识流解析器的处理时序;
标识流解析器,用于解析多标识流以取得有效映射图样数据;
解交织映射器模块,根据从标识流解析器收到的有效映射图样数据,对输入码流进行解交织并输出;
五个模块并行工作,多标识数据和映射图样数据在各模块之间以流的形式传输,形成流水线结构;
该方法包括以下步骤:
(1)将解交织的映射图样总表按照交错形式分割成多个子表存储;具体方式为:
使用Turbo译码器所支持的最大码长计算出解交织映射图样总表;
根据最大码长与最小码长的倍数关系确定解交织映射图样表子表数目n,即最大码长除以最小码长的商向上取整;
按照交错形式依次分配给n个子表,即,第1项分配给子表1第1项,第2项分配给子表2第1项,第n项分配给子表n第1项,第n+1项分配给子表1第2项,依此类推;
将生成的n个解交织映射图样子表存储在FPGA的内部存储器中;
(2)根据实时码长度信息,并行遍历多个映射图样子表,经编码后生成多标识流和映射图样流;具体方式为:
多标识流生成器并行对n个子表进行遍历,将每个子表的内容数据与实时码长进行比较,如果小于码长,则子表的标识位为1,否则清0;如果n个子表的标识位不全为0,则对标识位进行编码;编码后每个标识位对应ceil(log2(n)+1)比特数据,最高位为有效标志,其余比特表示子表的位置值,n个子表对应的位置值是0 ~ (n-1);n个子表标识位编码后成为n组新的标识数据,按照有效标识靠左、子表位置值从小到大排列的原则,输出成为n个标识流;
(3)将多标识流和映射图样流输入FIFO缓存器;具体方式为:把n个标识流写入标识流FIFO缓存器,同时把n个子表的内容数据按照子表位置值从小到大、从右到左排列组成映射图样流,并写入映射图样流FIFO缓存器;
(4)解析FIFO缓存器输出的多标识流识别映射图样流中有效的映射图样数据;具体方式为:
标识流解析器从标识流FIFO缓存器和映射图样流FIFO缓存器中同时读出多标识流和映射图样流数据;n组标识流数据组成ceil(log2(n)+1)*n比特位宽的标识数据;
按照最高位右边ceil(log2(n))比特数据所表示的子表位置值信息取映射图样流数据中对应的子表内容数据送给解交织映射器,如果码长没有结束,则把ceil(log2(n)+1)*n比特位宽的标识数据左移ceil(log2(n)+1)比特,即左移一组标识数据,继续判断最高位,如果为1表示有效,按照最高位右边ceil(log2(n))比特数据所表示的子表位置值信息取映射图样流数据中对应子表内容数据送给解交织映射器,继续重复此流程;如果最高位为0则表示无效,此时读出新的标识流和映射图样流数据,再继续重复上述流程;
(5)使用有效映射图样数据完成解交织映射。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210280968.9A CN114745076B (zh) | 2022-03-22 | 2022-03-22 | 一种基于fpga的码长自适应交织/解交织器及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210280968.9A CN114745076B (zh) | 2022-03-22 | 2022-03-22 | 一种基于fpga的码长自适应交织/解交织器及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114745076A CN114745076A (zh) | 2022-07-12 |
CN114745076B true CN114745076B (zh) | 2024-04-30 |
Family
ID=82276931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210280968.9A Active CN114745076B (zh) | 2022-03-22 | 2022-03-22 | 一种基于fpga的码长自适应交织/解交织器及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114745076B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003032125A (ja) * | 2001-05-10 | 2003-01-31 | Hitachi Ltd | ターボ復号器並びにターボ符号器及びターボ符号器、復号器を含む無線基地局 |
CN103905066A (zh) * | 2012-12-25 | 2014-07-02 | 联想(北京)有限公司 | Turbo码译码装置和方法 |
CN113872615A (zh) * | 2021-10-09 | 2021-12-31 | 中国电子科技集团公司第五十四研究所 | 一种可变长度的Turbo码译码器装置 |
-
2022
- 2022-03-22 CN CN202210280968.9A patent/CN114745076B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003032125A (ja) * | 2001-05-10 | 2003-01-31 | Hitachi Ltd | ターボ復号器並びにターボ符号器及びターボ符号器、復号器を含む無線基地局 |
CN103905066A (zh) * | 2012-12-25 | 2014-07-02 | 联想(北京)有限公司 | Turbo码译码装置和方法 |
CN113872615A (zh) * | 2021-10-09 | 2021-12-31 | 中国电子科技集团公司第五十四研究所 | 一种可变长度的Turbo码译码器装置 |
Non-Patent Citations (1)
Title |
---|
基于FPGA的Turbo译码交织器设计;赵旦峰;雷李云;罗清华;;信息与电子工程;20070625(03);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114745076A (zh) | 2022-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1138352C (zh) | 通信系统的交织/解交织装置和方法 | |
CN1140059C (zh) | 迭代解映射 | |
JP3347335B2 (ja) | インタリービング方法、インタリービング装置、及びインタリーブパターン作成プログラムを記録した記録媒体 | |
CN100542051C (zh) | 解码方法和设备 | |
CN101553990B (zh) | Turbo码交织器尺寸的确定 | |
KR100526512B1 (ko) | 이동 통신시스템의 직렬 쇄상 컨볼루션 부호화를 위한 인터리빙장치 및 방법 | |
CN101079641B (zh) | 二维交织设备及方法 | |
CN1140060C (zh) | 用于Turbo编码的交织器和交织方法 | |
Gnaedig et al. | Design of three-dimensional multiple slice turbo codes | |
KR100628201B1 (ko) | 터보 디코딩 방법 | |
CN114745076B (zh) | 一种基于fpga的码长自适应交织/解交织器及方法 | |
CN1157854C (zh) | 一种高速Turbo码解码器 | |
EP1537673A2 (en) | Method of interleaving/deinterleaving in a communication system | |
JP5937194B2 (ja) | 低密度パリティ検査符号を使用するシステムにおける信号マッピング/デマッピング装置及び方法 | |
JP2002527981A (ja) | ターボ符号のためのハイブリッドインタリーバー | |
CN1129257C (zh) | 串行回溯的最大似然解码方法及其使用该方法的解码器 | |
CN101667839B (zh) | 交织方法 | |
Chayat | Turbo codes for incoherent M-ary orthogonal signaling | |
KR100519335B1 (ko) | 채널 인터리빙 방법 | |
KR100672347B1 (ko) | 가변 데이터 레이트 매칭 방법 | |
Hanpinitsak et al. | 2D interleaver design for image transmission over severe burst-error environment | |
KR20000001483A (ko) | 다중테일을 갖는 터보코드 및 그의 부호화/복호화방법 및 그를이용한 부호기/복호기 | |
CN1361596A (zh) | 一种并行级联卷积码交织和解交织的实现方法和装置 | |
Vafi et al. | Weight distribution of turbo codes with convolutional interleavers | |
KR100306478B1 (ko) | 통신시스템에서연집에러감소시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |