CN101904102B - 用于剪除式交织器和解交织器的有效地址生成 - Google Patents

用于剪除式交织器和解交织器的有效地址生成 Download PDF

Info

Publication number
CN101904102B
CN101904102B CN2008801222971A CN200880122297A CN101904102B CN 101904102 B CN101904102 B CN 101904102B CN 2008801222971 A CN2008801222971 A CN 2008801222971A CN 200880122297 A CN200880122297 A CN 200880122297A CN 101904102 B CN101904102 B CN 101904102B
Authority
CN
China
Prior art keywords
address
mapping
bit
function
formula
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.)
Expired - Fee Related
Application number
CN2008801222971A
Other languages
English (en)
Other versions
CN101904102A (zh
Inventor
M·曼苏尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN101904102A publication Critical patent/CN101904102A/zh
Application granted granted Critical
Publication of CN101904102B publication Critical patent/CN101904102B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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
    • H03M13/2703Coding, 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 the interleaver involving at least two directions
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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
    • H03M13/2703Coding, 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 the interleaver involving at least two directions
    • H03M13/2725Turbo interleaver for 3rd generation partnership project 2 [3GPP2] mobile telecommunication systems, e.g. as defined in the 3GPP2 technical specifications C.S0002
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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
    • H03M13/275Interleaver wherein the permutation pattern is obtained using a congruential operation of the type y=ax+b modulo c
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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
    • H03M13/276Interleaving address generation
    • H03M13/2764Circuits therefore
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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
    • H03M13/2789Interleaver providing variable interleaving, e.g. variable block sizes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing

Abstract

本发明描述了用于为剪除式交织器和剪除式解交织器有效生成地址的技术。在一个方面中,可以通过确定对应于线性地址的无效映射的总数将线性地址映射到交织地址。可以将线性地址与无效映射的总数求和从而获得中间地址。随后,可以基于中间地址的非剪除式交织器函数确定剪除式交织器的交织地址。剪除式交织器可以是剪除式比特反转交织器、由比特反转函数和线性同余序列函数组成的剪除式Turbo交织器、或者某些其他类型的交织器。可以迭代确定无效映射的总数,并且对于不同类型的剪除式交织器可以以不同方式执行每次迭代。

Description

用于剪除式交织器和解交织器的有效地址生成
根据35 U.S.C.§119要求优先权
本专利申请要求2007年12月21日提交的、题目为“PARALLELPRUNED INTERLEAVER METHOD AND APPARATUS”的美国临时申请No.61/016,045的优先权,该临时申请已受让给本申请的受让人,并且通过引用明确地纳入本申请。
技术领域
概括地说,本公开涉及数据处理,并且具体地说,涉及交织器和解交织器。
背景技术
交织器是接收输入数据、对输入数据进行置乱(shuffle)或重新排序、并且提供已置乱的数据作为输出数据的功能块。在大多数无线通信系统中使用交织器减少噪声和干扰对性能的影响。例如,普遍利用信道交织来防止由于噪声和干扰造成的突发错误。在发射机处,信道交织器对来自信道编码器的码比特进行置乱,使得连续的码比特在经交织的比特中是分散的。当突发错误中包括经交织的比特序列时,在接收机处通过信道解交织器进行互补的再次置乱之后,这些经交织的比特被分散开。这样,交织打破了突发错误中包括的连续比特之间的时间相关性,其可以改善性能。
可以通过在特定线性地址处接收数据值(例如,码比特)、基于该线性地址确定交织地址、并且在交织地址处存储数据值来执行交织。从线性地址到交织地址的映射可以基于查找表。可以支持多种分组大小,并且可以为每种受支持的分组大小生成查找表。那么,存储用于许多不同分组大小、将线性地址映射到交织地址的许多查找表,可能需要大量存储器。因此,可能期望如所需的,实时有效地计算交织地址。
发明内容
本发明描述了用于为剪除式交织器和剪除式解交织器有效确定地址的技术。非剪除式交织器和非剪除式解交织器具有是2的乘方的大小,使得从0至M-1的整个地址范围是有效的,其中,M=2n并且n是用于地址的比特数。剪除式交织器和剪除式解交织器具有的大小不是2的乘方,使得范围L至M-1内的地址是无效的,其中,L是剪除式交织器或解交织器的大小。
在一个方面中,对于剪除式交织器,可以通过确定对应于线性地址的无效映射的总数,可以将线性地址映射到交织地址。无效映射是线性地址到交织地址的一种映射,基于非剪除式交织器函数,该交织地址不在0至L-1的范围内。可以将线性地址与无效映射的总数求和以获得中间地址。随后,可以基于中间地址的非剪除式交织器函数确定剪除式交织器的交织地址。
在一种设计中,剪除式交织器可以是剪除式比特反转交织器(BRI)。可以提供中间地址的比特反转版本作为剪除式BRI的交织地址。在另一种设计中,剪除式交织器可以是剪除式Turbo交织器,其包括二维(2D)阵列中的多个行的比特反转函数以及每一行中的多个项的线性同余序列(LCS)函数。可以基于中间地址的非剪除式Turbo交织器函数确定剪除式Turbo交织器的交织地址。
在一种设计中,可以迭代地确定无效映射的总数,例如,可以进行预定次数的迭代,或者直到两次连续迭代获得相同总数的无效映射为止。如下所述,对于不同类型的剪除式交织器,可以以不同方式执行每次迭代。
在另一个方面中,对于剪除式解交织器,可以通过确定对应于交织地址的无效映射的总数,将交织地址映射到线性地址。可以基于交织地址的非剪除式解交织器函数确定中间地址。随后,可以从中间地址中减去无效映射的总数,从而获得剪除式解交织器的线性地址。
下面进一步详细描述本公开的各个方面和特征。
附图说明
图1示出了基站和终端的方框图;
图2示出了发射(TX)数据处理器的方框图;
图3示出了Turbo编码器的方框图;
图4示出了接收(RX)数据处理器的方框图;
图5示出了Turbo解码器的方框图;
图6说明了迭代确定无效映射的总数;
图7示出了对于一次迭代计算无效映射的数目;
图8示出了用于剪除式BRI的地址生成器的方框图;
图9示出了地址生成器内的逻辑电路的方框图;
图10示出了前向剪除式BRI的方框图;
图11示出了用于剪除式交织器的地址生成器的方框图;
图12示出了用于剪除式解交织器的地址生成器的方框图;
图13示出了用于对数据进行重新排序的过程。
具体实施方式
这里所描述的技术可以用于诸如通信、网络、计算等的各种应用。例如,这些技术可以用于诸如码分多址(CDMA)、时分多址(TDMA)、频分多址(FDMA)、正交FDMA(OFDMA)、单载波FDMA(SC-FDMA)和其他系统的无线通信系统。术语“系统”和“网络”通常可交替使用。CDMA系统可以实现诸如cdma2000、全球陆地无线电接入(UTRA)等的无线电技术。cdma2000覆盖IS-2000、IS-95和IS-856标准。UTRA包括宽带CDMA(WCDMA)和CDMA的其他变形。TDMA系统可以实现诸如全球移动通信系统(GSM)的无线电技术。OFDMA系统可以实现诸如超移动宽带(UWB)、演进UTRA(E-UTRA)、IEEE 802.11(Wi-Fi)、IEEE 802.16(WiMAX)、IEEE 802.20、Flash-
Figure BPA00001161522900041
等的无线电技术。UTRA、E-UTRA和GSM是全球移动电信系统(UMTS)的组成部分。3GPP长期演进(LTE)是使用E-UTRA的UMTS的即将发布的版本。在来自名为“第三代合作计划”(3GPP)组织的文件中对UTRA、E-UTRA、GSM、UMTS和LTE进行了描述。在来自名为“第三代合作计划2”(3GPP2)组织的文件中对cdma2000和UWB进行了描述。为清楚起见,下面描述了用于UWB的技术的某些方面。
这里所描述的技术可以用于终端以及基站。终端还可以称为移动台、用户设备、接入终端、用户单元、站等。终端可以是蜂窝电话、个人数字助理(PDA)、无线通信设备、无线调制解调器、手持设备、膝上型计算机、无绳电话、无线本地环路(WLL)站等。基站还可以称为节点B、演进节点B(eNB)、接入点等。
图1示出了无线通信系统中基站110和终端150的设计的方框图。基站110装配了T个天线,并且终端150装配了R个天线,其中,一般T≥1且R≥1。
在基站110处,TX数据处理器120可以从数据源112接收数据、基于分组格式对数据进行处理(例如,编码、交织和调制)、并且提供数据符号。分组格式可以指示分组大小、调制和编码方案(MCS)等。分组格式还可以称为速率、传送格式等。TX多输入多输出(MIMO)处理器130可以将数据符号与导频符号复用,并且如果可用就执行预编码(例如,用于波束成形)。处理器130可以将T个输出符号流提供给T个调制器(MOD)132a至132t。每个调制器132可以对其输出符号流进行处理(例如,用于OFDM、SC-FDM、CDMA等),从而获得输出采样流。每个调制器132可以进一步调整(例如,模拟变换、滤波、放大和上变换)其输出采样流,并且生成前向链路信号。可以分别从T个天线134a至134t发送来自调制器132a至132t的T个前向链路信号。
在终端150处,R个天线152a至152t可以接收前向链路信号,并且每个天线152可以将接收信号提供给各自的解调器(DEMOD)154。每个解调器154可以对其所接收的信号进行处理(例如,滤波、放大、下变换和数字化)从而获得采样,并且可以进一步对采样进行处理(例如,用于OFDM、SC-FDM、CDMA等)从而获得接收符号。MIMO检测器160可以采用从所接收的导频符号得到的信道估计对所接收的数据符号执行MIMO检测,并且提供数据符号估计。RX数据处理器170可以进一步对数据符号估计进行处理(例如,解调、解交织和解码),并且将解码后的数据提供给数据宿172。
在终端150处,可以通过TX数据处理器182对来自数据源180的数据进行处理、通过TX MIMO处理器184将其与导频复用和处理、并且通过调制器154a至154r对其进行进一步处理,从而生成可以经天线152a至152r发送的R个反向链路信号。在基站110处,可以通过T个天线134a至134t接收反向链路信号、通过解调器132a至132t对其进行处理、通过MIMO检测器136对其进行检测、并且通过RX数据处理器138对其进行进一步处理,从而恢复终端150所发送的数据。
控制器/处理器140和190可以分别指导在基站110和终端150处的操作。存储器142和192可以分别存储用于基站110和终端150的数据和程序代码。
图2示出了TX数据处理器120的设计的方框图,其也可以用于图1中的TX数据处理器182。在TX数据处理器120内,分割单元210可以接收要发送的数据,并且将数据分割成具有所选择分组大小的分组。分组还可以称为传送块、码块、子分组等。可以单独对每个分组进行编码和解码。每个分组可以具有固定大小或可变大小。例如,可以基于诸如要发送的数据量、可用资源量等的各种因素,从一组受支持的分组大小中选择分组大小。分组大小可以在128至16,384比特(对于UWB)范围或者某些其他范围内。
循环冗余校验(CRC)生成器220可以为每个分组生成CRC值,并且将该CRC值附加到该分组。Turbo编码器230可以基于Turbo码对每个分组进行编码,并且提供已编码分组。速率匹配单元240可以基于所选择的码速率来选择每个已编码分组中的码比特的子集,并且可以删除已编码分组中的剩余比特。信道交织器250可以对每个已编码分组中未删除的码比特进行交织,并且提供交织分组。交织可以对于码比特提供时间、频率和/或空间差异性。符号映射器260可以基于所选择的调制方案将交织比特映射到数据符号。可以基于分组格式来确定分组大小、码速率和调制方案,可以基于信道条件、终端性能、系统资源可用性等选择分组格式。
图3示出了图2中Turbo编码器230的设计的方框图。Turbo编码器230实现并行级联卷积码(PCCC),并且包括两个成员编码器310a和310b、Turbo交织器320和复用器(Mux)330。Turbo编码器230对具有L个数据比特的分组进行编码,并且提供对应的具有S个码比特的已编码分组,其中,L和S可以是任何恰当的值。
在Turbo编码器230中,Turbo交织器320可以基于Turbo交织器函数对分组中的数据比特(表示为x)进行交织。成员编码器310a可以基于第一成员码对数据比特进行编码,并且提供第一奇偶校验位(表示为y)。类似地,成员编码器310b可以基于第二成员码对来自Turbo交织器320的交织数据比特进行编码,并且提供第二奇偶校验位(表示为z)。成员编码器310a和310b可以实现两个递归的系统成员码,其可以是卷积码。复用器330可以接收数据比特和来自成员编码器310a和310b的奇偶校验位、将数据比特和奇偶校验位复用、并且提供已编码分组的码比特。码比特可以包括数据比特,其后跟随第一奇偶校验位,并且然后其后跟随第二奇偶校验位。
在一种设计中,每个成员编码器310可以实现速率1/3约束长度4成员卷积码,并且Turbo编码器230可以实现速率1/5 Turbo码。Turbo编码器230可以接收具有可变大小L的分组,并且可以对于已编码分组生成5L个码比特。还可以采用具有其他码速率和/或约束长度的成员卷积码来实现Turbo编码器230。
图4示出了RX数据处理器170的设计的方框图,其也可以用于图1中的RX数据处理器138。在RX数据处理器170内,对数似然比(LLR)计算单元410可以从MIMO检测器160接收数据符号估计,并且为每个数据符号估机计算码比特的LLR。可以通过将B个码比特映射到信号星座图中的复数值获得数据符号。可以基于对应的数据符号估计为数据符号的B个码比特计算B个LLR。如果给定了码比特的数据符号估计,每个码比特的LLR可以指示出该码比特出现的可能性是零(‘0’)还是一(‘1’)。信道解交织器420对LLR进行解交织的方式可以与图2中的信道交织器250进行交织的方式相反。解速率匹配单元430对解交织的LLR进行解速率匹配的方式可以与图2中的单元240进行速率匹配的方式相反,并且提供输入LLR。Turbo解码器440可以对输入LLR的每个分组进行解码,并且提供已解码分组。CRC校验器450可以对每个已解码分组进行校验,并且提供该分组的解码状态。装配器460可以装配已解码分组,并且提供已解码的数据。
图5示出了图4中Turbo解码器440的设计的方框图。在Turbo解码器440内,解复用器(Demux)510可以接收分组的输入LLR,并且将输入LLR解复用为数据比特x的LLR X、第一奇偶校验位y的LLR Y以及第二奇偶校验位z的LLR Z。软输入软输出(SISO)解码器520a可以从解复用器510接收数据比特LLR X和第一奇偶校验位LLR Y,并且对来自Turbo解交织器540的数据比特LLR X2进行解交织。SISO解码器520a可以基于第一成员码得到数据比特的新的LLR X1。Turbo交织器530可以基于用于图3中Turbo交织器320的Turbo交织器函数对数据比特LLR X1进行交织,并且提供交织的数据比特
Figure BPA00001161522900091
SISO解码器520b可以从解复用器510接收数据比特LLR X和第二奇偶校验位LLR Z,并且从Turbo交织器530接收交织的数据比特
Figure BPA00001161522900092
SISO解码器520b可以基于第二成员码得到数据比特的新的
Figure BPA00001161522900093
Turbo解交织器540可以基于Turbo交织器函数的相反操作对数据比特
Figure BPA00001161522900094
进行解交织,并且提供解交织的数据比特LLRX2
SISO解码器520a和520b可以是最大后验(maximum a posteriori,MAP)解码器,其可以实现BCJR MAP算法或者较低复杂度的派生算法。SISO解码器520a和520b还可以实现软输出维特比(SOV)算法或者本领域中已知的一些其他解码算法。SISO解码器520a和520b进行的解码可以迭代多次,例如6、8、10次或更多次。在每次迭代之后,解码结果可以更加可靠。在完成所有解码迭代之后,检测器560可以从SISO解码器520a接收最终的数据比特LLR、对每个LLR作出硬判决、并且提供已解码的比特。
可以采用诸如比特反转交织器(BRI)、剪除式比特反转交织器(PBRI)等的各种设计来实现图2中的信道交织器250。BRI根据比特反转规则将n比特线性地址x映射到n比特交织地址y,使得相对于x的n个比特,y的n个比特的顺序是相反的。可以通过以下BRI函数来指定n比特线性地址x的BRI映射:
y=πn(x)                        (1)
其中,πn( )是BRI函数。地址x和y的值在0至M-1的范围内,其中,M=2n是BRI的大小并且是2的乘方。通过对x的n个比特进行反转并且使用反转后的n个比特y,可以很容易将任何线性地址x映射到对应的交织地址y。
剪除式BRI根据比特反转规则,将小于L的n比特线性地址x映射到小于L的n比特交织地址y,其中,L<M。然而,剪除式BRI的大小是L,而母交织器的大小是M。L可以等于分组大小,并且对于UWB,可以在128至13,684的范围内。通过剪除式BRI函数,地址L至M-1被剪除,并且地址L至M-1不被认为是有效映射。可以通过以下剪除式BRI函数来指定采用参数L对n比特线性地址x进行的剪除式BRI映射:
y=βn,L(x)                     (2)
其中,βn,L( )是剪除式BRI函数。地址x和y的值在0至L-1范围内,其中,L是剪除式BRI的大小而不是2的乘方。
对于给定的x的映射y=βn,L(x),可以以如下方式按顺序确定:从i=0开始,在进行映射过程中,维持无效映射φ(x)的数字并跳过它。φ(x)可以初始化为0。如果i+φ(x)映射到有效交织地址,使得πn(i+φ(x))<L,那么i可以加1。否则,如果i+φ(x)映射到无效的交织地址,那么φ(x)可以加1。可以重复该操作,直到i达到x并且πn(i+φ(x))有效为止。
可以采用下面的伪代码来实现也被称为算法1的顺序剪除式BRI算法:
i=0
φ(x)=0
while(i≤x)
   if πn(i+φ(x))≥L
     then φ(x)=φ(x)+1,
     else βn,L(i)=πn(i+φ(x))
                 i=i+1
     end
end
算法1通过(i)从i=0开始遍历M个线性地址,以及(ii)对每个线性地址i确定交织地址,基本上生成M个交织地址的完整列表。随后,通过删除等于或者大于L的交织地址来剪除完整列表,从而获得交织地址的剪除列表。随后,将线性地址x映射到剪除列表中的第x个交织地址。
对于L=19和M=32的情况,表1给出了示例性BRI映射和示例性剪除式BRI映射。在表1中,“十进制”列提供了以十进制表示的地址,“二进制”列提供了以二进制表示的地址。作为例子,采用BRI映射将线性地址x=7映射到交织地址y=28,并且采用剪除式BRI映射将线性地址x=7映射到交织地址y=10。通过在最后两列中的“x”表示无效映射。
表1  对于L=19和M=32的BRI映射和剪除式BRI映射
Figure BPA00001161522900111
可以显示,算法1执行M-1次迭代,将0至L-1范围内的L个线性地址映射到0至L-1范围内的L个交织地址。当对0至L-1范围内的线性地址进行映射并且在过程中剪除M-L-1个无效映射时,算法1遍历0至2n-1范围内的所有M个线性地址,其独立于L的取值。因此,剪除式BRI的复杂度取决于母交织器M的大小而不取决于剪除式BRI的大小。
顺序剪除式BRI算法的主要缺点是交织地址是按顺序生成。具体来说,为了确定对应于线性地址x的交织地址y,首先确定的是所有小于x的线性地址的交织地址。这遵循的事实是,为了知道将x映射到哪里,必须知道在x之前的剪除式映射的数目。这种按顺序的地址生成方式可能引入延迟瓶颈,特别当对长分组进行交织/解交织和Turbo编码/解码时,诸如,在UWB中使用的16千比特(16K)大小的分组。
在一个方面中,在这里描述的有效剪除式BRI算法可以在至多log2(x-1)个步骤中为线性地址x确定交织地址y。该有效剪除式BRI算法具有简单的结构并且还可以具有很短的关键路径延迟,该结构可以使用基本逻辑门来实现。
下列说明假定剪除式BRI的大小L可以给定为:
M 2 < L < M - - - ( 3 )
如果不满足式(3)中的条件,那么可以重新构建剪除式BRI,使得M是大于或等于L的最小的2的乘方。此外,如果L=M,那么对于所有x取值,φ(x)=0,并且βn,L(x)=πn(x)。在该情况下,由于所有线性地址具有有效映射,所以不存在被剪除的地址。因此,下面说明假定L为式(3)中所定义。
根据比特反转操作的定义和式(3)中所示的条件,其遵循:如果πn(x)≥L那么πn(x+1)<L。因此,两个连续的线性地址不可以都具有无效映射。可以使用该事实获得φ(x)的递归定义,对于0≤x<L,如下:
Figure BPA00001161522900132
另外,如果i>x,那么φ(i)≥φ(x)。因此,φ( )是非递减函数。
算法1的复杂度与M类似,或者O(M)。这是因为:为了确定将x映射到哪个交织地址,首先确定在对小于x的所有线性地址进行映射的过程中,出现的无效映射φ(x)的数目。通过分析无效映射的比特结构,可以得到以复杂度O(n)来确定φ(x)的算法,其中,n=log2(M)。
量值φ(x)代表要跳过的无效映射的最小数目以使得从0到x的所有线性地址具有有效映射。等价地,φ(x)代表要增加到x的最小数目以使得在范围0至x+φ(x)内正好有x+1个线性地址具有有效映射。
图6示出了对于给定的线性地址x迭代确定φ(x)的过程。在0到x(1)=x范围内具有无效映射的线性地址的数目可以表示为σ(1)(x)=σ(x)。φ(x)不一定等于σ(1)(x),并且可以给定为φ(x)≥σ(1)(x)。这是因为:对于0至x范围内具有无效映射的σ(1)(x)个线性地址,应该检查大于x的至少σ(1)(x)个更多的线性地址以察看它们是否具有有效映射。
因此,φ(x)至少等于0至x(2)=x+σ(1)(x)范围内的无效映射的数目。在0至x(2)范围内具有无效映射的线性地址的数目可以表示为σ(2)(x)=σ(x+σ(1)(x))。从x(1)+1至x(2)的线性地址可能具有无效映射,应该对其进行考虑。因此,φ(x)至少等于0至x(3)=x+σ(2)(x)范围内的无效映射的数目。从x(2)+1到x(3)的线性地址可能具有无效映射,应该对其进行考虑。
总之,0至x(k)范围内具有无效映射的线性地址的数目可以表示为σ(k)(x)=σ(x+σ(k-1)(x)),其中,k是迭代的序号。该过程可以重复K+1次迭代,直到0至x(K+1)=x+σ(K)(x)的范围正好包含x+1个有效映射为止,其可以给定为:
Figure BPA00001161522900141
或者等价地,直到:
σ(K)(x)=σ(x+σ(K)(x))≡σ(K+1)(x)                 (6)
当满足式(5)或式(6)中的条件时,φ(x)=σ(K+1)(x)。K+1是使得式(5)或式(6)得到满足的最小迭代数目,并且可能取决于x的取值。
可以采用下面的伪代码来实现使用σ(k)(x)迭代计算
Figure BPA00001161522900142
的算法,其也称为算法2:
k=0
σ(0)(x)=0
do {
   σ(k+1)(x)=σ(x+σ(k)(x))
    k=k+1
}
while σ(k+1)(x)≠σ(k)(x)
φ(x)=σ(k+1)(x)
可以显示,算法2可以在至多n-1次迭代中收敛到φ(x),因此K<n-1。
确定
Figure BPA00001161522900151
的问题简化为:对于每次迭代k,确定σ(k)(x),其中,σ(k)(x)是0至x(k)=x+σ(k-1)(x)范围内的无效映射的数目。为简单起见,下列说明省略了σ(k)(x)和x(k)中的迭代序号k,可以分别将其简单表示为σ(x)和x。通过研究L与M-1之间的无效地址的比特表示,可以确定σ(x)。x<2n的二进制表示可以表示如下:
x=xn-1xn-2...x1x0,     xi=0或1,0≤i<n               (7)
其中,xn-1是最高有效位(MSB)并且x0是最低有效位(LSB)。符号x[i:j]可以代表一组连续的比特xi、xi-1、...、xj,从MSB到LSB进行排序。两个比特串x[i1:j1]和x[i2:j2]的串联可以表示为x[i1:j1]|x[i2:j2]。
如下,L和M-1之间的地址可以根据L-1的比特表示、按照它们的MSB进行分组。L-1的比特表示中0比特的数目可以表示为z。在L-1的比特表示中,从MSB到LSB排序,其中0比特的序号集合可以表示为I′。例如,如果L-1=1010100(二进制),那么z=4并且I′={5,3,1,0}。如下,可以将从L至M-1的地址(或者1010101≤x≤1111111)分组为z=4类:
·C′1:11×××××:16个整数,
·C′2:1011×××:8个整数,
·C′3:101011×:2个整数,以及
·C′4:1010101:1个整数。
通过从左到右扫描L-1的比特表示、并且搜索0比特,可以确定定义了这4个类的MSB。第一类C′1的MSB对应于L-1的MSB到第一个0,并且将第一个0转为1。第二类C′2的MSB对应于L-1的MSB到第二个0,并且将第二个0转为1。以类似方式获得每个剩余的类的MSB。z个类中每个类的最小数可以表示为:
Figure BPA00001161522900161
i=1,2,...,z                   (8)
其中,
Figure BPA00001161522900162
是提供下一个更低整数值的底操作符。
每个类可以由其最小数δ′i来指定。对于上述L-1=1010100的例子,4个类中的每个类的最小数可以给定为:δ′1=1100000、δ′2=1011000、δ′3=1010110和δ′4=1010101。
当反转比特时变为无效的一组整数需要确定σ(x)。虽然其顺序是比特反转的,但是这些整数属于上面所定义的类。比特反转顺序的无效整数的类可以表示为δi=πn(δ′i),i=1,2,...,z,并且对应的类可以表示为Ci。从LSB到MSB排序,πn(L-1)中0比特的序号集合可以表示为I。因此,如果x∈Ci,那么πn(x)≥L并且x[I(i):0]≥δi[I(i):0],其中,I(i)是集合I中的第i个元素。对于上述给出的L-1=1010100的例子,πn(L-1)=0010101、z=4并且I={1,3,5,6}。比特反转顺序的4类无效整数可以给定如下:
·C1:×××××11:  δ1=0000011,
·C2:×××1101:    δ2=0001101,
·C3:×110101:      δ3=0110101,以及
·C4:1010101:       δ4=1010101。
通过对每个类Ci中的无效映射的数目进行计数,可以确定0至x范围内的无效映射σ(x)的数目,i=1,2,...,z。类Ci中的无效映射的数目可以表示为σi(x),并且可以使用以下数据确定:
·δi
·x的MSB到第i个0比特的左边1位,或者x[n-1:I(i)+1],以及
·包括第i个0比特在内的x的剩余LSB,或者x[I(i):0]。
x的n-I(i)-1个MSB(由x[n-1:I(i)+1]给定)代表在x之前出现过的、属于Ci的整数的数目。这些整数具有与δi相同、但是小于x[n-1:I(i)+1]|δi[I(i):0]的I(i)+1个LSB。x的I(i)+1个LSB(由x[I(i):0]给定)可以用于检查是否x≥x[n-1:I(i)+1]|δi[I(i):0],或者等价地,是否x[I(i):0]≥δi[I(i):0]。这样检查出:x自身是否映射到Ci中的无效整数,或者x映射到的整数是否大于Ci中最后的无效整数。在任一情况下,σi(x)可以加1。σi(x)在数学上可以表示为:
σ(x)等于对于z个类的所有σi(x)的总和,并且可以表示为:
&sigma; ( x ) = &Sigma; i = 1 z &sigma; i ( x ) - - - ( 10 )
采用以下伪代码,可以实现使用式(9)和(10)计算σ(x)的算法,其也称为算法3:
z=L-1的比特表示中0比特的数目
I=L-1的比特表示中0比特的序号集合,从LSB到MSB
for i=1 to z
    σi(x)=x[n-1:I(i)+1]
   if x[I(i):0]≥δi[I(i):0]
     then σi(x)=σi(x)+1
   end
end
&sigma; ( x ) = &Sigma; i = 1 z &sigma; i ( x )
以L-1=1010100、x=1001101、πn(L-1)=0010101、z=4以及I={1,3,5,6}为例,图7示出了σ(x)的计算过程。其中以比特反转顺序给出了无效整数的4个类C1至C4
对于i=1,δ1=0000011并且I(1)=1。因此,x[6:2]=10011、x[1:0]=01并且δ1[1:0]=11。由于x[1:0]<δ1[1:0],所以σ1(x)=x[6:2]=10011=19(10),其中“(10)”代表十进制表示。
对于i=2,δ2=0001101并且I(2)=3。因此,x[6:4]=100、x[3:0]=1101并且δ2[3:0]=1101。由于x[3:0]=δ2[3:0],所以σ2(x)=x[6:4]+1=101=5(10)
对于i=3,δ3=0110101并且I(3)=5。因此,x[6]=1、x[5:0]=001101并且δ3[5:0]=110101。由于x[5:0]<δ3[5:0],所以σ3(x)=x[6]=1=1(10)
对于i=4,δ4=1010101并且I(4)=6。因此,x[6:0]=1001101并且δ4[6:0]=1010101。由于x[6:0]<δ4[6:0],所以σ4(x)=0=0(10)。随后可以将σ(x)计算为19+5+1+0=25(10)
如上所述,φ(x)可以迭代确定。对于第一次迭代k=1,如上所述,可以针对线性地址x确定σ(1)(x)。对于第二次迭代k=2,σ(1)(x)加上x可以获得x(2)。随后,如上所述,可以针对x(2)确定σ(2)(x)。可以执行K+1次迭代直到σ(K+1)(x)=σ(K)(x)为止。随后,可以将φ(x)设置为等于σ(K+1)(x)。
对于线性地址x,可以基于参数为L的剪除式BRI映射y=βn,L(x)、如下确定交织地址y。首先,中间地址v可以计算为:
v=x+φ(x)                (11)
其中,如上所述,可以基于σ(k)(x)迭代地确定φ(x)。
随后,通过对中间地址v应用BRI映射,可以确定交织地址y,如下:
y=πn(v)=βn,L(x)             (12)
图8示出了对于n=8的情况、用于剪除式BRI的地址生成器800的设计的方框图。L-1的比特表示包括最大n-1个0比特。逻辑电路810接收L-1并且生成n-1个输出δi[i:0],i=1,...,n-1。对于每个δi[i:0]输出,逻辑电路810还生成使能信号eni以指示该δi[i:0]输出是否有效。
n-1个比较器的组812a至812g,接收来自逻辑电路810的n-1个δi[i:0]输出,以及从线性地址x(k)获得的第k次迭代的n-1个x(k)[i:0]输入。每个比较器812将其x(k)[i:0]与其δi[i:0]进行比较,如果x(k)[i:0]小于δi[i:0]则提供0(例如,逻辑低电平),否则提供1(例如,逻辑高电平)。
1位全加器组820基于线形地址x(k)和比较器812的输出来针对每次迭代k计算σ(k)(x)。全加器组820包括n-2个δi[i:0]输出的n-2行加法器822a至822f。每行加法器822接收x[n-1:i+1]以及来自上一行加法器的输出(如果存在)。如果相关联的比较器812提供逻辑低电平,则每行加法器822生成σi(x)=x[n-1:i+1],或者,如果相关联的比较器812提供逻辑高电平,则每行加法器822生成σi(x)=x[n-1:i+1]+1。如果eni信号是逻辑低电平,则每行加法器822使来自上一行的输出通过,并且,如果eni信号是逻辑高电平,则每行加法器822对来自上一行的输出与σi(x)求和。
根据来自n-2个比较器812a至812f的控制信号、通过对x(k)的右移副本(其为σi(x))进行累加,n-2行加法器822a至822f共同实现算法3,其中,x(k)=x+σ(k-1)(x)是对于第k次迭代的加法器行的输入。如果eni信号是逻辑高电平,则每行加法器822将σi(x)与来自上一行加法器的输出进行累加。最后一行加法器822f提供σ(k)(x),在所有迭代完成之后,其等于φ(x)。
每个1位全加器接收来自线性地址x(k)的第一输入比特、来自上面另一个加法器的第二输入比特、来自左边另一个加法器的输入比特、以及来自逻辑单元810的eni信号。每个加法器对这3个输入比特求和,并且将求和比特提供给下面的加法器,并且将输出比特提供给右边或下面的加法器。如果eni信号未申明,那么第一输入比特输出0。
如果x[i:0]≥δi[i:0],每个比较器812生成1,否则生成0。每个比较器812将其输出作为输入比特提供给同一行中的第一加法器。如果x[i:0]≥δi[i:0],其有效地将1加到σi(x)。如果δn-1(x)≥L-1,最后一行的加法器824生成的输出对应于将1加到σn-1(x)。由于δn-1(x)的最大值是L-1,所以相等比较器812g是足够的。
来自最后一行加法器822f的输出对应于第k次迭代的σ(k)(x)。对于第一次迭代,将x提供给加法器组820。对于每次后续迭代,一行加法器824将x与来自最后一行加法器822f的σ(k)(x)进行求和,从而获得x(k+1)=x+σ(k)(x),将其作为下一次迭代k+1的新的线性地址进行提供。
可以每n-1个时钟周期对加法器组820的输出进行采样,从而读出φ(x)。为了尽早终止,可以添加比较器(图8中未示出)比较σ(k)(x)和σ(k+1)(x)。如式(11)中所示,一行加法器824将来自最后一行加法器822f的φ(x)与线性地址x求和,并且提供中间地址v。如式(12)中所示,BRI单元826接收v并且提供v的比特反转以作为剪除式BRI的交织地址y。
对于图8中所示的设计,关键路径延迟是2n-2级,其对于大多数可能的n取值,当前集成电路(IC)加工技术可以满足。可以采用XOR树来实现比较器812,并且可能引入可以忽略的延迟。
图9示出了图8中逻辑电路810的设计的方框图。在逻辑电路810内,比特反转单元910接收L-1并且提供经比特反转的L-1。n-1个单元912a至912g接收经比特反转的L-1,并且分别生成n-1个输出δ1[1:0]至δ7[7:0]。在δi[i:0]输出的单元912i内,反转器916接收经比特反转的L-1的第i个比特,并且为δi[i:0]输出提供eni信号。如果第i个比特为零,则eni信号是逻辑高电平,否则是逻辑低电平。单元912i提供反转器916的输出以及比特0至i-1作为发往图8中相关联的比较器812的δi[i:0]输出。AND门918使比特i+1至n-1为零输出。
图10示出了用于基于算法2的前向剪除式BRI的地址生成器1000的设计的方框图。可以将长度为N的分组分割成长度为L的P个子分组,其中,L、P和N可以各自是任何恰当的整数。可以对每个子分组独立进行交织。P-1个模块1010b至1010p分别计算子分组1至P-1的无效映射的数目。用于子分组j的模块1010计算从0至j·L-1的范围内无效映射的数目,将其表示为φ(j·L-1),其中j=1,...,P-1。P-1个部件剪除式BRI 1020b至1020p可以分别从模块1010b至1010p接收φ(j·L-1)。部件剪除式BRI 1020a可以接收用于φ(0)的0。对于每个部件剪除式BRI 1020,可以使用φ(j·L-1)初始化剪除式BRI,从而对子分组j进行交织。
在一种设计中,对于每个部件剪除式BRI 1020可以使用顺序剪除式BRI算法(例如,算法1)。在另一种设计中,每个部件剪除式BRI 1020可以使用2L个加法器、2L个比较器、复用器和控制逻辑对L个整数进行并行交织。该并行设计可以适合于较小的L值,诸如L为16。
图10中所示的设计充分利用了这一事实:对于长度为L的子分组、在跨越2L个整数的范围内至多可以存在L个无效映射。因此,第j个部件剪除式BRI将L个整数j·L至j·L+φ(j·L-1)映射到j·L+φ(j·L-1)至j·L+φ(j·L-1)+2L-1范围内的前L个有效的交织地址。部件剪除式BRI计算2L个总数j·L+φ(j·L-1)至j·L+φ(j·L-1)+2L-1、将它们的比特反转值与N-1进行比较以确定它们是否是有效地址、并且将有效地址传到复用器。图10中的前向剪除式BRI,使用串行部件剪除式BRI可以具有P倍的更高运算速度,或者使用并行部件剪除式BRI可以具有L倍的更高运算速度。然而,对于更大的L值,前向剪除式BRI的复杂度迅速增大。
可以在Turbo编码器(例如,如图3中所示)中使用Turbo交织器,从而当与系统反馈成员卷积编码器使用时,生成码字的类随机权重频谱。通过将来自第一成员编码器310a的低权重奇偶校验序列与来自第二成员编码器310b的高权重奇偶校验序列进行配对,Turbo交织器将输入序列中的模式打乱。Turbo交织器可以是基于块交织器,其在一个方向上(例如,逐行)将线性地址序列写入2D阵列,随后对行项和列项运用独立的伪随机置换,并且随后在另一个方向上(例如,逐列)读取置乱后的地址。运用到阵列的每一行中的项的置换可以是基于线性同余序列。运用到阵列的每一列中的项的置换可以是基于比特反转函数,类似于在信道交织器中使用的比特反转函数。剪除可以用于Turbo交织器,从而适应可变分组大小。
在一种设计中,可以如下实现Turbo交织器。首先,可以基于Turbo交织器的存储器组架构选择小的正整数r。例如,r可以等于5(如在UMB中),使得Turbo交织器存储器由用于32行的2r=32个组构成。然后,确定使得L≤2r+n的最小正整数n。这等价于:找到可以容纳L项的最小大小的2r×2n阵列。由2r给定阵列中的行的数目,并且由2n给定阵列中的列的数目。
可以给2r行2n列的阵列填入线性地址序列0至M-1,从顶部到底部逐行填入,其中M=2r·2n。随后,如下所述,可以对阵列的M项进行置乱。随后,可以从左到右逐列读取M个置乱后的项,从而获得对应于线性地址序列的交织地址序列。
通过改变2r行的排列次序并且对每行中的2n项运用独立的置换,可以对阵列的项进行置乱。可以以比特反转的顺序对2r行进行置乱。行置乱的结果是一组交织的行。使用线性同余序列(LCS)递归可以对每行的2n项独立进行置乱,LCS递归的参数可以使用查找表(LUT)、基于行标号和n确定。LCS操作的结果是:对于每行的一组交织的列值。还可以交换LCS操作和行置换的顺序。最后,相对于线性地址的顺序,通过将交织的列值和行值以相反的顺序进行组合,可以获得交织地址。通过以与填入阵列(例如,逐行)相反的顺序(例如,逐列)读取阵列中的交织的项,可以实现最后一个步骤。每个交织的项包含交织地址。如果交织地址等于或者大于L则可以对其进行剪除。
下面以Turbo交织器为例描述了交织地址的生成过程。在本例子中,r=n=3且M=26=64。如表2中所示,可以将6比特线性地址0至63逐行写入23×23阵列。对于其中L=44的例子,在表2中以粗体文本示出有效线性地址0至43,并且以正常文本示出无效线性地址44至63。
表2-逐行线性地址写入
Figure BPA00001161522900241
可以以比特反转的顺序对阵列的8行进行置乱。表3示出了行置换之后阵列中的项。
表3-行置换之后阵列中的项
Figure BPA00001161522900242
可以基于LCS递归对每行中的项进行置乱。例如,对于8行的8次LCS递归的模可以是5、7、5、7、1、1、1和7。可以如下所述进行每行的LCS递归。表4示出了LCS递归之后每行中的已置乱的项。
表4-LCS递归之后每行中的已置乱的项
Figure BPA00001161522900251
随后,可以逐列读取交织地址。不采用剪除,交织地址序列可以给定为5、39、21、55、9、41、25、63、2等。采用剪除等于或者大于L=44的地址,交织地址序列可以给定为5、39、21、9、41、25、2等。
可以通过下列Turbo交织器函数指定(r+n)比特线性地址x到(r+n)比特交织地址y的映射:
y=ρr,n(x)                (13)
其中,ρr,n( )是Turbo交织器函数。
可以将不采用剪除的Turbo交织器函数表示为:
其中,πr( )是r比特BRI函数,并且LUT是查找表,其对于每个n存储2r次LCS递归的模。
式(14)提供了交织地址的两个部分。比特反转函数2n·πr(x mod 2r)确定第一部分,其提供可应用于指定行中所有2n项的行值。LCS函数确定第二部分,其提供在范围0至2n-1内的列值。通过将行值和列值进行合并获得交织地址。
对于上述具有参数r=n=3并且没有剪除的示例Turbo交织器,可以基于式(14)中的Turbo交织器函数将线性地址x=010001=17(10)映射到交织地址y,如下:
ρr,n(17(10))=23·π3(001)+[[(010+1)mod8(10)]×LUT(001,3(10))]mod8(10)
              =100000+[011×111]mod8(10)
              =100000+101
              =100101
              =37(10)
可以使用式(14)中的Turbo交织器函数来生成不采用剪除的交织地址。采用剪除,通过式(14)生成的交织地址可能无效,并且并非在范围0至x内的所有整数都具有有效映射。
对于0与x之间的所有线性地址可以生成有效交织地址的剪除式Turbo交织器函数,可以表示为:
y=λr,n(x,L)=ρr,n(v)                          (15)
其中,λr,n(x,L)是剪除式Turbo交织器函数,并且v是使得0至v的范围正好包含x+1个有效映射的最小整数。
如果L=2r+n,那么没有剪除的地址,并且v=x且λr,n(x,L)=ρr,n(x)。然而,如果L<2r+n,那么存在剪除的地址,并且剪除式Turbo交织器函数可以表示为:
y=λr,n(x,L)=ρr,n(x+τr,n(x,L))              (16)
其中,v=x+τr,n(x,L),并且τr,n(x,L)是添加到x的无效映射的最小数目,其使得当通过Turbo交织器函数进行映射时,从0至v的范围正好包含x+1个有效地址。随后,如果可以确定τr,n(x,L),就可以采用Turbo交织器函数实现剪除式Turbo交织器函数。
可以采用下面的伪代码实现顺序剪除式Turbo交织器算法,其也称为算法4:
i=0
τ=0
while(i<x)
   v=i+τ
Figure BPA00001161522900271
   if y≥L
     then τ=τ+1
     else λr,n(i,L)=y
                 i=i+1
     end
end
式(14)中的Turbo交织器函数包括比特反转函数和LCS函数。对于剪除式BRI,可以如上所述确定对于比特反转函数的无效映射的数目。可以如下所述确定对于LCS函数的无效映射的数目。可以将LCS函数的结果与比特反转函数的结果合并,从而确定τr,n(x,L)。
可以通过下列递归来定义线性同余序列:
Yi+1=(a·Yi+c)mod m,       i≥0    (17)
其中,m>0是模数,
      a是乘数,0≤a<m,
      c是增量,0≤c<m,并且
      Yiis是线性同余序列中的第i个元素。
可以示出,只要满足下列条件,LCS就生成0至m-1之间的所有整数,并且具有长度为m的完整周期:
1.c和m互质,
2.(a-1)是m的每个质因子的倍数,并且
3.如果m是4的倍数,那么(a-1)是4的倍数。
用于Turbo交织器的线性同余序列可以具有固定参数a=1和m=2n,诸如在UMB中。增量c可以是奇常数,其可以存储在查找表中。序列中的起始元素Y0可以选择为等于c或者某些其他数值。该模数m、乘数a和增量c的选择满足了上面给定的三个条件。因此,线性同余序列具有完整周期。在该情况下,可以通过Xi=s(i)给出序列元素,其中s( )可以如下给出:
s(c,m,x)=c·(x+1)mod m,      0≤x<m         (18)
可以根据式(18)、使用n-比特加法器和n×n无符号乘法器、在硬件中生成地址。
参考式(18),感兴趣的是0与某数α′之间的整数的数目,根据式(18),α′的映像在0与某数β′之间,其中,α′≥0并且β′≥0。例如,α′可以等于x+1,并且β′可以等于剪除式交织器大小L。通过逐步处理式(18)中的数值序列,并且对于所有0≤x≤α′将s(i)与β′进行比较,可以直接计算出这些整数的数目(即,无效映射的数目)。这种计算无效映射数目的直接方法,具有与x成正比的复杂度。下面描述的算法,可以以与log2(x)成正比的复杂度有效计算无效映射数目。
可以如下定义一组整数I:
I(c,m,α′,β′)={x:0≤x<α′,0≤s(c,m,x)<β′,α′≥0,β′≥0}    (19)
集合I包含从0至α′-1、基于LCS函数在0和β′之间具有有效映射的所有数字。
集合I中的元素的数目可以表示为|I|,并且可以给定为:
|I|=S′(c,m,α′,β′)=S(c,m,α,β)+k1k2m+k1β+k2α             (20)
其中,
Figure BPA00001161522900291
Figure BPA00001161522900292
α=α′mod m、β=β′mod m、0≤α<m和0≤β<m
并且
Figure BPA00001161522900294
通过确定式(22)中对S(c,m,α,β)的求和,可以确定集合I中的元素数目。该求和过程包括整数地板函数(floor function),并且不具有封闭形式的表达式。可以使用“锯齿(saw-tooth)”函数((x))而不是地板函数来表示式(22)。锯齿函数((x))可以表示为:
Figure BPA00001161522900295
并且                 (23)
Figure BPA00001161522900296
可以使用锯齿函数来定义广义Dedekind求和d(c,m,u),如下:
d ( c , m , c i ) = 12 &CenterDot; &Sigma; 0 &le; j < m ( ( j m ) ) &CenterDot; ( ( c &CenterDot; j + c i m ) ) - - - ( 25 )
可以使用该广义Dedekind求和来表示式(22),如下:
S ( c , m , &alpha; , &beta; ) = &alpha;&beta; m + d &prime; ( c , m , c 1 , c 2 , c 3 , c 4 ) + K - - - ( 26 )
d &prime; ( c , m , c 1 , c 2 , c 3 , c 4 ) = 1 12 [ d ( c , m , c 1 ) - d ( c , m , c 2 ) + d ( c , m , c 3 ) - d ( c , m , c 4 ) ] - - - ( 27 )
其中,c1=c+α·c-β、c2=c+α·c、c3=c、c4=c-β、并且K是常数。
可以用至多log2(m)个步骤来迭代地估计式(27)中4个Dedekind求和的组合,如下:
d &prime; ( c , m , c 1 , c 2 , c 3 , c 4 ) =
&Sigma; j = 1 t &Sigma; i = 1 4 ( - 1 ) i + j + 2 &CenterDot; ( b i [ j ] ( c i [ j ] + c i [ j + 1 ] ) p [ j - 1 ] 2 h [ 1 ] - b i [ j ] 2 - e ( h [ j + 1 ] , c i [ j ] ) 4 ) - - - ( 28 )
其中,h[j+2]=h[j] mod h[j+1],h[1]=m且h[2]=c;
      ci[j+1]=ci[j] mod h[j+1],ci[1]=ci
Figure BPA00001161522900303
Figure BPA00001161522900304
p[0]=1且
Figure BPA00001161522900305
Figure BPA00001161522900306
i=1,...,4,j=1,...,t且t≤log2(k)。
在美国临时申请No.61/016,045中,描述了为基于式(28)的4个Dedekind求和的组合确定d′(c,m,c1,c2,c3,c4)的有效算法。还可以使用在美国临时申请No.61/016,045中所描述的硬件结构来有效确定4个Dedekind求和的组合。
可以定义一组整数Jr,n(α′,β′),如下:
Jr,n(α′,β′)={0≤x<α′:ρr,n(x)≥β′,α′≥0,β′≥0}        (29)
集合Jr,n(α′,β′)包含从0至α′-1、具有使得ρr,n(x)≥β′的无效映射的所有整数。
可以各自以r+n比特代表α′和β′。集合Jr,n(α′,β′)中整数的数目可以表示为μr,n(x,L)。
集合Jr,n(α′,β′)可以表示为:
Jr,n(α′,β′)=Hr,n(α′,β′)∪Kr,n(c,α′,β′)           (30)
其中,Hr,n(α′,β′)是一组具有无效映射的整数,其可以通过针对x的r个LSB运用比特反转函数πr( )进行确定,
Kr,n(c,α′,β′)是一组具有无效映射的整数,其可以通过针对x的n个MSB运用LCS函数进行确定,并且
“∪”代表并集操作。
集合Hr,n(α′,β′)可以如下定义:
Figure BPA00001161522900311
集合Hr,n(α′,β′)包括小于α′的整数,当比特反转时,该α′的r个LSB构成r比特数,该r比特数大于由β′的r个MSB构成的数。
集合Hr,n(α′,β′)中整数的数目可以表示为μ′r,n(α′,β′),并且可以确定如下:
Figure BPA00001161522900312
在式(32)中,存在个完整列,其每个完整列具有
Figure BPA00001161522900314
个无效映射。最后一列具有
Figure BPA00001161522900315
个无效映射。可以如上所述的对剪除式BRI的φ( )那样,确定φr( ),x=(α′-1) mod 2r
Figure BPA00001161522900316
并且M=2r
集合Kr,n(c,α′,β′)可以如下定义:
Figure BPA00001161522900321
集合Kr,n(c,α′,β′)包括小于α′的整数,(i)当比特反转时,该α′的r个LSB与β′的r个MSB交叠,并且(ii)当通过具有模数2n并且恰当定义的乘数c的LCS函数映射时,该α′的n个MSB构成的n比特数大于或者等于由β′的n个LSB构成的数。
集合Kr,n(c,α′β′)中整数的数目可以表示为μ″r,n(c,α′,β′),并且可以确定如下:
μ″r,n(α′,β′)=α″-S′(u,2n,α″,β″)           (34)
其中,
Figure BPA00001161522900323
β″=β′mod 2n+1                           (37)
可以如式(21)中所示以及如上所述确定S′(u,2n,α″,β″)。
集合Jr,n(α′,β′)中整数的总数可以表示为:
μr,n(α′,β′)=μ′r,n(α′,β′)+μ″r,n(α′,β′)          (38)
对于长度为L的剪除式Turbo交织器,其中,n是使得L≤2r+n的最小正整数,可以如下将线性地址x映射到交织地址y。首先,可以基于式(38)确定在范围0至x(1)=x内无效映射的数目
Figure BPA00001161522900324
α′=x+1并且β′=L。随后,为了包括剪除后的地址,可以将该范围扩展到
Figure BPA00001161522900325
随后,可以确定在从0至x(2)范围内无效映射的数目。该过程可以重复,直到达到正好包括x+1个有效地址的最小大小的范围为止。
在第(k+1)次迭代的无效映射的数目可以给定为:
x ( k + 1 ) = x + &mu; r , n ( k ) ( x + 1 , L ) , 以及                      (39)
&mu; r , n ( k + 1 ) ( x + 1 , L ) = &mu; r , n ( x + &mu; r , n ( k ) ( x + 1 , L ) + 1 , L ) = &mu; r , n ( x ( k + 1 ) + 1 , L ) - - - ( 40 )
在所有迭代完成之后,可以提供最后一个值
Figure BPA00001161522900333
作为式(16)中的τr,n(x,L)。随后,可以使用式(16)、基于τr,n(x,L)确定交织地址y。
可以采用下面的伪代码实现迭代地确定τr,n(x,L)的算法,其也称为算法5:
k=0
&mu; r , n 0 ( x + 1 , L ) = 0
do  {
&mu; r , n ( k + 1 ) ( x + 1 , L ) = &mu; r , n ( x + &mu; r , n ( k ) ( x + 1 , L ) + 1 , L )
   k=k+1
}
while &mu; r , n ( k + 1 ) ( x + 1 , L ) &NotEqual; &mu; r , n ( k ) ( x + 1 , L )
&tau; r , n ( x , L ) = &mu; r , n ( k + 1 ) ( x + 1 , L )
对于线性地址x的交织地址y,可以基于参数为L的剪除式Turbo交织器函数y=λr,n(x,L)如下确定。首先,可以计算中间地址v,如下:
v=x+τr,n(x,L)                       (41)
随后,通过对中间地址v运用Turbo交织器函数ρr,n(v),可以确定交织地址y,如下:
y=ρr,n(v)=λr,n(x,L)              (42)
可以如式(14)或者某些其他方式中所示实现Turbo交织器函数。
图11示出了用于剪除式交织器的地址生成器1100的设计的方框图,该剪除式交织器可以是剪除式BRI、剪除式Turbo交织器等。地址生成器1100可以用于图2中的信道交织器250、图3中的Turbo交织器320、图5中的Turbo交织器530等。在地址生成器1100内,单元1110接收线性地址x并且确定对应于x的无效映射的总数目(例如,φ(x)或者τr,n(x,L))。单元1110可以实现用于剪除式BRI的算法2和3、用于剪除式Turbo交织器的算法5、或者用于其他类型交织器的某些其他算法。如上所述,单元1110可以迭代计算无效映射的总数目。
求和器1112将线性地址x与无效映射的总数目求和,并且提供中间地址v。非剪除式交织器函数1120接收中间地址v,并且提供交织地址y。函数1120可以实现比特反转函数,并且提供中间地址v的比特反转版本作为交织地址y。函数1120还可以实现式(14)中所示的Turbo交织器函数、式(17)或式(18)中所示的LCS函数、或者某些其他交织器函数。
图12示出了用于剪除式解交织器的地址生成器1200的设计的方框图,该剪除式解交织器可以是剪除式比特反转解交织器、剪除式Turbo解交织器等。地址生成器1200可以用于图4中的信道解交织器420、图5中的Turbo解交织器540等。在地址生成器1200内,非剪除式解交织器函数1210接收交织地址y,并且提供中间地址v。函数1210可以实现比特反转函数,并且提供交织地址y的比特反转版本作为中间地址v。函数1210还可以实现Turbo解交织器函数、LCS函数、或者某些其他解交织器函数。单元1220接收中间地址v并且确定对应于v的无效映射的总数目(诸如仅以一次迭代进行)。单元1220可以实现用于剪除式比特反转解交织器的算法2和3、用于剪除式Turbo解交织器的算法5、或者用于其他类型解交织器的某些其他算法。求和器1222从中间地址v中减去无效映射的总数目,并且提供线性地址x。
图13示出了用于重新排序数据的过程1300的设计。过程1300可以由用于数据发送的发射机、用于数据接收的接收机、或者某些其它实体来实现。过程1300可以用于信道交织、Turbo交织、信道解交织、Turbo解交织等。
可以接收大小为L的剪除式交织器的第一地址(方框1312)。可以确定对应于该第一地址的无效映射的总数目(例如,φ(x)或τr,n(x,L))(方框1314)。随后,可以基于第一地址和无效映射的总数目确定剪除式交织器的第二地址(方框1316)。第一和第二地址可以各自包含b个比特,并且可以在0至L-1范围内,其中,(M/2)<L<M并且M=2b。b可以等于剪除式BRI的n或者用于Turbo交织器的r+n。可以基于第一和第二地址对数据进行重新排序(方框1318)。
对于交织,第一地址可以包含线性地址,并且第二地址可以包含交织地址。对于方框1318,可以将线性地址处的数据值映射到交织地址,从而对数据进行交织。在一种设计中,剪除式交织器可以包含剪除式比特反转交织器。随后,可以通过(i)将线性地址与无效映射的总数目求和从而获得中间地址、以及(ii)提供中间地址的比特反转版本作为交织地址,从而确定交织地址。在另一种设计中,剪除式交织器可以包含剪除式Turbo交织器。随后,可以通过(i)将线性地址与无效映射的总数目求和从而获得中间地址、以及(ii)基于中间地址的非剪除式交织器函数确定交织地址,从而确定交织地址。非剪除式交织器函数可以包含(i)用于阵列中的多个行的第一映射函数(例如,比特反转函数),以及(ii)用于每一行中的多个项的第二映射函数(例如,LCS函数)。
对于解交织,第一地址可以包含交织地址,并且第二地址可以包含线性地址。对于方框1318,可以将交织地址处的数据值映射到线性地址,从而对数据进行解交织。在一种设计中,剪除式交织器可以包含剪除式比特反转交织器。随后,可以通过(i)基于交织地址的比特反转版本确定中间地址、以及(ii)从中间地址中减去无效映射的总数目,从而获得线性地址,以确定线性地址。在另一种设计中,剪除式交织器可以包含剪除式Turbo交织器。随后,可以通过(i)基于交织地址的非剪除式解交织器函数确定中间地址,以及(ii)从中间地址中减去无效映射的总数目,从而获得线性地址,以确定线性地址。
在一种设计中,可以迭代地确定无效映射的总数目,例如,针对预定次数的迭代(例如,n-1次迭代),或者直到两次连续迭代获得相同的无效映射总数目为止。对于不同类型的剪除式交织器,可以以不同方式进行每次迭代。
在一个设计中,该设计可以应用于剪除式BRI以及其他可能的剪除式交织器,对于每次迭代k,可以基于第一地址和该迭代的初始值来确定临时地址(例如,x(k))。对于第一次迭代,初始值可以等于0,并且对于每次后续迭代,初始值可以等于来自前一次迭代的无效映射的数目(例如,σ(k-1)(x))。随后,可以确定在0到临时地址(例如,σ(k)(x))范围内无效映射的数目。对于剪除式BRI,可以标识出L-1的比特表示中的零比特。例如,如上所述,可以基于临时地址、L-1的比特表示、以及L-1的比特表示中的0比特的位置来确定L-1的比特表示中对每个0比特的计数值(例如,σi(x))。例如,如在式(10)中所示,可以对L-1的比特表示中所有0比特的计数值进行求和,从而获得在0到临时地址范围内的无效映射的数目。
在一个设计中,该设计可以应用于剪除式Turbo交织器以及其他可能的剪除式交织器,对于每次迭代k,可以基于第一地址与该迭代的初始值的总和来确定临时地址(例如,x(k))。对于第一次迭代,初始值可以等于0,并且对于每次后续迭代,初始值可以等于来自前一次迭代的无效映射的合并的数目(例如,
Figure BPA00001161522900371
)。例如,如在式(32)中所示,可以基于由第一映射函数所确定的第一计数函数,来确定在0至临时地址范围内的无效映射的第一数目(例如,μ′r,n(α′,β′))。例如,如在式(34)中所示,可以基于由第二映射函数所确定的第二计数函数,来确定在0至临时地址范围内的无效映射的第二数目(例如,μ″r,n(α′,β′))。例如,如在式(38)中所示,可以基于无效映射的第一数目和无效映射的第二数目,来确定对于迭代的无效映射的合并的数目(例如,μr,n(α′,β′))。第一计数函数可以基于比特反转函数。第二计数函数可以基于LCS函数,并且可以包含Dedekind求和的组合。还可以以其他形式定义第一和第二计数函数以用于其他映射函数。
本领域的技术人员将理解,可以使用多种不同技术和技巧中的任何一种代表信息和信号。例如,可以通过电压、电流、电磁波、磁场或者粒子、光场或者例子、或者其任何组合来表示可以贯穿上述说明所参考的数据、指令、命令、信息、信号、比特、符号和码片。
本领域的技术人员还将意识到,可以将结合这里的公开所描述的各个示例性逻辑块、模块、电路和算法步骤实现为电子硬件、计算机软件、或者二者的组合。为了清楚地说明硬件和软件的这种可交换性,上面一般根据它们的功能对各个示例性部件、方框、模块、电路和步骤进行描述。将这种功能实现为硬件还是软件取决于特定的应用和施加在整个系统上的设计约束。对于每种特定应用,熟练的技术人员可以以不同方式实现所描述的功能,但是不应该将这些实现判决解释为造成脱离本公开的保护范围。
结合这里的公开所描述的各种说明性逻辑块、模块和电路,可以采用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件、或者设计为执行这里所描述的功能的任何组合来实现或执行。通用处理器可以是微处理器,或者,处理器可以是任何常规处理器、控制器、微控制器、或者状态机。还可以将处理器实现为计算器件的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合、或者任何其它这种配置。
可以直接在硬件、处理器执行的软件模块、或者两者的组合中对结合这里的公开描述的方法或者算法的步骤进行具体化。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM、或者本领域中已知的任何其它形式的存储媒体中。示例性存储介质可以耦合到处理器,使得处理器可以从存储介质读取信息并且将信息写入存储介质。可替换地,可以将存储介质集成到处理器。处理器和存储介质可以位于ASIC内。ASIC可以位于用户终端中。可替换地,处理器和存储介质可以作为分立元件位于用户终端中。
在一个或多个示例性设计中,可以在硬件、软件、固件或者其组合内实现所描述的功能。如果在软件中实现,可以将功能作为一条或多条指令或者代码存储在计算机可读介质上或者进行发送。计算机可读介质包括计算机存储介质和包括有助于将计算机程序从一个地方传送到另一个地方的任何介质的通信介质。存储介质可以是通用或专用计算机可以访问的任何可用介质。通过举例而不是限制的方式,这种计算机可读介质可以包含RAM、ROM、EEPROM、CD-ROM或者其它光盘存储、磁盘存储或其它磁存储器件、或者可以用于以指令或者数据结构的形式携带或者存储所期望程序代码并且可以通过通用或专用计算机、或者通用或专用处理器访问的任何其它介质。同时,可以将任何连接恰当地称为计算机可读介质。例如,如果使用同轴电缆、光缆、双绞线、数字用户线(DSL)、或者诸如红外、无线电和微波的无线技术从网站、服务器、或者其它远程源发送软件,那么将同轴电缆、光缆、双绞线、DSL、或者诸如红外、无线电和微波的无线技术包括在介质的定义中。如这里所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多用光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性复制数据,而光盘通常采用激光光学复制数据。也应该将上述组合包括在计算机可读介质的范围内。
提供本公开的前述说明,从而使本领域的任何技术人员能够制造或者使用本公开。对本公开的各种修改对于本领域的技术人员将是显而易见的,并且这里所定义的一般原理可以应用于其它变化,而不脱离本公开的范围。因此,本公开不是旨在限制于这里所描述的例子和设计,而是要符合与这里所公开的原理和新颖特征相一致的最宽保护范围。

Claims (28)

1.一种对数据进行处理的方法,包括:
接收剪除式交织器的第一地址;
确定对应于所述第一地址的无效映射的总数;
基于所述第一地址和所述无效映射的总数确定所述剪除式交织器的第二地址;以及
基于所述第一地址和所述第二地址对数据进行重新排序,
其中,所述无效映射是线性地址到基于非剪除式交织器函数不在0至L-1的范围内的交织地址的映射,其中L是剪除式交织器或解交织器的大小。
2.如权利要求1所述的方法,其中,所述第一地址包括线性地址,并且所述第二地址包括交织地址,并且其中,对数据进行重新排序的步骤包括:
将所述线性地址处的数据值映射到所述交织地址,从而对所述数据进行交织。
3.如权利要求2所述的方法,其中,所述剪除式交织器包括剪除式比特反转交织器,并且其中,确定所述第二地址的步骤包括:
将所述线性地址与所述无效映射的总数求和,从而获得中间地址;以及
提供所述中间地址的比特反转版本作为所述交织地址。
4.如权利要求2所述的方法,其中,确定所述第二地址的步骤包括:
将所述线性地址与所述无效映射的总数求和,从而获得中间地址;以及
基于所述中间地址的非剪除式交织器函数确定所述交织地址。
5.如权利要求4所述的方法,其中,所述非剪除式交织器函数包括用于阵列中的多个行的第一映射函数以及用于每一行中的多个项的第二映射函数。
6.如权利要求4所述的方法,其中,所述非剪除式交织器函数包括比特反转函数和线性同余序列函数。
7.如权利要求1所述的方法,其中,所述第一地址包括交织地址,并且所述第二地址包括线性地址,并且其中,对数据进行重新排序的步骤包括:
将所述交织地址处的数据值映射到所述线性地址,从而对所述数据进行解交织。
8.如权利要求7所述的方法,其中,所述剪除式交织器包括剪除式比特反转交织器,并且其中,确定所述第二地址的步骤包括:
基于所述交织地址的比特反转版本确定中间地址;以及
从所述中间地址中减去所述无效映射的总数,从而获得所述线性地址。
9.如权利要求7所述的方法,其中,确定所述第二地址的步骤包括:
基于所述交织地址的非剪除式解交织器函数确定中间地址;以及
从所述中间地址中减去所述无效映射的总数,从而获得所述线性地址。
10.如权利要求1所述的方法,其中,迭代地确定所述无效映射的总数。
11.如权利要求10所述的方法,其中,所述无效映射的总数的确定是通过预定次数的迭代进行的,或者是通过直到两次连续迭代获得相同的无效映射总数为止进行的。
12.如权利要求10所述的方法,其中,对于每次迭代,确定所述无效映射的总数的步骤包括:
基于所述第一地址与该次迭代的初始值之总和确定临时地址;以及
确定在0至所述临时地址的范围内的无效映射的数目。
13.如权利要求12所述的方法,其中,对于第一次迭代,所述初始值等于0,并且对于每次后续迭代,所述初始值等于来自前一次迭代的所述无效映射的数目。
14.如权利要求12所述的方法,其中,所述剪除式交织器具有大小L,并且其中,确定在0至所述临时地址的所述范围内的所述无效映射的数目的步骤包括:
标识L-1的比特表示中的0比特;
基于所述临时地址、所述L-1的比特表示以及每个0比特在所述L-1的比特表示中的位置,确定在所述L-1的比特表示中对该0比特的计数值;以及
对所述L-1的比特表示中的所有0比特的计数值进行求和,从而获得在0至所述临时地址的所述范围内的所述无效映射的数目。
15.如权利要求5所述的方法,其中,确定所述无效映射的总数的步骤包括:
基于所述第一映射函数确定所述第一地址的无效映射的第一数目;
基于所述第二映射函数确定所述第一地址的无效映射的第二数目;以及
基于无效映射的所述第一数目和所述第二数目确定所述无效映射的总数。
16.如权利要求5所述的方法,其中,迭代地确定所述无效映射的总数,并且其中,对于每次迭代,确定所述无效映射的总数的步骤包括:
基于所述第一地址与该次迭代的初始值之总和,确定临时地址;
基于由所述第一映射函数确定的第一计数函数,确定在0至所述临时地址的范围内的无效映射的第一数目;
基于由所述第二映射函数确定的第二计数函数,确定在0至所述临时地址的范围内的无效映射的第二数目;以及
基于无效映射的所述第一数目和所述第二数目确定该次迭代的无效映射的合并的数目。
17.如权利要求16所述的方法,其中,对于第一次迭代,所述初始值等于0,并且对于每次后续迭代,所述初始值等于来自前一次迭代的所述无效映射的合并的数目。
18.如权利要求16所述的方法,其中,基于所述第一映射函数的比特反转函数确定所述第一计数函数。
19.如权利要求16所述的方法,其中,基于所述第二映射函数的线性同余序列函数确定所述第二计数函数。
20.如权利要求16所述的方法,其中,所述第二计数函数包括Dedekind求和的组合。
21.如权利要求1所述的方法,其中,所述第一地址和所述第二地址各自包括b个比特,并且所述第一地址和所述第二地址各自在0至L-1的范围内,其中,L是所述剪除式交织器的大小,其中(M/2)<L<M并且M=2b
22.一种用于对数据进行处理的装置,包括:
用于接收剪除式交织器的第一地址的模块;
用于确定对应于所述第一地址的无效映射的总数的模块;
用于基于所述第一地址和所述无效映射的总数确定所述剪除式交织器的第二地址的模块;以及
用于基于所述第一地址和所述第二地址对数据进行重新排序的模块,
其中,所述无效映射是线性地址到基于非剪除式交织器函数不在0至L-1的范围内的交织地址的映射,其中L是剪除式交织器或解交织器的大小。
23.如权利要求22所述的装置,其中,所述用于确定所述第二地址的模块包括:
用于将所述第一地址与所述无效映射的总数求和从而获得中间地址的模块;以及
用于提供所述中间地址的比特反转版本作为所述第二地址的模块。
24.如权利要求22所述的装置,其中,所述用于确定所述第二地址的模块包括:
用于将所述第一地址与所述无效映射的总数求和从而获得中间地址的模块;以及
用于基于所述中间地址的非剪除式交织器函数来确定所述第二地址的模块。
25.如权利要求24所述的装置,其中,所述非剪除式交织器函数包括比特反转函数和线性同余序列函数。
26.如权利要求22所述的装置,其中,迭代地确定所述无效映射的总数;并且其中,对于每次迭代,所述用于确定所述无效映射的总数的模块包括:
用于基于所述第一地址和该次迭代的初始值之总和确定临时地址的模块;以及
用于确定在0至所述临时地址的范围内的无效映射的数目的模块。
27.如权利要求26所述的装置,其中,所述剪除式交织器具有大小L,并且其中,所述用于确定在0至所述临时地址的所述范围内的所述无效映射的数目的模块包括:
用于标识L-1的比特表示中的0比特的模块;
用于基于所述临时地址、所述L-1的比特表示以及每个0比特在所述L-1的比特表示中的位置,确定在所述L-1的比特表示中对该0比特的计数值的模块;以及
用于对所述L-1的比特表示中的所有0比特的计数值进行求和,从而获得在0至所述临时地址的所述范围内的所述无效映射的数目的模块。
28.如权利要求24所述的装置,其中,所述非剪除式交织器函数包括用于阵列中的多个行的第一映射函数以及用于每一行中的多个项的第二映射函数,其中,迭代地确定所述无效映射的总数,并且其中,对于每次迭代,所述用于确定所述无效映射的总数的模块包括:
用于基于所述第一地址与该次迭代的初始值之总和确定临时地址的模块;
用于基于由所述第一映射函数确定的第一计数函数,确定在0至所述临时地址的范围内的无效映射的第一数目的模块;
用于基于由所述第二映射函数确定的第二计数函数,确定在0至所述临时地址的所述范围内的无效映射的第二数目的模块;以及
用于基于无效映射的所述第一数目和所述第二数目,确定该次迭代的无效映射的合并的数目的模块。
CN2008801222971A 2007-12-21 2008-12-17 用于剪除式交织器和解交织器的有效地址生成 Expired - Fee Related CN101904102B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US1604507P 2007-12-21 2007-12-21
US61/016,045 2007-12-21
US12/336,167 2008-12-16
US12/336,167 US8751769B2 (en) 2007-12-21 2008-12-16 Efficient address generation for pruned interleavers and de-interleavers
PCT/US2008/087276 WO2009085871A2 (en) 2007-12-21 2008-12-17 Efficient address generation for pruned interleavers and de-interleavers

Publications (2)

Publication Number Publication Date
CN101904102A CN101904102A (zh) 2010-12-01
CN101904102B true CN101904102B (zh) 2013-09-11

Family

ID=40790051

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008801222971A Expired - Fee Related CN101904102B (zh) 2007-12-21 2008-12-17 用于剪除式交织器和解交织器的有效地址生成

Country Status (7)

Country Link
US (1) US8751769B2 (zh)
EP (1) EP2238690A2 (zh)
JP (1) JP5231570B2 (zh)
KR (2) KR101331516B1 (zh)
CN (1) CN101904102B (zh)
TW (1) TW200935758A (zh)
WO (1) WO2009085871A2 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101435830B1 (ko) * 2007-06-20 2014-08-29 엘지전자 주식회사 인터리빙 수행 방법
EP2202933B1 (en) * 2008-12-23 2016-10-26 Telefonaktiebolaget LM Ericsson (publ) Technique for generating an sc-fdma signal
EP2579468B1 (en) * 2011-10-05 2020-05-06 Telefonaktiebolaget LM Ericsson (publ) Method and device for decoding a transport block of a communication signal
US9256531B2 (en) 2012-06-19 2016-02-09 Samsung Electronics Co., Ltd. Memory system and SoC including linear addresss remapping logic
US9495291B2 (en) * 2013-09-27 2016-11-15 Qualcomm Incorporated Configurable spreading function for memory interleaving
KR101929782B1 (ko) * 2014-06-10 2018-12-17 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
JP6367472B2 (ja) 2014-08-21 2018-08-01 エルジー エレクトロニクス インコーポレイティド 放送信号送信装置、放送信号受信装置、放送信号送信方法、及び放送信号受信方法
CN104301069B (zh) * 2014-09-05 2017-06-30 江苏中兴微通信息科技有限公司 基于同余类交织映射序列的交织和解交织方法及装置
CN105991505A (zh) * 2015-02-26 2016-10-05 晨星半导体股份有限公司 解回旋交错器与解回旋交错方法
CN107124189B (zh) * 2017-05-10 2020-06-09 西安空间无线电技术研究所 一种tdma系统随机交织地址动态变化的方法
US10879936B2 (en) 2018-08-23 2020-12-29 Keysight Technologies, Inc. Methods, systems, and computer readable media for de-interleaving data in a communication system
CN115374022B (zh) * 2022-10-27 2023-02-07 北京象帝先计算技术有限公司 内存访问方法、装置、系统及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1345486A (zh) * 1999-03-31 2002-04-17 高通股份有限公司 位倒置随机交织的综合地址发生
EP1418675A2 (en) * 2002-10-29 2004-05-12 Samsung Electronics Co., Ltd. Method and apparatus for deinterleaving interleaved data stream in a communication system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304991B1 (en) 1998-12-04 2001-10-16 Qualcomm Incorporated Turbo code interleaver using linear congruential sequence
US6871303B2 (en) 1998-12-04 2005-03-22 Qualcomm Incorporated Random-access multi-directional CDMA2000 turbo code interleaver
JP3848858B2 (ja) 2001-05-10 2006-11-22 株式会社日立コミュニケーションテクノロジー ターボ復号器並びにターボ符号器及びターボ符号器、復号器を含む無線基地局
KR20040037624A (ko) 2002-10-29 2004-05-07 삼성전자주식회사 인터리빙된 데이터 열의 디인터리빙 방법 및 장치
US8599764B2 (en) * 2003-09-02 2013-12-03 Qualcomm Incorporated Transmission of overhead information for reception of multiple data streams
KR100877536B1 (ko) 2003-10-24 2009-01-07 콸콤 인코포레이티드 다수의 데이터 스트림들의 수신을 위한 오버헤드 정보의전송
US7437650B2 (en) * 2005-04-12 2008-10-14 Agere Systems Inc. Pre-emptive interleaver address generator for turbo decoders

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1345486A (zh) * 1999-03-31 2002-04-17 高通股份有限公司 位倒置随机交织的综合地址发生
EP1418675A2 (en) * 2002-10-29 2004-05-12 Samsung Electronics Co., Ltd. Method and apparatus for deinterleaving interleaved data stream in a communication system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
3GPP2.Physical Layer for Ultra Mobile Broadband(UMB) Air Interface Specification.《3RD GENERATION PARTNERSHIP PROJECT (3GPP)TECHNICAL SPECIFICATION(TS)》.2007,sections 2.6.2、sections 2.7.3.3.2-2.7.5.1.
Physical Layer for Ultra Mobile Broadband(UMB) Air Interface Specification;3GPP2;《3RD GENERATION PARTNERSHIP PROJECT (3GPP)TECHNICAL SPECIFICATION(TS)》;20070405;sections 2.6.2、sections 2.7.3.3.2-2.7.5.1 *

Also Published As

Publication number Publication date
EP2238690A2 (en) 2010-10-13
CN101904102A (zh) 2010-12-01
US8751769B2 (en) 2014-06-10
KR101331516B1 (ko) 2013-11-21
WO2009085871A2 (en) 2009-07-09
KR20100105729A (ko) 2010-09-29
WO2009085871A3 (en) 2010-02-25
KR20130057488A (ko) 2013-05-31
JP2011508530A (ja) 2011-03-10
US20090164748A1 (en) 2009-06-25
JP5231570B2 (ja) 2013-07-10
TW200935758A (en) 2009-08-16

Similar Documents

Publication Publication Date Title
CN101904102B (zh) 用于剪除式交织器和解交织器的有效地址生成
Moision et al. Coded modulation for the deep-space optical channel: serially concatenated pulse-position modulation
JP4553330B2 (ja) 符号化装置及び方法、復号装置及び方法、情報処理装置及び方法、並びに記憶媒体
CN101601188B (zh) 利用无争用交织器的turbo编码
CN101553990B (zh) Turbo码交织器尺寸的确定
TWI406509B (zh) 渦輪解碼器及解碼渦輪編碼信號的方法
JP2004531116A (ja) ターボデコーダ用インタリーバ
US9048877B2 (en) Turbo code parallel interleaver and parallel interleaving method thereof
JP2004531138A (ja) ターボ復号器のためのバッファアーキテクチャ
CN101636914A (zh) 用于编码和解码数据的方法和装置
KR20070087100A (ko) 프루닝된 비트-리버설 인터리버
WO2007029114A2 (en) System, transmitter, receiver, method, and computer program product for structured interleaved zigzag coding
JP4551445B2 (ja) サブ・ブロック・インターリーバおよびデインターリーバを有する多次元ブロック符号器
MXPA01010239A (es) Sistema y metodo que emplean un decodificador modular para decodificar codigos turbo y similares al turbo en una red de comunicaciones.
CN105634508A (zh) 一种低复杂度近性能限的Turbo译码器的实现方法
CN101971504A (zh) 用于多个代码类型的可编程解码的方法和设备
CN105141394B (zh) 涡轮解码器中编码比特的有效软值生成方法及装置
Yan et al. High performance parallel turbo decoder with configurable interleaving network for LTE application
Zhang et al. Fast factorization architecture in soft-decision Reed-Solomon decoding
Chenghai et al. The shifting interleaver design based on PN sequence for IDMA systems
CN100581089C (zh) TD-SCDMA系统中的Woven卷积码纠错编、译码器
Cheng et al. Optimizations of a hardware decoder for deep-space optical communications
PAIDIMALLA et al. DESIGN AND EVALUATION OF AREA-EFFICIENT PIPELINED TURBO ENCODER AND DECODER
JP6771184B2 (ja) 符号化装置、符号化方法及びプログラム
Cheng et al. Optimizations of a turbo-like decoder for deep space optical communications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130911

Termination date: 20191217

CF01 Termination of patent right due to non-payment of annual fee