CN1618175A - 用于对数据比特并行编码的方法和装置 - Google Patents
用于对数据比特并行编码的方法和装置 Download PDFInfo
- Publication number
- CN1618175A CN1618175A CNA028279603A CN02827960A CN1618175A CN 1618175 A CN1618175 A CN 1618175A CN A028279603 A CNA028279603 A CN A028279603A CN 02827960 A CN02827960 A CN 02827960A CN 1618175 A CN1618175 A CN 1618175A
- Authority
- CN
- China
- Prior art keywords
- encoder
- output
- bit
- input
- bits
- 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.)
- Granted
Links
Images
Classifications
-
- 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
-
- 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/0045—Arrangements at the receiver end
- H04L1/0047—Decoding adapted to other signal detection operation
- H04L1/005—Iterative decoding, including iteration between signal detection and decoding operation
-
- 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
-
- 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/23—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
- H03M13/235—Encoding of convolutional codes, e.g. methods or arrangements for parallel or block-wise encoding
-
- 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
- H03M13/275—Interleaver wherein the permutation pattern is obtained using a congruential operation of the type y=ax+b modulo c
-
- 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
- H03M13/276—Interleaving address generation
- H03M13/2764—Circuits therefore
-
- 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/2903—Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent codes
-
- 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
- H03M13/296—Particular turbo code structure
- H03M13/2972—Serial concatenation using convolutional component codes
-
- 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/65—Purpose and implementation aspects
- H03M13/6561—Parallelized implementations
-
- 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/65—Purpose and implementation aspects
- H03M13/6563—Implementations using multi-port memories
-
- 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/65—Purpose and implementation aspects
- H03M13/6575—Implementations based on combinatorial logic, e.g. Boolean circuits
-
- 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/0041—Arrangements at the transmitter end
- H04L1/0043—Realisations of complexity reduction techniques, e.g. use of look-up tables
-
- 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
- H04L1/0065—Serial concatenated codes
-
- 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
- H04L1/0066—Parallel concatenated codes
-
- 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/0067—Rate matching
- H04L1/0068—Rate matching by puncturing
- H04L1/0069—Puncturing patterns
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
用于对多个比特并行编码的方法和装置,其中输出递归地被生成。在每个时钟周期内,编码器(1500)处理多个比特,并生成与在常规卷积编码器内的多个时钟周期上按顺序生成的多个比特一致的输出。在一实施例中,输入数据存储在多个存储器存储单元(1104到1106)中,这些单元的每个唯一经定址以将数据提供给并行编码器。
Description
本发明的背景
发明领域
本发明涉及数据通信,尤其涉及对数据比特进行并行编码(例如使用多端口存储器)以大大减少与编码相关的延时。
相关技术描述
在一般的数字通信系统中,数据在发射机单元处经处理、调制和调整以生成已调信号,然后发送到一个或多个接收机单元。数据处理可以包括例如将数据格式化成特定帧格式、用特定的编码方案对格式化的数据进行编码以提供在接收机单元处的误差检测和/或纠正,信道化(即覆盖)编码的数据,并将信道化的数据在系统带宽上扩展。数据处理器一般由实现的系统或标准定义。
在接收机单元,发送的信号经接收、调整、解调并经数字化处理以恢复发送的数据。在接收机单元处的处理与在发射机单元处实现的处理互补,且可以包括例如对接收到的采样进行解扩展、解覆盖经解扩展的采样并对解覆盖的符号解码以恢复发送的数据。
能纠正传输差错的能力提高了数据传输的可靠性。许多数字通信系统使用卷积码或Turbo码以提供在接收机单元处的差错纠正能力。卷积码对串行数据进行处理,每次一个或几个比特。有多种有用的卷积码以及多种算法对接收到的经编码信息序列进行解码以恢复原始数据。Turbo编码尤其是一种并行串接的卷积编码方案。一个串接码是二个或多个码的级联组合,并用于提供附加的纠错能力。对于串接编码,编码级间的编码比特可以经交织以提供时域分集,这可以进一步改善性能。编码比特的整个分组或帧在实现重新排序前被存储。经重新排序的编码比特然后串行地被检索并由下一编码级被编码。
一般,对输入比特流串行实现卷积和Turbo编码。对于每个时钟周期,向编码器提供一个数据比特,取决于编码器的编码速率生成一个或多个编码比特。一些编码比特然后可能经截短(即删除)以获得其他编码速率的编码比特。
数字多址通信系统一般以分组或帧发送数据,以能在活动用户间有效共享系统资源。对于不能忍受长延时的服务(例如语音、视频),分组被选择为短持续时间(例如10毫秒),编码相应地经选择以使得具有较短的处理延时。然而,对于改善的编码效率,希望处理并对更大的分组进行编码,这导致常规的对数据进行串行处理的技术的较长延时。长处理延时会负面影响通信系统的性能。例如,可以基于通信链路的条件为特定数据传输选择特定用户或数据速率。如果处理延时过度长,则链路条件可能在数据传输时间改变,性能可能受损或受到负面影响。
可见,非常需要一种能以更短的处理延时对数据进行有效编码的技术。
本发明概述
根据一方面,一种为无线通信系统内的交织器生成地址的方法包括递增计数器到一计数值,该计数器值用于生成一交织器地址,如果计数器值对应一不合法的交织器地址,调整计数器值到下一有效地址,并基于调整中的计数器值上生成地址。
在另一方面,一无线通信系统内交织器的地址发生装置包括计数器,以及多个地址发生器,每个耦合到计数器,多个地址发生器的每个包括耦合到计数器的存储器存储设备,存储带有对应计数器偏移值的多个计数器值,以及耦合到存储器存储设备的第二计数器,用于将计数器偏移值加入先前生成的地址。
在另一方面,一数据编码器,其特征在于还包括多个存储器,用于存储顺序的输入信息比特,多个交织器,用于对输入信息比特扰码,第一编码器,耦合到第一存储器,第一编码器用于对顺序的输入信息比特进行编码,以及第二编码器,耦合到多个存储器,第二编码器用于对交织的输入信息比特。
在另一方面,对数据编码的方法包括接收多个输入比特,以及在单个系统时钟周期内:基于多个输入比特计算第一状态值集合;基于多个输入比特和第一状态值集合计算第二状态值集合;基于多个输入比特以及第一和第二状态值集合计算第三状态值集合;以及基于第一、第二和第三状态值集合生成编码后的输出集合。
本发明的其他方面和实施例如下描述。
附图的简要描述
通过下面提出的结合附图的详细描述,本发明的特征、性质和优点将变得更加明显,附图中相同的符号具有相同的标识,其中:
图1是通信系统的框图;
图2是根据一实施例的串行串接编码器;
图3是串接编码器图,它可以根据一实施例实现特定的多项式发生器矩阵集合;
图4是根据一实施例对多个数据比特并行编码的卷积编码器框图;
图5A和5B是卷积编码器的示意图,该编码器能根据各个实施例实现特定多项式发生器矩阵并用于对八个数据比特并行编码;
图6是卷积编码器一实施例示意图,该编码器实现另一特定多项式发生器矩阵并并行地对四个编码比特进行编码;
图7A是交织器图;
图7B和7C是根据各个实施例相应的有和没有截短的外卷积编码器和交织器间接口的图示;
图8是根据一实施例的编码器框图;
图9是根据一实施例用于实现对多个数据比特并行地串接编码的方法的流程图;
图10是无线通信系统;
图11是根据一实施例的并行串接编码器;
图12是根据一实施例的并行串接编码器的功能图;
图13是根据一实施例的turbo编码器功能图;
图14是根据一实施例turbo编码器内交织器的地址发生电路功能图;
图15是根据一实施例并行串联turbo编码器的交织器的地址发生电路功能图;
图16是根据一实施例的turbo编码器功能图;
图17是turbo编码器交织器的地址发生器功能图。
各个实施例的详细描述
对多个比特并行编码
图1是可以实现本发明的各个方面的通信系统100的实施例简化框图。在发射机单元100,一般以分组或帧的形式从数据源112发送话务数据到编码器114,编码器使用特定的编码方案对数据进行格式化和编码。编码器114一般还对编码比特进行交织(重排序)。调制器(MOD)116然后接收、信道化(即覆盖)并扩展编码后的数据以生成码元,然后码元被转换成一个或多个模拟信号。模拟信号由发射机(TMTR)118滤波、(正交)调制、放大并上变频以生成已调信号,该信号然后通过天线120发送到一个或多个接收单元。
在接收机单元130处,发送的信号由天线132接收并提供给接收机(RCVR)134。在接收机134内,接收到的信号经放大、滤波、下变频、正交调制并数字化以提供采样。采样由解调器(DEMOD)136经解扩展、解覆盖并解调以生成已解调码元。解码器138然后对已解调码元进行解码,并(可能)对解码后的数据进行重新排序以恢复发送的数据。解调器136和解码器138实现的处理与在发射机单元110处实现的处理互补。恢复的数据然后提供给数据宿140。
上述信号处理支持一个方向上的语音、视频、分组数据、消息和其他类型的通信。双向通信系统支持双向数据传输。然而其他方向的信道处理在图1中为了简洁未示出。
通信系统100可以是码分多址(CDMA)系统、时分多址(TDMA)通信系统(例如GSM系统)、频分多址(FDMA)通信系统或其他在陆地链路上的用户间语音和数据通信的多址通信系统。
在多址通信系统内使用CDMA技术在美国专利号4901307和5103495内有揭示,前者题为“SPREAD SPECTRUM MULTIPLE ACCCESS COMMUNICATION SYSTEMUSING SATELLITE OR TERRESTRIAL REPEATERS”,后者题为“SYSTEM AND METHODFOR GENERATING WAVEFORMS IN A CDMA CELLULAR TELEPHONE SYSTEM”。另一特定的CDMA系统在美国专利申请序列号08/963386内揭示,题为“METHOD ANDAPPARATUS FOR HIGH RATE PACKET DATA TRANSMISSION”,提交于1997年11月3日(此后被称为HDR系统)。这些专利和专利申请被转让给本发明的受让人,在此引入作为参考。
CDMA系统一般设计成符合一个或多个标准,诸如“TIA/EIA-95-B MobileStation-Base Station Compatibility Standard for Dual-Mode WidebandSpread Spectrum Cellular System”(此后被称为IS-95标准),由“3rdGeneration Partnership Project”(3GPP)提供的标准,体现在一组文档内包括Nos.3G TS 25.211、3G TS 25.211、3G TS 25.212、3G TS 25.213以及3G TS 25.214(W-CDMA标准),以及“TR-45.5 Physical Layer Standard forcdma2000 Spread Spectrum Systems”(此后称为CDMA-2000标准)。继续在提出并采用新的标准。这些CDMA标准在此引入作为参考。
图2是设计成可以实现本发明的一些实施例的编码器200框图。编码器200可以用于图1的编码器114。在该实施例中,编码器200实现串接编码并包括级联耦合的外卷积编码器212、交织器214以及内卷积编码器216。外卷积编码器212接收并对输入数据进行卷积编码以生成编码比特,这些比特被提供给交织器214进行存储。一旦在交织器214内存储了整个编码比特分组后,编码比特经检索并提供给内卷积编码其216。为了获得交织,编码比特以不同于比特写入交织器214的顺序被读出。外卷积编码起212接收并对编码比特进行卷积编码以生成编码后的数据,这些数据然后被提供给下一处理级。
一般卷积编码器接收并对数据串行编码,每次(即每个时钟周期)一个比特。对于发送大分组的数据的通信系统,数据的串行编码会导致长处理延时。而且,对于由多个以级联耦合的卷积编码器组成的串接编码器,处理延时会过长,特别是如果内外卷积编码器同时串行编码。
在一方面,卷积编码器能接收并对多个(M个)比特进行并行编码。这使得卷积编码器能以常规卷积编码器需要的时间量的(1/m)对数据分组进行编码。当单个卷积编码器的每个并行处理比特时,串接(例如Turbo编码器)的这些好处就更明显了。
根据一方面,交织器能存储并并行提供多个数据比特。交织器还可以使用例如多端口存储器实现。当与在此描述的卷积编码器一起使用时,交织器可以进一步减少处理延时,因为数据可以以时间片断写入读出交织器。
为了简洁,现在为用于通信系统的下行链路数据传输的编码器描述示例实施例,该通信系统在前述的美国专利申请序列号08/963386内描述(即HDR系统)。HDR系统使用包括外卷积编码、交织和内卷积编码。HDR系统还定义了带有表格1内列出的属性的两个分组格式
表 1
参数 | 分组格式1 | 分组格式2 | 单元 |
总比特/分组 | 1024 | 2048 | 比特 |
外卷积编码器 | |||
输入数据比特/分组 | 1018 | 2042 | 比特 |
码尾比特/分组 | 4 | 4 | 比特 |
外编码速率 | 1/2 | 2/3 | |
外编码截短模式 | (1111) | (1011) | |
输出编码比特/分组 | 2044 | 3069 | 比特 |
交织器深度 | 2048 | 3072 | 比特 |
内卷积编码器 | |||
输入编码比特/分组 | 2044 | 3069 | 比特 |
码尾比特/分组 | 4 | 3 | 比特 |
内编码速率 | 1/2 | 3/4 | |
内编码截短模式 | (111111) | (111001) | |
外编码比特/分组 | 4096 | 4096 | 比特 |
总编码速率 | 1/4 | 1/2 |
在HDR系统中,外卷积编码器实现由以下多项式生成矩阵定义的码率1/2卷积码:
HDR系统内的内卷积码实现由以下多项式生成矩阵定义的码率1/2的卷积码:
图3是实现等式(1)和(2)定义的内外卷积编码的编码器300。数据比特u提供给外卷积编码器310,该编码器实现等式(1)并生成两个输出yoa和yob。在编码器310内,数据比特u提供给求和器312,该求和器进一步与寄存器314a到314d级联耦合(寄存器用于实现一组延时)。来自求和器312和寄存器314A、314B和314D的输出由求和器316A、316B和316C相加以实现等式(1)内表示的多项式生成矩阵内的第二元素的分子。寄存器314C和314D的输出由求和器318求和并提供给加法器312实现等式(1)的第二元素的分母。输入数据比特u作为第一输出yoa被提供,且来自求和器316c的输出包括第二输出yob。
外卷积编码器310的输出yoa和yob内的编码比特可以经截短(为了简洁在图3内示出)。未经截短的编码比特然后提供给交织器330并重新排序。重新排序的编码比特v然后提供给内卷积编码器340,编码器实现等式(2)并生成两个输出yia和yib。在编码器340内,编码比特v提供给求和器342,该求和器与寄存器344A和344B级联耦合。来自求和器342和寄存器344A、344B的输出由求和器346A、346B相加以实现等式(2)内的多项式生成矩阵内的第二元素的分子。寄存器344A的输出提供给求和器342以实现等式(2)的第二元素的分母。输入编码比特v作为第一输出yia,且来自求和器346B的输出包括第二输出yib。
一般,数据比特u串行地提供给编码器310,且编码比特v还串行提供给编码器340。对于每个输入数据比特,外卷积编码器310生成两个编码比特。交织器330接收并存储编码比特,并将编码比特串行地提供给内卷积编码器340。比特以串行方式编码导致长处理延时。
一个是实施例的卷积编码器能并行对多个比特进行编码以大大缩短编码延时。对于每个时钟周期,多个(例如M)个数据比特可以被接收并经编码以生成多个编码比特。对于速率1/2编码器,2M编码比特为M数据比特生成。M可以被选为任何数诸如例如4、8、16、32等。该卷积编码器的各个其他实施例在以下描述。
许多数字通信系统诸如HDR系统发送分组形式数据。分组形式的比特数目(即分组大小)基于多个准则选择的,诸如例如数据速率、要发送的数据量、处理延时要求等。为了使得接收机单元处的解码器能以已知状态在每个分组的开始处开始,这缩短了解码时间并改善了性能,编码器在每个分组的开始经初始化为已知状态(例如所有为零)。初始化是通过在先前的分组的末尾插入码尾比特集合而实现的。码尾比特的选择使得编码器被设定为已知状态。
在一实施例中,示例实施例的卷积编码器用查询表实现。参考图3,外卷积编码器310可以被视为带有4比特状态的状态机,该状态由寄存器314A到314D的输出定义。为了生成查询表的内容,在时间索引n处的M个输入数据比特可以由向量Un表示,2M编码别可以由向量Yn表示,且当前编码器状态可以由向量Xn表示。编码器的下一状态Xn+1和编码器输出向量Yn可以表示为:
数据 码尾
Xn+1=f(Xn,Un) Xn+1=0 (3)
Yn=g1(Xn,Un) Yn=g2(Xn,Un) (4)
等式(3)和(4)的每个提供一个等式用于当输入为数据,另一等式用于当编码器输入包括码尾比特时。
等式(3)和(4)可以为输入数据比特和编码器状态的所有可能组合而计算。例如,对于等式(4),输出编码比特可以为:输入向量Un=0...00以及Xn=0...00的编码器状态,输入向量Un=0......01 Xn=0...00的编码器状态等以及输入向量Un=1...11和Xn=0...00的编码器状态而计算。输出编码比特然后可以为输入向量Un和Xn=0...01的编码器状态的所有可能组合进行计算。过程然后继续直到计算了所有的输入向量和编码器状态组合。等式(3)可以以类似的方式经计算。
等式(3)和(4)的计算结果可以存储到实现查询表的存储器。需要的存储器大小取决于要并行编码的数据比特数目以及实现的特定多项式生成矩阵。例如,如果要用等式(1)内表达的卷积码并行对八个数据比特进行编码,则可以使用带有12个地址比特和20个数据比特(即4096×20)的存储器。12比特地址可以由8个输入数据比特和4个用于当前编码器状态的比特组成。20比特输出包括16个编码比特和4个用于下一编码器状态的比特。
一旦合适地定义了存储器,则输入数据向量Un以及当前编码器状态Xn可以提供给存储器的地址输入,存储器然后提供输出向量Yn和下一编码器状态Xn+1。下一编码器状态Xn+1经合适地存储以用于下一输入数据向量Un+1。
在另一实施例中,卷积编码器用状态机实现。编码器状态和输出可以表示为等式(3)和(4)示出。等式(3)和(4)的每个可以递推地解出,且产生的等式然后可以在硬件、软件及其组合内实现。编码器的递推等式可以如下解出。令
表示转置的状态向量,U0表示在时间索引0处的输入数据比特。则下一状态和编码器的输出可以表示为:
X1=AX0+Bu0 (5)
y0=CX0+Du0 (6)
其中A、B、C和D是取决于特定多项式生成矩阵的标量、向量和矩阵。编码器状态等式(5)可以递推地如下实现:
X2=A2X0+ABu0+Bu1
X3=A3X0+A2Bu0+ABu1+Bu2
X8=A8X0+A7Bu0+A6Bu1+A5Bu2+A4Bu3+A3Bu4+A2Bu5+ABu6+Bu7
编码器输出等式(6)还可以以类似的方式递推解出。
等式(5)和(6)用于在一时刻对一个数据比特u编码。类似的等式集合可以为对M数据比特并行编码而导出。例如,为了对8数据比特进行并行编码(即M=8),在时间索引n处的输入数据向量的转置可以被定义为
且输出码向量的转置可以被定义为
使用对Un和Yn定义的向量表示,等式(5)和(6)可以表示为:
Xn+1=FXn+GUn (7)
Yn=HXn+IUn (8)
其中F、G、H和I是取决于实现的特定多项式生成矩阵、当前编码器状态Xn以及输入数据向量Un的向量和矩阵。等式(7)用于在M个数据比特经编码后生成下一编码器状态Xn+1,且等式(8)用于为输入向量Un生成编码器输出Yn。
为了确定等式(7)和(8)内的F、G、H和I,等式(5)和(6)可以使用各种技术进行递推地求解,且递推计算的结果可以用于实现等式(7)和(8)。例如,表格可以用于为每个输入数据比特列出状态和编码器输出。表格内的项可以用于实现等式(7)和(8),如下描述。
表格2示出在八个输入数据比特u0到u7被串行地提供给图3的卷积编码器310后的编码器状态和输出,其中编码器实现等式(1)。如图3示出,寄存器314A到314D开始时相应地存储值x1,x2,x3和x4。在第一时钟周期内,第一数据比特u0被提供给编码器310,且求和器312的输出被计算为x4+x3+u0,该值被存储在表格2的第二行第二列内。编码器的输出被计算为ya0=u0以及yb0=(x4+x3+u0)+x4+x2+x1=x3+x2+x1+u0。(每个求和器316实现模2加法)。在下一时钟周期上,来自求和器312和寄存器314A到314C的值相应地移入寄存器314A到314D。下一数据比特u1被提供给编码器,且求和器312的输出被计算为x3+x2+u1,该值被存储在表格2内的第三行第二列内。编码器输出被计算为ya1=u1,且yb2=(x3+x2+u1)+x3+x1+(x4+x3+u0)=x4+x3+x2+x1+u1+u0。处理继续直到第八个数据比特u7被接收并经处理。
编码器输出向量Yb=[yb7 yb6 yb5 yb4 yb3 yb2 yb1 yb0]对应输入向量U=[u7 u6 u5 u4 u3 u2 u1 u0]且基于表格2内的最后列内的项生成。第八个数据比特u7经编码后,基于表格2内最后一行内的项生成编码器状态Xn+1。如表格2内示出,编码器输出向量Yb和下一编码器状态Xn+1每个是当前编码器状态Xn=[x4 x3 x2 x1]和输入向量U的函数。对于每个数据阶段,编码器输出向量Ya简单地是输入向量U的函数(即Ya=U)。
表2
u | 1 | x1 | x2 | x3 | x4 | ya | yb |
u0 | x4+x3+u0 | x1 | x2 | x3 | x4 | u0 | x3+x2+x1+u0 |
u1 | x3+x2+u1 | x4+x3+u0 | x1 | x2 | x3 | u1 | x4+x3+x2+x1+u0+u1 |
u2 | x2+x1+u2 | x3+x2+u1 | x4+x3+u0 | x1 | x2 | u2 | x4+x2+x1+u0+u1+u2 |
u3 | x4+x3+x1+u0+u3 | x4+x3+x1+u0+u3 | x3+x2+u1 | x4+x3+u0 | x1 | u3 | x4+x1+u0+u1+u2+u3 |
u4 | x4+x2+u0+u1+u4 | x4+x2+u0+u1+u4 | x4+x3+x1+u0+u3 | x3+x2+u1 | x4+x3+u0 | u4 | x4+u0+u1+u2+u3+u4 |
u5 | x3+x1+u1+u2+u5 | x4+x2+u0+u1+u4 | x4+x2+u0+u1+u4 | x4+x3+x1+u0+u3 | x3+x2+u1 | u5 | x3+u1+u2+u3+u4+u5 |
u6 | x4+x3+x2+u0+u2+u3+u6 | x3+x1+u1+u2+u5 | x4+x2+u0+u1+u4 | x4+x2+u0+u1+u4 | x4+x3+x1+u0+u3 | u6 | x2+u2+u3+u4+u5+u6 |
u7 | x3+x2+x1+u1+u3+u4+u7 | x4+x3+x2+u0+u2+u3+u6 | x3+x1+u1+u2+u5 | x4+x2+u0+u1+u4 | x4+x2+u0+u1+u4 | u7 | x1+u3+u4+u5+u6+u7 |
x3+x2+x1+u1+u3+u4+u7 | x4+x3+x2+u0+u2+u3+u6 | x3+x1+u1+u2+u5 | x4+x2+u0+u1+u4 |
回到表格1,HDR系统内的输出卷积编码器接收分组格式1的每个分组的1018个数据比特以及四个码尾。如果八个比特经并行编码,则使用128个时钟周期用于对一数据分组进行编码。第一127时钟周期用于对1016个数据比特进行编码(即127×8=1016),且第128个时钟周期用于对剩余的两个数据比特以及四个码尾比特编码。前127个时钟周期被称为“数据阶段”,最后一个时钟周期被称为“码尾阶段”。
外卷积编码器接收到分组格式2的每个分组的2042个数据比特和四个码尾比特。如果八个比特经并行编码,则使用256个时钟周期对一个数据分组进行编码。前255个时钟周期用于对2040个数据比特编码(即255×8=2040),且第256个时钟周期用于对剩余的两个数据比特以及四个码尾比特编码。前255个时钟周期被称为“数据阶段”,最后一个时钟周期被称为“码尾阶段”。
表格3示出在两个数据比特u0和u1以及四个码尾比特被串行地提供给图3的卷积编码器310后编码器状态以及输出。同样,寄存器314A到314D开始时相应存储值x1,x2,x3和x4。在前两个时钟周期上,两个数据比特u0和u1被串行地提供给编码器。编码器状态x1到x4以及编码器输出yc和yd以与以上类似的方式经计算。因此,表格3的第二和第三行与表格2内的第二和第三行相同。在第三时钟周期上,值为x2+x1的第一码尾比特被提供给编码器。码尾比特的值的选择使得求和器的输出等于零,这用于刷新卷积编码器。编码器输出计算为yc2=x2+x1以及yd2=x4+u0+u1。在下一时钟周期上,来自求和器312和寄存器314A到314C的值相应被移入寄存器314A到314D。第二码尾比特被选择为x4+x3+x1+u0,再次将求和器312的输出设定为零并排出编码器。处理继续,最后两个提供给编码器的值为零。
如表格3示出,编码器输出Yc和Yd是输入向量U和当前编码器状态Xn的函数。对于码尾阶段,下一编码器状态Xn+1被设定为全零的已知状态(即X8=[00 0 0])。
表3
u | 1 | x1 | x2 | x3 | x4 | yc | yd |
u0 | x4+x3+u0 | x1 | x2 | x3 | x4 | u0 | x3+x2+x1+u0 |
u1 | x3+x2+u1 | x4+x3+u0 | x1 | x2 | x3 | u1 | x4+x3+x2+x1+u0+u1 |
x2+x1 | 0 | x3+x2+u1 | x4+x3+u0 | x1 | x2 | x2+x1 | x4+u0+u1 |
x4+x3+x1+u0 | 0 | 0 | x3+x2+u1 | x4+x3+u0 | x1 | x4+x3+x1+u0 | x3+x2+x1+u1 |
x4+x2+u0+u1 | 0 | 0 | 0 | x3+x2+u1 | x4+x3+u0 | x4+x2+u0+u1 | x4+x3+u0 |
x3+x2+u1 | 0 | 0 | 0 | 0 | x3+x2+u1 | x3+x2+u1 | x3+x2+u1 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
图4是可以对多个输入数据比特并行编码的卷积编码器400实施例框图。卷积编码器400可以用于实现数据和码尾阶段(例如如表格2和3相应定义的)。图4示出的编码器结构可以用于实现例如图3的外卷积编码器310或内卷积编码器340。
在卷积编码器400内,输入数据比特并行地作为数据向量U被提供给编码器状态机410、数据阶段输出发生器420和码尾阶段发生器430。编码器状态机410还接收当前编码器状态X并基于接收到的输入向量U和当前编码器状态X确定新编码器状态。编码器状态机410可以实现例如表格2内的最后一行。
数据阶段输出发生器420和码尾阶段输出发生器430还接收当前编码器状态X并基于接收到的输入X和U确定相应的数据阶段和码尾阶段的输出。数据阶段输出发生器420可以实现例如表格2内的最后两列,且码尾输出发生器430可以实现例如表格3内的最后两列。来自数据阶段发生器420的第一和第二输出Ya和Yb可以相应地提供给多路复用器(MUX)440A和440B。同样,来自码尾阶段输出发生器430的第一和第二输出Yc和Yd相应提供给多路复用器440A和440B。多路复用器440A和440B相应地在数据阶段操作时提供来自数据阶段输出发生器420的输出Ya和Yb,在码尾阶段操作时提供来自码尾阶段输出发生器430的输出Yc和Yd。
为了实现在数据比特被接收时对输入数据比特连续编码的卷积编码器,而不需要在每个分组的开始重设编码器状态,只需要编码器状态机410和数据阶段输出发生器420。对于一通信系统(例如HDR系统),其中数据以分组被发送,且码尾比特用于在每个分组的开始处将卷积编码器重设到已知状态,则码尾阶段输出发生器430和多路复用器440用于提供需要的编码器输出。
编码器状态机410和数据阶段输出发生器420的设计取决于要实现的特定多项式发生矩阵以及要并行编码的数据比特数。码尾阶段输出发生器430的设计取决于多项式生成矩阵、要并行编码的数据比特数以及特定的帧格式(即数据和在码尾阶段要编码的码尾比特的数目)。卷积编码器400的特定设计在以下描述。
图5A是卷积编码器500的特定实施例示意图,该编码器可以对八个输入数据比特并行编码,且实现等式(1)内表示的多项式生成矩阵。卷积编码器500包括实现表格2内定义的状态机的编码器状态机510,以及生成表格2内定义的编码器输出的数据阶段输出发生器520。编码器状态机510以及数据阶段输出发生器520对应图4内相应的编码器状态机410以及数据阶段输出发生器420。在该实施例中,编码器状态机510用AND门512A到512D以及寄存器514A到514D实现,且数据阶段输出发生器520用AND门522A到522H实现。
如图5A示出,八个输入数据比特u0到u7并行提供给编码器状态机510以及数据阶段输出发生器520,每个还接收x1到x4定义的当前编码器状态。编码器状态机510内的每个AND门512选择性地耦合到表格2内最后一行定义的输入u0-u7以及x1-x4。例如,AND门512A耦合到输入x3 x2 x1 u1 u3 u4和u7,这些输入如在表格2内的最后一行,第三列(x1)内定义的。AND门512A到512D的输出耦合到相应的寄存器514A到514D的输入。寄存器514A到514D的输出相应地包括状态机输出x1到x4。
同样,数据阶段输出发生器520的每个AND门522选择性地耦合到如表格2内最后一列定义的输入u0-u7和x1-x4。例如,AND门522A耦合到输入x3,x2,x1和u0,这些输入如在表格2内第2行,最后一列(yb0)的项定义的。输入u0-u7包括相应的编码器输出ya0到ya7(为了简洁未在图5A内示出),且AND门522A到522H的输出相应包括编码器输出yb0到yb7。
图5B是码尾阶段输出发生器和多路复用器540A和540B的特定实施例示意图,它们实现对表格1内示出的分组格式1和2以及等式(1)内表示的多项式发生矩阵的码尾阶段。码尾阶段输出发生器530以及多路复用器540A和540B对应于图4内相应的码尾阶段输出发生器430以及多路复用器440A和440B。在该实施例中,码尾阶段输出发生器530用AND门532A到532J实现,并为表格3内定义的码尾阶段生成编码器输出Yc和Yd。多路复用器540a用2×1多路复用器542A到542F实现,并提供第一编码器输出Yoa。同样,多路复用器540B用2×1多路复用器544A到544H实现,并提供第二编码器输出Yob。
图5A和5B内的编码器状态机510、数据阶段输出发生器520、码尾阶段输出发生器530以及多路复用器540A和540B形成了卷积编码器400的特定实现。该特定实现用于实现在等式(1)内表示的多项式生成矩阵以及表格1内描述的分组格式。
对于分组格式1,1018数据比特在128时钟周期上被提供给卷积编码器500。对于前127个时钟周期的每个,提供八个数据比特给编码器500,多路复用器540A和540B被选用提供来自数据阶段输出发生器520的输出Ya和Yb。在第128个时钟周期上,剩余的两个数据比特、四个码尾比特以及两个零被提供给编码器500。寄存器514A到514D被重设为零(同步),且多路复用器540A和540B被选用提供提供来自码尾阶段输出发生器530的输出Yc和Yd。对于分组格式2,2042个数据比特在256个时钟周期上被提供给卷积编码器500。对于对应于数据阶段的前255个时钟的每个,八个数据比特经并行编码,且多路复用器540A和540B相应地提供Ya和Yb。在第256个时钟上,对应码尾阶段、两个数据比特、四个码尾比特和两个零经并行编码,且多路复用器540A和540B相应提供输出Yc和Yd。
图5A和5B示出的特定实现经描述以提供更清楚的理解。值得注意的是,还可以考虑不同的实现,并在本发明的范围内。而且,一般为不同的多项式生成矩阵、不同数量的输入数据比特或不同的分组格式使用不同的设计。
以类似的方式,可以设计另一卷积编码器以实现等式(2)内表示的多项式生成矩阵。在一实施例中,卷积编码器可以设计成接收并对四个编码比特进行并行编码。下一编码器状态和输出的等式(5)和(6)相应地可以递推地以上述方式解出。
表格4示出在四个输入编码比特v0到v3经串行地提供给图3的卷积编码器340后的编码器状态以及输出。寄存器344A和344B开始时相应存储值x1和x2。在第一时钟周期上,第一编码比特v0提供给编码器340,且求和器342的输出计算为x1+v0,该值被存储在表格4的第二行第二列中。编码器输出被计算为ye0=v0且yf0=(x1+v0)+x2+x1=x2+v0。在下一时钟周期上,来自求和器312和寄存器344A的值相应被移入寄存器344A和344B。下一编码器比特v1被提供给编码器340,且求和器342的输出被计算为x1+v0+v1,该值被存储在第三行,第二列内。输出被计算为ye1=v1和yf1=(x1+v0+v1)+(x1+v0)+x1=x1+v1。处理继续直到接收并处理了第四个编码比特v3。
编码器输出向量Yf基于表格4内的最后一列内的项生成。第四个编码比特v3经编码后的编码器状态Xn+1基于表格4内的最后一行的项经生成。如表格4内示出,编码器输出向量Yf以及下一编码器状态Xn+1每个是当前编码器状态Xn=[x2 x1]以及输入向量V的函数。对于数据阶段,编码器输出向量Ye简单地是输入向量V的函数。
表 4
v | 1 | x1 | x2 | ye | yf |
v0 | x1+v0 | x1 | x2 | v0 | X2+v0 |
v1 | x1+v0+v1 | x1+v0 | x1 | v1 | X1+v1 |
v2 | x1+v0+v1+v2 | x3+x2+u1 | x1+v0 | v2 | x1+v0+v2 |
v3 | x1+v0+v1+v2+v3 | x1+v0+v1+v2 | x3+x2+u1 | v3 | x1+v0+v1+v3 |
x1+v0+v1+v2+v3 | x1+v0+v1+v2 |
参考表格1,HDR系统内的内卷积编码器接收分组格式1的每个分组的2044个数据比特以及四个码尾。如果四个比特经并行编码,则使用512个时钟周期用于对一数据分组进行编码。第一511个时钟周期用于对2044个数据比特进行编码(即511×4=2044),且第512个时钟周期用于四个码尾比特编码。卷积编码器接收分组格式2的每个分组的3079个数据比特以及三个码尾。如果四个比特经并行编码,则使用768个时钟周期用于对一数据分组进行编码。第一767时钟周期用于对3068个数据比特进行编码(即767×4=3068),且第768个时钟周期用于对最后编码比特和三个码尾比特编码。
表格5列出分组格式1的码尾阶段的内卷积编码器的状态和输出。在第一时钟周期上,带有值x1的第一编码比特被提供给编码器。码尾比特值的选取使得求和器342的输出等于零。编码器输出计算为yg0=x1以及yh0=x2+x1。处理以类似的方式对剩余的三个码尾比特继续。
表5
v | 1 | x1 | x2 | yg | yh |
x1 | 0 | x1 | x2 | x1 | x2+x1 |
0 | 0 | 0 | x1 | 0 | x1 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 |
表格6示出分组格式2的码尾阶段的内卷积编码器的状态和输出。在第一时钟周期上,提供给编码器最后编码比特v0,且编码器状态x1和x2和输出yi0和yj0以与上述类似的方式经计算。表格6的第二行因此等于表格4的第二行。在第二时钟周期上,值为x1+v0的第一码尾比特被提供给编码器。码尾比特值得选取使得求和器342的输出等于零。编码器输出被计算为yi1=x1和yj1=v0。处理对剩余的码尾比特以类似的方式继续。
表 6
v | 1 | x1 | x2 | yi | yi |
v0 | x1+v0 | x1 | x2 | v0 | x2+v0 |
x1+v0 | 0 | x1+v0 | x1 | x1+v0 | v0 |
0 | 0 | 0 | x1+v0 | 0 | x1+v0 |
0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 |
图6是卷积编码器600的特定实施例示意图,该编码器可对四个输入编码比特并行编码并实现等式(2)内表示的多项式生成矩阵。卷积编码器600包括实现表格4内定义的状态机的编码器状态机610、生成表格4到6内定义的编码器输出的输出发生器620以及为分组格式1和2的数据和码尾阶段提供合适编码器输出的多路复用器640A和640B。
如图6示出,四个输入编码比特v0到v3被并行提供给编码器状态机610和输出发生器620的输入,两者还都接收定义为Xn=[x2 x1]的当前编码器状态。编码器状态机610内的每个AND门612选择性地耦合到如表格4内的最后一行定义的输入v0-v3和x1-x2。例如,AND门612A耦合到输入x1,v0,v1,v2,v3和v4,这些输入由表格4内的最后一行第三列的项(x1)定义。AND门612A和612B的输出相应耦合到寄存器614A和614B的输入。寄存器614A和614B的输出相应包括状态机输出x1和x2。
类似地,输出发生器620的每个AND门622选择性地耦合到输入v0-v3和x1-x2,这些输入如表格4到6的最后两行定义的。例如,AND门622A耦合到输入x2和v0,并生成yf0(表格4内的第二行最后一列),AND门622B耦合到输入x2和x1并生成yh0(表格5内的第二行最后一列),AND门622C耦合到输入x2和v0,并生成yj0(表格6内的第二行最后一列)。其它编码器输出如表格4到6指示的生成。
多路复用器640A包括3×1多路复用器642A到642D,它们为内卷积编码器600相应地提供第一编码器输出yia0到yia3。在该数据阶段,ye0到ye3相应地通过多路复用器642A到642D被提供。在码尾阶段,多路复用器642A到642D为分组格式1提供yg0到yg3,为分组格式2提供yi0到yi3。类似地,多路复用器640B包括3×1多路复用器644A到644D,它们为内卷积编码器600提供相应的第二编码器输出yib0到yib3。在数据阶段,yf0到yf3通过多路复用器644A到644D相应地被提供。在码尾阶段,多路复用器644A到644D相应地为分组格式1提供yh0到yh3,为分组格式2提供yj0到yj3。
本发明的另一方面提供交织器,能存储由外卷积编码器并行生成的多个编码比特,并将多个编码比特并行地提供给内卷积编码器。参考图2,交织器耦合在内外卷积编码器间。交织器被设计成存储一个或多个编码比特分组。在存贮了整个分组后,编码比特然后以不同于写入顺序的读取顺序经检索以获得编码比特的交织。如果不需要交织,则编码比特从交织器以相同的顺序经检索。
示例实施例的外卷积编码器可以被设计成接收并对M个数据比特进行并行编码,并生成M·R个编码比特,其中与外卷积编码器的编码速率相关(例如对于码率1/2的编码器R=2)。为了加速处理并减少延时,交织器可以设计成在编码器生成编码比特时并行存储来自外卷积编码器的M·R个编码比特。类似地,内卷积编码器可以设计成接收并对N个编码比特进行并行编码。同样,为了加速处理且减少延时,交织器可以被设计成至少在单次读操作上并行地提供N个编码比特给内卷积编码器。
来自内外卷积编码器的每个的编码比特可以经截短以提供其它码率的编码比特。例如,回到表格1,来自外卷积编码器的输出未对于分组格式1截短以获得码率1/2,而对分组格式2进行截短以获得码率2/3。同样,来自内卷积编码器的输出为未对组格式1截短以获得码速率1/2,并对分组格式2经截短以获得码率3/4。编码器和交织器间的接口可以设计成有效地实现码元截短。
图7A是交织器700的实施例图。在该实施例中,交织器700用带有P个端口的多端口存储器710实现,其中P大于一。取决于用于实现交织器的特定存储器单元,P个端口的每个可以用作读和写端口,或可以是专用的写或读端口。在图7A内示出的实施例中,存储器710包括指定为写端口D1到DW的W个端口,R个端口指定为读端口Q1到QR。存储器710还包括P个地址输入A1到AP,P个端口的每个一个地址输入。每个写和读端口可以并行传输C个比特。
地址发生器720接收输入地址ADDR,为每个活动端口生成必须的地址,并将生成的地址提供给存储器710的地址输入A1到AP。虽然在图7A内为了简洁而未示出,地址发生器720进一步生成一个或多个控制信号,这些信号引导存储器710实现写或读操作。
在一实施例中,存储器710用作有多行和多列的两维存储器。在一实施例中,编码比特被写入存储器710内的顺序行。为了效率,每行的宽度可以对应每个端口的宽度(即C比特)。这使得对于每次写操作能写入存储器710的W个写端口多达W行的编码比特。一旦整个分组的编码比特已被存储到存储器710内,可以从存储器检索编码比特。在一实施例中,编码比特还从存储器710中成行读出。对于图7A内示出的实施例,可以为每个读操作从R的读端口检索R行编码比特。
可以使用各个设计以将来自交织器700的编码比特提供给内卷积编码器。实现此的特定设计取决于特定系统要求。在一设计中,R个多路复用器730A到730R耦合到R个相应的读端口Q1到QR。对于每次读操作,从存储器710中检索多达R行编码比特,并提供给多路复用器730A到730R,它们还相应地接收控制信号AD1到ADW。每个多路复用器730接收C个编码比特,基于相应的控制信号ADX选择一个编码比特,且将选定的编码比特提供给多路复用器的输出。控制信号AD1到ADR从每个检索的编码比特行中选择特定的编码比特。R个多路复用器730因此可以用于提供多达R个并行的编码比特给内卷积编码器。
为了能清楚地理解,现在描述与上述图5A、5B和6一起使用的内外卷积编码器的交织器特定设计。在以上的编码器设计中,外卷积编码器接收并对8数据比特并行地在一个时钟周期内编码,以生成16个编码比特,且内卷积编码器接收并对4个编码比特并行编码。在该特定交织器设计中,使用8端口存储器,四个端口用于在写入操作中接收编码比特,且四个端口用于在读操作中提供编码比特。在该设计中,每个端口能并行接收或提供8个比特。因此,对于该特定设计,在写操作中可以写入交织器多达32个编码比特,可以在读操作中从交织器读出多达32个编码比特。
图7B是没有截短的外卷积编码器和交织器间的接口实施例图。在该实施例中,外卷积编码器生成的编码比特被提供给四个寄存器732A到732D。寄存器732A和732B接收在第一时钟周期内生成的16个编码比特,且寄存器732C和732D接收第二(例如其它的)时钟周期内生成的16个编码比特。当不实现截短时,在一次写入操作中,在寄存器732A到732D上的所有32个编码比特被相应地提供给存储器的端口D1到D4。
图7C是外卷积编码器和带有截短的交织器间的接口。参考表格1,外编码的编码比特用分组格式2的截短模式(1101)经截短。因此,在一个时钟周期内,生成16个编码比特,对4个编码比特进行截短,并存储12个编码比特。开始时,在第一时钟周期内生成的16个编码比特被存储到寄存器732A和732B内,且第二时钟周期内生成的16个编码比特被存储到寄存器732C和732D内。在截短之后,剩余24个编码比特,如图7C内示出,且被提供给三个写入端口(例如D1到D3)。
地址发生器提供用于将未经截短的编码比特写入存储的顺序行内的合适地址。为用于写入编码比特的每个活动端口生成一个地址。因此,地址发生器在没有实现截短时为端口D1到D4生成四个地址,在实现截短时为端口D1到D3生成三个地址。
为了将四个编码比特并行地提供给内卷积编码器,从存储器检索四行编码比特并提供给四个8×1多路复用器。每个多路复用器还接收相应的3比特控制信号ADX,该比特在检索的行内选择特定的比特以提供给内卷积编码器。每个检索的比特的地址可以因此被分为两部分,第一部分标识存储器内的特定行,第二部分标示行内的特定位置。地址的第一部分被提供给存储器合适的地址输入,而第二部分作为控制信号ADX被提供。地址的第一和第二部分根据系统或实现的标准所定义的特定的交织方案而经生成。
示例实施例的交织器还可以使用其它存储器而实现。例如,可以使用单端口存储器单元或多存储器单元以进发地存储并并行地提供多个比特。对于单端口存储器,可以使用多个写入操作以存储生成的编码比特,以及多个读操作可以用来检索需要的编码比特。在使用多个存储器单元的设计中,每个存储器单元可以以类似多端口存储器的端口(或端口对)而操作。多个设计可以用于实现交织器,且在本发明的范围内。
在上述的实施例中,在内外卷积编码器间使用交织器。该配置用于实现Turbo编码器,这可以提供一定的优势。在其它的编码器设计中,在外卷积编码器后的交织不一定必要,且可能在外卷积编码器后不需要存储器,或可以简单地用作缓冲器。
示例实施例的串接编码器可以以各种方式操作。在一特定设计中,编码器被用于一次对一个数据分组进行编码。参考图2,数据的特定分组可以由外卷积编码器编码并存储到交织器。在整个分组均由外卷积编码器编码后,编码比特从交织器被检索,并由内卷积编码器经编码。一旦整个分组由内卷积编码器经编码,下一分组由外卷积编码器经编码。该设计减少了对交织器的存储器要求,这在一些应用中是期望的。
在另一特定设计中,交织器实现为有存储两个或多个编码比特分组的容量。例如,用于实现交织器的存储器可以被分成两个池,每个存储器池能存储整个编码比特分组。两个存储器池使得内外卷积编码器能进发地对两个分组进行操作。外卷积编码器编码第一分组并将该分组的编码比特存储到一存储器池。在整个第一分组被存储到存储器后,外卷积编码器对第二个分组进行编码并将该分组的编码比特存储到第二存储器池内。在外卷积编码器对编码比特编码并将该当前分组的编码比特存储到一个存储器池时,内卷积编码器能从另一存储器池检索并对先前分组的编码比特进行编码。该设计减少了处理延时。
图8是可以用于实现一些实施例的编码器800的特定设计框图。编码器800可以用于实现图1的编码器114。编码器800包括耦合到地址发生器820和存储器830的处理单元810。处理单元810从缓冲器802接收数据,并从控制源(未示出)接收控制信息,根据控制信息对接收到的数据进行编码,并将编码后数据提供给缓冲器850。
在图8示出的实施例中,处理单元810包括输入接口812、多比特编码器814、输出接口816以及控制单元818。输入接口812为缓冲器802生成地址和控制信号,响应于生成的地址和控制信号接收缓冲器802提供的数据,并将接收到的数据路由给多比特编码器814。多比特编码器814实现输出和内卷积编码器,且可以用一个或多个查询表或一个或多个诸如图4内描述的编码器的内卷积编码器实现。当作为外卷积编码器,多比特编码器814对来自输入接口812的数据编码并提供生成的编码比特给存储器830。且当操作为内卷积编码器时,多比特编码器814对来自存储器830的编码比特编码,并将生成的编码比特提供输出接口816。输出接口816然后将编码后的数据提供给缓冲器850。
控制单元818接收各种控制信息,诸如例如要编码的特定数据分组、缓冲器802内的分组位置、分组格式、使用的编码方案、在缓冲器850内的编码的分组的位置等。控制单元818然后引导输入接口812从缓冲器802检索合适的数据比特,并引导编码器状态机814使用合适的编码方案,并进一步引导输出接口816提供编码后的数据到缓冲器850的合适位置。
地址发生器820为存储器830的写入和读出编码比特生成合适的地址。地址发生器820可以用逻辑、查询表或一些其它设计生成。
存储器830存储由多比特编码器814生成的编码比特,并将存储的编码比特提供给多比特编码器814。通过合适地生成地址,存储器830可以用于提供编码比特的交织。存储器830可以用多端口存储器实现,如上所述,或用一个或多个存储器单元实现。
图9是用于实现多个数据比特并行串接编码的方法实施例流图。开始时,在步骤912处接收来自特定数据分组的多个(M)数据比特,并根据第一(例如卷积)编码方案进行并行编码,以在步骤914处生成多个(MR)编码比特。第一编码方案生成的编码比特数取决于该方案的特定编码速率。可以在步骤916处用第一截短方案对零个或多个生成的编码比特进行截短,以提供不同码率的编码比特。未经截短的编码比特然后在步骤918处存储到存储器。
在图9示出的实施例,整个分组由第一编码方案编码并在接着的编码前由第二编码方案存储。这允许编码比特的交织,如上所述。因此,在步骤920确定是否整个分组经编码。如果否,则过程回到步骤912,并接收其他M(或更少)个数据比特。
否则,如果整个分组已被编码,则在步骤922从存储器检索多个(N)个编码比特,并根据第二编码方案(例如卷积)并行编码,以在步骤924处生成多个(NR)个编码比特。同样,第二编码方案生成的编码比特数取决于方案的特定码率。同样,在步骤926,生成的编码比特的零个或多个可以用第二截短方案经截短,以提供其他码率的编码比特。在步骤928,未经截短的编码比特然后作为编码后数据提供给下一处理单元(例如图1内的调制器116)。
为了效率并减少延时,可以并行地将W个码字存储到(例如通过W个写端口)存储器,且R个码字可以并行地(例如通过R个读端口)从存储器检索。W个码字允许从第一编码方案的未经截短的编码比特的并行存储,R个码字允许N个编码比特能并行地被提供给第二编码方案。存储器可以以上述的方式操作以获得编码比特的交织。例如,W个码字可以写入存储器的顺序行,R个码字可以从存储器交换的行中读出。
示例实施例的编码器和交织器可以用于大大缩短编码时间。通过用外卷积编码器对M个数据比特进行并行编码,并用内卷积编码器对N个编码比特进行并行编码,可以大大减少总编码延时。本发明的交织器支持并行编码,且能接收多个编码比特进行写操作,并能为读操作提供多个编码比特。特定设计的处理延时的改善在表格7内示出,其中对于HDR系统内的分组格式1和2,M=8,N=4。
表8
分组格式1 | 分组格式2 | |||
并行 | 串行 | 并行 | 串行 | |
外卷积编码器 | ||||
输入比特 | 1018 | 2042 | ||
码尾比特 | 4 | 4 | ||
总输入比特 | 1022 | 2046 | ||
需要的时钟周期 | 128 | 1024 | 256 | 2048 |
内卷积编码器 | ||||
输入比特 | 2044 | 3069 | ||
码尾比特 | 4 | 3 | ||
总输入比特 | 2048 | 3072 | ||
需要的时钟周期 | 512 | 2048 | 768 | 3072 |
编码时间(20MHz时钟) | ||||
外编码器(μ秒) | 6.4 | 51.2 | 12.8 | 102.4 |
内编码器(μ秒) | 25.6 | 102.4 | 38.4 | 153.6 |
总编码时间(μ秒) | 32.0 | 153.6 | 51.2 | 256.0 |
对于表格8示出的特定设计,总编码延时对于本发明的编码器和交织器延时减少了4.8倍,这提供了多种好处。其中一些好处在以下简要描述。
第一,更短的处理延时可以用于支持一定类型的服务,诸如语音和视频,这些服务有较为严格的延时要求。更短的处理延时因此可以允许使用对于延时敏感应用更为有效的编码方案。
第二,更短的处理延时可以改善系统性能。例如,如果基于通信连路的条件为特定传输选择了特定用户或数据速率,则更短的处理延时增加了链路条件在数据传输时间上没有改变的可能性。链路条件一般随时间改变,且更长的处理延时增加了链路条件在数据传输时间上改变的可能性,这会恶化性能。
第三,更短的处理延时可以改善一些通信系统性能的容量。例如,在HDR系统中,功率控制数据与话务数据经多路复用并发送到用户终端。更短的处理延时使得能更准确地控制用户终端的发射功率,这可以增加系统容量并改善性能。
第四,更短的处理延时可以允许由多个发射实体(即在三个扇区系统内的三个用户)在一个处理时隙(即HDR系统内的朝前看链路时隙)内按顺序共享硬件资源(例如编码器)以减少硬件设计的总区域。
为了简洁,本发明的编码器的一定方面和实施例为HDR系统内的朝前看链路特别描述。然而,本发明还可以用于其他通信系统中,这些系统使用相同、类似或不同的编码方案。例如,本发明的编码器还可以用于实现能并行接收并对多个数据比特进行编码的卷积编码器。本发明的编码器还能用于实现串接编码器,诸如Turbo编码器,它能并行接收并对多个数据比特编码。编码器的特定设计取决于各个因子诸如例如实现的特定多项式生成矩阵、并行编码的比特数、分组格式、码尾比特的使用等。
本发明的编码器可以有利地用于通信系统的基站或用户终端(例如移动单元、电话等)。朝前看链路(即下行链路)和反向链路(即上行链路)的编码可以不同,且一般取决于实现的特定CDMA系统或实现的标准。因此,本发明的编码器一般为对于其使用的特定应用设计。
回到表格2和3内示出的特定设计,外卷积编码器的下一状态和输出可以用多达七项的函数生成。回到表格4到6内示出的特定设计,内卷积编码器的下一状态和输出可以用多达五项的函数生成。这些函数可以简单地用领域内已知方式的逻辑门生成。内外卷积编码器的其他元件(例如寄存器、多路复用器)可以以领域内已知的方式实现。
为本发明的编码器描述的一些或所有元件(例如多比特编码器、输入和输出接口、控制单元、编码器状态机、输出发生器、多路复用器等)可以在一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、可编程逻辑设备(PLD)、复杂PLD(CPLD)、控制器、微控制器、微处理器、其他设计成实现在此描述的功能的电子单元或其组合。本发明的编码器的一些或所有元件还可以使用在处理器上执行的软件或固件实现。
存储器和存储器单元(诸如用于实现本发明交织器的元件)可以用各种存储器技术实现,诸如例如,随机访问存储器(RAM)、动态RAM(DRAM)、闪存和其他。存储器单元还可以用存储元件实现,诸如例如硬盘、CD-ROM驱动以及其他。存储器单元的各种其他实现也是可能的,且在本发明的范围内。
并行地对多个比特的递归编码
根据其他的实施例,编码器经并行配置以提供输出数据两倍的量,其中多个比特经编码器处理。数据输出的增加特别应用于高数据速率通信系统,其中帧可以经快速编码。示例实施例在每个时钟周期对多个比特编码,因此符合数据传输的时间约束。该实施例通过在多个扇区上共享单个编码器而避免了每个扇区使用一个编码器。其他的实施例还可以并行实现任何数量的编码器。通过共享扇区上的编码部分,单个编码器的速率可以宽松一些。
根据示例实施例的一方面,帧缓冲器存储器存储每个帧的多个副本。并行的查询表(LUT)以及多个电路用于实现turbo交织器地址发生器。设计使用AND-XOR树以实现并行编码。比特截短/重新排序也并行地接着编码过程完成。
图10作为通信系统1000的示例,该系统支持多个用户,且能实现本发明的至少一些方面和实施例。可以使用多种算法和方法的任何一种调度系统1000内的传输。系统1000为多个小区1020A到1020G提供通信,每个相应地由对应的基站1040A到1040G服务。在示例实施例中,一些基站1040有多个接收天线,而其他只有一个接收天线。类似地,一些基站1040有多个发射天线,而其他有单个发射天线。在发射天线和接收天线的组合上没有限制。因此,基站1040可以有多个发射天线和单个接收天线,或多个接收天线和单个发射天线,或同时有单个或多个发射和接收天线。
覆盖区域内的终端1060可以是固定的(即静止的)或移动的。如图1示出,各个终端1060与至少一个且可能多个基站1040在任何给定时刻在下行链路和上行链路上通信,这取决于例如是否使用软切换,且终端是否被设计并用于(并行或串行地)接收来自多个基站的多个传输。CDMA通信系统内的软切换在领域内是众知的,且在美国专利号5101501内描述,题为“Method and systemfor providing a Soft Handoff in a CDMA Cellular Telephone System”,在此转让给本发明的受让人。
下行链路指从基站到终端的传输,上行链路指从终端到基站的传输。在示例实施例中,一些终端有多个接收天线,且其他只有一个接收天线。在图1中,基站104A将数据在下行链路上发送到终端1060A和1060J,基站1040B将数据发送到终端1060B和1060J,基站1040C将数据发送到终端1060C等。
根据示例实施例,无线通信系统用于使用并行配置的多个卷积编码器对传输信息进行编码。每个单个的编码器有类似的结构并通过交织器耦合。并行编码器提供多个输出,即对于两个并行的编码器;组合提供两倍的输出值。然后在输出处为这些将用于进一步处理的值进行选择。多个比特通过并行编码器进行处理。每个编码器内的处理被,并行地实现。
示例实施例每系统时钟周期处理多个比特,例如每周期四个比特。示例实施例的编码器使用硬件和软件的组合实现。硬件用于存储并处理信息输入比特。软件包括用于控制硬件和其他编码计算(例如在编码过程中生成中间值)的指令。
图11根据每时钟对4比特编码的一实施例说明turbo编码器框1500。图11内说明的Turbo编码器模框1500使用两个并行连接的系统卷积编码器1502、1552,在第二个卷积编码器1552前有交织器1522。交织器1522被称为turbo交织器。两个卷积编码被称为turbo码的组成编码。组成编码器的输出经截短并重复以获得期望的turbo编码器输出码元数。根据一实施例的组成编码的转移函数给出为:
其中
d(D)=1+D2+D3 (10)
n0(D)=1+D+D3, (11)
n1(D)=1+D+D2+D3 (12)
组成编码器1502、1522的每个包括多个寄存器,具体说,在编码器1502内的是寄存器1510、1512和1514,在编码器1522内的是寄存器1560、1562和1564。开始时,组成编码器1502、1552内的寄存器的状态被设定为零。每个编码器1502、1552通过相应的输入开关1501、1551提供时钟节拍。信息比特作为到第一编码器1502的输入而通过开关1501提供。输入信息比特包括Nturbo个比特,这是实际上进入编码器1500的比特数。输入信息比特进一步被提供给turbo交织器1522,其中比特经交织即经扰码以增加数据传输的准确性。Turbo交织器1522的输出通过开关1551被提供给第二编码器1552。编码器的1502和1552的每个的操作类似,因此以下的讨论仅详细描述编码器1502的操作。还可以对包括在turbo编码器框1500内的每个编码器实现其他类型的编码器。
到编码器1502的输入被提供给开关,其中开关由系统时钟(未示出)控制。信息比特对于Nturbo个数据比特周期的每个接收一次时钟节拍,开关向上,然后为每个尾比特多次经时钟节拍,开关向下。根据一实施例,信息比特对于码尾周期经时钟节拍6次,包括对于每个编码器1502、1552的3次时钟节拍。编码后的数据输出码元通过用处于向上位置的开关对组成编码器1502、1552进行时钟节拍Nturbo次,并根据预定的截短模式对输出截短。编码器1500的输出以Y0,Y1,X′,Y0′,Y1′序列生成。根据示例实施例,码元重复在输出码元的生成内不实现。Turbo编码器1500生成附加到编码的数据输出码元后的尾输出码元。尾输出码元在组成编码器1502、1552经Nturbo次时钟节拍后生成。
Turbo交织器1522的操作设计成生成功能等价结果,就如同输入比特序列的每个按顺序以地址序列写入阵列,其中序列从由预定交织过程或协议定义的另一地址序列中读出。交织器操作进一步关于图12进行详细描述。
继续图11,开关1501的一个节点耦合到输入。开关1501的第二节点耦合到异或(XOR)门1504。XOR门的输出1504耦合到一串寄存器或延时元件1510、1512、1514。每个延时元件有相关的状态,其中存储在延时元件1510内的信息被称为在“状态1”,且存储在延时元件1514内的信息被称为在“状态2”。延时元件1510的输出被标识为“S0”;延时元件1512的输出被标识为“S1”;延时元件1514的输出被标识为“S2”。
延时元件1512和1514的输出每个耦合到XOR门1516的输入。XOR门1516的输出然后耦合到输入开关1501的第三节点以及XOR门1504的输入。XOR门1504的输出进一步耦合到XOR门1508的输入。其他到XOR 1508的输入从延时元件1510、1512和1514的单个输出的每个被接收。XOR门1504的输出仍进一步耦合到XOR门1506的输入。其他到XOR门1506的输入从延时元件1510和1514的单个输出被接收。
编码器1502的输出包括从输入开关1501直接来的X的分量、来自XOR门1506的一致校验比特输出Y0以及来自XOR门1508的输出的第二一致校验比特输出Y1分量。输出X、Y0和Y1每个被提供给码元截短和重复单元1520。
功能上,编码器1520的配置实现以下等式:
X=I (13)
Y0=[I(S1S2)]S0S2 (14)
Y1=[I(S1S2)]S0S1S2 (15)
其中I表示输入信息比特,S0、S1、S2表示相应的延时元件1510、1512和1514的输出,且操作符表示逻辑XOR操作。通过应用数字逻辑的结合分布律,等式(10)和(11)可以简化为:
Y0=IS1S0 (16)
Y1=IS0 (17)
根据示例实施例,turbo编码器有两级。在第一级中,帧从外部源被读取。CRC还在第一级内经计算。在第二级中,帧经编码、截短和重复。Turbo编码器的码率可以为1/3或1/5。
在第二级中,在编码器1500处接收四个比特,其中四个比特经并行处理,以增加编码器的吞吐量。实际上,虽然输入比特I[0]:I[3]进发地送到编码器1500,输入信息比特的处理就如同它们被串行地送到编码器1500。在单个系统时钟周期内,确定状态值,即相应的S0[0]:S0[4],S1[0]:S1[4],S2[0]:S2[4]。
图12根据一实施例说明了交织器的操作。如说明的,交织器1300从计数器(未示出)接收输入以递增ADD电路1302。功能上,地址产生等价于将计数器值写入存储器存储行阵列。行根据比特反转或其他准则经重新排列,且每行内的元素根据行特定的线性叠合序列经排列。输出地址然后按列读出。线性叠合序列可以给出为:
x(i+1)=(x(i)+c)mod2n (18)
其中,x(0)=c和c是来自查询表的行特定值。
继续图12,来自计数器值的最高位比特(MBS)被提供给加法单元1302。加法单元1302递增计数器的MSB值,并提供结果给乘法单元1304。在一实施例中,产生的值经修改,以提供只有预定数量的比特作为输出。来自计数器值的最低位比特(LSB)信息被提供给查询表(LUT)1308和比特反转单元1310。LSB信息用于定址LUT 1308,其中存储在该位置的值还可以提供给乘法单元1304。到乘法单元1304的输入相乘且乘积提供给选择单元1306。在一实施例中,乘法单元1304只提供乘积的部分作为到选择单元1306的输出,诸如乘积的LSB部分。比特反转单元1310在计数器值的LSB部分实现比特反转操作,类似于以上讨论的。比特反转单元1310的输出被提供给选择单元1306。根据一示例实施例,从乘法单元1304接收的选择单元1306的输入用作LSB部分,从比特取反单元1310接收到的输入被用作MSB部分。选择单元1306还确定产生的输出地址是否是有效地址。如果地址无效,则选择单元丢弃结果,其中在下一计数器递增时生成新地址。另外的实施例可以实现施加在平行卷积编码器间的其它的交织方案。
值得注意的是图11的编码器1500可以为无线收发机内的多个调制器模块共享,且因此示例实施例的编码器每时钟周期对多个比特编码,因此满足高速数据传输系统的速度要求。例如,如图13内说明的,编码器1100的功能操作每时钟周期对四个比特进行编码,其中编码器1100设计成对大致32μs的最大大小帧使用40MHz时钟进行编码。如上讨论的,编码器1100分两级处理。在第一级内,帧从外部源内读出,且计算CRC。在第二级内,帧经编码、截短和重复。如在示例实施例中的描述内使用的,帧是具有开销部分和有效负荷部分的数据传输单元。
图13是根据示例实施例的编码器1100的操作功能说明。编码器1100接收信息比特作为来自外部源的16比特码字,根据一实施例,该外部源是多个随机访问存储器(RAM)。五个相同副本存储在编码器1100内的存储器内。比特然后选择性地通过解多路复用器1130提供给并行编码器1132。根据示例实施例,16比特从存储器1128提供给解多路复用器1130,它为送到并行编码器1132每次选择4比特。并行编码器接收4个输入比特并生成三个输出X、Y0和Y1。每个输出为4比特输出,其中并行编码器使用递归处理以为每个时钟周期生成4比特输出。
如上讨论,CRC发生器1134在第一状态期间操作,其中在当前被处理的分组上计算16比特CRC。分组包括有效负荷、CRC部分和尾部。一个实施例支持可变长度分组。随着数据每时钟周期以16比特读出,CRC发生器1134每个周期计算CRC。在第一级结束时,CRC就绪。在该点,CRC被写入存储器存储单元(MEM)1128且还写入四个存储器存储设备MEM,1104到1106。而且在第一级,信息比特被提供给MEM 1104到1106。信息比特经时钟记录到MEM 1104到1106,其中每时钟周期时钟记录16个比特。值得注意的是示例实施例MEM1104到1106包括四个存储器,然而,其他的实施例可以包括其它数量的存储器。MEM 1104到1106接收来自地址发生器1124和计数器1126的寻址控制信息,地址发生器和计数器每个耦合到多路复用器1136的输入。多路复用器1136的输出将控制信号提供给MEM 1104到1106。地址发生器1124递增寻址存储四个值。在到MEM 1104到1106的写入操作期间,MEM 1104到1106的每个接收相同的地址。在从MEM 1104到1106的读操作中,MEM 1104到1106的每个接收不同的地址。如图13内说明的,MEM 1128馈给并行编码器1132的一个,而MEM 1104到1106馈给第二并行编码器1144。从并行编码器1132和1144,每个提供输出集合X、Y0和Y1,输出比特被提供给码元重复和截短模块,诸如图11内的模块1520。
如图14说明的,信息比特I[0]:I[3]被送入编码器1200,该编码器类似于编码器1500和1100。编码器1100包括朝前看(look ahead)状态发生器1200以对输入信息比特I[0]:I[3]应用等式(16)和(17)。朝前看状态发生器1202生成状态信息并将状态S0[4],S1[4],S2[4]存储在寄存器或存储器存储设备1204内。状态信息在每个系统时钟周期上经更新。在存储的第一值前,存储器存储设备1204经初始化为预定状态值。状态值S0[0]:S0[3],S1[0]:S1[3]S2[0]:S2[3]然后被提供给多比特输出发生器1206、1208。输入信息比特I[0]:I[3]作为输出X[0]:X[3]被提供。多比特输出发生器1206生成输出Y0[0]:Y0[3],而多比特输出发生器1208生成输出Y1[0]:Y1[3]。多比特输出发生器1206和1208基于上述等式(16)和(17)递推计算值。
如上所述,示例实施例的地址发生提供四个读地址给四个turbo交织器存储器1104,...,1106。Turbo交织地址没有可辨识模式,因此需要生成每个地址的四份副本以获得每时钟4比特的读吞吐量。每个交织器存储器1104,...,1106提供一个16比特码字作为读码字;通过多个16:1多路复用器从每个16比特读码字中选出一个比特。在示例实施例中,每个交织器1104,..,1106耦合到相应的多路复用器1140,...,1142。4比特(即从每个交织器1104,..,1106来的一个比特)送到第二编码器1144。
总编码时间是在第一级内将比特读入存储器需要的时间加上第二级内编码需要的时间。例如考虑4096比特的帧,其中对帧编码的合适周期数目给出为:
因此,对于有40MHz系统时钟的系统,4096比特帧会需要大约32μs进行编码,这在目标的40μs编码时段之内。
如上所述,两级编码器提供在内存储器结构内驻留的整个分组。在改种结构内,输入信息通过能处理四个比特的读端口(即四读端口)提供给编码器。外部帧源存储器一般是一个读端口,且因此其它方法被用于对来自存储器的帧直接编码。示例实施例提供每时钟周期的多个信息比特的递归处理,以在每个时钟周期提供四个编码后比特。
CRC发生器1134和编码器1132和1144以大于每时钟周期1比特的速率对数据进行操作。示例实施例整个实现AND-XOR树结构以实现并行处理。其它实施例可以实现任何可以递归地实现等式(13)、(14)和(15)的逻辑结构。每个AND-XOR树被给予唯一的两维比特阵列,该阵列确定AND-XOR树的抽头。例如,考虑编码器1132、1144,其中每个包括一个内部3比特状态,对于一致校验比特输出,即Y0,Y1有不同的XOR抽头。每个编码器1132、1144在并行实现内每时钟周期对4比特编码,其中1/3速率编码器会每时钟生成12个数据比特,即4X比特,4Y0比特,4Y1比特。每个输出比特取决于所有的4个输入比特以及当前状态。每个编码器包括3个AND-XOR树,这些树生成下两组的4比特输出值以及下一3比特状态。X输出直接从输入被提供给编码器,且不通过AND-XOR树提供。
在示例实施例中,每时钟周期需要多个合法地址。根据示例实施例,多个地址包括四个地址。四个独立电路用于生成四个独立的读地址。对于编码器1144,每时钟周期使用4个输入比特。这4个输入比特来自4个帧存储器内的不同交织器地址位置,因此4个地址发生器提供4个地址。
作为图11的编码器1502(以及1552)实现的递归操作的示例,该操作在图14的特定操作内详述,现在考虑以下应用。生成并存储在元件1510、1512和1514内的状态被相应标识为S0,S1和S2。在给定的迭代上的每个状态的计算由以下等式确定。
S0[n+1]=I[n]S1[n]S2[n] (20)
S1[n+1]=S0[n] (21)
S2[n+1]=S1[n] (22)
其中,n是迭代索引。编码器1500接收输入I[0],该输入对应在迭代0时的输入。对应地,元件1510、1512和1514的每个经初始化为S0[0],S1[0]和S2[0]。在该情况下,对于迭代n=1,等式实现为:
S0[1]=I[0]S1[0]S2[0] (23)
S1[1]=S0[0] (24)
S2[1]=S1[0] (25)
其中输入值和状态值对应n=0(在初始时)。类似地,在迭代n=2时,从迭代n=1来的值被存储在元件1510、1512和1514内,且用于计算状态值:
S0[2]=I[1]S1[1]S2[1] (26)
S1[2]=S0[1] (27)
S2[2]=S1[1] (28)
使用先前生成的值和关系式,等式(26)、(27)和(28)得出:
S0[2]=I[1]S1[1]S2[1] (29)
S0[2]=I[1]S0[0]S1[0] (30)
S1[2]=S0[1] (31)
S1[2]=I[0]S1[0]S2[0] (32)
S2[2]=S1[1] (33)
S2[2]=S0[0] (34)
n=3的迭代结果给出为:
S0[3]=I[2]S1[2]S2[2] (35)
S0[3]=I[2](I[0]S1[0]S2[0])S0[0] (36)
S1[3]=S0[2] (37)
S1[3]=I[1]S0[0]S1[0] (38)
S2[3]=S1[2] (39)
S2[3]=I[0] S1[0]S2[0] (40)
类似地,n=4的迭代结果给出为:
S0[4]=I[3]S1[3]S2[3] (41)
S0[4]=I[3](I[1]S0[0]S1[0])(I[0]S1[0]S2[0]) (42)
S0[4]=I[0](I[1]I[3]S0[0])S2[0] (43)
S1[4]=S0[3] (44)
S1[4]=I[2]I[0]S1[0]S2[0]S0[0] (45)
S2[4]=S1[3] (46)
S2[4]=I[1]S0[0]S1[0] (47)
值得注意的是,一些迭代的结果产生类似的状态计算关系,可以在编码器设计和操作中利用该关系。
继续编码器1100的操作,在第一级内,编码器内的存储器用在相同存储器地址处的相同数据被写入。在第二级中,存储器独立地在不同地址处被读取。
回到图12,图12的电路每时钟周期生成一个地址。输入计数器是二的幂,因此可能生成一些地址,这些地址在turbo交织器块大小定义的范围之外。无效的地址被地址发生器检测并跳过。管道寄存器可以在地址发生电路的中间被插入以增加操作速度。
根据一实施例的turbo交织器地址发生电路1400在图15内经说明。启用信号和分组大小指示符被提供给地址指针1402。地址指针1402的输出被提供给并行电路路径,并提供给用于实现地址值的LUT 1404、1454。附加单元1406、1456相应地向从LUT 1404、1454的每个接收到的2比特加入1比特。附加单元1406、1456的输出被相应地提供给地址1408、1458。加入操作的结果然后被提供给多路复用器1410、1460。启用信号被提供给多路复用器1410、1460的每个,这些多路复用器每个生成12比特。多路复用器1410、1460的输出被提供给延时元件1412、1462,其输出反馈到加法器1408、1458。延时元件1412、1462的输出被提供给包括turbo编码器LUT 1414、1464的延时元件的网络。延时元件1412、1462的输出的7 MSB被提供给延时元件1416、1466。5 LSB被提供给LUT 1414、1464以及延时元件1420、1470。延时元件1416和1418的输出耦合到乘法器的输入,而乘法器耦合到延时元件1422。延时元件1466、1468的输出耦合到乘法器门的输入,该乘法器门耦合到延时元件1472。延时元件1420的输出耦合到比特反转单元1424。延时元件1470的输出耦合到比特反转单元1474。每个路径最终被提供给相应的延时元件1426、1476。
根据一实施例,有效的地址被分成四个组。得到有效地址的每个计数器值被确定,还确定导致无效地址的计数器值。计数器值到地址的映射存储在LUT1404、1405内。对于每个单个的LUT,当计数器值增加到对应无效地址的值时,LUT输出合适的偏置值以提供对应有效地址的下一计数器值。这样,地址发生器只生成有效地址。处理避免了不需要的地址计算,即之后被丢弃的无效地址的计算。
图15的地址发生电路可以应用到诸如图16的编码器1600的编码器配置上。编码器1600响应提供要被编码的帧的外部存储器。输入数据被复制五份且每份被存储在存储器1622、1624、1626、1628和1630的每个中,即相应的MEM 1、MEM 2、MEM 3、MEM 4和MEM 5。MEM 1提供4个顺序比特给编码器1650。MEM 1内的地址被按顺序访问。编码器1650为X、Y0和Y1的每个提供4比特输出。
地址发生器1632、1634、1636和1638相应耦合到MEM 2、MEM 3、MEM 4、MEM 5。MEM 2、MEM 3、MEM 4和MEM 5每个提供一个比特给编码器1652。编码器1652还为X、Y0和Y1的每个提供4个比特输出。
地址发生器1632、1634、1636和1638为每个相关的存储器生成唯一地址位置序列。例如,在一方案中,地址发生器1632生成地址位置0、4、8等;地址发生器1634生成地址位置1、5、9等;地址发生器1638生成地址位置3、7、11等。当生成的地址超过交织器的块大小时,地址发生器跳过该地址。
图17说明方法2000,用于为用在并行turbo编码器内的交织生成地址。方法在步骤2002递增计数器。计数器值用于在turbo编码器内的交织输入数据生成地址,诸如在图16内说明的实施例。在判决菱形2004处,计数器值然后经检查以确定计数器值是否会导致无效地址。无效地址经预定,其中对应无效地址的计数器值被存储在存储器存储设备内。无效地址是大于数据分组大小的地址。如果计数器值会导致无效地址,则过程继续到步骤2006以调整计数器值到下一有效地址。否则处理继续到步骤2008以基于计数器值生成地址,或者是原始生成或者经调整。如果分组在判决菱形2010处完成,则处理中止。否则处理回到步骤2002。
本发明提供了一种对多个比特进行并行编码的方法,使用处理多个输出的递归方法。在每个时钟周期内,编码器处理多个比特并生成输出,该输出与在常规卷及编码器内按顺序生成的一致。在一实施例中,输入数据被存储在多个存储器存储单元内,这些单元每个经唯一定址以提供数据给两个并行的编码器,例如实现turbo编码器。
因此,示出了一种新颖的且经改善的方法和装置,用于对多个数据比特并行进行编码,使用处理多个输出的递归方法。使用多个存储器存储设备为交织操作生成地址,其中使用计数器生成交织器地址,并提供映射以标识无效地址。本领域内的技术人员可以理解信息和信号可能使用各种不同的科技和技术表示。例如,上述说明中可能涉及的数据、指令、命令、信息、信号、比特、码元和码片最好由电压、电路、电磁波、磁场或其粒子、光场或其粒子、或它们的任意组合来表示。这里揭示的结合这里描述的实施例所描述的各种说明性的逻辑框、模块、电路和算法步骤可以用电子硬件、计算机软件或两者的组合来实现。为清楚地说明硬件和软件的可互换性,各种说明性的组件、方框、模块、电路和步骤一般按照其功能性进行阐述。这些功能性究竟作为硬件或软件来实现取决于整个系统所采用的特定的应用程序和设计。技术人员可以以多种方式对每个特定的应用实现描述的功能,但该种实现决定不应引起任何从本发明范围的偏离。各种用在此的说明性实施例揭示的逻辑块、模块和电路的实现或执行可以用:通用处理器、数字信号处理器(DSP)或其它处理器、应用专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、离散门或晶体管逻辑、诸如寄存器和FIFO的离散硬件组件或任何以上的组合以实现在此描述的功能。通用处理器最好是微处理器,然而或者,处理器可以是任何常规的处理器、控制器、微控制器或状态机。在此用实施例揭示的方法步骤或算法可能直接以硬件、处理器执行的软件模块或两者的组合来执行。软件模块可以驻留于RAM存储器、快闪(flash)存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域中已知的其它任意形式的存储媒体中。一示范处理器最好耦合到处理器使处理器能够从存储介质读取写入信息。或者,存储介质可能整合到处理器。处理器和存储介质可驻留于应用专用集成电路ASIC中。ASIC可以驻留于电话或其他用户终端内。或者,处理器和存储介质可以驻留于用户终端的离散元件中。上述优选实施例的描述使本领域的技术人员能制造或使用本发明。处理器可以实现为DSP和微处理器的组合或结合两个DSP内核的微处理器等。
在此描述并示出了本发明的最优实施例。对于领域内的技术人员很明显可以对揭示的实施例进行各种修改,而不偏离本发明的原理或范围。因此,本发明并不限于此,而是根据以下的权利要求书。
Claims (27)
1.一种在无线通信系统内为编码器的交织器生成地址的方法,其特征在于包括:
确定对应第一有效地址的第一计数器值;
从第一计数器值生成第一有效地址;
确定第二计数器值,第二技术器值对应第二有效地址;以及
基于第二计数器值生成第二有效地址。
2.如权利要求1所述的方法,其特征在于第一计数器值和第二计数器值包括在对应有效地址的计数器值集合内。
3.如权利要求2所述的方法,其特征在于生成一地址包括:
将偏移加入计数器值。
4.如权利要求2所述的方法,其特征在于确定第二计数器值包括将计数器偏移值加入第一计数器值。
5.如权利要求4所述的方法,其特征在于计数器值集合存储在存储器存储设备内,每个存储的计数器值有对应的计数器偏移值。
6.一种在无线通信系统内交织器的地址发生装置,其特征在于包括:
一装置,确定对应第一有效地址的第一计数器值;
一装置,从第一计数器值生成第一有效地址;
一装置,确定第二计数器值,第二计数器值对应第二有效地址;以及
一装置,基于第二计数器值生成第二有效地址。
7.如权利要求6所述的装置,其特征在于用于生成第二计数器值的装置将偏移计数器值加入第一计数器值。
8.无线通信系统内用于交织器的地址发生装置,其特征在于包括:
计数器;以及
多个地址发生器,每个耦合到计数器,多个地址发生器的每个包括:
耦合到计数器的存储器存储设备,存储带有对应计数器偏移值的多个计数器值;以及
耦合到存储器存储设备的第二计数器,用于将计数器偏移值加入先前生成的地址。
9.如权利要求8所述的装置,其特征在于第二计数器包括:
加法器,带有耦合到存储器存储设备的第一输入;
多路复用器,其第一输入耦合到加法器的输出,其第二输入耦合到预确定的初始化值;以及
第二存储器存储设备,耦合到多路复用器的输出,且其输出耦合到加法器的第二输入。
10.如权利要求9所述的装置,其特征在于还包括:
添加电路,耦合在存储器存储设备和第二计数器间,其中添加电路将预定值添加到存储器存储设备输出。
11.如权利要求10所述的装置,其特征在于第一存储器存储设备是查询表。
12.一数据编码器,其特征在于还包括:
多个存储器,用于存储串行输入信息比特;
多个交织器,用于对输入信息比特扰码;
第一编码器,耦合到第一存储器,第一编码器用于对串行输入信息比特进行编码;以及
第二编码器,耦合到多个存储器,第二编码器用于对交织的输入信息比特编码。
13.如权利要求12所述的数据编码器,其特征在于第一编码器和第二编码器处理每系统时钟周期的多个比特。
14.如权利要求13所述的数据编码器,其特征在于第一编码器和第二编码器包括多个AND-XOR树。
15.如权利要求14所述的数据编码器,其特征在于第一编码器和第二编码器递归处理多个比特。
16.一种对数据编码的方法,其特征在于包括:
接收多个输入比特;
基于多个输入比特计算第一状态值集合;以及
使用第一状态集合和多个输入比特生成第一编码后输出值集合。
17.如权利要求16所述的方法,其特征在于第一状态值集合存储在存储器存储设备中。
18.如权利要求17所述的方法,其特征在于还包括:
基于多个输入比特和第一状态值集合生成第二状态值集合,
其中生成第一编码后输入值集合使用第一状态值集合、第二状态值集合以及多个输入比特。
19.如权利要求18所述的方法,其特征在于还包括:
提供多个输入比特作为第一输出集合。
20.一编码数据的方法,其特征在于包括:
接收多个输入比特;以及
在单个系统时钟周期内:
基于多个输入比特计算第一状态值集合;
基于多个输入比特和第一状态值集合计算第二状态值集合;
基于多个输入比特以及第一和第二状态值集合计算第三状态值集合;以及
基于第一、第二和第三状态值集合生成编码后的输出集合。
21.如权利要求20所述的方法,其特征在于还包括:
在存储器存储设备内存储第三状态值集合。
22.如权利要求21所述的方法,其特征在于还包括:
接收第二多个输入比特;
在单个系统时钟周期期间:
基于第二多个输入比特和第三状态值集合计算第四状态值集合;
基于第二多个输入比特和第四状态值计算第五状态值集合;
基于第二多个输入比特和第四和第五状态值集合计算第六状态值集合;以及
基于第四、第五和第六状态值生成编码后输出的第二集合。
23.一编码装置,其特征在于包括:
一朝前看(lookahead)状态发生器,用于在一个系统时钟周期内响应于接收到的多个输入比特生成多个状态值;
第一输出发生器,耦合到朝前看状态发生器,第一输出发生器用于响应于多个状态值输出一输出值集合;以及
第二输出发生器,耦合到朝前看状态发生器,第二输出发生器用于响应于多个状态值输出第二输出值集合
24.如权利要求23所述的方法,其特征在于第一输出发生器根据下式生成输出值集合:
Y0=IS1S0
其中S0和S1是朝前看状态发生器生成的多个状态值内的状态,I是多个输入比特的一个输入比特。
25.如权利要求24所述的编码器装置,其特征在于第二输出发生器根据下式生成第二输出值集合:
Y1=IS0。
26.用于对数据编码的装置,其特征在于包括:
一装置,用于接收多个输入比特;以及
一装置,用于基于多个输入比特计算第一状态值集合;
一装置,用于基于多个输入比特和第一状态值集合计算第二状态值集合;
一装置,用于基于多个输入比特以及第一和第二状态值集合计算第三状态值集合;以及
一装置,用于在单个系统时钟周期内基于第一、第二和第三状态值集合生成编码后的输出集合。
27.一装置,其特征在于包括:
数据处理单元;以及
存储器存储设备用于存储多个计算机可读指令,所述指令用于:
接收多个输入比特;以及
在单个系统时钟周期内:
基于多个输入比特计算第一状态值集合;
基于多个输入比特和第一状态值集合计算第二状态值集合;
基于多个输入比特以及第一和第二状态值集合计算第三状态值集合;以及
基于第一、第二和第三状态值集合生成编码后的输出集合。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/020,532 US6954885B2 (en) | 2001-12-14 | 2001-12-14 | Method and apparatus for coding bits of data in parallel |
US10/020,532 | 2001-12-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1618175A true CN1618175A (zh) | 2005-05-18 |
CN100481738C CN100481738C (zh) | 2009-04-22 |
Family
ID=21799121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028279603A Expired - Fee Related CN100481738C (zh) | 2001-12-14 | 2002-12-12 | 用于对数据比特并行编码的方法和装置 |
Country Status (10)
Country | Link |
---|---|
US (1) | US6954885B2 (zh) |
EP (2) | EP1459450B1 (zh) |
JP (4) | JP4326956B2 (zh) |
KR (2) | KR20100080847A (zh) |
CN (1) | CN100481738C (zh) |
AU (1) | AU2002361684A1 (zh) |
BR (1) | BR0214915A (zh) |
ES (1) | ES2474215T3 (zh) |
TW (1) | TWI306698B (zh) |
WO (1) | WO2003052997A2 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286816B (zh) * | 2008-03-05 | 2011-05-18 | 中国科学院嘉兴无线传感网工程中心 | 一种应用于多媒体传感网的并行信道编码装置 |
CN101438500B (zh) * | 2006-05-02 | 2013-08-21 | 高通股份有限公司 | 用于无线系统的并行比特交织器 |
CN103636130A (zh) * | 2011-05-18 | 2014-03-12 | 松下电器产业株式会社 | 并行比特交织器 |
CN104488208A (zh) * | 2012-08-01 | 2015-04-01 | 阿尔卡特朗讯 | 用于光线路终端的比特交织器 |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10207146A1 (de) * | 2002-02-20 | 2003-08-28 | Infineon Technologies Ag | Hardware-Schaltung zur Punktierung und Wiederholungscodierung von Datenströmen und Verfahren zum Betrieb der Hardware-Schaltung |
US7318189B2 (en) * | 2002-08-01 | 2008-01-08 | Zarbana Digital Fund Llc | Parallel convolutional encoder |
US7738596B2 (en) * | 2002-09-13 | 2010-06-15 | Broadcom Corporation | High speed data service via satellite modem termination system and satellite modems |
US20040267968A1 (en) * | 2003-06-25 | 2004-12-30 | Agilent Technologies Belgium S.A./N.V | Implementation of a column interleaving function with a limited amount of columns |
US7315549B2 (en) * | 2003-07-24 | 2008-01-01 | Intel Corporation | Formatting data for a buffer |
US7305593B2 (en) * | 2003-08-26 | 2007-12-04 | Lsi Corporation | Memory mapping for parallel turbo decoding |
US7600163B2 (en) * | 2003-09-23 | 2009-10-06 | Realtek Semiconductor Corp. | Convolutional interleaver and deinterleaver |
US7712004B1 (en) * | 2003-09-30 | 2010-05-04 | Emc Corporation | Method of and system for error checking in a data storage system |
KR101050570B1 (ko) * | 2003-12-03 | 2011-07-19 | 삼성전자주식회사 | 시공간 트렐리스 코드를 사용하는 이동 통신 시스템에서 성능 개선을 위한 데이터 송수신 장치 및 방법 |
KR100762134B1 (ko) | 2004-10-07 | 2007-10-02 | 엘지전자 주식회사 | 블록 인터리빙을 위한 읽기 주소 발생 방법 |
US20100192046A1 (en) * | 2005-01-14 | 2010-07-29 | Nxp B.V. | Channel encoding |
US7340669B2 (en) * | 2005-03-11 | 2008-03-04 | Via Telecom Co., Ltd. | Memory efficient streamlined transmitter with a multiple instance hybrid ARQ |
US7219292B2 (en) * | 2005-04-14 | 2007-05-15 | Industrial Technology Research Institute | Cyclic redundancy check modification for length detection of message with convolutional protection |
FR2896359A1 (fr) * | 2006-01-19 | 2007-07-20 | France Telecom | Procede d'encodage et de decodage rapides et dispositifs associes. |
KR20070080921A (ko) * | 2006-02-09 | 2007-08-14 | 삼성전자주식회사 | 통신시스템에서 인터리빙 장치 및 방법 |
US7962827B2 (en) * | 2006-03-08 | 2011-06-14 | Marvell World Trade Ltd. | Systems and methods for achieving higher coding rate using parity interleaving |
US8493973B2 (en) * | 2006-04-04 | 2013-07-23 | Samsung Electronics Co., Ltd. | Method of and apparatus for transmitting digital broadcasting signal in advanced-VSB (A-VSB) system in which transport packet without adaptation field is provided at fixed location in data field slices |
US20080120530A1 (en) * | 2006-11-22 | 2008-05-22 | Yu-Min Chuang | Transceiver puncture circuit of wireless communication system |
US8140946B2 (en) * | 2007-03-27 | 2012-03-20 | Hughes Network Systems, Llc | Method and apparatus for generating low rate turbo codes |
US8156413B2 (en) | 2007-11-28 | 2012-04-10 | Qualcomm Incorporated | Convolutional encoding with partitioned parallel encoding operations |
JP4935778B2 (ja) * | 2008-08-27 | 2012-05-23 | 富士通株式会社 | 符号化装置、送信装置および符号化方法 |
US8397123B2 (en) * | 2009-09-30 | 2013-03-12 | Qualcomm Incorporated | Recursive realization of polynomial permutation interleaving |
JP5499760B2 (ja) * | 2010-02-23 | 2014-05-21 | 富士通株式会社 | 符号化装置 |
EP2525497A1 (en) * | 2011-05-18 | 2012-11-21 | Panasonic Corporation | Bit-interleaved coding and modulation (BICM) with quasi-cyclic LDPC codes |
US9892188B2 (en) * | 2011-11-08 | 2018-02-13 | Microsoft Technology Licensing, Llc | Category-prefixed data batching of coded media data in multiple categories |
WO2014045906A1 (ja) * | 2012-09-21 | 2014-03-27 | 日本電信電話株式会社 | 並列データ符号復号化システム |
EP2899991A1 (en) * | 2014-01-24 | 2015-07-29 | Alcatel Lucent | Space time switch and bit interleaver |
US9577854B1 (en) * | 2015-08-20 | 2017-02-21 | Micron Technology, Inc. | Apparatuses and methods for asymmetric bi-directional signaling incorporating multi-level encoding |
KR102359265B1 (ko) | 2015-09-18 | 2022-02-07 | 삼성전자주식회사 | 프로세싱 장치 및 프로세싱 장치에서 연산을 수행하는 방법 |
CN108702236B (zh) | 2015-12-31 | 2021-03-26 | 瑞典爱立信有限公司 | 用于在无线通信网络中传输数据分组的通信设备及其中的方法 |
US11071162B2 (en) * | 2017-03-20 | 2021-07-20 | Qualcomm Incorporated | Broadcast or multicast physical layer configuration and channel structure |
FR3113214A1 (fr) | 2020-07-31 | 2022-02-04 | Airbus Defence And Space Sas | Dispositif et procédé d’encodage de codes LDPC |
CN112290952B (zh) * | 2020-10-10 | 2023-07-18 | 中科驭数(北京)科技有限公司 | 一种并行数据编码装置及方法 |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4488142A (en) * | 1981-12-31 | 1984-12-11 | International Business Machines Corporation | Apparatus for encoding unconstrained data onto a (1,7) format with rate 2/3 |
US4901307A (en) | 1986-10-17 | 1990-02-13 | Qualcomm, Inc. | Spread spectrum multiple access communication system using satellite or terrestrial repeaters |
US4922507A (en) * | 1987-12-01 | 1990-05-01 | California Institute Of Technology | Multiple trellis coded modulation |
US5101501A (en) | 1989-11-07 | 1992-03-31 | Qualcomm Incorporated | Method and system for providing a soft handoff in communications in a cdma cellular telephone system |
US5103459B1 (en) | 1990-06-25 | 1999-07-06 | Qualcomm Inc | System and method for generating signal waveforms in a cdma cellular telephone system |
US5392037A (en) * | 1991-05-21 | 1995-02-21 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for encoding and decoding |
US5592492A (en) * | 1994-05-13 | 1997-01-07 | Lsi Logic Corporation | Convolutional interleaving/de-interleaving method and apparatus for data transmission |
US5675590A (en) * | 1994-11-23 | 1997-10-07 | At&T Wireless Services, Inc. | Cyclic trellis coded modulation |
US6023783A (en) * | 1996-05-15 | 2000-02-08 | California Institute Of Technology | Hybrid concatenated codes and iterative decoding |
US5912898A (en) * | 1997-02-27 | 1999-06-15 | Integrated Device Technology, Inc. | Convolutional interleaver/de-interleaver |
KR100237745B1 (ko) * | 1997-05-23 | 2000-01-15 | 김영환 | 회전형 인터리버/디인터리버의 메모리 주소 발생장치 및 그 방법 |
JP3277856B2 (ja) * | 1997-08-29 | 2002-04-22 | 日本電気株式会社 | ビタビデコーダ |
US6028541A (en) * | 1998-03-12 | 2000-02-22 | Liquid Audio Inc. | Lossless data compression with low complexity |
US6178530B1 (en) * | 1998-04-24 | 2001-01-23 | Lucent Technologies Inc. | Addressing scheme for convolutional interleaver/de-interleaver |
JP2000068863A (ja) * | 1998-08-19 | 2000-03-03 | Fujitsu Ltd | 符号化装置及びその方法 |
EP2068451B1 (en) | 1998-08-27 | 2013-10-02 | Dtvg Licensing, Inc | Method for a general turbo code trellis termination |
JP2000114986A (ja) * | 1998-10-08 | 2000-04-21 | Oki Electric Ind Co Ltd | 符号化方法及び装置 |
US6304991B1 (en) * | 1998-12-04 | 2001-10-16 | Qualcomm Incorporated | Turbo code interleaver using linear congruential sequence |
US6625234B1 (en) * | 1998-12-10 | 2003-09-23 | Nortel Networks Limited | Efficient implementations of proposed turbo code interleavers for third generation code division multiple access |
US6463556B1 (en) * | 1999-01-04 | 2002-10-08 | Motorola, Inc. | Method and apparatus for interleaving in a communication system |
JP3746426B2 (ja) * | 1999-02-26 | 2006-02-15 | 富士通株式会社 | ターボ復号装置 |
JP2000286722A (ja) * | 1999-03-30 | 2000-10-13 | Kokusai Electric Co Ltd | インターリーバ |
JP3246471B2 (ja) * | 1999-03-31 | 2002-01-15 | 日本電気株式会社 | マルチレート送信装置 |
US6314534B1 (en) * | 1999-03-31 | 2001-11-06 | Qualcomm Incorporated | Generalized address generation for bit reversed random interleaving |
KR100480286B1 (ko) * | 1999-04-02 | 2005-04-06 | 삼성전자주식회사 | 터보 인터리빙 어드레스 발생 장치 및 방법 |
WO2000064058A1 (fr) * | 1999-04-16 | 2000-10-26 | Fujitsu Limited | Codeur et decodeur |
KR100526512B1 (ko) * | 1999-05-20 | 2005-11-08 | 삼성전자주식회사 | 이동 통신시스템의 직렬 쇄상 컨볼루션 부호화를 위한 인터리빙장치 및 방법 |
EP1085660A1 (en) | 1999-09-15 | 2001-03-21 | TELEFONAKTIEBOLAGET L M ERICSSON (publ) | Parallel turbo coder implementation |
JP3345396B2 (ja) * | 1999-10-07 | 2002-11-18 | 松下電器産業株式会社 | インターリーブアドレス生成装置及びインターリーブアドレス生成方法 |
US6549998B1 (en) * | 2000-01-14 | 2003-04-15 | Agere Systems Inc. | Address generator for interleaving data |
JP2001332980A (ja) * | 2000-05-19 | 2001-11-30 | Sony Corp | インタリーブ装置及びインタリーブ方法 |
US6854077B2 (en) * | 2000-08-05 | 2005-02-08 | Motorola, Inc. | Apparatus and method for providing turbo code interleaving in a communications system |
SG97926A1 (en) * | 2000-08-29 | 2003-08-20 | Oki Techno Ct Singapore Pte | Soft-in soft-out decoder used for an iterative error correction decoder |
US6845482B2 (en) * | 2001-02-28 | 2005-01-18 | Qualcomm Incorporated | Interleaver for turbo decoder |
US6701482B2 (en) * | 2001-09-20 | 2004-03-02 | Qualcomm Incorporated | Method and apparatus for coding bits of data in parallel |
US6871270B2 (en) * | 2001-12-03 | 2005-03-22 | Samsung Electronics Co., Ltd. | Device and method for minimizing puncturing-caused output delay |
-
2001
- 2001-12-14 US US10/020,532 patent/US6954885B2/en not_active Expired - Fee Related
-
2002
- 2002-12-12 BR BR0214915-0A patent/BR0214915A/pt not_active IP Right Cessation
- 2002-12-12 KR KR1020107011555A patent/KR20100080847A/ko not_active Application Discontinuation
- 2002-12-12 JP JP2003553775A patent/JP4326956B2/ja not_active Expired - Fee Related
- 2002-12-12 EP EP02797323.9A patent/EP1459450B1/en not_active Expired - Lifetime
- 2002-12-12 KR KR1020047009163A patent/KR101046289B1/ko active IP Right Grant
- 2002-12-12 WO PCT/US2002/040049 patent/WO2003052997A2/en active Application Filing
- 2002-12-12 ES ES02797323.9T patent/ES2474215T3/es not_active Expired - Lifetime
- 2002-12-12 CN CNB028279603A patent/CN100481738C/zh not_active Expired - Fee Related
- 2002-12-12 EP EP10174910A patent/EP2251982A1/en not_active Withdrawn
- 2002-12-12 AU AU2002361684A patent/AU2002361684A1/en not_active Abandoned
- 2002-12-13 TW TW091136117A patent/TWI306698B/zh active
-
2009
- 2009-02-18 JP JP2009035943A patent/JP2009194916A/ja active Pending
-
2013
- 2013-04-11 JP JP2013083336A patent/JP5886235B2/ja not_active Expired - Fee Related
-
2015
- 2015-04-06 JP JP2015077701A patent/JP6077041B2/ja not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101438500B (zh) * | 2006-05-02 | 2013-08-21 | 高通股份有限公司 | 用于无线系统的并行比特交织器 |
CN101286816B (zh) * | 2008-03-05 | 2011-05-18 | 中国科学院嘉兴无线传感网工程中心 | 一种应用于多媒体传感网的并行信道编码装置 |
CN103636130A (zh) * | 2011-05-18 | 2014-03-12 | 松下电器产业株式会社 | 并行比特交织器 |
CN103636130B (zh) * | 2011-05-18 | 2017-03-01 | 松下电器产业株式会社 | 并行比特交织器 |
CN107094024A (zh) * | 2011-05-18 | 2017-08-25 | 松下电器产业株式会社 | 比特交织方法、比特交织器以及信号处理方法、信号处理装置 |
CN107094024B (zh) * | 2011-05-18 | 2020-06-19 | 松下电器产业株式会社 | 比特交织方法、比特交织器以及信号处理方法、信号处理装置 |
US11070236B2 (en) | 2011-05-18 | 2021-07-20 | Panasonic Corporation | Parallel bit interleaver |
US11496157B2 (en) | 2011-05-18 | 2022-11-08 | Panasonic Holdings Corporation | Parallel bit interleaver |
US11894861B2 (en) | 2011-05-18 | 2024-02-06 | Panasonic Holdings Corporation | Parallel bit interleaver |
CN104488208A (zh) * | 2012-08-01 | 2015-04-01 | 阿尔卡特朗讯 | 用于光线路终端的比特交织器 |
US9706272B2 (en) | 2012-08-01 | 2017-07-11 | Alcatel Lucent | Bit-interleaver for an optical line terminal |
Also Published As
Publication number | Publication date |
---|---|
WO2003052997A3 (en) | 2003-10-09 |
ES2474215T3 (es) | 2014-07-08 |
AU2002361684A1 (en) | 2003-06-30 |
WO2003052997A2 (en) | 2003-06-26 |
CN100481738C (zh) | 2009-04-22 |
JP5886235B2 (ja) | 2016-03-16 |
US20030140304A1 (en) | 2003-07-24 |
JP4326956B2 (ja) | 2009-09-09 |
AU2002361684A8 (en) | 2003-06-30 |
BR0214915A (pt) | 2004-12-07 |
KR20040065268A (ko) | 2004-07-21 |
JP2009194916A (ja) | 2009-08-27 |
JP2013176114A (ja) | 2013-09-05 |
JP2015159582A (ja) | 2015-09-03 |
KR20100080847A (ko) | 2010-07-12 |
KR101046289B1 (ko) | 2011-07-04 |
TWI306698B (en) | 2009-02-21 |
US6954885B2 (en) | 2005-10-11 |
TW200301624A (en) | 2003-07-01 |
JP2005513867A (ja) | 2005-05-12 |
JP6077041B2 (ja) | 2017-02-08 |
EP1459450A2 (en) | 2004-09-22 |
EP1459450B1 (en) | 2014-03-19 |
EP2251982A1 (en) | 2010-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1618175A (zh) | 用于对数据比特并行编码的方法和装置 | |
CN1589533A (zh) | 对数据比特进行并行编码的方法和装置 | |
CN1113295C (zh) | 错误校正编码方法及其设备 | |
CN1159854C (zh) | 交织地址生成装置及其方法 | |
CN1144377C (zh) | 信道编码装置 | |
CN1256812C (zh) | 透平编码器和信道编码方法 | |
CN1692557A (zh) | 编码设备、编码方法、编码程序、解码设备、解码方法、和解码程序 | |
CN1494770A (zh) | 适于turbo解码器的交错器 | |
CN1252962C (zh) | 用于数据通信系统的速率匹配设备和方法 | |
CN1836394A (zh) | 在移动通信系统中编码/解码块低密度奇偶校验码的装置和方法 | |
CN1310458C (zh) | 对存在码间干扰并在多路发送和接收中进行按位交织编码的数字数据流进行编码/解码的方法及相应系统 | |
CN2585495Y (zh) | 使用码分多址的无线通信系统的物理层处理 | |
CN1526196A (zh) | 缩减的软输出信息分组的选择 | |
CN1297617A (zh) | 用于通信系统的交织/解交织设备和方法 | |
CN1258887C (zh) | 使用符号和附加信息的编码存储来交织输入数据比特序列的交织器和方法 | |
CN1838542A (zh) | 解码设备和方法以及程序 | |
CN1531218A (zh) | 通信系统中的编码设备及方法 | |
CN1274202A (zh) | 交错方法、交错装置、加速编码方法以及加速编码装置 | |
CN1276588C (zh) | 在通信系统中生成代码的设备和方法 | |
CN1783856A (zh) | 用于多输入多输出无线局域网的减少等待时间链接的李德-所罗门卷积编码 | |
CN1685621A (zh) | 用于解交织通信设备中的交织数据流的方法和装置 | |
CN1173480C (zh) | 维特比解码器和传输设备 | |
CN1154238C (zh) | 交织地址生成装置及交织地址生成方法 | |
CN1582555A (zh) | 片段式解交织 | |
CN1493110A (zh) | 特播解码器、特播解码方法以及存储该方法的存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1074920 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1074920 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090422 Termination date: 20201212 |
|
CF01 | Termination of patent right due to non-payment of annual fee |