[go: up one dir, main page]

JP6875661B2 - 誤り検出用冗長ビットの生成方法および装置 - Google Patents

誤り検出用冗長ビットの生成方法および装置 Download PDF

Info

Publication number
JP6875661B2
JP6875661B2 JP2019535507A JP2019535507A JP6875661B2 JP 6875661 B2 JP6875661 B2 JP 6875661B2 JP 2019535507 A JP2019535507 A JP 2019535507A JP 2019535507 A JP2019535507 A JP 2019535507A JP 6875661 B2 JP6875661 B2 JP 6875661B2
Authority
JP
Japan
Prior art keywords
bit
redundant
bits
polynomial
pattern
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2019535507A
Other languages
English (en)
Other versions
JPWO2019030860A1 (ja
Inventor
典史 神谷
典史 神谷
プラカシュ チャキ
プラカシュ チャキ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2019030860A1 publication Critical patent/JPWO2019030860A1/ja
Application granted granted Critical
Publication of JP6875661B2 publication Critical patent/JP6875661B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, 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/2906Coding, 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 using block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2792Interleaver wherein interleaving is performed jointly with another technique such as puncturing, multiplexing or routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2739Permutation polynomial interleaver, e.g. quadratic permutation polynomial [QPP] interleaver and quadratic congruence interleaver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

本発明は、ディジタルデータに含まれるビット誤りを検出するための冗長ビットの生成およびそれを用いた誤り検出技術に関する。
ディジタルデータ通信システムおよび記憶システムの運用では、様々な要因によって生じ得るビット誤りへの対策が施されており、なかでも最も一般的な技術として、巡回冗長検査(Cyclic Redundancy Check;CRC)によるビット誤り検出方法が良く知られている。CRCは、ディジタルデータを予め定められた一定のビット長(k ビット)のブロックに区切り、ブロック毎に予め定められたCRC多項式を用いてCRC多項式の次数rと同数の冗長ビットを付加することで、ビット誤りの検出を可能にする技術である。
周知のように、既存の符号器は、情報ビットを順次入力し、多項式除算回路を用いて冗長ビットを生成して情報ビットに付加する。このような符号器において、CRC多項式をg(x)=x+gr−1r−1+・・・+gx+1とすれば、その係数gr−1、・・・gによって規定される係数器は0あるいは1を示す開閉スイッチにより構成される。これらの係数(各スイッチの開閉状態)は処理の途中で変化することはなく固定されている。
ビット誤りの検出を目的とした上記CRC技術は、ビット誤りの訂正を目的とした誤り訂正技術と併用されることが多い。誤り訂正技術は、データ内に生じたビット誤りを訂正する技術であるが、まれに訂正に失敗し、本来のデータとは異なるデータに訂正する場合がある。そこで、CRC技術を併用することによって、訂正結果に誤りが生じても、それを検出することが可能になる。また、一般に誤り訂正処理には多くの演算が必要になるが、CRC技術を併用すれば平均的に演算量を削減する効果がある事も知られている。
誤り訂正技術とCRC技術の併用によって特に大きな効果が見込まれる例として、Polar符号化技術とCRCとの組合せが良く知られている(非特許文献1)。Polar符号化技術による一般的な誤り訂正処理では、訂正処理の結果が必ずしも一つとは限らず、予め定められた数の訂正結果の候補を導出する。そこで、複数の候補の中から正しい訂正結果を効率的に見つける方法としてCRC技術を活用することができる。CRCによって誤りが検出されなかった候補が正しい訂正結果と判定されることになる。
また、誤り検出方法の一例として、特許文献1に、複数ブロックで構成された伝送フレームの先頭から各ブロックまでのデータを有効範囲として冗長ビットを生成し、それを各ブロックに付加する方法が開示されている。
特開平6−021920号公報
IEEE Transactions on Information Theory, vol.61, no.5, pp.2213-2226, May 2015
上述したCRC技術では、情報部分の全てを復号器に入力した後で初めて誤りの検出が可能になるために、誤りの有無にかかわらず検出処理に一定の時間を必要とする。一般に、誤りが検出されると、それに対して再送要求等の対処が必要となるので、もし誤りが存在するのであれば、できるだけ早い時点で誤り検出の通知を行うことがシステム構成上望ましい。
上述した特許文献1では、伝送フレームの先頭で行った符号器の初期設定を維持することで、当該先頭から各ブロックまでのCRCを付加することができるが、符号器および復号器の装置構成には一切言及されていない。したがって、特許文献1では、上述した既存の多項式除算回路を用いた符号器および復号器が用いられていると考えられる。言い換えれば、特許文献1に開示された方法では、既存の多項式除算回路を設けた符号器を利用するために、一定の長さのブロック毎に、当該ブロックまでのデータに基づいたCRCを付加することしかできない。
そこで、本発明の目的は、検出精度の低下および計算量の大幅な増大を回避でき、情報ビットの一部分を用いた誤り検出可能な冗長ビットを生成することができる、新たな方法および装置を提供することにある。
本発明による冗長ビット生成装置は、巡回冗長検査(CRC)多項式により前記情報ビットから所定数の冗長ビットを生成する冗長ビット演算手段と、前記CRC多項式に対応して定めた置換パターンを用いて前記所定数の冗長ビットを前記情報ビット内に分散配置するビット入れ替え手段と、を有することを特徴とする。
本発明による冗長ビット生成装置は、前記情報ビットを入力する、巡回冗長検査(CRC)多項式により算出される冗長ビットの数と同数の開閉スイッチ手段と、前記開閉スイッチ手段の各々の出力を個別に累積加算して前記冗長ビットを算出する累積加算手段と、前記入力した情報ビットおよび前記累積加算手段のそれぞれが算出した冗長ビットのいずれかを選択して、前記情報ビットに前記冗長ビットを追加したデータ列を生成する選択手段と、前記CRC多項式に対応して定めた置換パターンを用いて前記開閉スイッチ手段および前記選択手段を制御する制御手段と、を有することを特徴とする。
本発明による冗長ビット生成方法は、ブロック化された情報ビットに追加される誤り検出を可能にする冗長ビットを生成する方法であって、冗長ビット演算手段が巡回冗長検査(CRC)多項式により前記情報ビットから所定数の冗長ビットを生成し、ビット入れ替え手段が、前記CRC多項式に対応して定めた置換パターンを用いて前記所定数の冗長ビットを前記情報ビット内に分散配置する、ことを特徴とする。
本発明による冗長ビット生成方法は、ブロック化された情報ビットに追加される誤り検出を可能にする冗長ビットを生成する方法であって、巡回冗長検査(CRC)多項式により算出される冗長ビットの数と同数の開閉スイッチ手段が前記情報ビットを入力し、各開閉スイッチ手段を開閉制御する第1制御信号に従って当該情報ビットを通過あるいは遮断し、累積加算手段が、前記開閉スイッチ手段の各々の出力を個別に累積加算して前記冗長ビットを算出し、選択手段が、第2制御信号に従って、前記入力した情報ビットおよび前記累積加算手段のそれぞれが算出した冗長ビットのいずれかを選択し、前記情報ビットに前記冗長ビットを追加したデータ列を生成し、制御手段が、前記CRC多項式に対応して定めた置換パターンを用いて前記開閉スイッチ手段および前記選択手段を制御する前記第1制御信号および前記第2制御信号を出力する、ことを特徴とする。
本発明による誤り検出装置は、ブロック化された情報ビットに追加された誤り検出を可能にする冗長ビットを用いて誤りを検出する装置であって、受信データの情報ビットを入力する、巡回冗長検査(CRC)多項式により算出される冗長ビットの数と同数の開閉スイッチ手段と、前記開閉スイッチ手段の各々の出力を個別に累積加算して前記冗長ビットを算出する累積加算手段と、前記受信データの冗長ビットおよび前記累積加算手段のそれ
ぞれが算出した冗長ビットのいずれかを選択する選択手段と、前記CRC多項式に対応して定めた置換パターンを用いて前記開閉スイッチ手段の各々の開閉制御および前記選択手段の選択制御を実行する制御手段と、前記受信データの冗長ビットと前記算出した冗長ビットとを比較して誤りの有無を判定する判定手段と、を有することを特徴とする。
本発明によるプログラムは、ブロック化された情報ビットに追加される誤り検出を可能にする冗長ビットを生成する装置としてコンピュータを機能させるプログラムであって、巡回冗長検査(CRC)多項式により前記情報ビットから所定数の冗長ビットを生成する冗長ビット演算機能と、前記CRC多項式に対応して定めた置換パターンを用いて前記所定数の冗長ビットを前記情報ビット内に分散配置するビット入れ替え機能と、を前記コンピュータに実現することを特徴とする。
本発明によるプログラムは、ブロック化された情報ビットに追加される誤り検出を可能にする冗長ビットを生成する装置としてコンピュータを機能させるプログラムであって、前記情報ビットを入力する、巡回冗長検査(CRC)多項式により算出される冗長ビットの数と同数の開閉スイッチ機能と、前記開閉スイッチ機能の各々の出力を個別に累積加算して前記冗長ビットを算出する累積加算機能と、前記入力した情報ビットおよび前記累積加算機能のそれぞれが算出した冗長ビットのいずれかを選択して、前記情報ビットに前記冗長ビットを追加したデータ列を生成する選択機能と、前記CRC多項式に対応して定めた置換パターンを用いて前記開閉スイッチ機能および前記選択機能を制御する機能と、を前記コンピュータに実現することを特徴とする。
本発明によるプログラムは、ブロック化された情報ビットに追加された誤り検出を可能にする冗長ビットを用いて誤りを検出する装置としてコンピュータを機能させるプログラムであって、受信データの情報ビットを入力する、巡回冗長検査(CRC)多項式により算出される冗長ビットの数と同数の開閉スイッチ機能と、前記開閉スイッチ機能の各々の出力を個別に累積加算して前記冗長ビットを算出する累積加算機能と、前記受信データの冗長ビットおよび前記累積加算機能のそれぞれが算出した冗長ビットのいずれかを選択する選択機能と、前記CRC多項式に対応して定めた置換パターンを用いて前記開閉スイッチ機能の各々の開閉制御および前記選択機能の選択制御を実行する機能と、前記受信データの冗長ビットと前記算出した冗長ビットとを比較して誤りの有無を判定する機能と、を前記コンピュータに実現することを特徴とする。
本発明によれば、検出精度の低下および計算量の大幅な増大を回避でき、情報ビットの一部分を用いた誤り検出可能な冗長ビットを生成することができる。
図1は、本発明の一実施形態により生成されるデータフレームの一例を示すフレーム構成図である。 図2は、本発明の第一実施例による冗長ビット生成方法の概略を説明するための機能構成図である。 図3は、第一実施例による冗長ビット生成装置の一例を示すブロック図である。 図4は、第一実施例による冗長ビット生成装置における置換パターンの生成方法の一例を示すフローチャートである。 図5は、図4における置換パターン生成手順の一例を示すフローチャートである。 図6は、本発明の第二実施例による冗長ビット生成装置の機能的構成を示すブロック図である。 図7は、第二実施例による冗長ビット生成方法を説明するためのタイムチャートである。 図8は、第二実施例による冗長ビット生成方法における長さnのビット列hと置換パターンπの生成手順の一例を示すフローチャートである。 図9は、本発明の第二実施例による冗長ビット生成装置を備えた誤り検出装置の機能的構成を示すブロック図である。 図10は、上記実施例による冗長ビット生成装置の機能をコンピュータプログラムにより実現する情報処理装置の概略的構成を示すブロック図である。 図11は、本発明による冗長ビット生成装置を適用したPolar符号化装置の一例を示すブロック図である。 図12は本発明による誤り検出装置を用いたPolar復号装置の一例を示すブロック図である。
<実施形態の概要>
本発明の実施形態によれば、巡回冗長検査(CRC)多項式から算出された置換パターンを用いて冗長ビットを情報ビット内に分散配置することができる。これにより、冗長ビットが伝送データフレームの途中に配置され、全ての情報ビット部分を入力することなく誤りの検出が可能となり、平均的に少ない時間で誤りの検出を行うことができる。また、伝送データフレームのビット位置を入れ替えることで、ランダムエラーに対する検出精度は既存のCRC技術と同様であり、検出精度の劣化は伴わない。
以下、図面を参照しながら、本発明の実施形態および実施例について詳細に説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であって、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
1.実施形態
本発明の一実施形態による符号器は、CRC多項式から得られた置換パターンを用いることで、所定長の情報ビット列の中に複数の冗長ビットが分散配置された伝送フレームを生成することができる。各冗長ビットは、同じCRC多項式を用いて、当該冗長ビットより前のビット列、すなわち先行する情報ビット列、あるいは先行する情報ビット列および冗長ビット、から生成される。以下、図1を参照しながら、本実施形態による符号化により生成されるデータフレームの一例を詳細に説明する。
図1に例示するように、データフレームはkビットの情報とrビットの冗長からなる長さnビットのデータ列(符号)である。当該データ列は、情報ビット部分10、11,12、13・・・と冗長ビット部分20、21,22,23・・・とが交互に配置された構造を有し、情報ビット部分10、11,12、13・・・のそれぞれの長さ、言い換えれば情報ビット部分に配置される冗長ビットのパターンは、後述するようにCRC多項式により決定することができる。各冗長ビットは、それよりも先行する(左側に位置する)情報ビット(あるいは情報ビットおよび冗長ビット)に基づいて生成される。
例えば、図1に示すように、データ列のビットは、先頭ビットを0番目として順に(n−1)番目まで付番され、r個の冗長ビットがそれぞれt、t、・・・tr−1番目のビットに配置されているものとする。この場合、t番ビットに位置する第1冗長ビットは、それよりも左に位置する0〜(t−1)までの情報ビットによって定まる。同様に、t番ビットに位置する2番目の冗長ビットは、それよりも左に位置する0〜(t−1)までの全ビット、すなわち0〜(t−1)までの情報ビット、t番目の第1冗長ビットおよび(t−1)〜(t−1)までの情報ビット、によって定まる。以下同様に、j番目の冗長ビットは、データ列の左端からt(j−1)番目のビットに位置し、それよりも左側に位置する0〜(tj−1−1)までの全ビットによって定まる。
上述したように冗長ビットを分散配置させたことで、受信側の復号器は、各冗長ビット
を利用して、それよりも左側に位置する受信データに誤りが有るか否かを検査することが可能となる。即ち、受信データ列の全情報ビットを参照することなく、途中の冗長ビットを読み出した時点で誤りの有無を判定することができ、平均して早期の誤り検出が可能となる。
2.第一実施例
上述した図1に例示した冗長ビットの分散配置は、冗長ビットを付加したデータフレームのビットを後述する置換パターンπに基づいて入れ替えることにより実行することができる。以下、この方法を採用した本発明の第一実施例について図2〜図5を参照しながら説明する。
2.1)構成
図2に例示するように、本実施例による符号器は、CRC演算機能30とビット入れ替え機能31とを有する。まず、CRC演算機能30は、予め与えられたCRC多項式32を用いて冗長ビットを算出する。さらに、ビット入れ替え機能31は、当該CRC多項式32から生成された置換パターン33を用いて、CRC演算30により得られたビット列のビット入れ替えを実行し、図1に示す冗長ビットが分散配置されたnビット出力を生成する。以下、図1に示す冗長ビットの分散配置を可能にする置換パターン33を置換パターンπと呼ぶことにする。
図3に例示するように、本発明の第一実施例による符号器100は、CRC算出部101と、その後段に設けられたインターリーバ102と、からなる。CRC算出部101は上述したようにCRC演算により冗長ビットを算出して情報ビットに追加した伝送フレームC1を出力し、インターリーバ102は、置換パターンπを用いて、伝送フレームC1中のビット位置を並び替え、図1に示すような伝送フレームC2を出力する。
2.2)置換パターンπの生成手順
置換パターンπは、冗長ビットを生成するCRC多項式から次の手順により予め算出され、保存される。
図4に例示するように、まず、CRC多項式g(x)の次数をr、周期をpとして、多項式xp−1をCRC多項式g(x)によって除算し、商多項式q(x)=q+qx+・・・+qを算出する(動作S201)。
続いて、商多項式q(x)の係数q、q、・・・qから、長さnのビット列h,h,…,hn−1を次式(1)により生成する(動作S202)。
Figure 0006875661
続いて、生成されたビット列h,h,…,hn−1から、所定の手順(図5参照)によって、上述した冗長ビットが出力される時点t、t、・・・tr−1の計算に必要な置換パターンπ(0)、π(1)、・・・π(n−1)を生成し(動作S203)、メモリに格納される(動作S204)。
こうして生成された置換パターンπに従って、インターリーバ102はデータフレームC1のビットを入れ替えてデータフレームC2を出力する。なお、置換パターンπは、0〜n−1の間のn個の整数の順序を他の順序で置き換える操作を示す。例えば、n=5であれば、0,1,2,3,4の順序を置換パターンπによって並べ替えた結果、1,0,4,2,3になったとすれば、π(0)=1、π(1)=0、π(2)=4、π(3)=2、π(4)=3と表記される。
<置換パターンπ>
置換パターンπの生成手順の一例を図5に示す。変数t,i,jを初期化した後(動作S301,S302)、hr−1−i+j=1であり、かつjが{π(0)、π(1)、・・・、π(t−1)}の中に含まれていない場合(動作S303のYES)、π(t)をjとして保存し、tを1だけインクリメントする(動作S304)。なお、hr−1−i+jが1でないか、あるいはjが{π(0)、π(1)、・・・、π(t−1)}の中に含まれる場合には(動作S303のNO)、動作S304は実行されない。
続いて、jがk+i未満であるか否かを判断し(動作S305)、j<k+iであれば(動作S305のYES)、jを1だけインクリメントして(動作S306)、動作S303へ戻る。以下、jをインクリメントしながら、jが(k+i)以上になるまで動作S303〜S306を繰り返す。jが(k+i)以上になると(動作S305のNO)、iがu−1未満であるか否かを判断し(動作S307)、i<u−1であれば(動作S307のYES)、iを1だけインクリメントして(動作S308)、動作S302へ戻ってjを初期化する。以下、iをインクリメントしながら、iが(u−1)以上になるまで動作S302〜S308を繰り返す。なお、uは冗長ビット数r以下の正の整数であり、動作S307は冗長ビットの前半uビット分のみを置換パターンにより分散させることを意味する。
こうしてiが(u−1)以上になると(動作S307のNO)、tが(n−1)を超えているか否かを判断し(動作S309)、tが(n−1)以下であれば(動作S309のNO)、kの値がtからn−1に到達するまで、以下の演算を順次実行する(動作S310)。
Figure 0006875661

