具体实施方式
本发明的一个方式的第1编码装置,对信息比特序列进行编码并输出,其特征在于,该编码装置具有:确定部,按照所使用的准循环编码方式,将在第1代码字和一个以上的第2代码字中比特值不同的至少一个位置,确定为向所述信息比特序列插入规定的比特值的插入位置,所述第1代码字是指在按照该准循环编码方式对所述信息比特序列进行编码时得到的代码字,所述一个以上的第2代码字是指在该准循环编码方式的奇偶校验中被判定为正确的、并且与所述第1代码字的海明距离为最近的代码字;插入部,在所述信息比特序列的所述插入位置插入所述规定的比特值,生成编码前比特序列;以及编码部,生成根据所述准循环编码方式对所述编码前比特序列进行编码而得到的第3代码字。
并且,本发明的一个方式的第1解码装置,其特征在于,该解码装置具有:解码单元,对所输入的解码前比特序列实施与所使用的准循环编码方式对应的解码处理,生成解码后比特序列;检查单元,检查所述解码后比特序列在所述准循环编码方式的奇偶校验中是否是正确的代码字;判定单元,针对所述解码后比特序列,判定处于按照所述准循环编码方式预先设定的、第1代码字与第2代码字存在差异的规定的位置的比特值,是否与预先设定的规定的比特值相同,所述第1代码字是指在发送侧生成的代码字,所述第2代码字是指与该第1代码字的海明距离最近、并且在所述奇偶校验中被判定为正确的代码字的代码字;以及错误检测单元,在所述判定单元判定为不同的情况下,即使所述检查单元判定所述代码字比特序列在所述准循环编码方式的奇偶校验中是正确的代码字,也将该解码后比特序列判定为错误。
并且,本发明的一个方式的编码方法,对信息比特序列进行编码,其特征在于,该编码方法包括:确定步骤,按照所使用的准循环编码方式,将在第1代码字和一个以上的第2代码字中比特值不同的至少一个位置,确定为向所述信息比特序列插入规定的比特值的插入位置,所述第1代码字是指在按照该准循环编码方式对所述信息比特序列进行编码时得到的代码字,所述一个以上的第2代码字是指在该准循环编码方式的奇偶校验中被判定为正确的、并且与所述第1代码字的海明距离为最近的代码字;插入步骤,在所述信息比特序列的所述插入位置插入所述规定的比特值,生成编码前比特序列;以及编码步骤,生成根据所述准循环编码方式对所述编码前比特序列进行编码而得到的第3代码字。
并且,本发明的一个方式的解码方法,其特征在于,该解码方法包括:解码步骤,根据所使用的准循环编码方式对接收信号进行解码,生成代码字;检查步骤,检查由所述解码步骤得到的代码字在所述准循环编码方式的奇偶校验中是否是正确的代码字;判定步骤,针对所述代码字,判定处于按照所述准循环编码方式预先设定的、第1代码字与第2代码字存在差异的规定的位置的比特值,是否与预先设定的规定的比特值相同,所述第1代码字是指在发送侧生成的代码字,所述第2代码字是指与该第1代码字的海明距离最近、并且在所述奇偶校验中被判定为正确的代码字的代码字;以及错误检测步骤,在所述判定步骤中判定为不同的情况下,即使所述检查步骤中判定所述代码字在所述准循环编码方式的奇偶校验中是正确的代码字,也将该代码字判定为错误。
并且,本发明的一个方式的通信系统,由发送装置和接收装置构成,其特征在于,所述发送装置对信息比特序列进行编码并发送,所述发送装置具有:确定部,按照所使用的准循环编码方式,将在第1代码字和一个以上的第2代码字中比特值不同的至少一个位置,确定为向所述信息比特序列插入规定的比特值的插入位置,所述第1代码字是指在按照该准循环编码方式对所述信息比特序列进行编码时得到的代码字,所述一个以上的第2代码字是指在该准循环编码方式的奇偶校验中被判定为正确的、并且与所述第1代码字的海明距离为最近的代码字;插入部,在所述信息比特序列的所述插入位置插入所述规定的比特值,生成编码前比特序列;编码部,生成根据所述准循环编码方式对所述编码前比特序列进行编码而得到的第3代码字;以及发送单元,发送包含所述第3代码字的无线信号,所述接收装置具有:接收部,接收无线信号;解码单元,根据所使用的准循环编码方式对接收信号进行解码,生成代码字;检查单元,对于由所述解码单元得到的代码字,检查在所述准循环编码方式的奇偶校验中是否是正确的代码字;判定单元,针对所述代码字,判定处于按照所述准循环编码方式预先设定的、第1代码字与第2代码字存在差异的规定的位置的比特值,是否与预先设定的规定的比特值相同,所述第1代码字是指在发送侧生成的代码字,所述第2代码字是指与该第1代码字的海明距离最近、并且在所述奇偶校验中被判定为正确的代码字的代码字;以及错误检测单元,在所述判定单元判定为不同的情况下,即使所述检查单元判定所述代码字在所述准循环编码方式的奇偶校验中是正确的代码字,也将该代码字判定为错误。
根据该第1编码装置,在按照所使用的准循环编码方式而生成的代码字、与另一个代码字出现差异的部分,插入预先设定的规定的比特值并执行编码,该另一个代码字是指在该准循环编码方式的奇偶校验中被判定为正确的代码字的代码字,而且是与所生成的代码字最近的代码字。在由接收侧插入的规定的比特是与预先设定的比特不同的比特的情况下,即使按照该方式被编码后的代码字是在奇偶校验中被判定为正确代码的代码字,也能够检测为不正确的代码字。
本发明的一个方式的第2编码装置是在第1编码装置中,所述编码装置还具有已知比特附加单元,在所述信息比特序列的信息长度小于按照所述准循环编码方式的代码字长度和编码率而确定的代码字的信息比特部分的信息长度的情况下,该已知比特附加单元在所述信息比特序列中附加作为缩短代码的缩短比特而预先设定的值即已知比特,所述插入部通过对被附加了所述已知比特的信息比特序列的比特的排列进行重新排列,将所述已知比特作为所述规定的比特值插入到所述插入位置。
并且,本发明的一个方式的第2解码装置是在第1解码装置中,所述解码装置还具有插入部,该插入部被输入将所述规定的比特的至少一部分去除后的解码前缩短代码字,该插入部在所述输入的解码前缩短代码字中插入具有已知的值的已知比特,生成所述解码前比特序列。
根据该第2编码装置,使用为了调节LDPC代码的块代码中的信息长度而原本确定附加的已知比特,作为待插入的已知比特,由此能够抑制由于在第1编码装置中插入规定的比特而造成的数据传输的吞吐量的下降。
并且,本发明的一个方式的第3编码装置是在第1编码装置中,所述编码装置还具有去除单元,该去除单元去除由所述已知比特附加单元附加的已知比特的至少一部分。
根据该第3编码装置,通过去除已知比特,能够抑制发送的信息的信息量,因而能够提高数据传输的吞吐量。
并且,本发明的一个方式的第4编码装置是在第1编码装置中,由所述编码装置生成的第3代码字包含用于对多个第3代码字之间进行识别的块ID,所述插入部将构成所述块ID的比特序列的比特值作为所述规定的比特值,插入到所述插入位置。
并且,本发明的一个方式的第3解码装置是在第1解码装置中,所述判定部判定所述解码后比特序列中的所述规定的比特的值,是否与代替了所述预先设定的规定的比特值的、根据其它解码后比特序列中的规定的比特的值而预测的值相同。
根据该第4编码装置,使用原本附加的确定各个代码字的顺序的块ID,作为插入的已知比特,因而能够抑制由于在第1编码装置中插入规定的比特而造成的数据传输的吞吐量的下降。
并且,根据该第3解码装置,能够根据从前后的代码块得到的块ID,检测判定对象的块ID是否有错误,并提高防止将不正确的代码字判定为正确的误检测的概率。
<实施方式1>
下面,使用附图来说明本发明的编码装置及解码装置的一个实施方式。
<概念>
在对本发明的编码装置及解码装置进行说明时,首先对本发明的概念进行说明。
本发明的编码装置及解码装置用于如在上述本发明要解决的问题中叙述的错误检测中,提高防止误检测的概率,该误检测是指将满足奇偶校验、但却不正确的代码字检测为正确的代码字。
如上所述,在通信路径能够得到足够的SNR(Signal to Noise Ratio:信噪比)的情况下,解码后代码字cd是LDPC代码的代码字但却不是正确的代码字的概率约是10-6~10-8。另外,该概率根据定义LDPC代码的奇偶校验矩阵H而不同。
因此,研究解码装置可能将什么样的不正确的解码后代码字错误认为是正确的代码字。即,研究在解码后代码字cd是除正确的代码字之外的LDPC代码的代码字的情况下,该解码后代码字cd是除2k-1个正确的代码字之外的LDPC代码的代码字的可能性是否比较大。解码后代码字cd是对进行接收代码字cr进行LDCP解码而得到的,该接收代码字cr是由接收侧装置接收根据正确的代码字而生成的信号而得到的。可以认为,在通信的过程中,如果能够得到足够的SNR,则即使代码字在通信过程中发生变化,代码字的变化量也是最小的。即,在解码后代码字cd是LDPC代码的代码字、但不是正确的代码字的情况下,该解码后代码字cd是与正确的代码字的海明距离(Hamming Distance)较近的代码字的可能性比较大,尤其是海明距离为最小的代码字(下面称为最小距离代码字)的可能性极大。因此,在过去的奇偶校验的基础上,如果能够进行解码后代码字cd是否是正确的代码字的最小距离代码字的检查,则能够将错误检测的精度提高到足以实际应用的水平。另外,将“解码后代码字cd是否是最小距离代码字的检查”称为最小距离代码字检查。另外,在本说明书中,最小距离代码字是指距离正确的代码字为一个以上海明距离的代码字。
这样,下面使用一个具体示例来说明最小距离代码字检查。
在此,以按照IEEE802.11n被标准化的代码长度648比特、编码率1/2的LDPC代码为例,来说明最小距离代码字检查。
图1表示按照IEEE802.11n被标准化的代码长度648比特、编码率1/2的LDPC代码的奇偶校验矩阵Hb648。图1所示的奇偶校验矩阵Hb648是12×24的矩阵。
在Hb648中,在所示出的要素中利用“-”示出的部分表示27×27的零矩阵。
并且,记述了0以上的整数p的要素表示使27×27的单位矩阵向右循环移位了利用整数p示出的次数而得到的矩阵。例如,p的值为0的要素表示27×27的单位矩阵,p的值为22的要素表示使27×27的单位矩阵向右循环移位22次而得到的矩阵。
奇偶校验矩阵Hb648由这些要素构成,在将奇偶校验矩阵Hb648展开时,实际得到324×648的矩阵(定义为Hf648)。
Hf648的各列与由648比特构成的代码字的各个比特对应,第1列~第324列表示对应信息比特的信息比特部,第325列~第648列表示奇偶校验比特部。并且,Hf648的各行与奇偶校验式对应。并且,在各行中,要素为1的列的比特的总和(异或)为0。并且,利用Hb648定义的LDPC代码被称为准循环LDPC(QC-LDPC:Quasi-Cyclic-Low Density ParityCheck:准循环低密度奇偶校验)代码。
根据非专利文献1记述的最小距离导出方法,导出利用Hb648定义的LDPC代码的正确的代码字、与是LDPC的代码字而且与正确的代码字的海明距离为最近的代码字之间的最小距离为15,最小距离代码字有27个。最小距离为15是指在正确的代码字和最小距离代码字中,648比特中15比特表示不同的值,剩余的633比特表示相同的值。下面为了简单起见,将正确的代码字作为648比特的全零代码字进行说明。648比特的全零代码字满足Hc=0,所以是Hb648的代码字。另外,由于LDPC代码是线性代码,所以即使正确的代码字是除全零之外的其它代码字,下面的说明也不会失去通用性。
图2表示27个最小距离代码字的信息比特部的一览。在全零代码字和最小距离代码字之间不同的比特的数量是15比特,但是,在虽然海明距离为15,但只在信息比特部中进行观察时,不同的比特为324比特中有4比特是不同的。根据图2可知,27个最小距离代码字相互具有关联性。所谓该关联性,即是指与正确的代码字(此处是指全零的代码字)不同的4比特是以在图2所示的Hb648中的第4列为2比特、第10列为1比特、第12列为1比特的分布方式而存在的。
另外,在将单位矩阵展开进行观察时,在设n=1~27时,27个最小距离代码字中与Hb648的第4列的第n比特和第(n+1)%27比特、Hb648的第10列的第(n+17)%27比特、Hb648的第12列的第(n+1)%27比特相对应的比特的值,与正确的代码字不同。具有这种关联性是因为在图2中示出的依据IEEE802.11n的LDPC代码是准循环代码(QC-LDPC代码),使任意的代码字按照单位矩阵的大小单位即27比特单位进行循环而得到的比特序列也是代码字,而且具有海明加权不变的性质。另外,其中的%表示模(modulo)运算。
对利用上述的正确的代码字与27个最小距离代码字的关联性,检测满足奇偶校验式的解码后代码字Cd是否是n=1的最小距离代码字(信息比特部中的第82比特和第83比特、第261比特、第299比特的值是与正确的代码字不同的代码字)的方法进行说明。
发送侧装置将n=1的最小距离代码字具有与正确的代码字不同的值的4个比特中至少1个比特作为具有已知的值的已知比特,来生成代码字。另外,关于将哪个比特作为已知比特的信息、以及作为已知比特设定什么样的值的信息,是发送侧装置和接收侧装置之间预先共享的信息。通过将这样的已知比特插入信息比特序列中,如果解码后代码字cd中的已知比特的值是与在发送侧装置中预先设定的已知的值相同的值,则接收侧装置判定解码后代码字cd不是n=1的最小距离代码字。另一方面,如果解码后代码字cd中的已知比特的值与在发送侧装置中设定的已知的值不同,则接收侧装置判定解码后代码字cd至少不是正确的代码字,而有可能是n=1的最小距离代码字。
只在解码后代码字cd满足奇偶校验、而且已知比特的值是已知的值的情况下,接收侧装置判定解码后代码字cd不包含错误,在除此之外的情况下,接收侧装置判定解码后代码字cd包含错误,由此能够排除将作为n=1的最小距离代码字的、解码后代码字cd,判定为不包含错误的误检测的可能性。
并且,对于n=2~27的各个最小距离代码字也同样地,将在各个最小距离代码字中具有与正确的代码字不同的值的4个比特中至少1个比特作为已知比特,由此能够排除将作为n=1~27的任意一个最小距离代码字的、解码后代码字cd判定为不包含错误的误检测的可能性。具体地讲,只在解码后代码字cd满足奇偶校验、而且各个最小距离代码字的已知比特的值都是在发送侧装置中设定的已知的值的情况下,接收侧装置判定解码后代码字cd不包含错误,在除此之外的情况下,接收侧装置判定解码后代码字cd包含错误。
通过按照上面所述预先将在各个最小距离代码字的信息比特部中具有与正确的代码字不同的值的比特中至少1个比特作为已知的比特,在解码后代码字cd不是正确的代码字而是最小距离代码字的情况下,能够防止接收侧装置误检测为解码后代码字cd不包含错误。下文中,把为了避免这种误检测的发生而存储有已知的值的已知比特称为误检测检查比特。
在IEEE802.11n标准的代码字长度648比特、编码率1/2的LDPC代码中,在奇偶校验矩阵Hb648的第4列,在正确的代码字与最小距离代码字之间存在值不同的比特,因而,如果把处于与奇偶校验矩阵Hb648的第4列对应的位置的1比特作为已知比特,则能够同时检测两个最小距离代码字。
因此,在IEEE802.11n标准的代码字长度648比特、编码率1/2的LDPC代码中,如图3所示,通过将在奇偶校验矩阵Hb648的第4列示出的27列中与奇数序号的列对应的14比特作为已知比特x,无论解码后代码字cd是27个最小距离代码字中的哪个代码字,都能够检查解码后代码字cd是否是最小距离代码字。另外,误检测检查比特x只要设定为发送侧和接收侧已知的、即发送侧和接收侧共同地预先设定为已知的值,则可以是任何值。
另外,在此说明了将与在该Hb648的第4列示出的27列的奇数序号的列对应的14比特作为误检测检查比特,并能够将海明距离最近的27个代码字全部去除的示例,但也可以是,只要将这14比特中的任意一个比特设定为误检测检查比特,都能够排除将至少两个海明距离较近的代码字错误检测为正确的代码字的可能性,能够降低误检测的概率,因而在想要提高信息传输的吞吐量的情况下,也可以只将14比特中的一部分比特设为已知比特。并且,如果将Hb648的除第4列之外的部位、即第10列或第12列等中的至少一个比特设为已知比特来作为误检测检查比特,则能够排除将至少一个海明距离较近的代码字误检测为正确的代码字。
<结构>
下面,对能够防止上述的误检测的发送侧装置和接收侧装置进行说明。
图4是表示使用编码装置和解码装置的通信系统的系统结构示例的图。通信系统构成为包括作为发送侧装置或者接收侧装置发挥作用的通信装置10a、10b,各个通信装置10a、10b通过网络20进行通信。通信装置10a、10b构成为包括编码装置100和解码装置200。
如图4所示,通信系统通过网络将多个通信装置进行连接,一个通信装置具有编码装置和解码装置。作为通信装置有便携式电话机或基站装置等。
通信装置在向其它通信装置发送信息的情况下,在进行本实施方式所示的编码(详细情况在后面叙述)后进行发送,其它通信装置接收所发送过来的信号,并进行本实施方式所示的解码(详细情况在后面叙述)。
另外,在本说明书中,与通信装置中的除编码及LDPC解码之外的通信相关的处理(例如,AGC、ADC(Analog to Digital Convert:模拟数字转换)、DAC(Digital to Analog Convert:数字模拟转换)、FFT(Fast FourierTransform:快速傅立叶变换)、IFFT(Inverse Fast Fourier Transform:快速傅立叶逆变换)、正交检波等)的详细内容采用现有的方式,所以省略说明。并且,只要是通信装置,当然也具有信号的发送、接收用的电路,但这些在此也被省略。
图5是表示通信装置具有的编码装置的功能结构的功能框图。
如图5所示,编码装置100构成为包括LDPC编码参数存储部101、误检测检查比特控制部102、误检测检查比特插入部103、LDPC编码部104。
LDPC编码参数存储部101具有以下功能:根据执行LDPC编码时的编码模式来存储进行LDPC编码所需要的各种参数的功能,将执行编码的编码模式通知误检测检查比特控制部102和LDPC编码部104的功能。编码模式是根据代码字长度和编码率而确定的,在IEEE802.11n的情况下,规定的代码字长度有648比特、1296比特、1944比特这三种,而编码率有1/2、2/3、3/4、5/6这四种。即,编码模式合计有12种。通信装置从这三种代码字长度和四种编码率中各选择一个,编码装置按照所选择的代码字长度和编码率来执行编码。并且,关于各种参数,例如有代码字长度N、信息比特长度K、冗余比特长度M、奇偶校验矩阵H、误检测检查比特数量D、误检测检查比特插入位置p等。另外,这些信息(下面称为编码模式信息)作为发送侧,包含于上述的PHY帧的前导信号的SIG、H-SIG中进行发送,接收侧对该SIG、H-SIG进行解析,由此得到编码模式。
LDPC编码参数存储部101使用作为上述的各种参数的一种形式而设定的、用于规定误检测检查比特插入位置的插入位置确定表(详细情况在后面叙述),根据由通信装置的CPU等指定的编码模式信息,确定在进行编码时使用的编码模式,将基于确定出的编码模式的信息通知误检测检查比特控制部102和LDPC编码部104。LDPC编码参数存储部101将待插入的误检测检查比特的个数和误检测检查比特的插入位置通知误检测检查比特控制部102,将所使用的奇偶校验矩阵H通知LDPC编码部104。
误检测检查比特控制部102根据由LDPC编码参数存储部101通知的信息,生成必要数量的误检测检查比特。另外,关于作为误检测检查比特而使用的比特的值,只要是发送侧的装置和接收侧的装置都已知的值,则可以使用任意的值。下面为了简单起见,将误检测检查比特的值全部设为0。并且,误检测检查比特控制部102将相应的编码模式的误检测检查比特插入位置p和所生成的误检测检查比特一起通知误检测检查比特插入部103。
误检测检查比特插入部103向由误检测检查比特控制部102指定的误检测检查比特插入位置p,插入作为规定的比特值而由误检测检查比特控制部通知的误检测检查比特,生成编码前比特序列,并发送给LDPC编码部104。
LDPC编码部104具有如下功能:按照由LDPC编码参数存储部101通知的奇偶校验矩阵H,对被插入误检测检查比特后的信息比特序列、即从误检测检查比特发送的编码前比特序列,执行LDPC编码的处理,并输出所生成的代码字。
该代码字在通过发送电路进行调制后从天线发出。
图6是表示通信装置具有的解码装置的功能结构的功能框图。
如图6所示,解码装置200构成为包括LDPC编码参数存储部201、LDPC解码部202、误检测检查比特控制部203、错误检测部204、误检测检查比特去除部205。
LDPC编码参数存储部201按照由解码装置200实施的编码模式的数量,存储在LDPC解码处理及错误检测处理中需要的参数,例如代码字长度N、信息比特长度K、冗余比特长度M、奇偶校验矩阵H、误检测检查比特数量D、误检测检查比特插入位置p等。关于所实施的编码模式,至少通知用于规定代码字长度和编码率的编码模式信息,例如通知由通信装置的接收电路(未图示)对接收到的信号进行解码并对该信号的前导信号中包含的SIG及H-SIG进行解析而得到的信息。
并且,LDPC编码参数存储部201将适合于所通知的编码模式信息的奇偶校验矩阵H和误检测检查比特插入位置p,通知误检测检查比特控制部203。
LDPC解码部202对输入解码装置200的接收代码字序列进行LDPC解码处理。LDPC解码部202执行sum-product解码、min-sum(最小和)解码等能够进行LDPC代码的解码的任意解码处理。LDPC解码部202将LDPC解码处理的结果而得到的代码字序列,发送给误检测检查比特去除部205、错误检测部204。另外,本发明不依赖于LDPC解码的方法。
误检测检查比特控制部203将由LDPC编码参数存储部201通知的误检测检查比特插入位置p通知错误检测部204,并且,通知所插入的误检测检查比特的比特值。
误检测检查比特控制部203将由LDPC编码参数存储部201传达的误检测检查比特插入位置p,通知错误检测部204和误检测检查比特去除部205。
错误检测部204具有如下功能:即进行LDPC解码后的代码字序列的错误检测,将错误检测结果作为解码装置200的检测结果进行输出。
错误检测部204的具体的功能结构如图7所示。错误检测部204如图7所示构成为包括奇偶校验部211和误检测检查部212。
奇偶校验部211检查所输入的解码后代码字序列cd和作为控制信息而提供的LDPC代码的奇偶校验矩阵H是否满足奇偶校验Hcd=0。奇偶校验部211以软件或者硬件能够解读的方式输出奇偶校验的结果。例如,以在满足奇偶校验时输出“0”、在不满足奇偶校验时输出“1”的方式进行输出。
解码后代码字序列cd、奇偶校验结果、作为控制信息而输入的误检测检查比特的数量和值、以及与插入位置相关的信息,被输入错误检测部204。
误检测检查部212在奇偶校验结果为“0”、即判定为满足奇偶校验的情况下,检查在发送侧插入到信息比特部中的误检测检查比特是否是已知比特。误检测检查部212以软件或者硬件能够解读的方式输出误检测检查结果。例如,在未检查到误检测时输出“0”,在检查到误检测时输出“1”。由误检测检查部212输出的误检测检查结果成为错误检测部204输出的错误检测结果。并且,在奇偶校验结果为“1”、即判定为不满足奇偶校验的情况下,可以明确解码后代码字序列cd不是LDPC代码的代码字,是错误的,因而不需要检查误检测。因此,在这种情况下不进行误检测结果输出,而输出“1”作为误检测检查结果。
返回图6,误检测检查比特去除部205根据LDPC解码字的代码字序列中包含的、由误检测检查比特控制部203通知的误检测检查比特插入位置p,去除D个误检测检查比特和M个冗余比特,只将J比特的解码信息比特序列作为解码装置200的输出进行输出。
<数据>
在此,对与LDPC编码参数存储部101存储的编码模式信息对应的插入位置确定表进行说明。插入位置确定表是指将模式序号、代码字长度、编码率、插入位置建立对应的信息,预先保持在发送侧和接收侧双方。
模式序号是指为了便于编码装置管理各个模式而设定的序号。
代码字长度是表示应该生成的代码字的代码长度的信息。在IEEE802.11n中是指648、1296、1944比特中的任意一种。
编码率是表示信息比特序列相对于所生成的代码字的比率的信息。在IEEE802.11n中是指1/2、2/3、3/4、5/6中的任意一种。
误检测检查比特插入位置是表示在与各个代码字长度和各个编码率对应而生成的代码字中,应该插入防止误检测用的误检测检查比特的插入位置的信息,是指规定在从应该生成的代码字的信息比特部分的开头数起第几个比特插入误检测检查比特的信息。
通过在发送侧保持插入位置确定表,能够确定与利用编码模式信息表示的代码字长度和编码率对应的插入位置,并插入防止误检测用的误检测检查比特。
并且,通过在接收侧保持插入位置确定表,能够确定误检测检查比特的插入位置,并根据处于该所确定的位置的比特值是否是与预先存储的规定的比特值相同的值,来检测是否是正确的代码字。在不是相同的值的情况下,意味着是与在发送侧生成的代码字不同的代码字,在这种情况下,即使在奇偶校验中被判定为正确的代码字,也能够检测为接收失败。
另外,此处示出的插入位置确定表是由LDPC编码参数存储部101、201存储的参数信息的一部分,除此之外,也可以将与各个编码模式对应的、应该插入的误检测检查比特的个数信息或信息比特序列的信息长度等信息建立对应。
<动作>
使用图9所示的流程图说明本实施方式的编码中的编码装置100的动作。
首先,编码装置100受理编码模式信息的输入(步骤S901)。关于该编码模式信息,是由通信装置的CPU(未图示)等通知根据所使用的通信标准等而确定的信息。
LDPC编码参数存储部101根据利用编码模式信息指定的代码字长度和编码率,确定误检测检查比特插入位置p,将该误检测检查比特插入位置p和应该插入的误检测检查比特数量D通知误检测检查比特控制部102。并且,LDPC编码参数存储部101将利用编码模式信息指定的奇偶校验矩阵H通知LDPC编码部104(步骤S902)。
误检测检查比特控制部102生成相当于应该插入的误检测检查比特数量D的、预先设定的已知的比特,并和误检测检查比特插入位置p一起通知误检测检查比特插入部103(步骤S903)。
误检测检查比特插入部103在由误检测检查比特控制部102通知误检测检查比特插入位置p、和作为误检测检查比特而应该插入的比特值后,从设于通信装置的用于存储发送的信息的缓冲器等(未图示),从应该发送的信息比特序列中,获取相对于所生成的代码字长度中的信息比特部分的信息长度、减少了相当于所插入的误检测检查比特的个数的量的信息长度的信息比特序列。
并且,误检测检查比特插入部103在从获取到的信息比特序列的开头起在利用误检测检查比特插入位置p指定的位置,依次插入所通知的已知比特。由此,误检测检查比特插入部103生成编码前比特序列,将该编码前比特序列通知LDPC编码部104(步骤S904)。
LDPC编码部104对于由误检测检查比特插入部103传递的编码前比特序列,执行依据于由LDPC编码参数存储部101通知的奇偶校验矩阵H的编码,生成代码字并进行输出(步骤S905),并结束处理。只要在存储待发送的信息的缓冲器中具有数据,就反复进行该动作,由此生成代码字。
由LDPC编码部104生成的代码字,通过设于通信装置的发送电路被实施子载波调制、FFT、D/A转换、正交调制等,并从天线进行发送。
下面示出了按照图9的流程图执行编码时的一个具体示例。
在此,对使用利用图1所示的奇偶校验矩阵Hb648定义的依据于IEEE802.11n的代码长度648比特、编码率1/2的LDPC代码时的编码装置100的动作进行说明。
发送装置向编码装置100输入编码模式信息和进行编码的信息比特序列。其中,输入信息比特序列是指相对信息块长度(K)324减少相当于误检测检查比特数量(D)14后的310比特的二进位序列(J=K-D=310)。编码模式信息被输入LDPC编码参数存储部101。LDPC编码参数存储部101按照所输入的编码模式信息,对误检测检查比特控制部102和LDPC编码部104设定进行LDPC编码所需要的参数。作为在误检测检查比特控制部102设定的参数,有误检测检查比特数量14(D)及误检测检查比特插入位置p(第82、84、86、88、90、92、94、96、98、100、102、104、106、108比特)。作为在LDPC编码部104设定的参数有代码长度(N)648比特、信息比特长度(K)324比特、冗余比特长度(M)324比特、奇偶校验矩阵H(或者是存储有与奇偶校验矩阵H相关的信息的存储器的地址)、以及在进行按每个编码模式不同的处理时指示进行哪个处理的信息等。
误检测检查比特控制部102生成14个的误检测检查比特,并发送给误检测检查比特插入部103。误检测检查比特插入部103对发送给LDPC编码部104的324比特的序列中、利用误检测检查比特插入位置p指示的第82、84、86、88、90、92、94、96、98、100、102、104、106、108比特的位置,分别分配误检测检查比特。对剩余的310个位置分配输入编码装置100的310个信息比特序列。误检测检查比特插入部103将插入误检测检查比特后的信息比特序列(编码信息比特序列)发送给LDPC编码部104。
LDPC编码部104对所输入的编码信息比特序列实施LDPC编码处理,生成324比特的冗余比特序列,并与324比特的编码信息比特序列相加,作为648比特的代码字比特序列进行输出。
使用图10示意地说明依据这种图9所示的编码方法的本实施方式1的编码的概念。
首先,按照图10(a)所示,假设具有想要发送的信息比特序列。
于是,误检测检查比特控制部102根据编码模式信息,确定用于插入误检测检查比特的插入位置,并在该位置插入作为已知比特的误检测检查比特。在此,假设插入误检测检查比特的数量为D=4。
在这种情况下,按照图10(b)所示,在信息比特序列的间隙插入误检测检查比特,并生成编码前比特序列。
LDPC编码部104对图10(b)所示的编码前比特序列,附加基于QC-LDPC代码的奇偶校验矩阵的冗余比特序列(奇偶校验比特序列),并生成代码字比特序列。
另外,在图10中,K比特表示代码字的信息比特序列的信息长度,M比特表示信息比特序列的信息长度,N比特表示代码字的信息长度。代码字长度的N比特是根据编码模式信息确定的,根据该编码模式信息中包含的编码率来确定K和M。
这样,由本实施方式的编码装置生成代码字。另外,通过在信息比特序列中插入误检测检查比特,虽然数据传输的吞吐量下降,但是由于只插入比附加CRC代码时少的信息量(例如,按照图2所示插入合计14比特量的误检测检查比特,以便排除海明距离最近的全部代码字),因而可以说相比附加CRC代码时,数据传输的吞吐量提高。
下面,使用图11所示的流程图,说明本实施方式的解码装置200的动作。
解码装置200受理编码模式信息,该编码模式信息包括通过对通信装置接收到的信号的前导进行分析而得到的代码字长度和编码率(步骤S1101)。
受理了编码模式信息的LDPC编码参数存储部201,将根据编码模式信息而确定出的误检测检查比特插入位置p和误检测检查比特数量,通知误检测检查比特控制部203。并且,LDPC编码参数存储部201将与该编码模式信息对应的奇偶校验矩阵H通知LDPC解码部202(步骤S1102)。
误检测检查比特控制部203将所通知的误检测检查比特插入位置p、和作为误检测检查比特而插入的已知比特的值,通知错误检测部204和误检测检查比特去除部205(步骤S1103)。
LDPC解码部202按照由LDPC编码参数存储部201通知的奇偶校验矩阵H来执行LDPC解码,将所得到的解码后代码字通知错误检测部204和误检测检查比特去除部205(步骤S1104)。
错误检测部204检测在所通知的误检测检查比特插入位置插入的比特值是否是与所通知的已知比特的值相同的值。在是相同的值的情况下,判定是正确的代码字,并输出“1”作为错误检测结果,在不是相同的值的情况下,判定不是正确的代码字,并输出“0”作为错误检测结果(步骤S1105)。
误检测检查比特去除部205从被解码后的代码字中,去除处于所通知的误检测检查比特插入位置的比特值和所附加的冗余比特,输出解码信息比特序列(步骤S1106),并结束解码处理。
由此,解码装置200能够检测接收并被解码后的代码字是否是满足奇偶校验的代码字、以及是否是与应该在发送侧生成的代码字的海明距离较近的另一个代码字。因此,能够降低误检测的概率,该误检测是指将与在发送侧生成的海明距离较近的代码字不同的代码字判定为正确的代码字。
对该错误检测和解码的一个具体示例进行说明。
在此,对使用利用图1所示的奇偶校验矩阵Hb648定义的依据于IEEE802.11n的代码长度648比特、编码率1/2的LDPC代码时的解码装置200的动作进行说明。
在输入接收代码字序列之前,将编码模式信息输入解码装置200。LDPC编码参数存储部201按照编码模式信息,将按照每个编码模式而存储的LDPC编码参数发送给LDPC解码部202和误检测检查比特控制部203。作为在误检测检查比特控制部203设定的参数,有误检测检查比特数量14和误检测检查比特插入位置p(第82、84、86、88、90、92、94、96、98、100、102、104、106、108比特)。作为在LDPC解码部202设定的参数有代码长度(N)648比特、信息比特长度(K)324比特、冗余比特长度(M)324比特、奇偶校验矩阵H(或者是存储有与奇偶校验矩阵H相关的信息的存储器的地址)、以及在对每个编码模式进行不同的处理时指示进行哪个处理的信息等。
在设定了所使用的参数后,开始接收代码字序列的LDPC解码处理。将648比特量的接收代码字序列输入LDPC解码部202。在此,接收代码字序列可以是对于一个比特只具有1比特的信息(硬判决解码),也可以是对于一个比特具有多个比特的信息(软判决解码)。在进行软判决解码时,能够使用被量化的各个代码字比特的对数似然比作为接收代码字序列。LDPC解码部202进行接收代码字序列的LDPC解码处理,将其结果得到的代码字序列发送给错误检测部204和误检测检查比特去除部205。
误检测检查比特去除部205从由LDPC解码部202发送的代码字序列中,去除处于由误检测检查比特控制部203通知的误检测检查比特位置p(第82、84、86、88、90、92、94、96、98、100、102、104、106、108比特)的比特。并且,也去除代码字序列中的324比特的冗余比特,结果,将剩余的310比特的序列作为解码信息比特序列进行输出。
由此,即使在接收到的代码字满足奇偶校验时,解码装置200也能够降低将不正确的代码字判定为正确的代码字的概率。
如以上说明的那样,本实施方式1的编码装置,在根据应该发送的信息比特序列而生成的代码字中,在与作为和该代码字不同的另一个代码字的、满足奇偶校验而且与所生成的代码字的海明距离为最近的代码字之间有差异的部分,插入作为在发送侧和接收侧预先设定的已知比特的误检测检查比特来执行编码。对于接收并被解码的代码字,在成为被插入的误检测检查比特是与预先设定的已知比特不同的代码字的情况下,接收侧判定接收并被解码的代码字是与在发送侧生成的代码字不同的代码字,并能够检测为正确的代码字的接收失败。并且,也能够降低误检测的概率,该误检测是指将即使在接收侧的奇偶校验中被判定为正确的代码字,但不是在发送侧生成的代码字的代码字的至少一部分判定为正确的代码字。
<考察>
在此,对与和本实施方式相同地在纠错解码处理中利用具有已知的值的已知比特的、专利文献1记述的技术的不同之处进行说明。
专利文献1记述了一种解码方法,在最大后验概率(MAP)解码中,在对包括具有已知的值的已知比特的发送字进行解码时,将已知比特的值不同的解码字从解码字候选中去除。
关于发送侧装置的结构,将本实施方式1和专利文献1记述的技术进行比较,专利文献1记述的技术由于利用例如在MPEG-2TS包的同步字节等发送的数据中包含的已知比特,因此不能在数据序列中插入已知比特,也不能进行控制已知比特的插入位置。因此,在专利文献1记述的技术中,不能获得本实施方式1所述那样的效果,即,通过在正确的代码字与最小距离代码字具有不同的值的比特位置插入已知比特而得到的、错误检测精度提高的效果。
并且,关于接收侧装置的结构,将本实施方式1和专利文献1记述的技术进行比较,在专利文献1记述的技术中公开了一种解码方法,在准备多个解码字候选的过程中,将已知比特变为其它的值的解码字候选去除,然后进行解码,因此不是有关错误检测方法的技术。专利文献1的技术在初看时好像是在纠错编码之前进行误检测检查。但是,专利文献1的技术由于作为解码方法而采用的MAP解码是将代码字的各个比特的后验概率最大化的解码方法,因而MAP解码后的代码字序列不一定是在发送侧使用了的代码的代码字。或者,即使是在发送侧使用了的代码的代码字,也存在处于已知比特的位置的比特的值在MAP解码的过程中发生变化的可能性。因此,专利文献1记述的技术不能获得通过误检测检查来提高错误检测精度的效果。
另外,本实施方式1公开的防止误检测的技术不依赖于在纠错解码中使用的解码方法,因而也能够将本实施方式1公开的防止技术适合于专利文献1的解码方法,在这种情况下,能够得到仅仅根据专利文献1的解码方法而不能得到的、提高错误检测精度的效果。
<实施方式2>
在上述实施方式1公开的技术中,通过控制误检测检查比特的插入位置,降低将不正确的代码字检测为正确的代码字的误检测的概率,而在本实施方式2中说明的技术中,对于待插入的误检测检查比特,不是插入预先设定的比特值,而是通过利用应该发送的信息来插入误检测检查比特,由此抑制数据传输的吞吐量的下降。
<概念>
在生成代码字时,在实际的信息比特序列的信息长度不到根据代码字长度和编码率而设定的信息比特部分的信息长度的情况下,追加作为虚拟的信息而预先设定的已知比特(也称为缩短比特),直到达到信息比特部分的信息长度,然后执行编码。即,此处追加的已知比特是原本已经确定追加的内容,该已知比特的追加不会导致吞吐量的下降。
因此,在本实施方式2中说明如下的示例,将已确定追加的该已知比特作为误检测检查比特插入到信息比特序列中,提高防止在奇偶校验中将不正确的代码字设为正确的代码字的误检测的概率。
首先,说明过去的缩短比特的插入方法的具体示例,然后使用图12和图13来说明本实施方式2的利用缩短比特的误检测检查比特的插入的概念。
由于LDPC代码是块代码,所以在进行LDPC代码的编码时,将K比特的信息比特序列作为输入来进行编码处理,并输出向K比特的信息比特序列附加了M比特的冗余比特序列的N比特的代码字序列。图12(a1)、(b1)分别表示输入的信息比特序列,图12(a2)、(b2)表示将信息比特序列分割为LDPC代码的块大小的状态,图12(a3)、(b3)表示对分割后的各个信息比特序列进行编码后的状态,图12(a4)、(b4)表示最终输出的代码字。
在此,考虑所输入的信息比特序列小于K比特的情况。在IEEE802.11n等的通信系统中,由于发送的数据大小根据发送的时刻而不同,所以发送数据大小大多不是LDPC代码的信息比特长度K的整数倍。在这种情况下,在逐次K比特地向LDPC编码器进行输入时,最后的LDPC代码块的编码将以信息比特数量小于K比特的方式来进行编码。在这种情况下,如图11(a3)所示,在最后的LDPC代码块中,将相当于不足K比特的数量(S比特)的、已知的比特(缩短比特,通常其值为0),追加在信息比特的后面或者任意的位置,生成K比特的序列,并对该序列进行编码。并且,在进行编码后,将去除了所追加的L比特的已知比特后的序列作为代码字进行输出。这种编码方法被称为缩短编码。(也可以不去除L比特的已知比特,而原样发送所得到的代码字序列。)
并且,在对多个块平均分配信息比特并进行编码的情况下,如图11(b2)所示,由于产生信息比特数量小于K比特的编码,因而进行插入S比特的已知比特的缩短编码。在IEEE802.11n中,按照非专利文献2所述,对于每个LDPC代码块,在信息比特序列的后面附加数量均等的已知比特。
在此,由于缩短编码用的已知比特(以下称为缩短比特)是为了使编码器的输入比特序列成为K比特而附加的比特,所以附加在输入序列的哪个位置与缩短编码的处理自身无关。因此,本实施方式的纠错编码装置将缩短比特的插入位置设为误检测检查比特的位置,并使缩短用的已知比特和误检测检查用的已知比特共用,由此降低吞吐量的下降。
使用图13来说明采用了图12(a3)、(b3)所示的缩短比特的、本实施方式2的编码的概念。如图13(a)所示,假设具有信息比特序列,但由于该信息比特序列小于LDPC代码的块大小,所以按照图13(b)所示来附加缩短比特。
此时,由于缩短比特是使用发送侧和接收侧都已知的值,并且可以插入在任何位置,因而将所附加的缩短比特和信息比特进行重新排列,使缩短比特处于信息比特序列的误检测检查比特的插入位置。即,在信息比特的排列中,在误检测检查比特的插入位置插入缩短比特。
并且,生成如图13(c)所示的编码前比特序列。并且,按照图13(d)所示,在所生成的编码前比特序列中附加基于LDPC代码的冗余比特(奇偶校验比特)。然后,也可以去除所插入的缩短比特。另外,在图13(c)、(d)中,斜线部分相当于信息比特序列。
另外,图13(e)表示按照现有技术单纯地在信息比特的后面对缩短比特进行编码时的代码字的示例。
这样,在本实施方式2中,采用附加的缩短比特作为误检测检查比特。
<结构>
图14表示实施方式2的编码装置1400的功能结构。如图14所示,编码装置1400构成为包括LDPC编码参数存储部101、LDPC编码部104、误检测检查比特控制部1401、缩短比特插入部1402、重新排列部1403、缩短比特去除部1404。另外,该编码装置与实施方式1的编码装置100的区别是具有缩短比特插入部1402、重新排列部1403和缩短比特去除部1404。在此,关于该编码装置1400,只重点说明与实施方式1的编码装置100的不同之处。
误检测检查比特控制部1401将由LDPC编码参数存储部101发送来的误检测检查比特数量D的信息和误检测检查比特插入位置p,通知重新排列部1403。
缩短比特插入部1402在信息比特序列的后部插入按照缩短比特数量而提供的数量的缩短比特。另外,如果发送侧和接收侧的装置知道在何处插入了缩短比特,则缩短比特的插入位置也可以不是信息比特序列的后部。并且,以使信息比特序列的信息长度成为所生成的代码字的信息比特序列部分的信息长度的倍数的方式,来插入缩短比特。即,应该插入的缩短比特数量是根据信息比特序列的信息长度和所生成的代码字的信息比特序列部分的信息长度而确定的。
重新排列部1403进行被插入了缩短比特的信息比特序列的比特顺序的重新排列。具体地讲,重新排列部1403进行重新排列,使位于信息比特序列的后部的缩短比特处于误检测检查比特插入位置。
缩短比特去除部1404去除在由LDPC编码部104输出的代码字比特序列中包含的缩短比特。缩短比特去除部1404输出将缩短比特去除后的代码字比特序列。
图15表示实施方式2的解码装置1500的功能结构。图15所示的解码装置1500构成为包括LDPC编码参数存储部201、LDPC解码部202、误检测检查比特控制部203、错误检测部204、缩短比特插入部1501、重新排列部1502、重新排列部1503、缩短比特去除部1504。关于解码装置1500,只重点说明与实施方式1的解码装置200的不同之处。
缩短比特插入部1501在接收代码字序列的后面插入缩短比特似然。另外,缩短比特似然是与在发送侧插入的缩短比特和LDPC解码部202的解码方式对应的值。例如,当在发送侧插入0作为缩短比特,并在LDPC解码部202进行软判决解码的情况下,插入符号为正的绝对值较大的值。并且,当在LDPC解码部202进行硬判决解码的情况下插入0。缩短比特插入部1501将插入了缩短比特似然的接收代码字序列通知重新排列部1502。
重新排列部1502进行由缩短比特插入部1501传递来的接收代码字序列的重新排列。具体地讲,重新排列部1502进行重新排列,使由缩短比特插入部1501插入的缩短比特似然、处于利用由误检测检查比特控制部203发送的误检测检查比特位置p所指定的位置。重新排列部1502将重新排列后的接收代码字序列发送给LDPC解码部202。由于缩短比特在发送时被删除,所以补充该缩短比特,对缩短比特进行重新排列,并能够复原到应该作为误检测检查比特而插入的位置。
重新排列部1503进行通过LDPC解码部202的解码处理而得到的解码后代码字比特序列的重新排列。具体地讲,重新排列部1502进行重新排列,使位于缩短比特插入位置p的缩短比特处于解码后代码字比特序列的后部。重新排列部1503将重新排列后的解码后代码字比特序列发送给缩短比特去除部1504。
缩短比特去除部1504去除处于由重新排列部1503发送来的重新排列后的解码后代码字比特序列的后部的缩短比特、以及奇偶校验比特,得到J比特的信息比特序列。缩短比特去除部1504将J比特的信息比特序列作为解码装置1500的输出进行输出。
以上是实施方式2的编码装置1400和解码装置1500的功能结构。
<动作>
下面,使用图16的流程图来说明编码装置1400进行编码时的动作。另外,在本流程图中,省略与实施方式1的图9所示的流程图相同的内容的部分的说明。
如图16所示,误检测检查比特控制部1401将误检测检查比特的插入位置及其个数通知重新排列部1403(步骤S1601)。
并且,编码装置1400的缩短比特插入部1402受理表示应该插入的缩短比特的比特数量的控制信息,在所输入的信息比特序列的后面附加利用控制信息表示的比特数量的缩短比特,并输出给重新排列部1403(步骤S1602)。
然后,重新排列部1403执行所受理的被附加了缩短比特的信息比特序列的比特的重新排列。具体地讲,重新排列部1403按照所生成的代码字的信息比特部分的信息长度的每个单位执行重新排列,使缩短比特处于由误检测检查比特控制部1401通知的误检测检查比特插入位置,将重新排列后的编码前比特序列通知LDPC编码部104(步骤S1603)。
LDPC编码部104对所通知的编码前比特序列执行基于由LDPC编码参数存储部通知的奇偶校验矩阵的编码,生成代码字并传递给缩短比特去除部1404(步骤S905)。
缩短比特去除部1404从所生成的代码字中去除缩短比特(步骤S1604),并结束处理。
另外,在本流程图中说明了插入缩短比特的情况,但是在不需要向信息比特序列插入缩短比特的情况下,即在信息比特序列的信息长度达到准循环编码方式的块的信息长度的情况下,也可以采用上述实施方式1所述的、在所指定的位置插入具有已知的值的误检测检查比特的方法。
对该编码方法的一个具体示例进行说明。首先,说明附加的缩短比特的比特数量为14比特以上时的具体示例。
作为输入信息比特序列的序列长度(J)相比信息块长度(K)324少误检测检查比特数量(D)14以上的情况,对于J=300的情况进行说明。此时,缩短比特数量(S)是24。将编码模式信息输入LDPC编码参数存储部101。LDPC编码参数存储部101按照所输入的编码模式信息,在误检测检查比特控制部102和LDPC编码部104设定进行LDPC编码所需要的参数。作为在误检测检查比特控制部102设定的参数,有误检测检查比特数量14和误检测检查比特插入位置p(第82、84、86、88、90、92、94、96、98、100、102、104、106、108比特)。作为在LDPC编码部104设定的参数有代码长度(N)648比特、信息比特长度(K)324比特、冗余比特长度(M)324比特、奇偶校验矩阵H(或者是存储有与奇偶校验矩阵H相关的信息的存储器的地址)、以及在对每个编码模式进行不同的处理时指示进行哪个处理的信息等。
将由300比特构成的输入信息比特序列输入缩短比特插入部1402。缩短比特插入部1402在输入信息比特序列的后部插入24比特的缩短比特。缩短比特插入部1402将通过插入缩短比特而达到324比特的长度的信息比特序列发送给重新排列部1403。
重新排列部1403进行324比特的信息比特序列的重新排列。重新排列部1403进行从信息比特序列的后面起14比特的缩短比特、和处于利用误检测检查比特插入位置p指示的第82、84、86、88、90、92、94、96、98、100、102、104、106、108比特的位置的比特的重新排列。由此,能够使处于误检测检查比特插入位置p的全部比特成为已知的比特。重新排列部1403将重新排列后的信息比特序列发送给LDPC编码部104。另外,只要是将处于误检测检查比特插入位置p的比特和缩短比特进行重新排列的重新排列规则,则重新排列部1403的重新排列处理可以采用任何重新排列规则。
LDPC编码部104对所输入的编码信息比特序列实施LDPC编码处理,生成324比特的冗余比特序列,并与324比特的编码信息比特序列相加,作为648比特的代码字比特序列发送给缩短比特去除部1404。
缩短比特去除部1404进行从代码字比特序列中去除由缩短比特插入部1402插入的S=24比特的缩短比特的处理。缩短比特去除的结果是,代码字比特序列成为300+324=624比特的比特序列。缩短比特去除部1404将624比特的代码字序列作为编码装置1400的输出进行输出。
如此生成代码字。
可是,在按照上述实施方式1所述对全部最小距离代码字执行错误检测时,需要插入至少14比特作为误检测检查比特。但是,根据信息比特序列的信息长度,有时缩短比特的比特数量会小于14。因此,下面说明应该附加的缩短比特的比特数量小于14时的具体示例。另外,编码装置自身只是单纯地附加所指定的数量的缩短比特数量,并进行重新排列使该缩短比特处于指定的误检测检查比特插入位置,所以基本上是按照图16所示的流程图进行动作,图16所示的流程图不会根据附加的缩短比特的个数的大小而失去通用性。
下面,说明缩短比特数量(S)少于误检测检查比特数量(D)的情况。作为示例说明J=320比特的情况。此时,设S=4,D14。
将由320比特构成的输入信息比特序列输入缩短比特插入部1402。缩短比特插入部1402在输入信息比特序列的后部插入4比特的缩短比特。缩短比特插入部1402将通过插入缩短比特而成为324比特的长度的信息比特序列发送给重新排列部1403。
重新排列部1403进行324比特的信息比特序列的重新排列。重新排列部1403进行从信息比特序列的后面起4比特的缩短比特、和利用误检测检查比特插入位置p指示的4个比特例如处于第82、84、86、88比特的位置的比特的重新排列。由此,能够使误检测检查比特插入位置p的4个比特成为已知的比特。重新排列部1403将重新排列后的信息比特序列发送给LDPC编码部104。另外,只要从误检测检查比特插入位置p选择的4个位置是发送侧和接收侧都已知的位置,则重新排列部1403的重新排列处理也可以是上述4个位置之外的位置。通过将4个位置设为不同的位置,只是能检查误检测的代码字发生变化,能检查误检测的概率平均来说没有变化。另外,由于缩短比特数量S少于误检测检查比特数量D,因而并非能够检测全部最小距离代码字,导致误检测检查概率比S≥D时降低。
LDPC编码部104对所输入的编码信息比特序列实施LDPC编码处理,生成324比特的冗余比特序列,并与324比特的编码信息比特序列相加,作为648比特的代码字比特序列发送给缩短比特去除部1404。
缩短比特去除部1404进行从代码字比特序列中去除由缩短比特插入部1402插入的S=4比特的缩短比特的处理。缩短比特去除的结果是,代码字比特序列成为320+324=644比特的比特序列。缩短比特去除部1404将644比特的代码字序列作为编码装置1400的输出进行输出。
另外,编码装置1400具有缩短比特插入部1402,并采用在编码装置1400的内部进行缩短比特插入的结构,但不限于这种方式,例如,也可以将已插入缩短比特的信息比特序列作为输入。在这种情况下,由于不在编码装置1400的内部进行缩短比特的插入处理,所以在编码装置1400的内部不需要缩短比特插入部1402。
关于这样生成的代码字被调制等后被发送、接收时的解码装置1500的动作,使用图17的流程图进行说明。另外,省略有关与实施方式1的图11所示的流程图相同的内容的说明。
在步骤S1701,误检测检查比特控制部203将误检测检查比特的插入位置及作为误检测检查比特而采用的已知的值,通知错误检测部204、重新排列部1502和缩短比特去除部1504。
然后,缩短比特插入部1501根据控制信息在接收代码字序列中插入缩短比特似然(步骤S1702)。此处插入的缩短比特似然是附加缩短比特及相当于根据该缩短比特而生成的奇偶校验比特的量。
并且,重新排列部1502对被附加了缩短比特似然的接收代码字序列执行重新排列,使该缩短比特似然处于误检测检查比特插入位置(步骤S1703)。
在步骤S1704,重新排列部1503抽取处于误检测检查比特插入位置的比特,并使其移动到信息比特序列的后部,以便使被插入到解码后代码字中的缩短比特似然处于信息比特序列的后部。
并且,缩短比特去除部1504从被重新排列后的解码后代码字中去除奇偶校验和移动到后部的缩短比特(步骤S1705),输出解码信息比特序列并结束处理。
对解码装置按照图17所示的流程图执行解码时的动作的一个具体示例进行说明。
对使用利用图1所示的奇偶校验矩阵Hb648定义的依据于IEEE802.11n的代码长度648比特、编码率1/2的LDPC代码时的解码装置1500的动作进行说明。
在输入接收代码字序列之前,将编码模式信息和缩短比特数量输入解码装置1500。LDPC编码参数存储部201按照编码模式信息,将按照每个编码模式而存储的LDPC编码参数发送给LDPC解码部202和误检测检查比特控制部203。作为在误检测检查比特控制部203设定的参数有误检测检查比特数量14和误检测检查比特插入位置p(第82、84、86、88、90、92、94、96、98、100、102、104、106、108比特)。作为在LDPC解码部202设定的参数有代码长度(N)648比特、信息比特长度(K)324比特、冗余比特长度(M)324比特、奇偶校验矩阵H(或者是存储有与奇偶校验矩阵H相关的信息的存储器的地址)、以及在对每个编码模式进行不同的处理时指示进行哪个处理的信息等。
说明信息比特序列数量J为300、缩短比特数量S为24的示例。在设定了所使用的参数后,开始接收代码字序列的LDPC解码处理。将624比特量的接收代码字序列输入缩短比特插入部1501。缩短比特插入部1501在接收代码字序列中与信息比特对应的部分和与奇偶校验对应的部分之间(与信息比特对应的部分的后部),插入24比特量的缩短比特似然。结果,接收代码字序列中与信息比特对应的部分增加24比特量。缩短比特插入部1501将插入缩短比特似然后的接收代码字序列发送给重新排列部1502。
重新排列部1502进行接收代码字序列的重新排列。由于误检测检查比特数量D是14,所以重新排列部1320进行重新排列,以便将从接收代码字序列中与信息比特序列对应的部分的后面起14个似然(与插入的缩短比特似然对应的部分),插入到利用误检测检查比特位置p(第82、84、86、88、90、92、94、96、98、100、102、104、106、108比特)指定的位置。重新排列部1502将重新排列后的接收代码字序列发送给LDPC解码部202。
LDPC解码部202进行接收代码字序列的LDPC解码处理,将其结果得到的代码字序列发送给错误检测部204和重新排列部1503。
重新排列部1503将处于误检测检查比特位置p(第82、84、86、88、90、92、94、96、98、100、102、104、106、108比特)的比特,移动到解码后代码字比特序列的与信息比特序列对应的部分的后部。重新排列部1503将重新排列后的解码后代码字比特序列发送给缩短比特去除部1504。
缩短比特去除部1504从由重新排列部1503发送来的、解码后代码字比特序列的与信息比特序列对应的部分的后部起去除24比特,再去除与奇偶校验比特序列对应的324比特。缩短比特去除部1504将去除结果而得到的300比特作为解码信息比特序列进行输出。
错误检测部204的结构及处理内容、即作为误检测检查比特而插入的缩短比特似然与作为缩短比特而采用的已知的值的比较处理,与在实施方式1中说明的处理相同,所以省略说明。
下面,说明信息比特序列数量J为320、缩短比特数量S为4的示例。将620比特量的接收代码字序列输入缩短比特插入部1501。缩短比特插入部1501在接收代码字序列中与信息比特对应的部分和与奇偶校验对应的部分之间(与信息比特对应的部分的后部),插入4比特量的缩短比特似然。结果,接收代码字序列中与信息比特对应的部分增加4比特量。缩短比特插入部1501将插入缩短比特似然后的接收代码字序列发送给重新排列部1502。
重新排列部1502进行接收代码字序列的重新排列。重新排列部1502进行重新排列,以便将从接收代码字序列中与信息比特序列对应的部分的后面起4个似然(与插入的缩短比特似然对应的部分),插入到误检测检查比特位置p中、利用由发送侧的编码装置1400的重新排列部1403插入了缩短比特的位置(在上述的示例中是指第82、84、86、88比特)而指定的位置。重新排列部1502将重新排列后的接收代码字序列发送给LDPC解码部202。
LDPC解码部202进行接收代码字序列的LDPC解码处理,将其结果得到的代码字序列发送给错误检测部204和重新排列部1503。
重新排列部1503将处于误检测检查比特位置p中被插入缩短比特的4个位置(第82、84、86、88比特)的比特,移动到解码后代码字比特序列的与信息比特序列对应的部分的后部。重新排列部1503将重新排列后的解码后代码字比特序列发送给缩短比特去除部1504。
缩短比特去除部1504从由重新排列部1503发送来的、解码后代码字比特序列的与信息比特序列对应的部分的后部起去除4比特,再去除与奇偶校验比特对应的324比特。缩短比特去除部1504将去除结果而得到的320比特作为解码信息比特序列进行输出。
如上所述,在插入误检测检查比特时,在实施方式1中数据传输的吞吐量下降了相当于插入了误检测检查比特的量,但是如本实施方式2所述,在原来的信息比特序列没有成为根据代码字的代码长度和编码率而求出的信息比特部分的信息长度的倍数的情况下,将原本基于弥补不足的比特的目的而插入的已知比特用作误检测检查比特,由此能够抑制吞吐量的下降。通过采用原本已确定插入的已知比特,可以不执行新的误检测检查比特的插入,结果,不会导致由于误检测检查比特的插入而造成的吞吐量的下降。
并且,根据以上说明的结构,解码装置1500能够对接收代码字序列进行解码,并对其结果进行错误检测。本实施方式的解码装置1500构成为在采用了LDPC代码的奇偶校验矩阵H的奇偶校验的基础上,还进行LDPC解码后的代码字是否是正确的代码字的最小距离代码字的检查,因而与过去只是奇偶校验的错误检测相比,能够大幅提高错误检测的精度。
另外,在本实施方式中示出了使用缩短比特来代替误检测检查比特,不使用除此之外的已知比特的结构,但不限于这种结构,例如在缩短比特数量比误检测检查比特数量少的情况下,也可以构成为在缩短比特的基础上,还插入误检测检查比特数量不足的量的已知比特。这样,在缩短比特数量比误检测检查比特数量少的情况下,也能够提高误检测检查的精度。
<实施方式3>
在上述实施方式2中,说明了在信息长度达不足的情况下采用插入的已知比特作为待插入的误检测检查比特的示例,而在本实施方式3中说明利用其它的比特值作为误检测检查比特的示例。
<概念>
在根据代码字长度和编码率而确定的代码字的信息比特部分的信息长度比应该发送的信息比特序列的信息长度短的情况下,生成多个代码字并发送数据。此时,对于所生成的多个代码字,附加表示其是应该发送的信息比特序列的第几个代码字的块ID比特并进行发送。在这种情况下生成的代码字如图18(a)所示,开头B比特量由块ID比特、J比特的信息比特、M比特的奇偶校验比特(冗余比特)构成。另外,K+M比特相当于代码字长度,K比特及M比特是根据编码率确定的。
因此,在本实施方式3中,将该附加的ID块的各个比特值作为误检测检查比特进行插入。所发送的数据基本上是按照ID块的顺序进行接收的,因而应该按照该顺序进行解码。此时,在接收侧从被插入了误检测检查比特的位置抽取比特并将ID块复原时,在利用该ID块表示的序号与接收的顺序不同时,能够估计到发送数据是在数据传输过程中发生变质的数据,在这种情况下,即使接收到的代码字在QC-LDPC的奇偶校验中被判定为正确的代码字,也将其判定为不正确的代码字。
在此,对LDPC代码块的块ID比特进行说明。为了执行块重传方式,需要在发送侧/接收侧识别被正确发送/未能正确发送的块、及重传时有选择地发送的块是哪个块。作为识别是哪个块的方法的一例,有在LDPC代码块内部插入块识别符即块ID比特的方法。该方法将LDPC代码块的一部分的比特用作块ID比特。
图18表示插入了块ID比特后的LDPC代码的比特序列的图。在插入了块ID比特的LDPC代码的比特序列中,按照图18(a)所示,将LDPC代码块的信息比特序列K比特中的B比特设为块ID比特,将剩余的J比特设为信息比特。并且,LDPC编码字的代码字比特序列是通过在包括块ID比特的K(=B+J)比特的信息序列中附加了M比特的奇偶校验比特序列而形成的。并且,块ID比特根据每个LDPC代码块被插入不同的值。
在此,块ID比特是为了识别该LDPC代码块而插入的比特,因此,如果在发送侧和接收侧共享插入位置,则不需规定块ID比特的插入位置。因此,本实施方式3的纠错编码装置将块ID比特的插入位置设为误检测检查比特的位置,将块ID比特作为误检测检查用的已知比特而共用,由此减缓吞吐量的下降。
图18(a)表示过去附加了块ID比特的代码字,而在本实施方式3中,按照图18(b)所示,将附加了块ID比特的信息比特序列中的块ID比特,插入到从信息比特部分的开头起确定的误检测检查比特插入位置,由此生成如图18(c)所示的编码前比特序列,再对其进行编码,生成如图18(d)所示的代码字。另外,图18(c)、(d)中的斜线部分表示信息比特部分,其间的空白部分表示作为误检测检查比特而插入的块ID比特。
<结构>
图19表示实施方式3的编码装置1900的功能结构。如图19所示,编码装置1900构成为包括LDPC编码参数存储部101、LDPC编码部104、误检测检查比特控制部1901、重新排列部1902。
误检测检查比特控制部1901将由LDPC编码参数存储部101通知的误检测检查比特插入位置,传递给重新排列部1902。
重新排列部1902执行信息比特序列的重新排列,使形成块ID的信息比特处于由误检测检查比特控制部通知的误检测检查比特插入位置,生成编码前比特序列并输出给LDPC编码部104。
图20表示实施方式3的解码装置2000的功能结构。如图2所示,解码装置2000构成为包括LDPC编码参数存储部201、LDPC解码部202、误检测检查比特控制部203、奇偶校验比特去除部2001、重新排列部2002、错误检测部2003。
奇偶校验比特去除部2001从由LDPC解码部202进行解码后的解码后代码字比特序列中去除M比特的奇偶校验比特。奇偶校验比特去除部2001只将去除奇偶校验比特后的信息比特序列通知重新排列部2002。
重新排列部2002抽取处于误检测检查比特插入位置的比特,使其移动到信息比特序列的开头。重新排列部2002输出使处于误检测检查比特插入位置的比特移动到开头而得到的解码信息比特。
错误检测部2003进行由LDPC解码部202发送来的解码后代码字比特序列的错误检测。错误检测部2003将错误检测结果作为解码装置2000的输出进行输出。
图21表示错误检测部2003的具体结构。如图21所示,错误检测部2003构成为包括奇偶校验部211和误检测检查部2101。奇偶校验部211进行与实施方式1所示的处理相同的处理,所以此处省略其详细说明。
误检测检查部2101在奇偶校验结果为“0”的情况下,进行在利用误检测检查比特插入位置p1表示的位置插入的块ID比特的检查。将解码后代码字序列Cd、奇偶校验结果、作为控制信息而输入的误检测检查比特的数量及值、以及与插入位置相关的信息输入误检测检查部2101。误检测检查部2101判定块ID比特是否是不正当的值,在是不正当的值的情况下,判定为块ID比特包含错误。当在被插入误检测检查比特插入位置p1的块ID比特中包含错误的情况下,其代码字是正确的代码字的最小距离代码字,因而是误检测。另一方面,在块ID比特不是不正当的值的情况下,误检测检查部1701判定为不是误检测。
在此,关于块ID比特的不正当的值,列举块ID比特的值是除了在发送侧和接收侧预先设定的几个值之外的值的情况。例如,在发送侧和接收侧设定多个作为块ID而采用的值,而在接收侧通过抽取处于误检测检查比特插入位置的比特而得到的块ID比特与这多个值中的哪个值都不相同,这种情况时就是不正当的值。
另外,作为其它示例,列举参照前后的块ID比特的值,块ID比特不符合在发送侧和接收侧预先决定的规则的情况。例如,对一个PHY帧中包含的LDPC代码块按照从开头开始的顺序,利用连续的序号来赋予块ID的情况,而误检测检查的结果为检测到与前后的LDPC代码块的块ID不连续的块ID的情况,这种情况时可以说是不正当的块。即,在发送侧生成的LDPC代码块的顺序被设定为01、02、03、04、…等,并采用这些值作为块ID,而在接收侧得到处于误检测检查比特插入位置的块ID时却成为01、02、13、04、等,在这种情况下,即使具有块ID比特为13的LDPC代码块是例如LDPC代码的代码字,也能够将其判定为错误。
误检测检查部2101以软件或者硬件能够解读的方式输出误检测检查结果。例如,在未检查到误检测时输出“0”,在检查到误检测时输出“1”。由误检测检查部1701输出的误检测检查结果成为错误检测部1603的输出的错误检测结果。并且,在奇偶校验结果为“1”的情况下,可以明确解码后代码字序列Cd是错误的,不是LDPC代码的代码字,因而不需要检查误检测。因此,在这种情况下,误检测检查部2101不进行误检测检查,而输出“1”作为误检测检查结果。
<动作>
下面,使用图21的流程图来说明编码装置1900的编码时的动作。在此,只说明与实施方式1中的图9所示的动作不同的动作。
在步骤S2201,误检测检查比特控制部1901将误检测检查比特的插入位置通知重新排列部1902(步骤S2201)。
并且,重新排列部1902按照所通知的误检测检查比特的插入位置执行信息比特序列的重新排列,使在信息比特序列的开头配置的块ID比特,处于从信息比特序列的信息部分的开头起、利用该误检测检查比特的插入位置表示的位置,生成编码前比特序列,并传递给LDPC编码部104(步骤S2202)。
对编码装置1900的编码动作的一个具体示例进行说明。
下面,对使用利用图1所示的奇偶校验矩阵Hb648定义的依据于IEEE802.11n的代码长度648比特、编码率1/2的LDPC代码时的编码装置1900的动作进行说明。
发送装置向编码装置1900输入编码模式信息和包括块ID比特的信息比特序列。其中,信息比特序列的开头8比特表示块ID比特。此时设B=8。将编码模式信息输入LDPC编码参数存储部101。LDPC编码参数存储部101按照所输入的编码模式信息,在误检测检查比特控制部1901和LDPC编码部104设定进行LDPC编码所需要的参数。作为在误检测检查比特控制部1901设定的参数,有B个的误检测检查比特插入位置p1(例如,第82、84、86、88、90、92、94、96比特)。作为在LDPC编码部104设定的参数有代码长度(N)648比特、信息比特长度(K)324比特、冗余比特长度(M)324比特、奇偶校验矩阵H(或者是存储有与奇偶校验矩阵H相关的信息的存储器的地址)、以及在对每个编码模式进行不同的处理时指示进行哪个处理的信息等。
将包括8比特的块ID比特的324比特的信息比特序列输入重新排列部1902。
重新排列部1902进行324比特的信息比特序列的重新排列。重新排列部1902进行信息比特序列的开头8比特的块ID比特、和处于利用误检测检查比特插入位置p1指示的第82、84、86、88、90、92、94、96比特的位置的比特的重新排列。由此,能够将处于误检测检查比特插入位置p1的比特设为块ID比特。重新排列部1902将重新排列后的信息比特序列发送给LDPC编码部104。另外,只要是将处于误检测检查比特插入位置p1的比特和块ID比特进行重新排列的重新排列规则,则重新排列部1902的重新排列处理可以采用任何重新排列规则。
LDPC编码部104对所输入的编码信息比特序列实施LDPC编码处理,生成324比特的冗余比特序列,并与324比特的编码信息比特序列相加,将相加得到的648比特的代码字比特序列作为编码装置1900的输出进行输出。
关于接收到这样生成的代码字被调制等并被发送的信息时的解码装置2000的动作,使用图23的流程图进行说明。在此,只说明与实施方式1的图11所示的流程图不同的部分。
在步骤S2301,错误检测部2003在奇偶校验部211执行奇偶校验后,误检测检查部2101比较由处于误检测检查比特插入位置的比特构成的块ID比特是否与预测的比特值相同,并执行错误检测,输出错误检测结果。例如,当在发送侧和接收侧规定了使用预先设定的多个值中的任意一个值作为块ID比特的情况下,关于是否与该任意一个值一致,在按照连续的代码块的顺序来进行检查时,检测是否保持了与其前后的LDPC代码块的块ID比特的连续性。另外,在后者的情况下,进行是否与根据前后的LDPC代码块的块ID而预测的块ID一致的比较(步骤S2301)。
奇偶校验比特去除部2301从解码后代码字中去除M比特的奇偶校验比特,只将信息比特序列传递给重新排列部2002(步骤S2302)。
并且,重新排列部2002执行使处于误检测检查比特插入位置的比特移动到信息比特序列的开头的重新排列,生成解码信息比特序列并进行输出(步骤S2303)。
对该解码装置2000的解码动作的一个具体示例进行说明。
对使用利用图1所示的奇偶校验矩阵Hb648定义的依据于IEEE802.11n的代码长度648比特、编码率1/2的LDPC代码时的解码装置2000的动作进行说明。
在输入接收代码字序列之前,将编码模式信息输入解码装置2000。LDPC编码参数存储部201按照编码模式信息,将按照每个编码模式而存储的LDPC编码参数发送给LDPC解码部202和误检测检查比特控制部203。作为在误检测检查比特控制部203设定的参数有误检测检查比特数量14和误检测检查比特插入位置p(第82、84、86、88、90、92、94、96、98、100、102、104、106、108比特)。作为在LDPC解码部202设定的参数有代码长度(N)648比特、信息比特长度(K)324比特、冗余比特长度(M)324比特、奇偶校验矩阵H(或者是存储有与奇偶校验矩阵H相关的信息的存储器的地址)、以及在对每个编码模式进行不同的处理时指示进行哪个处理的信息等。
解码装置2000在设定了所使用的参数后,开始接收代码字序列的LDPC解码处理。将648比特量的接收代码字序列输入LDPC解码部202。在此,接收代码字序列可以是对于一个比特只具有1比特的信息(硬判决解码),也可以是对于一个比特具有多个比特的信息(软判决解码)。在进行软判决解码时,能够使用被量化的各个代码字比特的对数似然比作为接收代码字序列。
LDPC解码部202进行接收代码字序列的LDPC解码处理,将其结果得到的代码字序列发送给奇偶校验比特去除部2001和错误检测部1603。
奇偶校验比特去除部2001从由LDPC解码部202发送来的代码字序列中去除M比特的奇偶校验比特,只将K比特的信息比特序列输出给重新排列部2002。
错误检测部2003的构成要素中的奇偶校验部211检查所输入的解码后代码字序列cd、和作为控制信息而提供的LDPC代码的奇偶校验矩阵H是否满足奇偶校验Hcd=0。奇偶校验部211以软件或者硬件能够解读的方式输出奇偶校验的结果。
并且,在奇偶校验结果为“0”的情况下,误检测检查部2101进行在利用误检测检查比特插入位置p1表示的位置插入的块ID比特的检查。误检测检查部2101判定块ID比特是否是不正当的值,在是不正当的值的情况下,判定为块ID比特包含错误。在被插入误检测检查比特插入位置p1的块ID比特中包含错误的情况下,该代码字是正确的代码字的最小距离代码字,因而是误检测。例如,对一个PHY帧中包含的LDPC代码块按照从开头开始的顺序,利用连续的序号来赋予块ID,而误检测检查的结果为检测到与前后的LDPC代码块的块ID不连续的块ID,这种情况时可以说是不正当的块ID。
误检测检查部2101以软件或者硬件能够解读的方式输出误检测检查结果。例如,在未检查到误检测时输出“0”,在检查到误检测时输出“1”。由误检测检查部1701输出的误检测检查结果成为错误检测部1603的输出的错误检测结果。并且,在奇偶校验结果为“1”的情况下,可以明确解码后代码字序列cd是错误的,不是LDPC代码的代码字,因而不需要检查错误检测。因此,在这种情况下,误检测检查部2101不进行误检测检查,而输出“1”作为误检测检查结果。
如上所述,在本实施方式3中,通过将原本已确定附加的ID块作为误检测检查比特,能够抑制由于新的误检测检查比特的插入而造成的吞吐量的下降。并且,在本实施方式3中,根据基于对ID块进行解码而得到的数值的顺序和接收到的顺序的比较,来检查误检测,因而具有在发送接收侧作为误检测检查比特,不再需要进行将哪个比特作为已知比特的设定的优点。
根据以上说明的结构,解码装置2000能够对接收代码字序列进行解码,并对其结果进行错误检测。本实施方式3的解码装置2000构成为在采用LDPC代码的奇偶校验矩阵H的奇偶校验的基础上,还进行LDPC解码后的代码字是否是正确的代码字的最小距离代码字的检查,因而与过去仅仅是奇偶校验的错误检测相比,能够大幅提高错误检测的精度。
另外,关于块ID比特,与上述实施方式2所示的块ID比特相同地,在该块ID比特的比特数量小于作为误检测检查比特而需要的个数的情况下,可以按照上述实施方式1所述生成误检测检查比特并进行插入。
<补充>
在上述实施方式中对本发明的实施方法进行了说明,但本发明的实施方式当然不限于这些方式。下面,对除上述实施方式之外的、本发明所包含的各种变形例进行说明。
(1)在上述实施方式中说明了依据于IEEE802.11n标准的示例,但也可以是,在进行QC-LDPC的编码时,在应该发送的信息比特序列中,在对该信息比特序列进行编码而得到的代码字与在奇偶校验中被判定为正确的代码字、而且是海明距离较近的另一个代码字存在差异的部分中,插入防止误检测用的比特(误检测检查比特),由此防止将不正确的代码字判定为正确的代码字的误检测,如此即可,也可以进行依据于除IEEE802.11n之外的标准的通信。在这种情况下,根据所使用的标准,虽然使用的奇偶校验矩阵和误检测检查比特的插入位置因代码字长度、编码率而不同,但可以预先计算。
(2)在上述实施方式中,插入位置确定表被预先保存在接收侧,但也可以构成为,在插入上述实施方式所述的误检测检查比特并进行编码的数据传输的前级中,按照过去的通信方法,从发送侧向接收侧发送插入位置确定表。
(3)上述实施方式所述的通信装置如图4所示,为了方便起见记述为只具有一个天线,但不限于这种方式,也可以设置多个天线。
(4)在上述实施方式1~3中,在LDPC解码后的代码字不满足奇偶校验的情况下,误检测检查部不执行误检测检查,这只是因为不需要检查误检测,所以就不进行检查,但也可以与奇偶校验的结果无关地都进行误检测检查。在这种情况下,将奇偶校验结果与误检测检查结果的逻辑和作为错误检测结果进行输出。关于能够实现这种结构的错误检测部204、2003的结构,例如有图24所示的结构。
图24所示的奇偶校验部241和误检测检查部242,与图7所示的奇偶校验部211和误检测检查部212大致相同,奇偶校验部241判定所输入的解码后比特序列是否满足奇偶校验,误检测检查部242判定处于误检测检查比特插入位置的比特的值是否与作为误检测检查比特而设定的值不同。奇偶校验部241和误检测检查部242各自输出的判定结果与上述实施方式1所示的结果相同。
并且,逻辑和运算部243受理奇偶校验部241和误检测检查部242的判定结果的值,获取两者的值的逻辑和,将其运算结果作为错误检测的结果进行输出。
错误检测部204可以是这种结构。
(5)在上述实施方式中,预先确定海明距离为最近的代码字,在该海明距离为最近的代码字与想要发送的代码字存在差异的部分中,插入防止误检测用的规定的比特值。但是,不限于海明距离为最近的代码字,也可以构成为还在海明距离第2近或第3近的代码字与想要发送的代码字存在差异的部分,插入防止误检测用的规定的比特值。由此,能够进一步提高防止误检测的概率。
并且,也可以构成为,在通过某些实验等判明除海明距离为最近的代码字之外的代码字容易变化的情况下等,取代最小距离代码字,在待发送的代码字与该容易变化的代码字之间具有不同的比特值的部分中,插入误检测检查比特。
(6)在上述实施方式所述的各个流程图(图9、11、16、17、22、23等)中,编码装置、解码装置不一定需要按照该流程图所示的顺序进行动作。只要编码装置、解码装置的各个功能部在执行各个处理时能够传递必要的信息即可,因而能够并行进行动作的部分可以并行执行,并且也可以将上述实施方式所述的顺序进行颠倒。例如,图11的步骤S1104与步骤S1105及步骤S1106可以并行执行,也可以在步骤S1104之前先执行步骤S1105和步骤S1106。或者,图16的步骤S1601和步骤S1602可以并行执行,也可以在步骤S1601之前先执行步骤S1602。
(7)图5、6、7、14、15、19、20、21所示的编码装置、解码装置的各个功能部也可以利用被集成的一个或者多个LSI(Large Scale Integration:大规模集成电路)来实现。并且,也可以利用一个LSI实现多个功能部。
LSI根据集成度的不同,有时也称为IC(Integrated Circuit:集成电路)、系统LSI、VLSI(Very Large Scale Integration:极大LSI)、SLSI(Super VeryLarge Scale Integration:超级LSI)、USLI(Ultra Large Scale Integration:特级LSI)等。
并且,集成电路化的方法不限于LSI,也可以利用专用电路或通用处理器实现。也可以采用在制作LSI后能够编程的FPGA(Field ProgrammableGate Array:现场可编程门阵列)、能够重构架LSI内部的电路单元的连接和设定的可重构处理器(reconfigurable processor)。
另外,如果伴随半导体技术的发展或利用派生的其他技术替换LSI的集成电路化的技术问世,当然也可以使用该技术进行功能单元的集成化。还存在适用生物技术等的可能性。
(8)也能够将由程序代码构成的控制程序记录在记录介质中、或者通过各种通信路径等进行流通并发布,该控制程序用于使发送装置、接收装置等的处理器、以及与该处理器连接的各种电路执行上述实施方式所述的编码及解码的相关动作、误检测比特的插入处理等(参照图9、11、16、17、22、23等)。这种记录介质包括IC卡、硬盘、光盘、软盘、ROM等。将进行流通并发布的控制程序存储在处理器能够读取的存储器等中,由此能够利用该控制程序,通过使该处理器执行该控制程序,能够实现实施方式所述的各种功能。