CN101981932B - 用于对信号译码的装置和方法 - Google Patents
用于对信号译码的装置和方法 Download PDFInfo
- Publication number
- CN101981932B CN101981932B CN200980110979.5A CN200980110979A CN101981932B CN 101981932 B CN101981932 B CN 101981932B CN 200980110979 A CN200980110979 A CN 200980110979A CN 101981932 B CN101981932 B CN 101981932B
- Authority
- CN
- China
- Prior art keywords
- bit
- decoding
- subset
- bytecode
- decoder
- 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
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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/1171—Parity-check or generator matrices with non-binary elements, e.g. for non-binary LDPC 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/25—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
- H03M13/258—Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with turbo codes, e.g. Turbo Trellis Coded Modulation [TTCM]
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3944—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes for block codes, especially trellis or lattice decoding thereof
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/395—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using a collapsed trellis, e.g. M-step algorithm, radix-n architectures with n>2
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Error Detection And Correction (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
根据本发明的一方面,描述了一种用于对比特流进行译码的方法,其包含:接收解调的比特流,其中所述解调的比特流通过使用字节码编码处理而被编码;将一部分解调的比特流排列为比特的子集;将比特的子集重新排序;以及基于重新排序的比特的子集的特性和字节码编码处理,对比特的子集进行译码。
Description
相关申请的交织引用
本申请要求2008年3月28日在美国提交的临时申请61/072,316的35U.S.C§119之下的权益以及2008年8月7日在欧洲专利局提交的外国申请EP08162031的35 U.S.C§119之下的权益。
技术领域
本公开总体上涉及数字信号数据传输***的操作,更具体地,涉及旨在供移动、行人和个人设备使用的广播电视的数据的译码。
背景技术
这部分旨在向读者介绍可能与下面描述的本发明各个方面有关的现有技术各个方面。相信此讨论有助于向读者提供背景信息以利于更好理解本发明各个方面。据此,应当理解,这些说明应依此进行阅读,而不是作为对现有技术的承认。
全世界的电视广播***已经从模拟音频和视频信号的供应变为现代数字通信***。例如,在美国,高级电视标准委员会(ATSC)已开发了称作“ATSC标准:数字电视标准A/53”的标准(A53标准)。A53标准定义了应当如何对用于数字电视广播的数据进行编码和译码。另外,美国联邦通信委员会(FCC)已经为电视广播分配了部分的电磁频谱。FCC将所分配部分内的相邻的6MHz信道指定给广播商以用于地面(即,不是线缆或卫星)数字电视广播的传输。基于A53标准的编码和调制格式,每个6MHz信道具有近似19Mb/秒的信道容量。此外,FCC已要求地面数字电视数据经由6 MHz信道的传输必须遵循A53标准。
数字广播信号传输标准(如,A53标准)定义了源数据(例如,数字音频和视频数据)应当如何被处理并调制为经由信道传送的信号。该处理将冗余信息添加至源数据,以使得即使信道将噪声和多径干扰添加至所传送的信号,从信道接收信号的接收器也可以恢复源数据。添加至源数据的冗余信息降低了传送源数据的有效数据速率,但增大了从传送的数据成功恢复源数据的可能性。
A53标准发展过程关注于高清电视(HDTV)和固定接收。***被设计用于将已开始进入市场的大的高分辨率电视屏幕的视频比特率最大化。对于移动接收器,ATSC A/53标准或者传统编码和传输标准之下的传输广播呈现出困难。
在认识到此事实的情况下,在2007年,ATSC宣布发起用以开发如下标准的处理:该标准将使得广播商能够将电视内容和数据经由其数字广播信号而供应至移动和手持设备。对传统传输标准的改变包括用于引入进一步的数据冗余的额外编码方案。该额外编码已被适配为在仍然保持与传统A53标准向下兼容的同时,与移动、手持和行人设备中的高级接收器一起更好地运行。所提出的改变还允许现有ATSC服务在相同无线电频率(RF)信道中进行工作,而对现有接收装置没有不利影响。
然而,引入至当前A53标准广播信号的任何新编码方案还将额外的复杂度引入了ATSC M/H接收器的译码处理。例如,除了对于传统操作已经存在的网格(trellis)译码和Reed Solomon译码之外,级联块编码的添加可能基于与经常用于块译码的迭代后验(iterative a-posteriori)型译码器相关联的已知串行化输入比特处理,而显著地增大接收器中的处理时间。译码性能经常与实现最优或期望的译码输出所需要的迭代数量直接相关。译码器中的迭代数量或效率将受到译码器架构以及译码器架构可处理输入消息信号的速度的组合的限制。进一步,用于减小译码器处理时间的大的查找表的使用形成了关于译码器架构的物理尺寸的低效率。因此,期望通过开发改进的译码架构来改善译码处理以及译码器效率。
发明内容
根据本实施例的一方面,描述了一种用于对比特流进行译码的方法,其包括:接收解调的比特流,其中所述解调的比特流通过使用字节码编码处理而被编码;将一部分解调的比特流排列为比特的子集;将比特的子集重新排序;以及基于重新排序的比特的子集的特性和所述字节码编码处理,对比特的子集进行译码。
根据本实施例的另一方面,描述了一种用于对比特流进行译码的方法,其包括:接收解调的比特流;将一部分解调的比特流排列为比特的子集;标识比特的子集中的码元;以及基于码元的先前译码状态和比特的子集中的至少两个比特之间的关系来对码元的当前状态进行译码。
根据本实施例的另一方面,描述了一种装置,其包括:用于接收解调的比特流的部件,其中所述解调的比特流通过使用字节码编码处理而被编码;用于将一部分解调的比特流编组为比特的子集的部件;用于将比特的子集重新排序的部件;以及用于基于重新排序的比特的子集的特性和所述字节码编码处理,对比特的子集进行译码的部件。
根据本实施例的另一方面,描述了一种装置,其包括:用于接收解调的比特流的部件;用于将一部分解调的比特流排列为比特的子集的部件;用于标识比特的子集中的码元的部件;以及用于基于码元的先前译码状态和比特的子集中的至少两个比特之间的关系来对码元的当前状态进行译码的部件。
附图说明
在附图中:
图1是本公开的编码器的实施例的框图;
图2是本公开的级联字节码编码电路的实施例的框图;
图3是本公开的接收器中所使用的译码器的实施例的框图;
图4是本公开的级联字节码译码电路的实施例的框图;
图5是本公开的构件字节码译码器的实施例的框图;
图6是本公开的构件字节码译码器的另一个实施例的框图;
图7是图示用于本公开的译码器的网格树的实施例的图;
图8是图示用于本公开的译码器的网格树的另一个实施例的图;
图9是图示用于本公开的译码器的网格树的进一步的实施例的图;
图10是图示用于本公开的译码器的网格树的又一个实施例的图;
图11A和图11B是用于本公开的译码器的网格块的实施例的框图;
图12A和图12B是用于本公开的译码器的后验计算块的实施例的框图;
图13是本公开的字节码译码器的实施例的框图;
图14是本公开的字节码译码器的另一个实施例的框图;
图15是图示本公开的译码器的tanner图的实施例的图;
图16是本公开的字节码译码器的进一步的实施例的框图;
图17是本公开的译码处理的实施例的流程图;
图18是本公开的译码处理的另一个实施例的流程图;
根据通过示例给出的下列描述,本公开的特征和优点可变得更加明显。
具体实施方式
下面将描述本公开的一个或多个具体实施例。为了试图提供对于这些实施例的简洁描述,未将实际实施方案的所有特征描述在说明书中。应当理解,在任何这种实际的实施方式的开发中,如在任何工程或设计项目中那样,必须进行大量的特定于实施方案的决定,以实现开发者的具体目标(如,对与***相关的及与商业相关约束的兼容性),所述具体目标可能在实施方案之间变化。此外,应当理解,对于受益于本公开的本领域普通技术人员来说,这种开发努力仍然将是设计、制造和生产的常规任务。
下面描述与电视广播信号(更具体地,针对在美国的使用所定义的广播信号)有关的***。所述的各实施例可以用于移动、手持或行人接收设备。所用设备的示例包括而不限于蜂窝电话、智能电话、个人数字助理、笔记本电脑和便携式电视。用来发送和接收其它类型信号的其它***可包括类似的结构和处理。本领域技术人员将理解,在此描述的电路和处理的实施例仅仅一组可能的实施例。注意到以下这点是重要的:一般而言,可以以经由空气以外的方式(其包括经由卫星链路、同轴线缆或电话线路的传输)来发送遵循广播和无线标准(如,A53标准)的信号。这样,在替代实施例中,可以重新安排或省略***的组件,或者可以添加额外的组件。例如,在最小修改的情况下,可以将所述***配置用于包含世界其它地方所使用的服务的其它陆地卫星服务、卫星视频和音频服务,或者电话数据服务。
下面描述的实施例主要涉及信号的发送和接收。包括而不限于某些控制信号和电源连接的实施例的某些方面未加以描述或示出在附图中,但是其可由本领域技术人员容易地确定。应当注意,可以使用硬件、软件或者二者的任何组合(包括微处理器和程序码或者定制的集成电路的使用)来实施所述实施例。还应当注意,许多实施例涉及迭代操作以及实施例的各种元素之间的连接。通过代替(或除了)在此所述的迭代操作实施例而使用采用了串联连接的重复的相同元素的流水线架构,替代实施例是可能的。
现在转至图1,示出了编码器100的实施例的框图。编码器100尤其适用于结合A53传输标准来对健壮或鲁棒的数据流进行编码和发送。编码器100包括MPEG传输流源102。MPEG传输流源102与包含若干额外块的ATSCM/H块110相连接。ATSC M/H块110内所包含的块对输入的数据流进行处理,并产生适于移动、行人和手持设备接收和使用的健壮的数据流。下面将进一步描述这些块。ATSC M/H块110连接至多路复用器130。多路复用器130还接收用于仅有传统ATSC A53的编码的传输数据内容。多路复用器130连接至在其之内也包含若干额外块的ATSC A53传统块150。ATSC A53传统块150内的块可以表示用于编码和发送处于A53信号格式的现有广播信号的块。这些块也将在下面进一步加以描述。控制器170连接至多路复用器130和MPEG传输流源102。控制器170也可连接至编码器100中的其它块。
在ATSC M/H块110内,分组交织器(packet interleaver)112接收以分组方式排列的数据的流。每个分组含有187字节,并且包括用于分组标识的3字节首标。分组交织器112的输出被提供至伽罗瓦域GF(256)SCBC(SerialConcatenated Block Coder,串行级联块编码器)114。GF(256)SCBC 114的输出连接至分组解交织器116。分组解交织器116的输出连接至传输流首标修改器118。传输流首标修改器118的输出连接至先验传输分组***器120。先验传输分组***器120的输出连接至多路复用器130。
分组交织器112基于来自各行分组的各列字节,将通常作为以行的方式排列的分组而接收到的数据重新排列为码字(codeword)。分组交织器112以逐行顺序从固定数量的连续分组中取出字节,并且将字节逐列输出。在一个实施例中,分组交织器112读入12行的187字节分组,并且输出187列的12字节码字。作为分组交织的结果,将所有的第一字节都编组在一起;将所有的第二字节都编组在一起;诸如此类。读入分组交织器112的分组数量构成源帧,并且等于在GF(256)SCBC 114中处理所需要的源码字或码元(symbol)的数量。注意到以下这点是重要的:分组交织器112的维度可以基于所包括的存储器的类型和大小而改变。
GF(256)SCBC 114是字节码编码器的实施例。特别地,通过在伽罗瓦域(256)空间上使用短线性块码来实施GF(256)SCBC 114。可以使用若干个可能的构件(constituent)块码。例如,比率1/2字节码编码器可以使用下列的生成矩阵:
G=(1 2) (1)
比率2/3字节码编码器可以使用下列的生成矩阵:
使用单位矩阵和b个元素的列(示出为以上等式1和2中最后一列中的值),形成生成矩阵。也可以使用其它的码率。
注意到以下这点是重要的:已经基于块码(block code)编码与整个纠错***和调制处理的关系,而优化了用于每个构件码的生成矩阵中的系数。可以使用其它的系数。优化已特别加以考虑了网格编码和ATSC 8-VSB调制中的比特到码元映射,这是由于这些方面是在接收和解调处理中遇到的第一个方面。
GF(256)SCBC 114可以是简单的或级联的块码编码器。级联的块码编码器可包括诸如交织和删余(puncture)之类的其它功能。下面将更加详细地描述级联的块码编码器的实施例。GF(256)SCBC 114也可能能够对多个编码率进行编码,并且可能进一步能够通过比率模式控制器(未示出)来切换比率模式。在优选实施例中,GF(256)SCBC 114可以适配为通过使用比率1/2构件码、比率12/26级联码或者比率24/208级联码中的一个,来对输入的数据流进行编码。
GF(256)SCBC 114沿着从交织器112输出的列,对字节进行编码。换言之,GF(256)SCBC 114遵循通过分组交织器112中的处理所形成的交织器矩阵的第二维度进行编码。
分组解交织器116接收GF(256)SCBC 114所产生的码字的编码流,并且输出重构的各行187字节分组。分组解交织器116以逐列的顺序输入编码的码字,其中每列包括原始消息或***字节以及通过GF(256)SCBC 114中的处理所添加的冗余或非***字节二者,并且分组解交织器116以逐行的排列输出字节。该处理基本上是针对分组交织器112所描述的处理的反转。分组解交织器112输入相同列数的码字,其中每个码字现在包括非***字节的编码集合。输出处的列数对应于编码的码字长度。例如,在12/26码率中,输出26行的分组。
MPEG传输流首标修改器118接收含有***和非***分组的编组的解交织的187字节分组,并且对每个分组中包括的3字节标识符首标进行修改。这3字节包括节目标识符(PID)、以及用以传递关于分组的信息的若干其它比特或比特的编组。注意到以下这点是重要的:为了保持能够接收传统或A53广播信号但不能正确译码和/或识别ATSC M/H编码分组的接收器(如,传统接收器)的最高效工作,可以修改部分ATSC M/H分组的首标中的某些比特。
先验跟踪分组***器120可以将预定的跟踪分组置入健壮数据流。预定分组表示对于能够接收健壮数据流的接收器(如,移动、行人或手持设备中使用的接收器)完全或大部分已知的信息的分组。在接收器中使用预定分组以助于在对信号编码和传输的传统或现有A53编码部分期间所创建的网格状态进行译码。预定分组也可有助于接收器的均衡器部分中的收敛。注意到以下这点是重要的:预定分组并非旨在改善传统接收器中的接收,但仍然可导致可能的改善。可以通过使用已知的训练序列处理(包括对于接收器已知的伪随机数发生器序列),以多种方式生成预定的跟踪分组。
将ATSC M/H块110中生成的健壮或鲁棒数据流提供至多路复用器130。多路复用器130还从数据流(未示出)接收传统数据流。注意,在某些实施例中,可以从MPEG传输流源102提供传统数据流。多路复用器130可包括缓冲存储器,以便存储输入的鲁棒ATSC M/H数据流和传统数据流的部分。多路复用器130生成健壮ATSC M/H数据流和传统数据流一起的时间多路复用,并且将多路复用的流提供至ATSC A53传统块150。
多路复用器130受控制器170控制。控制器170可以是实施为微处理器或微控制器的单独的电路。可替代地,控制器170可以包括在其它块之一(如,MPEG传输流源102)中。也可以将控制器170并入到用于整个调制和传输装置的工作的另一控制器中。
相同地,传统ATSC编码器150对作为多路复用的数据流所提供的健壮分组和传统分组遵循传统A53标准而相同地进行编码。数据随机发生器152对分组进行随机化,并且将分组提供至Reed-Solomon编码器154。通常通过将数据的分组乘以随机数序列(其对于接收器也是已知的)来执行数据的随机化。Reed-Solomon编码器154计算20个奇偶字节并将这20个奇偶字节级联到随机化的数据,以产生具有207字节的R-S分组。
卷积交织器156交织RS分组,以便进一步地在时间上对数据进行随机化。网格编码器158对交织的分组进行编码,以产生828个3-比特码元的块。A53标准指定12个网格编码器的使用,其中,每个网格编码器是2/3比率网格编码器,其对交织的分组中存在的每两个比特产生3比特码元。结果,网格编码器158包括多路分离器、十二个并行的2/3比率网格编码器、和多路复用器。来自卷积交织器156的数据被多路分离并分配至这十二个网格编码器,并且这十二个网格编码器所生成的码元被多路复用至码元的流。
同步***器160在每个828码元块的起始处***4个预定义的分段同步码元,以创建832码元分段。另外,同步***器160为生成的每312个分段***包含832码元的字段同步。具体地,字段同步码元在312个分段之前。
8-VSB调制器162使用包括由网格编码器158编码的数据、分段同步码元以及字段同步在内的多路复用的码元,以使用8-VSB(残留边带)调制来调制载波信号。具体地,8-VSB调制器162生成脉冲幅度调制(PAM)信号。PAM信号的幅度将为8个离散电平之一,其中,每个离散电平对应于特定的3比特码元。通过使用未示出的电路,PAM信号被从数字信号格式转换为模拟信号格式、被过滤以便产生正确的信号脉冲形状、并且被上变换至射频。
传输源(如,MPEG传输流源102或传统内容的源)生成的数据包括作为通过使用运动画面娱乐组(MPEG)2格式(其也与国际标准组织/国际电工委员会(ISO/IEC)13818-2格式等效)所编码的源的视频。该数据还包括作为通过使用Dolby AC-3(Arc Consistency算法#3)所编码的源的音频数据。A53标准还允许将元数据用于其它节目元素(如,节目指南数据),并且这些节目元素可以是通过使用其它方法所编码的源。另外,A53标准允许以多种视频质量等级和显示格式(其包括但不限于标清隔行电视质量以及逐行扫描宽屏高清电视质量)来传输视频。
现在转至图2,示出了级联的字节码编码器200的实施例的框图。可以使用级联的字节码编码器200来代替图1中所述的GF(256)SCBC编码器114,并且级联的字节码编码器200允许通过使用12/26码率对数据流中的码字进行编码。级联的字节码编码器200接收分组或码字,并且将它们提供至第一2/3比率字节编码器202。第一2/3比率字节码编码器202的输出提供至交织器204。交织器204的输出提供至第二2/3比率字节码编码器206。第二2/3比率字节码编码器206的输出提供至字节删余块208。删余块208的输出提供至数据打包器(packetizer)210。可以提供数据打包器210的输出以进行进一步的处理(例如,如之前图1中所述的传统传输编码)。
第一2/3比率字节码编码器202接收12字节的内容数据分组,并且从该12字节生成第一字节码的编码流。对于该12字节的每两个内容数据字节MA和MB,第一字节码的编码流包括字节MA和MB的副本以及通过使用等式2中的生成矩阵所计算的冗余字节MAB。在某些实施例中,内容数据字节MA和MB是数据生成器(例如,图1中的数据生成器102)生成的一个内容数据分组的字节。在其它实施例中,第一2/3比率字节码编码器202分别从两个不同的内容数据分组A和B选择内容数据字节MA和MB。对于内容数据的每12个字节,输出18个字节,作为第一字节码的编码输出流的一部分。
来自第一字节码编码器202的字节码编码流被交织器204交织,以产生含有18个交织字节的交织流。交织器204以及下面所述的其它交织器可以使用现有技术中已知的任何交织方法(例如,伪随机、行-列、码优化等)。另外,交织器也可包括具有存储整个交织器数据长度的存储容量的存储器。
交织流被提供至第二2/3比率字节码编码器206。第二2/3比率字节码编码器206对交织流中的18个交织字节的编组进行编码,以生成包括27个字节的编组的第二字节码编码流。如上所述,对于交织器产生的每两个字节MA和MB,第二2/3比率字节码流具有两个字节MA和MB的副本以及所生成的冗余字节MAB。明显地,字节MA可以是数据生成器(例如,图1中的数据生成器102)所生成的内容数据的字节之一的副本,或者可以是第一字节码编码器202所建立的作为冗余或非***字节的字节。类似地,字节MB可以是内容数据的字节的副本,或者是第一字节码编码器202所建立的作为冗余或非***的字节。
字节删余块208从第二字节码编码流中的27个字节的编组中移除一个字节,以产生含有编组26字节的删余流。字节删余用于通过减小为给定的编码结构所提供和传送的字节数量,来改善数据效率。然而,由于缺少来自数据流的一个或多个编码字节,所以改善的数据效率针对接收器中译码电路中作为结果的性能劣化而被折中。字节删余也可用于产生对于传输格式便利的编码数据的字节或分组的编组或块。基于字节或分组的特定编组的编码结构通常称为块码。
打包器210将来自删余流的字节组合并编组为187个字节的离散分组。字节码编码器200的各组件所产生的健壮数据流产生12/26比率数据流。如果不使用字节删余块208,字节码编码器200也可以产生12/27比率数据流。
可以采用与级联的字节码编码器600类似的级联的字节码编码器来产生除了上述12/27比率和12/26比率健壮数据流以外的健壮数据流。例如,通过构件字节码编码器、交织器和删余块的组合可以产生具有诸如17/26和12/52比率之类的码比率的数据流。类似地,可以用具有其它类型或布置的交织器或删余块代替所述实施例中使用的那些。
现在转至图3,示出了接收器中使用的译码器300的实施例的框图。译码器300包括用于对已受到经由传输介质的信号传输(如,经由空气的电磁波)的不利影响的信号进行接收和译码的电路和处理。译码器300能够对健壮数据流以及传统数据流两者进行译码。例如,在能够对作为ATSC M/H信号所传送的信号进行接收和译码的接收器中,可以包括译码器300。
在译码器300中,在初始处理之后,将输入信号提供至均衡器310。均衡器310连接至提供两个输出的网格译码器320。来自网格译码器320的第一输出提供反馈,并作为反馈输入连接回到均衡器310。来自网格译码器320的第二输出连接至卷积解交织器330。卷积解交织器330连接至解随机器340。解随机器340的输出连接至也提供两个输出的字节码译码器350。来自字节码译码器350的第一输出作为反馈输入而经由卷积交织器360和随机发生器370连接回到网格译码器320。来自字节码译码器350的第二输出连接至Reed-Solomon译码器380。Reed-Solomon译码器380的输出连接至数据译码器390。健壮流控制器395连接至字节码译码器350和Reed-Solomon译码器380。注意到以下这点是重要的:均衡器310、网格译码器320、卷积解交织器、解随机器340、Reed-Solomon译码器380和数据译码器390以与用于接收ATSC A53传统广播信号的常规接收器中的那些块类似的方式连接并功能性地工作。
来自接收器(未示出)的前端处理(例如,天线、调谐器、解调器、A/D转换器)的输入信号被提供至均衡器310。为了尝试恢复接收到的信号,均衡器310处理接收到的信号以完全地或部分地移除传输信道影响。各种移除或均衡方法对于本领域技术人员来说是公知的,并且在此将不加以讨论。均衡器310可包括处理电路的多个部分,包括前馈均衡器(FFE)部分和决定反馈均衡器(DFE)部分。均衡器3 10也可包括用于同步移除和定时以及先验训练分组处理的电路。
均衡的信号被提供至网格译码器320。网格译码器320产生作为一个输出的、提供至均衡器310的DFE部分的一组决定值。网格译码器320也可生成同样提供至均衡器310的DFE部分的中间决定值。DFE部分使用来自网格译码器320的该决定值以及中间决定值来调节均衡器310中滤波器抽头的值。调节后的滤波器抽头值消除了接收信号中存在的干扰和信号反射。迭代处理允许均衡器310借助于来自网格译码器320的反馈,随着时间动态地调节至可能变化的信号传输环境条件。注意到以下这点是重要的:迭代处理可以以与信号的输入数据速率(如,用于数字电视广播信号的19Mb/s)类似的速率而发生。迭代处理也可以以高于输入数据速率的速率而发生。
网格译码器320还将网格译码的数据流提供至卷积解交织器330。卷积解交织器330以将诸如通过卷积字节交织器156在编码器中所执行的交织进行反转的方式,生成在数据分组内组织的解交织字节。解交织的分组由解随机器340来解随机化。解随机器340通过将分组乘以编码器中的随机发生器(如,数据随机发生器152)所使用的复数序列的补足(complement),来移除在编码器处所添加的随机化内容。解随机化分组被提供至字节码译码器350。字节码译码器350通常仅处理来自健壮或鲁棒数据流的分组。结果,并非健壮数据流的一部分的分组简单地通过字节码译码器350而传递至Reed-Solomon译码器380。注意到以下这点是重要的:向字节码译码器300中的剩余的块提供的网格译码流可以是数据流中包含的信息的概率或可靠性的形式。
字节码译码器350和网格译码器320以迭代方式运行(称为turbo译码器),以对健壮数据流进行译码。具体地,对于健壮数据流中包括的分组的每一字节,网格译码器320在解交织和解随机化之后将第一软决定矢量提供至字节码译码器350。通常,网格译码器320产生作为概率值的矢量的软决定。在某些实施例中,矢量中的每个概率值与矢量所关联的字节可能具有的值相关联。在其它实施例中,由于2/3比率网格译码器估计二比特码元,因此针对***分组中包含的每一个半四位(half-nibble)(即,两比特)生成概率值的矢量。在某些实施例中,网格译码器320组合与字节的四个半四位相关联的四个软决定,以产生作为字节可能具有的值的概率的矢量的一个软决定。在这样的实施例中,将对应于字节的软决定提供至字节码译码器350。在其它实施例中,字节码译码器将关于***分组的字节的软决定分离为四个软决定矢量,其中,这四个软决定中的每一个与字节的半四位相关联。
字节码译码器350使用与构成健壮数据流的分组的字节关联的软决定矢量,以产生对于构成分组的字节的第一估计。字节编码译码器350使用***和非***分组两者来对构成健壮流的分组的每一字节产生第二软决定矢量,并且在卷积交织器360进行的重新交织以及随机发生器370进行的重新随机化之后,将第二软决定矢量提供至网格译码器320。注意到以下这点是重要的:卷积交织器360和随机发生器370以与图1中所述的卷积字节交织器156和数据随机发生器152类似的方式功能性地工作。此后,网格译码器320使用第二软决定矢量以产生向字节编码译码器350提供的第一决定矢量的进一步迭代。网格译码器320和字节码译码器350以此形式进行迭代,直到网格译码器以及字节码译码器产生的软决定矢量收敛或进行了预定数量的迭代为止。此后,字节码译码器350使用***分组的每个字节的软决定矢量中的概率值,来对***分组的每个字节产生硬决定。网格译码器320可以使用最大后验(Maximum a Posteriori,MAP)译码器来实施,并且可以在字节或半四位(码元)软决定上工作。
注意到以下这点是重要的:turbo译码通常利用与各块之间的通过决定数据相关的、比输入数据速率更高的迭代速率。可能的迭代数量不限于数据速率和迭代速率的比值。作为结果、并且在符合实际的范围内,turbo译码器中的更高迭代速率通常改善纠错结果。在一个实施例中,可以使用输入数据速率的8倍的迭代速率。
诸如图3中所述的软输入软输出字节码译码器可包括矢量译码功能。矢量译码涉及对数据的字节(包括***和非***字节)进行编组。例如,对于比率1/2字节码编码流,将对1个***字节和1个非***字节进行编组。这两个字节具有超过64000个可能的值。矢量译码器确定或估计两个字节的可能值中的每一个的概率,并且创建概率地图。基于一些或所有可能性的概率的加权以及距可能码字的欧几里德距离来进行软决定。当欧几里德距离的误差落入阈值以下时,可以进行硬决定。
字节码译码器350的硬输出(即,字节码译码信息)被提供至Reed-Solomon译码器380。Reed-Solomn译码器380将输出数据形成为例如207字节的分组。Reed-Solomn译码器380将字节码译码器350所产生的207字节的每一序列视作一个或多个Reed-Solomon码字,并且确定码字或分组中是否有任何字节由于传输期间的错误而被毁坏。通常通过计算和评估码字的一组伴随(syndrome)或错误模式来执行该确定。如果检测到毁坏,则Reed-Solomon译码器380试图通过使用奇偶比特中所编码的信息来恢复毁坏的字节。此后,然后将作为结果的经纠错的数据流提供至根据正在传送的内容的类型而对数据流进行译码的数据译码器390。
数据译码器390使用译码分组的首标中的诸如PID之类的标识符来确定分组中携带的信息的类型以及如何对这种信息进行译码。首标中的PID与节目映射表(PMT)中的信息相比较,所述节目映射表可定期地作为数据流的一部分来传送并在接收器中更新。数据译码器390将具有不被识别类型的数据分组的PID的任何分组忽略。
健壮流控制器395还接收经纠错的数据流。健壮流控制器395可以是作为微处理器或微控制器而实施的单独的电路。可替代地,健壮流控制器395可以包括在其它块中的一个(如,字节码译码器350)之中。也可以将健壮流控制器395并入到用于整个接收装置的工作的控制器中。健壮流控制器395例如可以以用于健壮数据流的前序(preamble)的形式来确定先验传输分组的存在。基于先验传输分组的存在,健壮流控制器395标识并译码健壮数据流中的控制信息。
诸如图3中所述的译码器可对已由先前所述字节码编码器编码(包括简单的字节码编码器或级联的字节码编码器所进行的编码)的健壮数据流进行译码。图3中的译码器描述了对仅涉及单个编码步骤的简单或构件字节码编码器所编码的健壮数据流进行译码。除了诸如解交织、解删余和重新***之类的中间处理之外,级联的字节码译码还包括在多于一个译码步骤中对输入的码字或字节进行译码。
现在转至图4,示出了级联的字节码译码器400的实施例的框图。级联的字节码译码器400可以用于取代图3中的字节码译码器350。级联的字节码译码器400可以配置为工作在turbo译码器配置中。级联的字节码译码器400还通过使用迭代处理内部地作为turbo译码器而工作,以对健壮数据流中的级联的字节码编码分组进行译码。级联的字节码译码器400适配为对比率12/26字节码编码信号流进行译码,使得从原始编码的26字节产生12字节的数据。
通常表示26字节的软决定值的输入消息数据流被提供至字节***块402。字节***块402的输出连接至第一2/3比率字节码译码器404。第一2/3比率字节码译码器404提供两个输出。第一输出连接至删余块406,其中删余块406的输出作为反馈输入而经由交织器连接至网格译码器。第一2/3比率字节码译码器404的第二输出连接至解交织器408。码元解交织器408的输出连接至也具有两个输出的第二2/3比率译码器410。第一输出作为反馈输入而经由交织器412连接至第一2/3比率字节码译码器404。第二输出连接至诸如Reed-Solomon译码器之类的其它处理块。
输入至字节***块402的26字节包括网格译码器生成的关于数据的***字节或***分组的第一软决定,以及关于数据的非***字节或非***分组的软决定。数据的***和非***字节可以来自已被字节码编码的分组。2/3比率字节码译码器需要3个字节以便译码2个数据字节。然而,原始的级联编码通过优选地移除非***字节来移除一个字节以便将码字从27字节减小到26字节。结果,需要一个字节来取代编码处理中的删余所移除的字节。另外,由于到网格译码器的输入流不包含该字节,所以网格译码器不生成关于数据流中的删余字节的任何软决定。结果,***指示删余字节的值同等地可能的软决定值。包括来自字节***块402的所***的软决定值的第一软决定被提供至第一2/3比率字节码译码器404。第一2/3比率字节码译码器404使用第一软决定以便基于对***和非***分组的字节进行译码而生成第二软决定。该软决定的生成例如利用将一组字节乘以曾用于建立字节码分组的b1和b2元素(如上面的等式(2)和(3)中所示)的值的倒数。
来自第一2/3比率字节码译码器的27字节软输出被提供至删余块506。对于第一2/3比率字节码译码器中的译码之后的***和非***字节两者,27字节软输出表示软决定值的更新的集合。删余块506移除之前***的软决定字节,以便将字节格式返回到网格译码器初始处理的26字节格式。
仅表示***字节的、来自第一2/3比率字节码译码器的18字节软输出被提供至解交织器408。解交织器408以对在2/3比率字节码编码处理中执行的交织进行反转的方式来解交织这18字节的数据。解交织器408精确地反转编码器中的交织映射。解交织的字节被提供至第二2/3比率字节码译码器410。第二2/3比率字节码译码器410使用解交织的软决定***字节,以便以与上述类似的方式生成软决定字节的两个额外输出。18字节软输出被提供至交织器412。该18字节软输出表示含有来自第一2/3比率字节码译码器404中的译码的***和非***字节两者的软决定值的更新的集合的反馈消息。交织器412对解交织的字节进行重新交织,以便将它们置回到第一2/3比率字节码译码器所使用的字节格式。交织器412基本上与编码器中使用的交织器(如,图1中的交织器104)相同,并将1 8字节的重新交织的集合提供至第一2/3字节码译码器404。该18字节的重新交织的集合用于改善第一2/3比率字节码译码器404所进行的软决定。
来自第二2/3比率字节码译码器410的12字节输出表示作为12/26比率字节码编码健壮数据流的完全译码的数据输出的***字节。在优选实施例中,如果第二2/3比率字节码译码器410生成的12个***输出字节的软决定是结论性的,或者在结论为正确数据值的预定阈值内,那么第二2/3比率字节码译码器410使用软决定来生成关于这12个输出字节的硬决定,并且将这12个输出字节提供至进一步的处理块(如,Reed-Solomon译码器)。然而,如果第二2/3比率字节码译码器生成的软决定不是结论性的,那么通过使用之前迭代期间所建立和反馈的的软信息,如上所述那样建立进一步的迭代。该额外的软信息通过其后续译码器而被提供至每个软译码器。即,网格译码器使用来自第一2/3比率字节码译码器404的、通过删余块406所提供的反馈消息信号,并且第一2/3比率字节码译码器404使用来自第二2/3比率字节码译码器410的、通过交织器412所提供的反馈消息信号。迭代以此方式持续,直到第二2/3比率字节码译码器410生成的软决定充分收敛为止,或者直到已经进行了预定数量的迭代为止。Turbo译码通常利用比输入数据速率更高的、与各块之间的通过的决定数据有关的迭代速率。
现在转至图5,示出了构件字节码译码器500的实施例的框图。构件字节码译码器500可以用作图3中所示的字节码译码器350,或者用作图4中所示的译码器404和译码器410。字节码译码器500接收两个输入信号。第一输入信号是主要来自网格译码块的输入消息信号。第二输入是从后续译码级的输出所反馈的反馈消息信号。每个输入连接至加法器510。加法器510的输出被提供至核单元520。在核单元520内,加法器510的输出连接至外部计算块522,并且还连接至加法器524的一个输入。外部计算块522的输出连接至加法器524的第二输入。加法器524的输出表示核单元520的输出,并被提供为加法器530和加法器540的一个输入。原始输入消息还作为反相信号而被提供至加法器530的第二输入。反馈消息作为反相信号而被提供至加法器530的第二输入。加法器530和加法器540的输出表示构件译码器500的输出,并且与针对图4中的译码器404和译码器410所述的输出类似。
加法器510将输入的编码消息信号与未编码的反馈消息组合。加法功能通常涉及基于特定比特而组合信号,更具体地,基于消息信号中每比特的特定比特可靠性。核单元520接收组合后的消息信号,并且通过使用加法器510提供的内部可靠性信息而在外部计算块522中为输入比特计算外部信息。在一个实施例中,如上所述那样使用欧几里德距离技术以及来自生成矩阵的反相值来处理每一个输入比特可靠性。外部计算单元522中计算的外部信息在加法器524中与来自加法器510的输入内部信息组合或相加在一起,以创建后验信息。核单元520产生的后验信息表示原始信号消息、反馈消息和所计算的外部信息的组合或和。
加法器540通过减法处理将从输入提供的反馈消息信号与后验信息组合。在优选实施例中,反馈消息信号在进入至加法器540之前被反相。作为结果的消息信号表示来自输入的原始编码消息、以及所加的核单元520中所计算的外部信息。注意到以下这点是重要的:通常向构件字节码译码器500传递以及从构件字节码译码器500传递信息消息信号,作为消息中的***和非***两者的信息的概率或可靠性的集合。在一个优选实施例中,外部计算块522执行对数计算,并且将加法器540的输出处的作为结果的可靠性表达为对数似然比(likelihood ratio)。也可以以对数似然比的集合的形式接收输入消息。基于消息中的比特的输出消息可靠性被提供至级联的字节码译码器中的进一步的级,或者替代地表示迭代字节码译码处理的最终输出并被提供至进一步的单独的译码器。
类似地,加法器530通过减法处理将输入消息信号与后验信息相组合。在优选实施例中,输入消息信号在进入至加法器530之前被反相。作为结果的信号表示反馈消息信号、以及所加的外部信息。如上述那样,作为概率或可靠性的集合而传递该信息。编码消息可靠性的集合作为反馈信号被提供至级联译码器中的先前字节码译码器,或者作为反馈信号被提供至先前译码块(如,网格译码器)以用于进一步的迭代译码改善。
构件字节码译码器500可基于以逐比特、逐半四位或逐字节方式应用的字节码编码,迭代地处理输入的消息信号。如之前所述,迭代数量允许比特值的可靠性的改善。迭代处理的数量可能受限于硬件尺寸或硬件速度。因此,期望更高效的架构和处理。可以代替如上所述的串行化的直接译码处理而通过利用与伽罗瓦域空间相关联的特性来实现改善的译码结构。注意到以下这点是重要的:构件字节码是在伽罗瓦域GF(256)上定义的短线性块码。伽罗瓦域GF(256)是GF(2)的延伸,并且可以由本原多项式来进一步定义。一个优选的本原多项式是:
P(x)=p0+p1x+..+p8x8=1+x2+x3+x4+x8,其中pi∈GF(2) (3)
传送的编码消息可以定义为:
c=mG, (4)
其中,可以如分别用于码率1/2和2/3的等式(1)和(2)所述那样在GF(256)中定义G。然而,可以在基于用于码率1/2的本原多项式的GF(2)中将发生器矩阵重新定义为:
G=[I S] (5)
在等式5中,I是大小为8×8的单位矩阵,而S是如下面那样在GF(2)中定义的子矩阵:
类似地,对于码率2/3,可以在基于本原多项式的G(2)中将生成矩阵定义为:
以上定义的矩阵等式可以进一步允许GF(2)中奇偶校验矩阵的生成,以从编码的消息中恢复原始消息。可以将奇偶校验等式写为:
cHT=0 (8)
比率1/2码率的奇偶校验矩阵可定义为:
H=[ST I] (9)
因此,可以以矩阵形式将H写为:
类似地,可以将比率2/3码率的奇偶矩阵定义为:
H=[ST ST I] (11)
因此,可以将比率2/3码率的H写为:
注意到以下这点是重要的:可以直接通过经由矩阵等式对用于处理的比特进行安排或编组,来将奇偶矩阵应用于接收器中的输入字节码编码消息。此外,可以将奇偶矩阵化简为一组等式,通常称为奇偶校验等式,其中每个等式仅涉及输入消息的某些比特。可以将等式处理和求解为一组联立等式,以便确定消息的编组或子集中的比特的最终值或似然性。通过下面所述的实施例,利用把输入比特安排到奇偶等式或替代地安排到奇偶矩阵的译码器(尤其是字节码译码器)将变得更加明显。
现在转至图6,示出了使用本公开的一些方面的构件字节码译码器600的另一实施例的框图。构件字节码译码器600可以用于取代图4中的译码器404和译码器410。两个输入信号(输入消息信号和反馈消息信号)作为输入被提供至加法器605。加法器605的输出连接至输入比特重新排序块615。输入重新排序块615的第一输出连接至延迟缓冲器620以及阿尔法网格块625。输入重新排序块615的第二输出连接至贝塔网格块630。阿尔法网格块625的输出连接至存储缓冲器635。贝塔网格块630的输出连接至存储缓冲器640。延迟缓冲器620、存储缓冲器635和存储缓冲器640的输出都连接至后验处理器645。后验处理器645的输出连接至输出重新排序块650。输出重新排序块650的输出连接至加法器655和加法器660两者的各一个输入。编码的消息信号还连接至延迟缓冲器610。延迟缓冲器610的输出被反相,并且连接至加法器655的另一个输入。反馈消息信号还连接至延迟缓冲器612。延迟缓冲器612的输出被反相并且被连接至加法器660的另一输入。加法器655和加法器660的输出表示构件译码器600的输出(其与针对图5中的构件字节码译码器500所述的那些类似)。
加法器605接收两个输入(输入消息信号和反馈消息信号),并且对信号的可靠性进行组合或相加。输入重新排序块615将组合的消息信号编组为比特的子集,改变信号中比特的串行排序,并且将重新排序的输入信号提供至阿尔法网格块625和贝塔网格块630。可以执行重新排序以便改善译码器的效率,其将在下面更详细描述。所选择的子集大小可以是所使用的奇偶校验处理的函数。在优选实施例中,子集大小是被标识为矢量b=[b0 b1 b2 b3 b4 b5 b6 b7b8 b9 b10 b11 b12 b13 b14 b15]的16比特。输入重新排序块615产生正向重新排序的输出(第一重新排序比特至最后重新排序比特),其被提供至阿尔法网格块625并且还提供至缓冲器620。缓冲器620提供正向重新排序的输出(也代表内部信号)的时间延迟,以便允许在网格处理之后重新组合。输入重新排序块615还产生反向排序信号(最后重新排序比特至第一重新排序比特),并且将该信号提供至阿尔法网格块630。
阿尔法网格块625和贝塔网格块630基于被称作网格树或网格图的一组计算的生成处理,来计算正向度量(metric)和反向度量值。下面将更详细描述网格树和网格图的具体实施方案以及阿尔法网格块625和贝塔网格块630的操作。正向缓冲器635和反向缓冲器640接收阿尔法网格块635和贝塔网格块640的输出。正向缓冲器635和反向缓冲器640为重新组合提供时间延迟。另外,反向缓冲器640将贝塔网格块640的输出的比特顺序进行反向。
来自阿尔法网格块625和贝塔网格块630的正向和反向度量值在后验块645中与内部信息相组合。后验块645计算消息流中的比特的子集的后验可靠性。输出重新排序块650将子集的后验可靠性信息重新排序,以便将子集返回至其原始顺序。加法器655和加法器660将每一个都被反相以用于减法的反馈消息和输入消息与重新排序的后验消息信号组合。缓冲器610和缓冲器612提供输入消息和反馈消息的必要时间延迟,以便允许与后验可靠性信息输出适当组合。注意到以下这点是重要的:加法器660的正向输出与加法器655的编码的反馈输出代表正向输出值和反馈输出值,并且在功能上与针对图5中的构件字节码译码器500所述的输出相类似。
构件字节码译码器600基于对消息中重新排序的比特子集进行译码的网格,使用log-MAP译码器对输入消息进行译码。一种可能的网格算法利用Bahl-Cooke-Jelinek-Raviv(BCJR)算法。为了使用网格映射来应用log-MAP译码,基于从先前所述的奇偶矩阵形成的一组奇偶等式,将输入消息变换到等效比特网格树。对于比率1/2码,可以使用下列这组编号的等式:
(1)b1+b8=0
(2)b2+b9=0
(3)b3+b10=0
(4)b0+b4+b11=0
(5)b0+b5+b12=0
(6)b0+b6+b13=0
(7)b7+b14=0
(8)b0+b15=0
基于比特的网格算法允许以增加从左到右看所形成的网格树的深度的任何特定排序来处理各比特。一旦在给定深度处选择了比特,那么涉及该比特的所有奇偶校验等式变得有效。如果给定奇偶校验等式中的所有比特都已进行处理,那么该奇偶校验等式不再有效。给定深度处的奇偶校验等式的当前状态被级联以形成n比特状态,其中,n是有效的奇偶校验等式的当前数目。有效的奇偶校验等式中的某些可以处于相同的状态,因此对于这些等式,仅需要一比特。使用按照使所有深度上的等式的最大数目n尽可能小的方式来处理比特的比特排序,高效译码是可能的。图7中示出了优选的比特网格。
在图7中,下面的x轴示出了在输入比特重新排序块615中实施的比特排序。在轴上从左至右示出了正向排序,同时从右至左示出了反向排序。上面的x轴示出了每次比特转换或状态改变时所使用的等式的数目。实线示出了当下一码元具有0的值(或可能值)时, 前一比特和下一比特之间的转换。虚线示出当下一比特具有1的值(或可能值)时,前一码元和下一码元之间的转换。
可以通过使用基于子集大小为24比特的下列这组编号的奇偶校验等式,以类似的方式形成用于比率2/3码率的比特网格树。
(1)b1+b9+b16=0
(2)b2+b10+b17=0
(3)b3+b11+b18=0
(4)b0+b4+b8+b12+b19=0
(5)b0+b5+b8+b13+b20=0
(6)b0+b6+b8+b14+b21=0
(7)b7+b15+b22=0
(8)b0+b8+b23=0
用于比率2/3码率的优选网格树示出在图8中,并且其可以以与针对图7中所示的网格树描述的方式类似的方式来描述。
注意到以下这点是重要的:对于上述译码处理,可以使用替代的奇偶校验排列。例如,可以使用更小的比特的子集。结果,可以使用比特中的两个之间的单个关系来对该更小的比特的子集进行译码。更小的比特的子集和奇偶关系形式的单个关系可以被迭代地译码,或者可以添加比特以及从子集中移除比特,并且可以在随后的译码步骤中使用作为单个关系的不同的奇偶等式。
构件字节码译码器600也可以允许比特的其他编组。例如,除了编组以形成16或24比特的子集之外,可以通过基于比特与所接收的传输或调制码元的关系来对比特进行编组,而形成第二编组。该额外的编组通过包括与输入消息中的比特相关联的额外内部信息,而提供了译码处理中的进一步的改善。构件字节码译码器基于包含消息的2比特(其进一步表示4个可能值)的每个码元的星座值,来接收和处理消息信息。一个码元中的每比特星座位置由一个可靠性值来表示。因此,可以将由2比特组成的一个码元表示为如下标识的4个概率:
P(x码元=“00”),P(x码元=“01”),P(x码元=“10”),P(x码元=“11”)
注意到以下这点是重要的:可以在先前的处理级(如图3中的网格译码器320)中执行比特与码元关系和映射以及随后的码元度量值生成。然后可以将码元度量值和码元映射提供至构件字节码译码器600的输入。也可以将比特与码元映射和度量值生成作为字节码译码器600中的输入处理的一部分(如,加法器块605或输入重新排序块610中,或者未示出的单独处理块中)而执行。另外,码元概率可以以与如上针对上述消息中的比特概率所述的方式相同的方式而被保持、处理,以及从字节码译码器600输出。
通过考虑中间转换将相同码元的比特处的深度收缩至单个深度,而形成对应的码元网格。如果码元sn的二进制表示为“b2nb2n+1”,那么例如码元s0=3=″11″促使从状态0经由状态1到状态3的转变,s0=2=″10″促使从状态0经由状态1到状态2的转变,s0=1=″01″促使从状态0经由状态0到状态1的转变,而s0=0=″00″促使状态0经由状态0到状态0的转变。该模式持续,直到形成了所有可能状态的整个码元网格为止。
图9中示出了用于比率1/2码率的基于码元的网格译码的优选网格树。在图9中,下面的轴示出了标有S0~S7的重新排序的码元以及与每一码元相关联的对应的比特。如上所述那样,从左至右示出了正向排序,并且从右至左示出了反向排序。上面的轴示出了在每个码元转变或状态改变时所使用的奇偶校验等式的数目(先前针对比率1/2码的基于比特的网格树而描述)。实线示出了当下一码元具有“00”的值(或可能值)时,前一码元到下一码元之间的转变。虚线示出当下一码元具有“01”的值(或可能值)时,前一码元到下一码元之间的转变。点线示出当下一码元具有“10”的值(或可能值)时,前一码元到下一码元之间的转变。最后,点虚线示出当下一码元具有“11”的值(或可能值)时,前一码元到下一码元之间的转变。
类似地,通过使用24比特的比特编组子集,图10中示出了比率2/3码率的基于码元的优选网格树。下面的轴示出了标有S0到S12的重新排序的码元以及与每一码元相关联的对应的比特。上面的轴示出了在每个码元转变或状态改变时所使用的奇偶校验等式的数目(先前针对比率2/3代码的基于比特的网格树而描述)。与图9中相同地标记线转变。
现在转至图11A和图11B,示出了使用本公开的一些方面的构件字节码译码器中所使用的网格块1100的实施例的框图。网格块1100可用于实施图6中的阿尔法网格块625或贝塔网格块630。如下面进一步描述的那样,阿尔法网格块625可使用与贝塔网格块630不同的控制序列。进一步,如下面所述,在网格树的评估中,每个块可实施不同的度量计算。
在网格块1100中,提供至网格块1100的消息信号连接至输入选择块1110。一系列加法器1125a-p将通过反馈选择块1120所选择的、输入消息的所选部分(即,比特或码元)和度量计算输出的所选部分(即,比特或码元)组合。在核处理单元1130a-h和1135a-d中执行度量计算。下面将进一步描述针对阿尔法网格块625和贝塔网格块630所实施的度量计算。
来自核处理单元1130a-h和1135a-d的每一个所计算的度量连接至输出多路复用器1140。来自输出多路复用器1140的输出通过D缓冲器1150a-h而缓冲。D缓冲器1150a-h将所计算的度量值提供至反馈选择块1120。
输入选择块1110、反馈选择块1120和输出多路复用器1140执行的选择和多路复用操作由控制块1170来控制。网格块1100还包括同步时钟和选通(strobe)信号、用于当不处于使用时对块进行去激活的禁止多路复用器1160,以及向控制块1170提供的用于选择译码码率的码率模式输入信号。
阿尔法网格块625生成的正向度量开始于网格树的左侧,并且朝着右侧进行处理。用于阿尔法网格块625的网格树的正向度量计算为:
在等式14中,Ln j是第n个码元的分支j的度量。例如,将用于具有值“00”的码元n的度量计算表示为Ln 0。将第n个符号的状态k的度量表示为αn k。参考图9,可以将网格树的正向度量评估为:
一般而言,可以将核处理单元中实施的核计算估计为:
c=log(ea+eb+ec) (15)
在等式16中,a、b和c表示公式15中所示的指数系数,并且被示出为核处理单元1130a-h和1135a-d处的信号标记。为了改善计算速度,核处理单元1130a-h和1135a-d如下迭代地进行计算:
如上所述,虽然网格块1100可以如所述那样共享共用架构,但是阿尔法网格块625可以实施与贝塔网格块630不同的控制序列。控制序列可以从所使用的网格码和网格图中导出。在优选实施例中,可以如表1中所示那样实施用作阿尔法网格块625的一部分的输入选择块1110、反馈选择块1120和输出多路复用器1140的控制序列:
表1
注意到以下这点是重要的:对于表上的每一个空条目,硬件可以用最大的无符号值来填充。进一步,可以将用于对阿尔法网格中使用的控制序列进行编程的代码的示例性实施例表示为:
Mode=1(C=2/3);Clock 2;
Alpha 0
CPU[0]Input A=alpha 0+fw_modlogi 0
CPU[0]Input B=alpha 1+fw_modlogi 1
CPU[1]Input A=alpha 2+fw_modlogi 2
CPU[1]Input B=alpha 3+fw_modlogi 3
(CPU[8]Input A=CPU[0]
CPU[8]Input B=CPU[1])
Alpha 1
CPU[2]Input A=alpha 0+fw_modlogi 1
CPU[2]Input B=alpha 1+fw_modlogi 0
CPU[3]Input A=alpha 2+fw_modlogi 3
CPU[3]Input B=alpha 3+fw_modlogi 2
(CPU[9]Input A=CPU[2]
CPU[9]Input B=CPU[3])
Alpha 2
CPU[4]Input A=alpha 0+fw_modlogi 2
CPU[4]Input B=alpha 1+fw_modlogi 3
CPU[5]Input A=alpha 2+fw_modlogi 0
CPU[5]Input B=alpha 3+fw_modlogi 1
(CPU[10]Input A=CPU[4]
CPU[10] Input B=CPU[5])
Alpha 3
CPU[6]Input A=alpha 0+fw_modlogi 3
CPU[6]Input B=alpha 1+fw_modlogi 2
CPU[7]Input A=alpha 2+fw_modlogi 1
CPU[7]Input B=alpha 3+fw_modlogi 0
(CPU[11]Input A=CPU[6]
CPU[11]Input B=CPU[7])
Alpha[7:0][..]=in[11:8][..]=CPU[11:8][..]
相比于阿尔法网格块625生成的正向度量,贝塔网格块630生成的反向度量开始于网格树的右侧,并且朝着左侧进行处理。用于贝塔网格块630的网格树的反向度量计算为:
在等式18中,Ln j是第n个码元的分支j的度量。如上所述,将用于具有二进制值“00”的码元n的度量表示为Ln 0。将第n个码元的状态k的度量表示为βn k。再次参考图9,使用下列等式来评估反向估量计算:
: (18)
在优选实施例中,可以如表2中所示那样实施用作阿尔法网格块625的一部分的输入选择块1110、反馈选择块1120和输出多路复用器1140的控制序列:
表2
现在转至图12A和图12B,示出了使用本公开的一些方面的构件字节码译码器中所使用的后验块1200的实施例的框图。在后验块1200中,表示正向度量、反向度量和内部度量的各消息信号连接至正向选择块1210、反向选择块1220和内部选择块1230。一系列加法器1235a-p和1240a-p将正向度量消息、反向度量消息和内部消息的所选部分(即,比特或码元)组合。在核处理单元1250a-h和1255a-d中执行新的度量计算。
来自核处理单元1250a-h和1255a-d的每一个所计算度量均连接至后多路复用器1260。来自后多路复用器1260的输出通过D缓冲器1270a-d而缓冲。D缓冲器1270a-d提供所计算的度量值作为后验块1200的输出。
正向选择块1210、反向选择块1220、内部选择块1230和后多路复用器1260执行的选择和多路复用操作受控制块1280控制。后验块1200还包括通过D缓冲器1275a-b另外连接的同步时钟和选通信号、以及向控制块1170提供的用于选择译码码率的码率模式输入信号。
后验块1200通过使用下列等式计算后验度量:
: (19)
在优选实施例中,可以如表3中所示那样实施用作后验块1200的一部分的正向选择块1210、反向选择块1220、内部选择块1230和后多路复用器1260的控制序列:
表3
现在转至图13,示出了使用本公开的一些方面的字节码译码器1300的实施例的框图。字节码译码器1300利用输入信息的编组和重新排序,以便利用替代的基于对于之前所述的字节码编码处理的奇偶矩阵关系的译码处理。输入的编码消息被提供至输入控制器块1310。输入控制器块的输出被提供至信号多路复用器1320的一个输入。信号多路复用器1320的输出连接至后验存储器1330。后验存储器1330的输出连接至加法器1340的一个输入。加法器的输出连接至延迟缓冲器1350以及外部计算处理器1360。外部计算处理器1360的输出连接至外部存储器1370。外部存储器1370的输出被反相并连接至加法器1340的第二输入,该加法器实施减法功能。外部计算处理器1360和延迟缓冲器1350的输出连接至加法器1380。加法器1380的输出提供至输入多路复用器1320的第二输入。后验存储器1330的输出还提供迭代译码处理之后字节码译码器1300的输出。
输入控制器1310接收输入消息,并将一部分输入消息编组为比特的子集。子集形成输入消息,并且通常由子集中的每个比特的概率(如,LLR值)组成。输入控制器1310还控制或闸限输入消息至多路复用器1320的供应,并且也可以控制多路复用器1320的输入切换。译码器1300的迭代操作由多路复用器1320控制。多路复用器1320通过初始译码的译码处理而输出关于第一迭代的输入消息流,或者通过译码处理输出加法器1380提供的用于随后迭代的新计算的反馈消息。
来自多路复用器1320的所选输出被提供至后验存储器1330。后验存储器1330存储并安排从多路复用器1320接收到的信息。在优选实施例中,在译码处理的第一迭代期间,后验存储器1330对作为比特可靠性所接收到的输入比特子集重新排序。如之前所述,重新排序可以允许并入奇偶校验矩阵的译码处理的改善。后验存储器1330将重新排序的信息消息作为比特的子集或比特可靠性而提供至组合器1340。
组合器1340将重新排序的信息消息与外部存储器1370提供的外部信息消息组合。外部存储器1370存储外部计算块1360中所计算的外部信息消息的外部信息值。在优选实施例中,组合器1340从重新排序的信息消息值中减去外部信息消息值,并且将组合的信息消息值输出至外部计算块1360。
外部计算块1360对来自组合器1340的组合信息消息进行处理。外部计算块1360的功能将在下面进一步描述。来自组合器1340的组合信息消息还提供至缓冲器1350。缓冲器1350用于将组合的信息消息进行延迟,以便允许在组合器1380中与外部计算块1360的输出进行适当的重新组合。组合器1380将延迟后的组合信息消息与从外部计算块1360输出的外部消息组合。组合器1380输出含有后验信息消息值的信号,并且将该信号提供至多路复用器1320以用作迭代译码处理的一部分。
注意到以下这点是重要的:构件译码处理和级联译码处理两者都可以通过使用一个奇偶校验矩阵来进行描述,并且通过使用单个译码器(如,字节码译码器1300)进行处理。在级联译码处理中,每个构件译码处理可以由其自身奇偶校验矩阵来定义。两个译码处理以及由此两个奇偶矩阵均如图4中所示那样经由交织器和解交织器而连接在一起。在级联译码处理中,可以将奇偶校验矩阵组合以形成用于两个处理的单个奇偶校验矩阵。交织步骤定义组合的奇偶校验矩阵中非零元素的位置。
用于单独地连接的构件译码器的奇偶校验矩阵的组合允许字节码译码器1300对所有可能的字节码码率配置进行译码。在后验存储器中,一部分输入消息的LLR值被保存,并且如有必要的话被重新排序。从后验可靠性中减去外部信息。作为结果的内部信息被馈送至缓冲器1350以及外部计算块1360。所计算的外部信息被保存回到外部存储器1370。另外,所计算的外部信息被加至之前的内部信息,并被保存回到后验存储器1330。针对每一迭代译码步骤重复计算和处理。迭代处理持续,直到信息消息的后验可靠性值超过可靠性阈值为止,或者直到达到所分配的译码时间为止。
现在转至图14,示出了使用本发明的一些方面的字节码译码器1400的另一实施例的框图。字节码译码器1400可配置为实施被称作低密度奇偶校验(LDPC)译码的特定奇偶校验译码处理。
作为表示来自信息消息的比特的概率的8输入LLR值的序列的输入消息被提供至置换器1410的输入。置换器1410依次接收先验(即,第一迭代)或后验LLR值。置换器1410是简单的移位寄存器,并且允许输入的LLR值直接连接到加法器1420a-h和1440a-c。置换器1410也可以允许输入值向右循环移位一个位置。来自置换器1410的8个输出中的每一个都连接至加法器1420a-h的一个输入。另外,置换器1410的三个输出(标为L3、L4和L5)每个被提供至第二组加法器1440a-c的一个输入。
经过边缘先进先出(FIFO)缓冲器1470和边缘FIFO缓冲器1472以及符号反转通过乘法器1430和1450的所计算的外部信息连接至加法器1420a-h和1440a-c的第二输入。从输入值中减去所计算的外部信息。加法器1420a-h的输出处的作为结果的内部信息被提供至校验处理更新单元(CPU,checkprocess update)1465a-h,并且还提供至FIFO缓冲器1460a-h。CPU 1465a-h的工作将在下面更详细描述。除了被提供回到加法器1420a-h和1440a-c之外,来自CPU 1465a-h的所计算的外部信息与来自FIFO缓冲器1460a-h的缓冲的内部信息组合。作为结果的新的后验信息(作为比特的LLR值)在需要的情况下通过置换器1495而移回到其原始位置,并且新的后验LLR值被保存回到存储器(如,图13中所示的后验存储器1330)。
CPU 1465d、1465e和1465f能够计算两个外部信息值。CPU 1465d、1465e和1465f的第二输入通过多路复用器1445a-c从加法器1440a-c接收第二输入。FIFO缓冲器1462a-c将之前所计算的外部值提供至加法器1485a-e,以用于将来自CPU 1465d、1465e和1465f的一组新计算的外部值进行组合。
可以将字节码译码器1400所使用的译码处理视作为二进制LDPC译码处理。每一个奇偶校验等式被解释为低密度奇偶校验码。字节码译码器1400具有8的处理并行性(parallelism)。结果,字节码译码器1400能够同时处理8个等式的一个等式组。
CPU 1465a-h通过使用基于比特的LDPC算法来计算外部信息。在优选实施例中,可以将用于LDPC算法的等式表示为:
在上面的等式中,表示作为CPU 1465a-h的输入的、奇偶校验等式m和比特ij的所计算内部值。表示CPU 1465a-h所计算的新的外部值。C(m)={n:Hm,n=1}表示与校验等式连接的输入值的集合。LDPC译码处理基于单位矩阵I和来自等式6的生成矩阵S两者来计算外部值。在单位矩阵的译码期间,修改的CPU单元的第二输入未被使用,输入通过经由多路复用器1445a-c馈送最大的正LLR而被简单地禁止。在S矩阵的译码期间,计算内部信息并将其馈送至第二输入。
S矩阵的第一列具有多个值为一的位置。该列的对应的后验值是该列的每个等式的所有外部信息的总和。求和是通过使用加法器1485f和多路复用器1492而实现的。为了计算CPU 1465h和加法器1480h的新的后验值,在CPU 1465d、1465e和1465f处计算外部值,并且在加法器1485的输出处组合来自加法器1480h的后验值。
上述的字节码译码器1300也可以允许其它的比特的编组。例如,除了用于形成在二进制LDPC译码处理中所使用的8比特或更多比特的子集的编组之外,可以通过进一步对子集内的比特进行编组以形成被称作LDPC码元的码元来形成第二编组。在使用LDPC译码处理时,该额外的编组通过减小译码时间而提供了译码处理的进一步改善。
代替比特而使用LDPC码元来计算外部和后验概率值的译码算法通常称为非二进制LDPC码,其可以通过使用伽罗瓦域空间的特性来定义。在优选实施例中,可以在GF(8)上将本原多项式定义为:
p(x)=1+x+x3 (21)
接收到的编码消息可以表示为含有3个消息比特的码元,所述消息比特包含***和非***比特信息。
结果,每个接收到的码元均可以表示为8个概率:
P(x码元=“000”),P(x码元=“001”),P(x码元=“010”),P(x码元=“011”)
P(x码元=“100”),P(x码元=“101”),P(x码元=“110”),P(x码元=“111”)
为了对LDPC码元进行译码,可以使用奇偶校验等式:
cHT=3c2+2c1+c0=0,ci∈GF(8) (22)
在等式(22)中,每个符号ci表示8个不同的比特星座或概率。完整的等式将含有512(即,8·8·8)个不同的可能的比特星座。可以通过利用输入信息卷积星座概率来计算新的星座概率。例如,可以将对于c0=0的比特星座概率表示为:
图15图示了作为Tanner图的等式25的图形表示。Tanner图经常用于以图形方式显示非二进制LDPC译码中涉及的复杂的数学相互作用。图15通过矢量卷积函数和在矢量卷积之后作为结果的输出rn m值,图示了用于每个qx j值(包括值的任何重新排列)的初始处理。
卷积函数(尤其是复杂的矢量卷积函数)的实施方案需要大量的计算。通过将变换函数应用于表示为矢量的rn m值和qx j值,简化是可能的。应用变换函数允许变换的rn m值和qx j值的更加简单的矢量乘法。在矢量乘法之后,将逆变换函数应用于作为结果的输出矢量。在优选实施例中,可以使用傅立叶变换函数,并且可以进一步可以在硬件中将傅立叶变换函数实施为更简单的快速傅立叶变换(FFT)。FFT通常采用高效的蝴蝶计算技术,其使得能够使用加法步骤(而不是乘法步骤)来计算变换和逆变换。注意到以下这点是重要的:可以使用其它的变换函数,包括但不限于:Hadamard变换以及离散余弦变换。
现在转至图15,示出了使用本发明的一些方面的字节码译码器1500的进一步的实施例的框图。以与针对图13中的译码器1300和图14中的译码器1400所述的方式类似的方式,字节码译码器1500利用与一部分输入信息消息的编组和重新排序相关联的特性以及与字节码处理编码处理相关联的奇偶校验矩阵。
在字节码译码器1600中,将输入消息提供至输入控制器块1610。输入控制器块的输出提供至信号多路复用器1620的一个输入。信号多路复用器1620的输出连接至后验存储器1630。后验存储器1630的输出连接至加法器1635的一个输入。加法器的输出连接至延迟缓冲器1640以及似然计算处理器1642。似然计算处理器1642的输出以串行形式连接至置换器1644、快速傅立叶变换处理器(FFT)1646、乘法器1648、逆FFT 1650、置换器1652、对数似然计算处理器1654。对数似然计算处理器1654的输出连接至外部存储器1670以及加法器1660的一个输入。外部存储器1670的输出连接回到加法器1635的第二输入。缓冲器1640的输出连接至加法器1660的第二输入。加法器1660的输出提供至输入多路复用器1620的第二输入。在迭代译码处理之后,后验存储器1630的输出也用作字节码译码器1600的输出。注意到以下这点是重要的:输入控制器和***器1610、多路复用器1610、后验存储器1630、外部存储器1670、加法器1635、缓冲器1640和加法器1660与针对字节码译码器1300所述的那些相同块类似地连接并且在功能上相同,并且除有必要的情况外,在此不会进一步描述。
似然计算处理器1642从加法器1635接收内部信息消息,并将内部信息中的比特的LLR值转换为线性或似然概率。似然计算处理器1642还可基于用于非二进制LDPC译码处理的额外的比特至码元编组,来重新计算LDPC码元的似然值。置换器1644从似然计算处理器接收LDPC码元的似然值,并且提供非二进制LDPC译码处理所需要的LDPC码元的任何重新排序或重新排列。置换器1644还控制将哪一组的LDPC码元提供至FFT 1646。
FFT 1646、乘法器1648和逆FFT 1650结合非二进制LDPC算法,执行上述的卷积函数。FFT 1646将输入的基于时域的LDPC码元转换为等效的频域码元。频域LDPC码元是在乘法器1648中相乘的矢量。在逆FFT 1650中,新计算的频域LDPC码元被变换回到时域LDPC码元。新计算的时域LDPC码元被提供至置换器1652。置换器1652将置换器1644执行的任何重新排序和重新排列进行反向。
对数似然计算处理器1654将与LDPC码元相关联的线性似然概率值转换为LLR值。对数似然计算处理器1654还可以重新计算LDPC码元内各比特的LLR值。可能需要到比特(而不是LDPC码元)的LLR值的转换,以便允许将新的LLR值提供至译码器中的之前或随后块(如,图3中的网格译码器320和Reed-Solomon译码器380)。
现在转至图17,示出了用于使用本发明的一些方面对字节码编码信号进行译码的处理1700的实施例的流程图。将主要结合构件字节码编码器1300来描述处理1700。然而,应当注意,处理1700可应用于其它的字节码译码器(如,构件字节码译码器600),并且可以进一步用作并入了多个译码器(如,译码器300)的更大的处理的一部分。
处理1700在步骤1710开始于接收作为包含***和非***字节码编码数据的分组或字节的比特流的字节码编码消息。接收到的消息比特流是通过使用线性块编码处理(如,针对图1中的GF(256)SCBC 114所述的处理)而在信号的编码和传输期间所编码的字节码。消息比特流可包括消息中每个比特的比特值,或者优选地,可以包括比特值的概率或可靠性或者诸如码元之类的比特的编组的值的概率。
接下来,在步骤S1720,将输入消息排列为子集。可以主要基于所使用的译码处理来确定输入消息中的比特在子集中的排列。如之前所述,字节码译码通常涉及比特串行评估处理。可以通过迭代评估来改善译码处理。可以进一步基于伽罗瓦域的特性,通过利用与字节码编码处理相关联的特性,来进一步改善字节码编码信号的译码。在优选实施例中,使用LDPC奇偶校验处理将输入的消息排列为8比特的子集以便作为奇偶校验矩阵的一部分而进行处理。注意到以下这点是重要的:对于奇偶校验处理,排列可在需要的情况下进一步包括子集中的比特的重新排序或重新排列。
接下来,在步骤1730,使用已基于所选子集的特性和字节码编码处理的特性而选择的译码处理来对子集进行译码。在优选实施例中,基于本原多项式和GF(2)中奇偶校验矩阵的生成来选择LDPC奇偶校验译码处理。使用GF(2)中的LDPC奇偶校验译码处理,而不是使用生成矩阵值的逆来在GF(256)中对输入消息进行译码,以便提高译码效率。译码步骤1730也可包括计算子集中消息比特的当前状态的一组可靠性。也可以针对消息中的编码冗余比特来确定概率,并且使得概率可用作之前译码处理(如,译码步骤1730中所使用的另一奇偶校验处理)或之前网格译码处理中的反馈信号。
接下来,在步骤1740,进行如下确定:译码处理是否已正确地确定以及译码消息。该确定包括:将所计算的概率与一组预定阈值进行比较。如果步骤1740处译码处理未完成,则处理返回到步骤1730以进行另一译码步骤。如果步骤1740处译码处理完成,那么在步骤1750,从译码处理输出最终值。在优选实施例中,将最终值作为构件字节码译码器1300的输出而提供。可以作为硬决定或比特值、或者作为软决定概率值而输出最终值。可以将输出提供至进一步的译码器(如,另一字节码译码器或者Reed-Solomon译码器)。也可以将输出提供回到之前的译码级(如,网格译码器)以用于进一步的网格译码改善。步骤1750也可以包括子集中比特的重新排序和重新排列,以便恢复输出消息中比特的正确顺序。注意到以下这点是重要的:步骤1730和1740之间的处理可以迭代,直到译码完成为止,或者直到超过用于译码步骤完成的特定的所分配的时间为止。
现在转至图18,示出了用于使用本发明的一些方面对字节码编码信号进行译码的处理1800的另一实施例的流程图。将主要结合图6中构件字节码译码器600来描述处理1800。然而,应当注意,可以将处理1800应用于其它的字节码译码器,并且可以将其进一步用作并入了多个译码器(如,图3中的译码器300)的更大的处理的一部分。
处理1800在步骤1810开始于接收作为包含***和非***信息的比特流的编码消息。消息比特流可包括消息中每个比特的比特值,或者优选地,可以包括比特值的概率或可靠性或者诸如码元之类的比特的编组的值的概率。消息还可以包括关于接收到的网格调制码元的信息以及比特流中的码元和比特之间的关系。
接下来,在步骤1820,将输入的消息流排列为子集。如之前所述,块编码消息(如,字节码编码消息)的译码通常涉及比特串行评估处理。译码处理通常可以通过迭代评估而得到改善。可以通过利用与编码处理相关联的特性,来进一步改善字节码编码信号的译码。在优选实施例中,将输入消息排列为16比特的子集,并且通过使用基于迭代网格树的算法(如,BCJR算法)来对其进行译码。
接下来,在步骤1830,执行基于所标识的码元关系的比特子集的进一步编组。基于内在传送的码元关系的比特的编组提供了可用于进一步改善译码处理的额外内部信息。在步骤1840,对码元和下面(underlying)的比特重新排序,以便优化网格译码处理。可能的码元重新排序图示在之前所述的图9和10中。
接下来,在步骤1850,使用基于码元的网格译码算法(如之前所述的BCJR算法),并且进一步利用基于所选子集的特性和编码处理的特性而选择的一组奇偶等式中的一个或多个奇偶等式,来对子集中的码元进行译码。在优选实施例中,使用GF(2)中的奇偶矩阵来生成一组奇偶校验等式。如之前所述,在译码期间,也可以使用更小并且可能变化的比特字节和单个奇偶等式。译码步骤1850也可以包括计算子集中消息比特的一组可靠性。也可以针对消息中的编码的冗余比特来确定概率,并且使得概率可用作任一的之前译码处理中的反馈信号。
接下来,在步骤1860,进行如下确定:译码处理是否已正确地确定并且译码消息。该确定包括:将所计算的概率与一组预定阈值进行比较。如果步骤1860处译码处理未完成,则处理返回到步骤1850以进行另一译码步骤。如果步骤1860处译码处理完成,那么在步骤1870,从译码处理输出最终值。在优选实施例中,将最终值作为构件字节码译码器600的输出而提供。可以作为硬决定、或比特值、或作为软决定概率值而输出最终值。可以将输出提供至进一步的译码器(如,另一字节码译码器或者Reed-Solomon译码器)。也可以将输出提供回到之前的译码级(如,图3中的网格译码器320),以允许译码处理的进一步改善。步骤1870也可以包括子集中比特的重新排序或重新排列,以便恢复输出消息中比特的正确顺序。注意到以下这点是重要的:步骤1850和1860之间的处理可以迭代,直到译码完成为止,或者可以基于特定的所分配的译码完成时间而终止。
尽管已经主要结合基于码元的网格译码处理而描述了处理1800,但是处理1800也可用于实施基于比特的网格译码处理。使用基于比特的网格译码处理的处理1800的实施方案例如可省略与标识码元与比特关系有关的步骤1830。
本公开描述了具***率1/2或码率2/3的构件码率的特定串行级联的块码。本公开利用构件码结构的特殊性质:可以使用可以不相邻的输入比特的编组来对码进行译码,以便改善译码器效率和性能。本公开描述了包括二进制LDPC处理、非二进制LDPC处理、比特网格映射处理和调制码元网格映射处理的比特编组的若干可能的方法。
尽管实施例可受到各种变型和替代形式的影响,但是已经在附图中通过示例而示出了特定实施例,并且在此已对其进行了详细描述。然而,应当理解,本公开并非旨在受限于所公开的具体形式。而是,本公开是要覆盖落入了所附权利要求书限定的本公开的精神和范围内的所有变型、等效和替代方式。
Claims (30)
1.一种对比特流进行译码的方法(1700),其包含以下步骤:
接收(1710)解调的比特流,其中所述解调的比特流通过使用字节码编码处理而被编码;
将一部分解调的比特流排列(1720)为比特的子集;
将比特的子集重新排序(1720);以及
基于重新排序的比特的子集的特性和所述字节码编码处理,对比特的子集进行译码(1730)。
2.如权利要求1所述的方法(1700),其中,所述特性是奇偶校验特性。
3.如权利要求1所述的方法(1700),其中,译码(1730)的步骤包括通过使用二进制低密度奇偶校验译码处理来译码的步骤。
4.如权利要求3所述的方法(1700),其中,二进制低密度奇偶校验译码处理基于从本原多项式生成奇偶校验矩阵。
5.如权利要求1所述的方法(1700),其中,译码(1730)的步骤包括通过使用非二进制低密度奇偶校验译码处理来译码的步骤。
6.如权利要求1所述的方法(1700),其中,译码(1730)的步骤包括通过使用基于比特的网格译码处理来进行译码的步骤。
7.如权利要求1所述的方法(1700),其中,译码(1730)的步骤包括通过使用基于码元的网格译码处理进行译码的步骤。
8.如权利要求1所述的方法(1700),其中,字节码编码处理基于伽罗瓦域GF(256)空间,并且译码(1730)的步骤基于伽罗瓦域GF(2)空间、伽罗瓦域GF(4)空间和伽罗瓦域GF(8)空间中的一个。
9.一种对比特流进行译码的方法(1800),其包含以下步骤:
接收(1810)解调的比特流,所述解调的比特流是使用字节码编码处理而编码的;
将一部分解调的比特流排列(1820)为比特的子集;
标识(1830)比特的子集中的码元;以及
基于码元的先前译码状态和比特的子集中的至少两个比特之间的关系来对码元的当前状态进行译码(1850)。
10.如权利要求9所述的方法(1800),其中,所述关系是多个关系的集合。
11.如权利要求10所述的方法(1800),其中,所述多个关系的集合是多个奇偶关系。
12.如权利要求9所述的方法(1800),其中,标识(1830)比特的子集中的码元的步骤包括标识比特的子集中的多个码元。
13.如权利要求12所述的方法(1800),进一步包括在译码的步骤之前将多个码元重新排序的步骤。
14.如权利要求9所述的方法(1800),其中,译码(1850)的步骤包括卷积译码处理。
15.如权利要求1所述的方法(1800),其中,所述字节码编码处理基于伽罗瓦域256空间中的短线性块码。
16.一种对比特流进行译码的装置(1300),其包含:
用于接收解调的比特流的部件(1310),其中所述解调的比特流通过使用字节码编码处理而被编码;
用于将一部分解调的比特流编组为比特的子集的部件(1330);
用于将比特的子集重新排序的部件(1330);以及
用于基于重新排序的比特的子集的特性和所述字节码编码处理,对比特的子集进行译码的部件(1360)。
17.如权利要求16所述的装置(1300),其中,所述特性是奇偶校验特性。
18.如权利要求16所述的装置(1300),其中,用于译码的部件(1360)包括用于通过使用二进制低密度奇偶校验译码处理来译码的部件。
19.如权利要求18所述的装置(1300),其中,二进制低密度奇偶校验译码处理基于从本原多项式生成奇偶校验矩阵。
20.如权利要求16所述的装置(1300),其中,用于译码的部件(1360)包括用于通过使用非二进制低密度奇偶校验译码处理来译码的部件。
21.如权利要求16所述的装置(1300),其中,用于译码的部件(1360)包括用于通过使用基于比特的网格译码处理来进行译码的部件。
22.如权利要求16所述的装置(1300),其中,用于译码的部件(1360)包括用于通过使用基于码元的网格译码处理进行译码的部件。
23.如权利要求16所述的装置(1300),其中,字节码编码处理基于伽罗瓦域GF(256)空间,并且译码(1730)的步骤基于伽罗瓦域GF(2)空间、伽罗瓦域GF(4)空间和伽罗瓦域GF(8)空间中的一个。
24.一种对比特流进行译码的装置(600),其包含:
用于接收解调的比特流的部件(605),所述解调的比特流是使用字节码编码处理而编码的;
用于将一部分解调的比特流排列为比特的子集的部件(615);
用于标识比特的子集中的码元的部件(615);以及
用于基于码元的先前译码状态和比特的子集中的至少两个比特之间的关系来对码元的当前状态进行译码的部件(625、630、645)。
25.如权利要求24所述的装置(600),其中,所述关系是多个关系的集合。
26.如权利要求25所述的装置(600),其中,所述多个关系的集合是多个奇偶关系。
27.如权利要求24所述的装置(600),其中,用于标识比特的子集中的码元的部件(615)包括标识比特的子集中的多个码元。
28.如权利要求27所述的装置(600),进一步包括用于在译码的步骤之前将多个码元重新排序的部件(615)。
29.如权利要求24所述的装置(600),其中,用于译码的部件(625、630、645)包括卷积译码处理。
30.如权利要求24所述的装置(600),其中,所述字节码编码处理基于伽罗瓦域256空间中的短线性块码。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US7231608P | 2008-03-28 | 2008-03-28 | |
US61/072,316 | 2008-03-28 | ||
EP08162031 | 2008-08-07 | ||
EP08162031.2 | 2008-08-07 | ||
PCT/US2009/038542 WO2009120952A2 (en) | 2008-03-27 | 2009-03-27 | Apparatus and method for decoding signals |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101981932A CN101981932A (zh) | 2011-02-23 |
CN101981932B true CN101981932B (zh) | 2013-03-13 |
Family
ID=41114758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980110979.5A Expired - Fee Related CN101981932B (zh) | 2008-03-27 | 2009-03-27 | 用于对信号译码的装置和方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9008188B2 (zh) |
EP (1) | EP2258111A4 (zh) |
JP (1) | JP5534528B2 (zh) |
KR (1) | KR20110006666A (zh) |
CN (1) | CN101981932B (zh) |
BR (1) | BRPI0908963A2 (zh) |
WO (1) | WO2009120952A2 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8583979B1 (en) * | 2008-10-17 | 2013-11-12 | Sk Hynix Memory Solutions Inc. | Multiple interleavers in a coding system |
US8635357B2 (en) * | 2009-09-08 | 2014-01-21 | Google Inc. | Dynamic selection of parameter sets for transcoding media data |
KR20110038585A (ko) * | 2009-10-08 | 2011-04-14 | 엘지전자 주식회사 | 다중 안테나 시스템에서 상향링크 전송 방법 및 장치 |
KR101144816B1 (ko) | 2009-11-13 | 2012-05-14 | 한국전자통신연구원 | 통신 시스템에서 데이터 수신 장치 및 방법 |
US8699641B2 (en) * | 2010-06-10 | 2014-04-15 | Qualcomm Incorporated | Method and apparatus for ATSC signal processing |
US20110307757A1 (en) * | 2010-06-11 | 2011-12-15 | MIRICS, Semiconductor Limited | Systems and methods for error correction |
EP2589174B1 (en) * | 2010-09-16 | 2016-01-27 | Huawei Technologies Co., Ltd. | Feedback information relating to a mobile communications system using carrier aggregation |
US9037564B2 (en) | 2011-04-29 | 2015-05-19 | Stephen Lesavich | Method and system for electronic content storage and retrieval with galois fields on cloud computing networks |
US9137250B2 (en) | 2011-04-29 | 2015-09-15 | Stephen Lesavich | Method and system for electronic content storage and retrieval using galois fields and information entropy on cloud computing networks |
US9569771B2 (en) | 2011-04-29 | 2017-02-14 | Stephen Lesavich | Method and system for storage and retrieval of blockchain blocks using galois fields |
US9361479B2 (en) | 2011-04-29 | 2016-06-07 | Stephen Lesavich | Method and system for electronic content storage and retrieval using Galois fields and geometric shapes on cloud computing networks |
US8819515B2 (en) * | 2011-12-30 | 2014-08-26 | Lsi Corporation | Mixed domain FFT-based non-binary LDPC decoder |
KR102058499B1 (ko) * | 2013-01-02 | 2020-01-22 | 삼성전자주식회사 | 리드-솔로몬 저밀도 패리티 검사 디코더를 포함하는 반도체 메모리 시스템 및 그것의 읽기 방법 |
RU2012152710A (ru) * | 2012-12-06 | 2014-06-20 | ЭлЭсАй Корпорейшн | Модуляционное кодирование битов четности, сформированных с использованием кода с исправлением ошибок |
TWI565246B (zh) * | 2015-01-12 | 2017-01-01 | 晨星半導體股份有限公司 | 迴旋編碼的解碼方法 |
TWI555339B (zh) * | 2015-04-21 | 2016-10-21 | 國立清華大學 | 疊代式解碼裝置、疊代式訊號檢驗裝置與資訊更新方法 |
US11438014B2 (en) * | 2019-05-31 | 2022-09-06 | Washington State University | Deep neural network a posteriori probability detectors and media noise predictors for one- and two-dimensional magnetic recording |
US11411593B2 (en) | 2020-04-29 | 2022-08-09 | Eagle Technology, Llc | Radio frequency (RF) system including programmable processing circuit performing butterfly computations and related methods |
US11502715B2 (en) * | 2020-04-29 | 2022-11-15 | Eagle Technology, Llc | Radio frequency (RF) system including programmable processing circuit performing block coding computations and related methods |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007083934A1 (en) * | 2006-01-18 | 2007-07-26 | Lg Electronics Inc. | Apparatus and method for encoding and decoding signal |
CN101056414A (zh) * | 2006-12-22 | 2007-10-17 | 武汉大学 | 一种视频数据流信源信道联合译码方法 |
CN101080874A (zh) * | 2004-12-15 | 2007-11-28 | 日本电气株式会社 | 纠错编码装置以及在其中使用的纠错编码方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003258776A (ja) * | 2002-02-28 | 2003-09-12 | Tama Tlo Kk | 通信装置、通信システム及びテレビ会議システム |
US7266749B1 (en) * | 2002-06-27 | 2007-09-04 | Legend Silicon Corporation | Trellis construction based on parity check matrix for BCH code |
US7555696B2 (en) * | 2004-12-09 | 2009-06-30 | General Instrument Corporation | Method and apparatus for forward error correction in a content distribution system |
CN1983861B (zh) * | 2005-06-21 | 2012-09-26 | 三星电子株式会社 | 通信***中发送/接收数据的装置和方法 |
CN101322319B (zh) * | 2005-12-01 | 2012-11-28 | 汤姆逊许可公司 | 用于对低密度奇偶校验编码信号解码的设备和方法 |
US7831887B2 (en) * | 2005-12-15 | 2010-11-09 | General Instrument Corporation | Method and apparatus for using long forward error correcting codes in a content distribution system |
KR100933139B1 (ko) * | 2006-02-22 | 2009-12-21 | 삼성전자주식회사 | 통신 시스템에서 신호 수신 장치 및 방법 |
WO2007100185A1 (en) * | 2006-02-28 | 2007-09-07 | Lg Electronics Inc. | Digital broadcasting system and method of processing data |
US8347173B2 (en) * | 2006-03-30 | 2013-01-01 | Fujitsu Limited | Construction of parity-check matrices for non-binarys LDPC codes |
JP5317222B2 (ja) * | 2007-05-16 | 2013-10-16 | トムソン ライセンシング | 信号を符号化および復号する方法および装置 |
MX2010004148A (es) * | 2007-10-15 | 2010-05-17 | Thomson Licensing | Aparatos y metodos para comunicar actividad de modo de rafaga. |
-
2009
- 2009-03-27 US US12/934,406 patent/US9008188B2/en active Active
- 2009-03-27 CN CN200980110979.5A patent/CN101981932B/zh not_active Expired - Fee Related
- 2009-03-27 WO PCT/US2009/038542 patent/WO2009120952A2/en active Application Filing
- 2009-03-27 EP EP09724578.1A patent/EP2258111A4/en not_active Withdrawn
- 2009-03-27 JP JP2011502100A patent/JP5534528B2/ja not_active Expired - Fee Related
- 2009-03-27 KR KR1020107024022A patent/KR20110006666A/ko not_active Application Discontinuation
- 2009-03-27 BR BRPI0908963-2A patent/BRPI0908963A2/pt not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101080874A (zh) * | 2004-12-15 | 2007-11-28 | 日本电气株式会社 | 纠错编码装置以及在其中使用的纠错编码方法 |
WO2007083934A1 (en) * | 2006-01-18 | 2007-07-26 | Lg Electronics Inc. | Apparatus and method for encoding and decoding signal |
CN101056414A (zh) * | 2006-12-22 | 2007-10-17 | 武汉大学 | 一种视频数据流信源信道联合译码方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20110006666A (ko) | 2011-01-20 |
EP2258111A4 (en) | 2014-01-22 |
BRPI0908963A2 (pt) | 2015-07-28 |
WO2009120952A2 (en) | 2009-10-01 |
EP2258111A2 (en) | 2010-12-08 |
US9008188B2 (en) | 2015-04-14 |
WO2009120952A3 (en) | 2010-02-18 |
US20110026601A1 (en) | 2011-02-03 |
WO2009120952A8 (en) | 2010-12-09 |
JP2011528867A (ja) | 2011-11-24 |
CN101981932A (zh) | 2011-02-23 |
JP5534528B2 (ja) | 2014-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101981932B (zh) | 用于对信号译码的装置和方法 | |
CN101933235B (zh) | 编码和解码信号的装置和方法 | |
CN101232289B (zh) | 涡轮解码器及解码涡轮编码信号的方法 | |
CN101636914A (zh) | 用于编码和解码数据的方法和装置 | |
US5944850A (en) | Digital transmission system and method comprising a punctured product code combined with a quadrature amplitude modulation | |
CN100382475C (zh) | 接收重置接收信号的接收装置及其方法 | |
CA2366592A1 (en) | A system and method employing a modular decoder for decoding turbo and turbo-like codes in a communications network | |
CN101861734B (zh) | 码增强的交错播放 | |
CN109660265A (zh) | 一种基于DVB-RCS标准的自适应双二元Turbo码编译码方法 | |
CN107567691A (zh) | 发送器及其分割方法 | |
CN1319278C (zh) | Turbo乘积码串行级联NR码的信道编码方法 | |
CN100356698C (zh) | Turbo乘积码三维级联NR码的信道编码方法 | |
US8259868B1 (en) | Conditionally cycle-free generalized tanner graphs based decoding | |
KR20070105122A (ko) | 디지털 방송 시스템 및 처리 방법 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130313 Termination date: 20170327 |