tが(n−1)を超えていれば(動作S309のYES)、動作S310は実行されない。
こうして、tが(n−1)に到達すると、その時点で保持されている{π(0)、π(1)、・・・、π(n−1)}を置換パターンπとして出力する(動作S311)。
なお、上述したように、動作S307におけるuは、冗長ビットの一部分(前半uビット分)のみを置換パターンにより分散させるためのパラメータである。したがって、u=rであれば、全ての冗長ビットが図1に例示するように情報ビット部分内に分散する。
一般に、図4における動作S202で導いた長さn(=k+r)のビット列h,h,…,hn−1に関して、当該ビット列の後半k+1番目以降の系列hr−1,h,…,hn−1に含まれる1の個数が、置換パターンπによって入れ替えられた系列において最初の冗長ビットが現れる時点に対応する。言い換えれば、後半k+1番目以降のビット系列
に含まれる1の個数をwとすれば、最初の冗長ビット(図1における1st冗長ビット)が現れる時点tがw−1に等しい(t=w−1)あるいはt<wという関係が成立する。以下、具体例を用いて説明する。
2.3)例
図4および図5に示す置換パターンπの生成手順の具体例を挙げる。一例として、情報ビット数k=30、冗長ビット数r=8、CRC多項式g(x)=x+x+x+1のケースを説明する。なお、多項式g(x)の周期pは、多項式x−1がg(x)で割り切れる最小の整数であり、ここではp=127となる。
多項式x−1をg(x)で割った商多項式q(x)の係数から、図4の動作S202の処理により、次に示す38ビット(=k+r)のビット列:
…h37=00110011010000101011010101000111000001
が得られる。
この38ビットのビット列から図5の手順により、次の置換パターンπ(0),π(1),…,π(37) が得られる:0 2 7 9 11 12 14 16 18 22 23 24 30 1 3 8 10 13 15 17 19 25 31 4 20 26 32 5 21 27 33 6 28 34 29 35 36 37
この置換パターンπ(0),π(1),…,π(37)の下線部は冗長ビットが現れる時点t,t,・・・、tとなり、それぞれ時点t=12, 22, 26, 30, 33, 35, 36, 37となる。上記ビット列:h…h37=00110011010000101011010101000111000001の中に含まれる1の数は16であり、後半の31ビット中に現れる1の数wが13である。したがって、t=w−1=12の時点で最初の冗長ビットが現れる。
以上より、本方式による冗長ビット分散配置を採用することにより、全てのデータを受信する前に、最短で、時点t=w−1で誤り検出を行うことが可能となり、誤り検出に要する平均時間を短縮する事が可能となる。特に、本実施例による冗長ビット生成装置は、既存のCRC演算により冗長ビットを算出した後で、同じCRC多項式から生成された置換パターンにより並び替えを行っているために、簡単な構成で図1に示す冗長ビットを分散配置したデータ列を得ることができる。
3.第二実施例
上述した図1に例示するデータ構成は、上述した第一実施例だけでなく、冗長ビット生成過程で上記置換パターンπを用いることにより生成することもできる。
図6に例示するように、本発明の第二実施例による冗長ビット生成装置400は、kビットの情報ビット列を入力し、図1に示すようなr個の冗長ビットを分散させたn(=k+r)ビットのデータ列を出力する。以下、本実施例による冗長ビット生成装置400の機能的構成および動作について説明する。
3.1)構成
冗長ビット生成装置400は、選択スイッチ401と、r個のスイッチSW(0)〜SW(r−1)からなるスイッチ群402と、r個の累積加算部(排他的論理和回路EXおよび1ビットレジスタRの組)と、入力Dおよび累積加算部の出力S(i)から一つを選択するセレクタ403と、選択スイッチ401、スイッチ群402およびセレクタ403を制御するコントローラ404と、後述する長さnのビット列hと置換パターンπとを格納するメモリ405と、を有する。なお、各累積加算部は排他的論理和回路EXおよび1ビットレジスタRが直列接続された回路であり、以下、i=0,1,…,r−1とす
る。
選択スイッチ401は、kビット情報が入力する端子Aと、セレクタ403の出力が入力する端子Bと、端子AあるいはBに選択的に接続する端子Cとを有し、端子Cはスイッチ群402の各スイッチSW及びセレクタ403の1つの入力Dに接続されている。選択スイッチ401は、コントローラ404の制御に従って、kビット情報あるいはセレクタ403の出力のいずれかを選択し、選択されたビットをスイッチ群402へ出力する。
スイッチ群402のスイッチSW(0)、SW(1)、・・・SW(r−1)は、それぞれ、累積加算部の排他的論理和回路EX、EX、・・・EXr−1に接続され、コントローラ404からの制御信号hπ(t)+r-1、hπ(t)+r-2、・・・hπ(t)により個別にオープン/クローズ制御される。これら制御信号hπ(t)+r-1-iは、後述するように、時点t毎に変化し、スイッチ群402の開閉状態を時点毎に変化させる。このようなスイッチSW(i)の開閉制御により、選択スイッチ401により選択されたビットを、対応する累積加算部へ出力するか否かが決定される。
各排他的論理和回路EXは1ビットレジスタRと直列接続され、対応するスイッチSW(i)の出力ビットと1ビットレジスタRの保持ビットS(i)とを入力し、その排他的論理和を新たな保持ビットとして1ビットレジスタRへ出力する。即ち、1ビットレジスタR〜Rr−1にはスイッチ群402で選択された入力ビットに対する累積加算結果が保持される。
セレクタ403は、コントローラ404の制御に従って、選択スイッチ401の端子Cの出力ビットDおよび1ビットレジスタR〜Rr−1のそれぞれの保持ビットS(0)〜S(r−1)から1つを選択し、n(=k+r)ビットのデータ列として出力する。尚、後述するように、本装置は送信側で冗長ビットの生成に利用できるだけでなく、受信側で誤り検出を実行する装置としても利用可能である。
3.2)動作
次に、図6および図7を参照しながら、上述した冗長ビット生成装置400がkビット入力情報から図1に示した形式のnビット出力を得る動作を説明する。まず、1ビットレジスタR〜Rr−1の保持ビットはそれぞれ0に初期化されているものとする。
図7において、kビット入力情報の最初の情報ビット部分10が入力する間、選択スイッチ401は端子Aを選択して、入力ビットを順次スイッチ群402へ出力する。入力ビットは、各スイッチSWが開閉制御されたスイッチ群402を通して、累積加算部の排他的論理和回路EX〜EXr−1へ提供される。排他的論理和回路EX〜EXr−1はそれぞれ、入力ビットと1ビットレジスタR〜Rr−1の現時点での保持ビットとの排他的論理和を新たな保持ビットとして1ビットレジスタR〜Rr−1に格納する。この間、セレクタ403は入力Dを選択し、nビット出力の最初のビット部分0〜t−1として出力する。したがって、上述したように、時点0から時点t−1までにセレクタ403から出力されるビット列は、入力情報ビット部分10と同一である。
次の時点tで、セレクタ403は1ビットレジスタRの保持ビットS(0)を選択して第一番目の冗長ビットとして出力し、選択スイッチ401は端子Bを選択してセレクタ403の出力ビット、すなわち第一番目の冗長ビットをスイッチ群402へ出力する。第一番目の冗長ビットは、各スイッチSWが開閉制御されたスイッチ群402を通して、累積加算部の排他的論理和回路EX〜EXr−1へ提供され、上述したように第一番目の冗長ビットと1ビットレジスタR〜Rr−1の現時点での保持ビットとの排他的論理和によって1ビットレジスタR〜Rr−1の保持ビットを更新する。
続く時点t+1〜t−1までの間は、上述した時点0〜t−1までの動作と同様に、入力ビットがそのまま出力されると共に、1ビットレジスタの保持するデータが更新される。したがって、上述したように、時点t+1〜t−1までにセレクタ103から出力されるビット列は、入力情報ビット部分11と同一である。
次の時点tで、セレクタ403は1ビットレジスタRの保持ビットS(1)を選択して第二番目の冗長ビットとして出力し、選択スイッチ401は端子Bを選択してセレクタ403の出力ビット、すなわち第二番目の冗長ビットをスイッチ群402へ出力する。第二番目の冗長ビットは、各スイッチSWが開閉制御されたスイッチ群402を通して、累積加算部の排他的論理和回路EX〜EXr−1へ提供され、上述したように第二番目の冗長ビットと1ビットレジスタR〜Rr−1の現時点での保持ビットとの排他的論理和によって1ビットレジスタR〜Rr−1の保持ビットを更新する。
続く時点t+1〜t−1までの間は、上述した時点0〜t−1までの動作と同様に、入力ビットがそのまま出力されると共に、1ビットレジスタの保持するデータが更新される。以下同様に、情報ビットをそのまま出力しながら1ビットレジスタの保持データを更新し、冗長ビットは、対応する1ビットレジスタの保持データをセレクタ403によって選択することで出力し、選択スイッチ401を通してスイッチ群402へ提供する。
3.3)ビット列hおよび置換パターンπ
メモリ405に格納される長さnのビット列h,h,…,hn−1と置換パターンπとは、上述した第一実施例と同様に、CRC多項式から算出される。
図8において、まず、CRC多項式g(x)の次数をr、周期をpとして、多項式xp−1をCRC多項式g(x)によって除算し、商多項式q(x)=q+qx+・・・+qを算出する(動作S501)。続いて、商多項式q(x)の係数q、q、・・・qから、スイッチ群402の開閉制御に必要な長さnのビット列h,h,…,hn−1を、上述した式(1)により生成する(動作S502)。
続いて、生成されたビット列h,h,…,hn−1から、所定の手順(図5参照)によって、上述した冗長ビットが出力される時点t、t、・・・tr−1の計算に必要な置換パターンπ(0)、π(1)、・・・π(n−1)を生成する(動作S503)。こうして得られたビット列h,h,…,hn−1と置換パターンπ(0)、π(1)、・・・π(n−1)とがメモリ405に格納される(動作S504)。
コントローラ404は、各時点t=0,1,2,・・・n−1において、置換パターンπとビット列h,h,…,hn−1とを用いてスイッチ群402の各スイッチSWの開閉を決定する。より詳しくは、時点tにおいて、スイッチSW(i)は、hπ(t)+r-1-i=1であれば閉じ、それ以外であれば開く。なお、π(t)+r-1-iの値が0〜n−1の範囲外であれば、各スイッチSW(i)は開状態となる。
また、コントローラ404は、セレクタ403が時点t=0,1,2,・・・n−1において選択する信号を変化させ、上述した冗長ビットを選択する時点t(t、t、・・・tr−1)を次式により決定する。
=π-1(k+i)
ここで、π-1は、上記置換パターンπの逆変換であり、kは情報ビット数、iは0〜r−1の間の整数である。すなわち、セレクタ403は、時点t=π-1(k+i)において、1ビットレジスタRの保持ビットS(i)を選択し、i番目の冗長ビットとして出力し、それ以外の時点では入力データDを選択して出力する。
以上述べたように、本発明の第二実施例による冗長ビット生成装置400は、kビットの情報ビット列を入力し、図1に示すようなr個の冗長ビットを分散させたn(=k+r)ビットのデータ列を出力することができる。
3.4)誤り検出
図6に例示した冗長ビット生成装置400は、送信側で冗長ビットの生成に利用できるだけでなく、受信側で誤り検出を実行することも可能である。図1に例示したデータが送信され、その受信データに含まれる誤りを検出する場合、符号化とは逆の手順が採用される。
図9に例示するように、受信側の誤り検出装置400rは、図6に示す冗長ビット生成装置と同様の回路構成を有するので、構成要素を図6における参照番号に「r」を付加して区別する。スイッチ群402rは、選択スイッチ401rを通して、受信データの情報ビット部分あるいは冗長ビット部分を入力し、コントローラ404rの制御に従って累積加算部へ出力する。それぞれの累積加算部は冗長ビットS(i)を算出し、セレクタ403rが受信データDあるいは算出された冗長ビットS(i)を選択する。セレクタ403rが選択したビットは判定部406rへ出力され、判定部が受信データ中の冗長ビットと算出された冗長ビットとの一致/不一致を判定する。すなわち、受信情報ビットから算出された冗長ビットと受信冗長ビットとが一致すれば誤り無し、不一致であれば誤り有と判定される。したがって、受信側の復号器においても、図6の冗長ビット生成装置の回路構成を適用可能である。
3.5)効果
上述したように、本発明の第二実施例によれば、図1に示すデータ構造を有する分散配置された冗長ビットを利用して、それよりも左側に位置する受信データに誤りが有るか否かを検査することができる。即ち、受信データ列の全情報ビットを参照することなく、途中の冗長ビットを読み出した時点で誤りの有無を判定することができ、誤り検出に要する時間を平均的に短縮することができる。特に、図6に示す冗長ビット生成装置の構成は、そのまま受信側の誤り検出にも利用することができるという利点もある。さらに、本実施例による冗長ビット生成装置400は、第一実施例におけるインターリーバ102が不要となり、それによりインターリーバを経由することにより生じる1フレーム分の遅延を削除できるという利点がある。
4.第三実施例
上述した第一及び第二実施例による装置と同様の機能は、プロセッサ上でプログラムを実行することにより実現することができる。
図10に例示するように、プロセッサ601およびプログラムメモリ602からなる情報処理装置において、プロセッサ601がプログラムメモリ602から必要なプログラムを読み出して実行することにより、図2あるいは図6に例示した回路構成をソフトウエアにより実現することができる。プロセッサ601は、CPU(Central Processing Unit)あるいはコンピュータとも呼ばれる。プログラムメモリ602は、読み出し専用でも読み書き可能メモリであってもよく、装置内に組み込まれたメモリであっても、取り外し可能なメモリであってもよい。
5.適用例
次に、上述した第一あるいは第二実施例による冗長ビット生成装置を誤り訂正技術として知られるPolar符号の符号化装置および復号装置に適用した例を説明する。
図11に例示するように、符号化装置701は、本発明の上記実施例による誤り検出用冗長ビット生成部100あるいは400と、誤り検出用冗長ビット生成部の出力データをPolar符号の情報ビット位置に割り当てるマッピング部702と、マッピングされたデータをPolar符号化するPolar符号化部703と、を備える。すなわち、誤り検出用冗長ビット生成部100あるいは400が、図1に例示するように、入力する情報ビットに対して誤り検出用の冗長ビットを分散配置したデータフレームを出力し、Polar符号化部703が符号化処理を行って対応するビット列を出力する。
図12に例示するように、第一あるいは第二実施例による冗長ビット生成回路を適用した復号装置は、Polar符号に関する通常のリスト復号部801の後段に、本発明の上記実施例による誤り検出部400rと判定部802とを備えた構成を有する。Polar符号のリスト復号器801は、ノイズ等による誤りを含む受信ビット列から、予め定められたリストサイズと同数の送信ビット列の候補を先頭ビットから順次出力する。誤り検出部400rは、出力された各ビット列に対して順次誤りの有無を検査し、判定部802は、CRCによって誤りが検出されなかった候補が正しい訂正結果と判定し、全ての候補について誤りが検出されれば、その時点で処理を終了する。
上述したように、本実施例によれば、受信データ列の全情報ビットを参照することなく、途中の冗長ビットを読み出した時点で誤りの有無を判定することができるので、Polar符号の復号装置に適用することで、誤り検出に要する時間を平均的に短縮することができる。
本発明は、通信システムにおける誤り検出用の冗長ビット生成回路を含む符号器、復号器に適用可能である。
10−13 情報ビット部分
20−23 冗長ビット
30 CRC演算
31 CRC多項式
32 置換パターン
33 ビット入れ替え
100 冗長ビット生成装置
101 CRC演算部
102 インターリーバ
400 冗長ビット生成装置
401 選択スイッチ
402 スイッチ群
403 セレクタ
404 コントローラ

Claims (26)

  1. ブロック化された情報ビットに追加される誤り検出を可能にする冗長ビットを生成する装置であって、
    巡回冗長検査(CRC)多項式により前記情報ビットから所定数の冗長ビットを生成する冗長ビット演算手段と、
    前記CRC多項式に対応して定めた置換パターンを用いて前記所定数の冗長ビットを前記情報ビット内に分散配置するビット入れ替え手段と、
    を有することを特徴とする装置。
  2. 前記置換パターンは出力データ列と同じ長さのビットパターンから生成され、
    前記ビット入れ替え手段が、前記置換パターンを用いて前記ビットパターンの順序を入れ替えることにより前記情報ビット列の中に前記所定数の冗長ビットを分散配置する、
    ことを特徴とする請求項1に記載の装置。
  3. 前記置換パターンに従って、前記出力データ列のなかで最初に現れる冗長ビットが、前記ビットパターン中に含まれる1の数より小さい値の時点に配置される、ことを特徴とする請求項2に記載の装置。
  4. 前記ビットパターンは、CRC多項式g(x)の周期pに対する多項式x−1をCRC多項式g(x)により除算して得られる商多項式q(x)の係数から生成され、
    前記置換パターンは、前記ビットパターンのなかの1の位置から生成される、
    ことを特徴とする請求項2または3に記載の装置。
  5. ブロック化された情報ビットに追加される誤り検出を可能にする冗長ビットを生成する装置であって、
    前記情報ビットを入力する、巡回冗長検査(CRC)多項式により算出される冗長ビットの数と同数の開閉スイッチ手段と、
    前記開閉スイッチ手段の各々の出力を個別に累積加算して前記冗長ビットを算出する累積加算手段と、
    前記入力した情報ビットおよび前記累積加算手段のそれぞれが算出した冗長ビットのいずれかを選択して、前記情報ビットに前記冗長ビットを追加したデータ列を生成する選択手段と、
    前記CRC多項式に対応して定めた置換パターンを用いて前記開閉スイッチ手段および前記選択手段を制御する制御手段と、
    を有することを特徴とする装置。
  6. 前記置換パターンは前記データ列と同じ長さの所定ビットパターンから生成され、
    前記制御手段が、前記置換パターンを用いて前記所定ビットパターンを置換した結果に従って前記開閉スイッチ手段の各々を開閉制御し、前記置換パターンに基づいて決定された前記冗長ビットの配置に従って、前記選択手段を選択制御する、
    ことを特徴とする請求項記載の装置。
  7. 前記置換パターンに従って、前記出力データ列のなかで最初に現れる冗長ビットが前記ビットパターン中に含まれる1の数より小さい値の時点に配置されることを特徴とする請求項6に記載の装置。
  8. 前記所定ビットパターンは、CRC多項式g(x)の周期pに対する多項式x−1をCRC多項式g(x)により除算して得られる商多項式q(x)の係数から生成され、前記置換パターンは前記所定ビットパターンのなかの1の位置から生成される、ことを特徴とする請求項6または7に記載の装置。
  9. ブロック化された情報ビットに追加される誤り検出を可能にする冗長ビットを生成する方法であって、
    冗長ビット演算手段が巡回冗長検査(CRC)多項式により前記情報ビットから所定数の冗長ビットを生成し、
    ビット入れ替え手段が、前記CRC多項式に対応して定めた置換パターンを用いて前記所定数の冗長ビットを前記情報ビット内に分散配置する、
    ことを特徴とする方法。
  10. 前記置換パターンは前記出力データ列と同じ長さのビットパターンから生成され、
    前記ビット入れ替え手段が、前記置換パターンを用いて前記ビットパターンの順序を入れ替えることにより前記情報ビット列の中に前記所定数の冗長ビットを分散配置する、
    ことを特徴とする請求項9に記載の方法。
  11. 前記置換パターンに従って、前記出力データ列のなかで最初に現れる冗長ビットを、前記ビットパターン中に含まれる1の数より小さい値の時点に配置する、ことを特徴とする請求項10に記載の方法。
  12. 前記ビットパターンは、CRC多項式g(x)の周期pに対する多項式x−1をCRC多項式g(x)により除算して得られる商多項式q(x)の係数から生成され、
    前記置換パターンは、前記ビットパターンのなかの1の位置から生成される、
    ことを特徴とする請求項10または11に記載の方法
  13. ブロック化された情報ビットに追加される誤り検出を可能にする冗長ビットを生成する方法であって、
    巡回冗長検査(CRC)多項式により算出される冗長ビットの数と同数の開閉スイッチ手段が前記情報ビットを入力し、各開閉スイッチ手段を開閉制御する第1制御信号に従って当該情報ビットを通過あるいは遮断し、
    累積加算手段が、前記開閉スイッチ手段の各々の出力を個別に累積加算して前記冗長ビットを算出し、
    選択手段が、第2制御信号に従って、前記入力した情報ビットおよび前記累積加算手段のそれぞれが算出した冗長ビットのいずれかを選択し、前記情報ビットに前記冗長ビットを追加したデータ列を生成し、
    制御手段が、前記CRC多項式に対応して定めた置換パターンを用いて前記開閉スイッチ手段および前記選択手段を制御する前記第1制御信号および前記第2制御信号を出力する、
    ことを特徴とする方法。
  14. 前記置換パターンは前記データ列と同じ長さの所定ビットパターンから生成され、
    前記制御手段が、前記置換パターンを用いて前記所定ビットパターンを置換した結果に従って前記第1制御信号を生成し、前記置換パターンに基づいて決定された前記冗長ビットの配置に従って前記第2制御信号を生成する、
    ことを特徴とする請求項13に記載の方法。
  15. 前記置換パターンに従って、前記出力データ列のなかで最初に現れる冗長ビットが、前記ビットパターン中に含まれる1の数より小さい値の時点に配置される、ことを特徴とする請求項14に記載の方法。
  16. 前記所定ビットパターンは、CRC多項式g(x)の周期pに対する多項式x−1をCRC多項式g(x)により除算して得られる商多項式q(x)の係数から生成され、前
    記置換パターンは前記所定ビットパターンのなかの1の位置から生成される、ことを特徴とする請求項14または15に記載の方法。
  17. 請求項1−8のいずれか1項に記載の装置と、
    前記装置により生成された前記データ列を入力し、誤り訂正符号を生成する誤り訂正符号化手段と、
    を有する符号器。
  18. ブロック化された情報ビットに追加された誤り検出を可能にする冗長ビットを用いて誤りを検出する装置であって、
    受信データの情報ビットを入力する、巡回冗長検査(CRC)多項式により算出される冗長ビットの数と同数の開閉スイッチ手段と、
    前記開閉スイッチ手段の各々の出力を個別に累積加算して前記冗長ビットを算出する累積加算手段と、
    前記受信データの冗長ビットおよび前記累積加算手段のそれぞれが算出した冗長ビットのいずれかを選択する選択手段と、
    前記CRC多項式に対応して定めた置換パターンを用いて前記開閉スイッチ手段の各々の開閉制御および前記選択手段の選択制御を実行する制御手段と、
    前記受信データの冗長ビットと前記算出した冗長ビットとを比較して誤りの有無を判定する判定手段と、
    を有することを特徴とする装置。
  19. 前記置換パターンは前記データ列と同じ長さの所定ビットパターンから生成され、
    前記制御手段が、前記置換パターンを用いて前記所定ビットパターンを置換した結果に従って前記開閉スイッチ手段の各々を開閉制御し、前記置換パターンに基づいて決定された前記冗長ビットの配置に従って前記選択手段を選択制御する、
    ことを特徴とする請求項18に記載の装置。
  20. 前記置換パターンに従って、前記出力データ列のなかで最初に現れる冗長ビットは、前記ビットパターン中に含まれる1の数より小さい値の時点に配置されることを特徴とする請求項19に記載の装置。
  21. 前記所定ビットパターンは、CRC多項式g(x)の周期pに対する多項式x−1をCRC多項式g(x)により除算して得られる商多項式q(x)の係数から生成され、前記置換パターンは前記所定ビットパターンのなかの1の位置から生成される、ことを特徴とする請求項19または20に記載の装置。
  22. 受信した誤り訂正符号を復号して受信データを出力する誤り訂正復号手段と、
    前記受信データを入力する請求項18−21のいずれか1項に記載の装置と、
    前記装置の判定手段が誤り有りと判定すると、前記誤り訂正復号手段の復号処理を中断することを特徴とする復号器。
  23. ブロック化された情報ビットに追加される誤り検出を可能にする冗長ビットを生成する装置としてコンピュータを機能させるプログラムであって、
    巡回冗長検査(CRC)多項式により前記情報ビットから所定数の冗長ビットを生成する冗長ビット演算機能と、
    前記CRC多項式に対応して定めた置換パターンを用いて前記所定数の冗長ビットを前記情報ビット内に分散配置するビット入れ替え機能と、
    を前記コンピュータに実現することを特徴とするプログラム。
  24. ブロック化された情報ビットに追加される誤り検出を可能にする冗長ビットを生成する装置としてコンピュータを機能させるプログラムであって、
    前記情報ビットを入力する、巡回冗長検査(CRC)多項式により算出される冗長ビットの数と同数の開閉スイッチ機能と、
    前記開閉スイッチ機能の各々の出力を個別に累積加算して前記冗長ビットを算出する累積加算機能と、
    前記入力した情報ビットおよび前記累積加算機能のそれぞれが算出した冗長ビットのいずれかを選択して、前記情報ビットに前記冗長ビットを追加したデータ列を生成する選択機能と、
    前記CRC多項式に対応して定めた置換パターンを用いて前記開閉スイッチ機能および前記選択機能を制御する機能と、
    を前記コンピュータに実現することを特徴とするプログラム。
  25. 前記データ列を入力し、誤り訂正符号を生成する誤り訂正符号化機能を前記コンピュータに更に実現することを特徴とする請求項23または24に記載のプログラム。
  26. ブロック化された情報ビットに追加された誤り検出を可能にする冗長ビットを用いて誤りを検出する装置としてコンピュータを機能させるプログラムであって、
    受信データの情報ビットを入力する、巡回冗長検査(CRC)多項式により算出される冗長ビットの数と同数の開閉スイッチ機能と、
    前記開閉スイッチ機能の各々の出力を個別に累積加算して前記冗長ビットを算出する累積加算機能と、
    前記受信データの冗長ビットおよび前記累積加算機能のそれぞれが算出した冗長ビットのいずれかを選択する選択機能と、
    前記CRC多項式に対応して定めた置換パターンを用いて前記開閉スイッチ機能の各々の開閉制御および前記選択機能の選択制御を実行する機能と、
    前記受信データの冗長ビットと前記算出した冗長ビットとを比較して誤りの有無を判定する機能と、
    を前記コンピュータに実現することを特徴とするプログラム。
JP2019535507A 2017-08-09 2017-08-09 誤り検出用冗長ビットの生成方法および装置 Expired - Fee Related JP6875661B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/028942 WO2019030860A1 (ja) 2017-08-09 2017-08-09 誤り検出用冗長ビットの生成方法および装置

Publications (2)

Publication Number Publication Date
JPWO2019030860A1 JPWO2019030860A1 (ja) 2020-08-20
JP6875661B2 true JP6875661B2 (ja) 2021-05-26

Family

ID=65272627

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019535507A Expired - Fee Related JP6875661B2 (ja) 2017-08-09 2017-08-09 誤り検出用冗長ビットの生成方法および装置

Country Status (3)

Country Link
US (1) US11362679B2 (ja)
JP (1) JP6875661B2 (ja)
WO (1) WO2019030860A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109905130B (zh) * 2017-12-08 2021-12-17 大唐移动通信设备有限公司 一种极化码编码、译码方法、装置及设备
CN118016134B (zh) * 2024-04-09 2024-07-30 杭州阿姆科技有限公司 应用于ssd上的基于raid的多重增强型纠错方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3029738B2 (ja) 1992-06-30 2000-04-04 富士電機株式会社 複数ブロック化伝送フレームの誤り検出方法
JP3545623B2 (ja) 1999-01-05 2004-07-21 株式会社エヌ・ティ・ティ・ドコモ 復号方法
US9003259B2 (en) * 2008-11-26 2015-04-07 Red Hat, Inc. Interleaved parallel redundancy check calculation for memory devices
CN109361402B (zh) * 2013-05-31 2019-09-20 华为技术有限公司 编码方法及编码设备

Also Published As

Publication number Publication date
US20200201712A1 (en) 2020-06-25
WO2019030860A1 (ja) 2019-02-14
US11362679B2 (en) 2022-06-14
JPWO2019030860A1 (ja) 2020-08-20

Similar Documents

Publication Publication Date Title
KR101433620B1 (ko) 처리량을 높이기 위하여 더블 버퍼링 구조와 파이프라이닝기법을 이용하는 디코더 및 그 디코딩 방법
JP3328093B2 (ja) エラー訂正装置
KR100833600B1 (ko) 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치
US8732548B2 (en) Instruction-set architecture for programmable cyclic redundancy check (CRC) computations
KR100210583B1 (ko) 에러정정 부호화 복호화 방법 및 이 방법을 사용하는 회로
JPS6095640A (ja) 誤り訂正方法及び装置
US6257756B1 (en) Apparatus and method for implementing viterbi butterflies
WO2001082487A1 (fr) Dispositif et procede de codage et de decodage
JP2006121686A (ja) 低密度パリティ検査コードを効率的に復号する方法及び装置
JP6875661B2 (ja) 誤り検出用冗長ビットの生成方法および装置
JPH10107650A (ja) 誤り検出回路および誤り訂正回路
US20190004738A1 (en) Methods for accelerating compression and apparatuses using the same
JP2007166031A (ja) Crc値の算出装置
JP2005086683A (ja) 誤り復号回路、データバス制御方法、及びデータバスシステム
US8745465B1 (en) Detecting a burst error in the frames of a block of data bits
US20070146194A1 (en) Encoding Circuit and Digital Signal Processing Circuit
US7861146B2 (en) Viterbi decoding apparatus and Viterbi decoding method
KR100981659B1 (ko) 산업용 컨트롤러
JP4583294B2 (ja) 誤り訂正装置、誤り訂正プログラム、及び誤り訂正方法
WO2008069465A1 (en) Method and apparatus for checking correction errors using cyclic redundancy check
JP3071482B2 (ja) パケット受信機の誤り訂正回路
US8805904B2 (en) Method and apparatus for calculating the number of leading zero bits of a binary operation
JP2006185090A (ja) Crc演算装置及びcrc演算方法
JP2621582B2 (ja) 逐次復号装置
KR100346123B1 (ko) 데이터 통신 시스템에서 패러티 검사 장치 및 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200129

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210324

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210406

R150 Certificate of patent or registration of utility model

Ref document number: 6875661

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE

Ref document number: 6875661

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees