JP4806673B2 - 復号装置及び復号方法 - Google Patents

復号装置及び復号方法 Download PDF

Info

Publication number
JP4806673B2
JP4806673B2 JP2007337548A JP2007337548A JP4806673B2 JP 4806673 B2 JP4806673 B2 JP 4806673B2 JP 2007337548 A JP2007337548 A JP 2007337548A JP 2007337548 A JP2007337548 A JP 2007337548A JP 4806673 B2 JP4806673 B2 JP 4806673B2
Authority
JP
Japan
Prior art keywords
decoding
data
decoded data
state
error
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
JP2007337548A
Other languages
English (en)
Other versions
JP2009159482A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2007337548A priority Critical patent/JP4806673B2/ja
Priority to EP08021681A priority patent/EP2075919A3/en
Priority to US12/342,595 priority patent/US8230308B2/en
Priority to KR1020080133577A priority patent/KR20090071455A/ko
Publication of JP2009159482A publication Critical patent/JP2009159482A/ja
Application granted granted Critical
Publication of JP4806673B2 publication Critical patent/JP4806673B2/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/01Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/413Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors tail biting Viterbi decoding
    • 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
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • H03M13/3753Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding using iteration stopping criteria
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明にかかる復号装置及び復号方法は、特にテイルバイティング方式の畳み込み符号データをビタビアルゴリズムに従って復号する復号装置及び復号方法に関する。
移動体通信システム等の無線通信システムでは、無線信号により通信されるデータの誤り訂正能力の向上を実現するために符号化したデータを用いて通信を行う。この符号化方法として畳み込み符号が多く用いられる。また、この畳み込み符号方法には、ターミネーティング(Terminating)方式とテイルバイティング(Tail Biting)方式とがある。
ターミネーティング方式では、符号器の初期状態と送受信するデータ列の末尾に予め定められた値を有するターミネーションビットを設定し、符号化データを生成する。また、復号器側では、符号器の初期状態の値が分かっているため、その符号器の初期状態の値を復号開始時点の復号器の初期状態として復号を行う。
一方、テイルバイティング方式では、ターミネーションビットを用いずにデータの符号処理及び復号処理を行う。テイルバイティング方式では、符号化するデータ列の最終K−1(Kは拘束長)を符号化器の初期値として設定して符号化処理を行う。つまり、テイルバイティング方式で符号化されたデータを復号した場合、復号処理を行う復号器の初期状態と最終状態とが同じ状態になる。従って、テイルバイティング方式で符号化されたデータを復号する復号器では、初期状態不明のまま復号処理を開始し、初期状態と最終状態が一致するデータの特性を利用して復号処理の停止条件を判断する。このテイルバイティング方式の復号化処理の詳細が非特許文献1に開示されている。また、テイルバイティング方式で符号化されたデータを復号するビタビ復号方法及びビタビ復号回路が特許文献1に開示されている。
ここで、特許文献1に開示されているビタビ復号方法について説明する。特許文献1に記載のビタビ復号回路では、受信した符号化データに対して加算比較選択演算(Add, Compare, Select演算、以下ACS演算と称す)を行い、復号処理を行う。このACS演算では、符号化データを復号して得られる復号データの開始状態から最終状態までの状態遷移を示すパストレースの最尤状態のパスを求める。最尤状態は、符号化前のデータを符号器において符号化した場合における符号器の状態遷移に最も確からしい(尤度が高い)と思われる復号データの状態遷移である。
図10に特許文献1に記載のビタビ復号方法のフローチャートを示す。図10に示すように、特許文献1に記載のビタビ復号方法では、まず、ACS演算処理を繰り返し実行し、各時刻でのパスの選択やパスメトリックの更新を行う(ステップS101、S102)。このACS演算処理毎に、各状態について、その状態に達するどのパスを選択したかという情報(パス選択信号)をパスメモリに記憶する。
全ての受信ビット列に対して、上記ACS演算処理の繰り返し実行が終了すると、その時点で最も尤度が大きいパスメトリックを保持する最尤状態Ssを認識する(ステップS103)。そして、この最尤状態Ssを開始状態とし、パスメモリに記憶されたパス選択信号に基づき、パスのトレースバックを行い、トレースされる各時刻の状態から復号ビットを算出し、復号ビット列Aを得る(ステップS104)。また、トレースバックが終了したときに到達した状態Srを認識する(ステップS105)。その後、復号ビット列Aのエラーチェックを行い、エラーの有無の判定を実行する(ステップS106、S107)。
この判定により、復号ビット列Aにエラーが存在するという結果が得られると、最尤状態Ssとトレースバックで到達した状態Srとを比較する(ステップS108)。両状態Ss及びSrが一致すれば、後述するステップS111に進む。一方、両状態Ss及びSrが不一致であれば、状態Srを開始状態とし、パスメモリに記憶されたパス選択信号に基づき、パスのトレースバックを行い、トレースされる各時刻の状態から復号ビットを算出し、復号ビット列Bを得(ステップS109)、その後、復号ビット列Bのエラーチェックを行い、エラーの有無の判定を実行する(ステップS110)。
ステップS107の判定の結果が復号ビット列Aにエラーがないという結果のとき、ステップS108の判定の結果が最尤状態Ssとトレース最終到達状態Srとが一致したという結果のとき、又は、復号ビット列Bに対するエラーチェックが終了したときには、出力ビット列として、得られた復号ビット列A又はBを使用するか、使用しないかや、得られた復号ビット列A又はBをエラー訂正して使用するか等を決定し、出力ビット列を送出する(ステップS111)。例えば、復号ビット列Aにエラーがないときにはこの復号ビット列Aを出力ビット列とし、復号ビット列Aにエラーがあり、復号ビット列Bにエラーがないときにはこの復号ビット列Bを出力ビット列とし、復号ビット列A及びBに共にエラーがあるときには所定ルールに従って出力ビット列を決定する。
ここで、特許文献1に記載のビタビ復号方法によるパストレースバックの具体例を説明するための状態遷移図を図11に示す。図11に示す例において、最終時刻の状態である最尤状態として、正しくない状態2が選択されたとする。このとき、特許文献1に記載のビタビ復号方法では、状態2からステップS104のパストレースバックを実行する。この状態2(10)からのトレースバックでは復号ビット「1」が得られる。復号ビット(入力ビット)が「1」であって状態2に遷移するので、前の時刻t=6での状態は状態1(01)である。従って、次の復号ビットとして、状態を規定する2ビット中の上位ビットの「0」が得られる。
以下、同様にして、次々と復号ビットが得られ、時刻t=0までトレースバックしたときには、復号ビット列として「1011010」(トレースバック順で並べている)が得られる。このように、本来の状態ではない状態2を最尤状態としてパストレースバックして得た復号ビット列「0101101」に対してエラーチェックを実行すると、エラーという結果が得られる(ステップS106、S107)。
そのため、1回目のパストレースバック(ステップS104)での最終到達状態(この場合、状態0)を、最終時刻t=7の状態としたパストレースバックが実行される(ステップS109)。パストレースバックの開始状態が状態0(00)であるので、まず、復号ビットとして「0」が得られる。時刻t=7の状態が状態0であって、その状態0へ遷移させるビット(復号ビット)が「0」であるので、時刻t=6の状態は状態1(01)である。従って、次の復号ビットとして「0」が得られる。以下、同様にして、次々と復号ビットが得られ、時刻t=0までトレースバックしたときには、復号ビット列として「0011010」(トレースバック順で並べている)が得られる。復号ビット列の順番を元に戻すと符号器への入力ビット列に等しい復号ビット列が得られる。
以上のように、特許文献1に記載のビタビ復号方法では、ある状態からのパストレースによって得られた復号信号にエラーがあり、そのパストレースでの最終的な到達状態とその開始時の状態とが異なるときに、最終的な到達状態を開始状態としたパストレースを実行し、この実行による復号信号をも候補として最終的に出力する復号信号を決定する。これにより、処理時間の増加、構成の複雑化を防止しながら、最終的に出力された復号信号の精度(誤り率)を向上させることができる。
"On Tail Biting Convolutional Codes", HOWARD H. MA et al., IEEE TRANSACTIONS ON COMMUNICATIONS, Vol COM-34, No.2, FEBRURY 1986 特開平9−232971号公報
しかしながら、特許文献1に記載のビタビ復号方法では、最尤パスについてトレースバックを行って得た復号結果が誤りである場合、トレースバックを行うパスを変更して再度トレースバックを行うが、再度のトレースバックを行って得た復号結果も誤りである場合には復号を終了してしまうため、誤り訂正能力が低いという問題点がある。
本発明の一態様にかかる復号装置は、符号化された受信データに対して加算比較選択演算を実行するACS演算器と、実行した前記加算比較選択演算に基づき算出された復号データが誤りであるか否かを検出する誤り検出部と、を有し、前記ACS演算器は、復号データが誤りである場合に再度、受信データに対して前記加算比較選択演算を実行することを特徴とする。
また、本発明に関する復号方法は、符号化された受信データに対して実行した加算比較選択演算に基づき算出された復号データが誤りである場合、受信データに対して再度、前記加算比較選択演算を実行することを特徴とする。
本発明にかかる復号装置及び復号方法によれば、誤り訂正能力を向上させることができる。
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。図1に本実施の形態にかかるビタビ復号装置1のブロック図を示す。図1に示すように、ビタビ復号装置1は、復号器10、入力メモリ20、出力メモリ21、誤り検出部22、コントローラ23を有している。以下の説明では、ビタビ復号装置1に送信機側の符号器が畳み込み符号アルゴリズムに基づき符号化したデータが入力され、ビタビ復号装置1がその入力データをビタビ復号アルゴリズムに基づき復号する例について説明する。また、ビタビ復号装置1が受信する入力データは、送受信対象のデータ列に符号化された誤り検出符号(例えば、CRC(Cyclic Redundancy Check)コード)が付加されているものとする。本実施の形態で用いる符号化前データの概略図を図2に示す。
復号器10は、ACS演算器11、内部メモリ12、トレースバック演算器13、データ比較器14、デコードコントローラ15、デコードカウンタ16を有している。ACS演算器11は、送信機側の復号器の符号化処理における符号器の状態遷移を入力メモリから読み出した入力データに基づき再現することで、入力データの復号を行う。より具体的には、ACS演算器11は、ある時点における全ての状態に至る遷移パスを候補パスとして保持しておき、入力データを手がかりとして送信機の符号器の状態遷移として最も確からしい遷移パスを選択(最尤選択)することにより、符号器の状態遷移を推定しながら復号を行う。ここで確からしさを具体的に表す量として尤度を用いる。また、本実施の形態では、復号方法としてテイルバイティング方式のビタビ復号アルゴリズムを用いる。ACS演算器11における復号演算処理として加算比較選択演算(Add, Compare, Select演算、以下ACS演算と称す)が用いられる。
ここで、ACS演算について説明する。ビタビ復号を実行するにあたっては、トレリス線図上のある状態から他の状態に至る遷移の尤度を示すブランチメトリックをトレリス線図上の各パス毎に加算して、パスの尤度を示すパスメトリックを求める。ここで、畳み込み符号化器を構成するシフトレジスタの状態遷移から明らかなように、トレリス線図における各時点の各状態に至る遷移枝は2本となる。そうすると、トレリス線図の各時点に属する各状態に至るパスの数も2つとなる。パスメトリックは、ある時点のある状態に至るパスを構成する各ブランチのブランチメトリックを積算することで求めることができる。ここで、トレリス線図上の各状態に至るパスは上述したように二つである。ビタビ復号アルゴリズムでは、ある状態に至る二つのパスのパスメトリックを比較し、尤度が高いパスを生き残りパスとして選択する(パスメトリックの値と尤度の関係は、パスメトリックをどのように定義するかによって変化する)。他方のパスはその状態に至る確からしいパスではないと判断し、捨てる。つまり、ブランチメトリックを積算し(Add)、算出されたパスメトリックを各状態で比較し(Compare)、各状態でひとつの生き残りパスを選択する(Select)。これがACS演算である。ビタビ復号のアルゴリズムではトレリス線図上の初期時点から最終時点まで、このACS演算を繰り返す。そしてトレリス線図上の最終時点に属する各状態が有するパスメトリックを比較して、最も尤度が高い一の状態を選択する。選択された一の状態に至るパスに基づき復号データを取得する(トレースバック)。ACS演算器11は、上記のACS演算を実行する演算部である。
内部メモリ12は、ACS演算器11におけるパス情報(例えば、パスの尤度情報、生き残りパス情報等)が格納される。トレースバック演算器13は、内部メモリ12に格納されているパス情報を参照して最終的に用いられる復号データを生成する。より具体的には、トレースバック演算器13は、トレースバック処理を行う。トレースバック処理は、最尤パス上のデータを最尤パスの最終状態から初期状態に向かってデータの回収を行うことで復号データを生成する。つまり、復号器10では、ACS演算器11によって復号データ候補選定を行い、トレースバック演算器13でデータの復号を行うことで復号データを生成する。
データ比較器14は、トレースバック演算器13から出力される現サイクルにおける復号データと、出力メモリ21に格納されている前サイクルにおける復号データとを比較し、その比較結果をデコードコントローラ15に出力する。デコードコントローラ15は、データ比較器14から出力される比較結果、誤り検出部22が出力する誤り検出結果、又は、デコードカウンタ16が出力するカウント値に基づき復号器10で行われている復号処理の終了判断を行う。そして、デコードコントローラ15は、終了判断結果をコントローラ23に出力する。デコードカウンタ16は、ACS演算器11においてACS演算が何サイクル行われたかをカウントし、そのカウント値を出力する。
入力メモリ20は、受信データ(以下、入力データと称す)を格納する。入力メモリ20に格納される入力データは、例えば、アンテナを介して受信した無線信号に対してベースバンド処理を施して得られるデータである。出力メモリ21は、トレースバック演算器13が出力する復号データを復号器10の諸リサイクル毎に格納する。誤り検出部22は、復号データに含まれる誤り検出符号(例えば、第1のCRC)と復号データ内のデータ列から生成される誤り検出符号(例えば、第2のCRC)とを比較して誤りを復号データの誤りを検出し、その検出結果を誤り検出結果として出力する。コントローラ23は、出力メモリ21に格納される復号データ、誤り検出部22が出力する誤り検出結果、及び、デコードコントローラ15が出力する終了判断結果を受けて復号器10の動作を制御する。
ここで、テイルバイティング方式の畳み込み符号化の処理について説明する。図3に畳み込み符号化器30のブロック図を示す。畳み込み符号化器30は、シフトレジスタD0、D1、排他的論理和回路(XOR回路)31〜33を有する。シフトレジスタD0には入力データ(図中のinput)が入力される。シフトレジスタD1には、シフトレジスタD0の出力信号が入力される。XOR回路31は入力データとシフトレジスタD0の出力信号が入力され、これら入力の排他的論理和演算結果を出力する。XOR32は、XOR回路31の出力信号とシフトレジスタD1の出力信号とが入力され、これら入力の排他的論理和演算結果を第1の出力信号(図中のoutput0)として出力する。XOR33は、入力データとシフトレジスタD1の出力信号とが入力され、これら入力の排他的論理和演算結果を第2の出力信号(図中のoutput1)として出力する。
畳み込み符号化器30においてテイルバイティング方式で符号化処理を行う場合、シフトレジスタD0、D1の初期状態として入力データの末尾の2ビットを設定する。そして、その初期値に続けて入力データを入力し、符号データを生成する。なお、初期値は、符号化処理の開始前に設定される。
畳み込み符号化器30を用いた符号化処理の一例を図4に示す入力データと出力データの関係を参照して説明する。図4に示す例では、入力データとして「1001001」を用いる。そのため、畳み込み符号化器30のシフトレジスタD0には初期値として「1」が設定され、シフトレジスタD1には初期値として「0」が設定される。そして、入力データの先頭ビットが畳み込み符号化器30に入力されることで符号化処理が開始される。
まず、入力データの先頭ビットの「1」が入力されると第1の出力信号は「0」となり、第2の出力信号は「1」となる。そして、後続の入力データを入力することで、入力データに対応した第1の出力信号として「0011111」が出力され、第2の出力信号として「1111011」が出力される。また、この符号化処理におけるシフトレジスタD0、D1の状態遷移図(以下、トレリス線図と称す)を図5に示す。
図5に示すように、シフトレジスタD1、D0の状態は、(D1、D0)=「01」を初期状態として、「11」、「10」、「00」、「01」、「10」、「00」の順に進み、最終状態は「01」となる。つまり、テイルバイティング方式では、初期状態と最終状態が同じになる。そして、復号器10では、畳み込み符号化器30におけるこの状態遷移を受信した入力データに基づき推定することで復号化を行う。
次に、復号器10における復号処理について説明する。まず、復号器10において、入力メモリ20から読み出した入力データに基づき推定可能な状態を示すトレリス線図を図6に示す。図6に示すように、トレリス線図上のそれぞれの状態に遷移する枝は2つある。そして、テイルバイティング方式では、このようなトレリス線図において、初期状態と最終状態が確定していない。そのため、本実施の形態にかかるビタビ復号装置1では、同じ入力データに対して繰り返しACS演算を行うことで1つの最尤パスを選択する。
繰り返しACS演算を行う理由は以下の通りである。ビタビ復号では、ACS演算を行う際、トレリス線図上の初期時点の各状態に対してパスメトリックの初期値を設定する。ここで、例えばターミネーティング方式のビタビ復号を行う場合、データ送信側の畳み込み符号化器の初期状態と最終状態が確定している。図3に示す畳み込み符号化器の場合、例えば初期状態と最終状態が共に状態(D1、D0)=(0、0)であるとすることができる。この場合、トレリス線図の状態遷移は状態(D1,D0)=(0、0)から開始する確率が最も高く、トレリス線図上の状態遷移が(D1,D0)=(0、0)で終了する確率がもっとも高い。そのため、ターミネーティング方式のようにトレリス線図上の状態遷移の開始状態がわかっている場合、トレリス線図上の初期時点に属する各状態のパスメトリックに対して重み付けを行うことが行われる。
例えばパスメトリックに受信データと状態遷移に対応するデータとのハミング距離を用いる場合、パスメトリックが小さいほど、その状態の尤度は高くなる。上記の例の場合、初期時点の状態(D1,D0)=(0、0)のパスメトリックを0とし、初期時点のそれ以外の状態のパスメトリックを0よりも充分大きな値とすることで、各状態に尤度の差をつけておくことができる。そして状態遷移の終了状態は最終時点の状態(D1,D0)=(0、0)が最も確からしいため、復号データを求めるトレースバックも最終時点に属する(D1,D0)=(0、0)から開始することで復号の成功率を高めることができる。
しかし、テイルバイティング方式のように、状態遷移の初期状態が確定していない場合、上記のようなパスメトリックの重み付けを行うことができない。この場合、状態遷移がトレリス線図の初期時点に属する各状態のうち、どの状態から開始するかは不明である。従ってパスメトリックの重み付けを行うことはせず、各状態に等しいパスメトリックを与える。例えばパスメトリックとして上述のハミング距離を用いた場合、初期時点に属する各状態のパスメトリックを全て0で統一することが考えられる。そして、一度、トレリス線図上の初期時点から最終時点まで、ACS演算を行う。すなわち、最終時点に属する各状態のパスメトリックが確定する。最終時点に属する各状態のパスメトリックは全て0ではなく、値はそれぞれの状態で異なる。最も確からしい状態からトレースバックを行えば、復号データを得ることができる。しかし、得られた復号データが誤りである場合がある。
本実施の形態では、復号データが誤りである場合、この最終時点の各状態のパスメトリックを初期値として、同じ受信データに対して再度ACS演算を行う。そして再度のACS演算に基づきトレースバックを行い再度復号結果を得る。再度ACS演算を行えば、前回のACS演算と受信データは同一でも、初期時点の各状態のパスメトリックが前回のACS演算を実行したときとは異なるため、再度のACS演算の結果は前回のACS演算の結果とは異なる。繰り返しACS演算を行う理由はこの点にあり、本実施の形態では、同じ受信データに対して、前回のACS演算の情報を利用して再度ACS演算を行う。すなわち、ACS演算を繰り返し実行することで、復号装置の誤り訂正能力が向上する。
図7に2サイクルのACS演算を行った場合のトレリス線図を示す。なお、以下の説明では、ACS演算の各サイクルを処理の実行順序に応じてファーストラップ、セカンドラップ、サードラップと称す。図7は、ファーストラップにおいて復号器10で得られるシフトレジスタD1、D0の初期状態が「01」であった場合に、図4に示す入力データinputを入力する例を示す。図7に示すように、入力データとして「1001001」が入力されると、復号器10で得られる状態遷移は、「01」を初期状態として、「11」、「10」、「00」、「01」、「10」、「00」の順に進み、ファーストラップの最終状態として「01」が得られる。
そして、ファーストラップの最終状態をセカンドラップの初期状態として再度同じ入力データを入力する。つまり、ACS演算を繰り返すことで、セカンドラップでは、入力データの末尾のビットを初期状態としてACS演算が進むことになる。図7に示す例では、ファーストラップにおける初期状態と最終状態とが同じ状態であるため、セカンドラップはファーストラップと同じ状態遷移となる。
このように、テイルバイティング方式では、同じデータに対して繰り返しACS演算を行うことで、2回目以降の初期状態を確定できるため、演算を繰り返す毎に誤り訂正能力が向上する。図8にテイルバイティング方式の復号処理における演算の繰り返し回数(Lap)とデータのエラー率(BLER)の関係を示す。図8に示すように、テイルバイティング方式の復号処理では、1回目の演算に対して2回目の演算で大きくエラー率が低下する。また、2回目以降では、演算の繰り返し回数が増加する毎にエラー率は低下するが、ある程度のエラー率でエラー率の低下はほとんどなくなる。つまり、演算の繰り返し回数がある程度の回数に達すると、それ以上演算を繰り返してもエラー率はそれほど変わらない。そのため、演算を繰り返してもエラーが訂正されない場合、その後に演算を続けてもエラーが訂正される可能性は低い。
ここで、本実施の形態におけるビタビ復号装置1における復号処理について説明する。ビタビ復号装置1における復号処理のフローチャートを図9に示す。図9に示すように、復号処理では、まず、ACS演算器11が入力メモリ20から一時点の入力データを読み出す(ステップS1)。続いて、ACS演算器11は、読み出した入力データに対してACS演算を行う(ステップS2)。ACS演算によって得られた復号データは、内部メモリ12に格納される。そして、ACS演算済みの入力データが打ち切り長に達しているか否かを判断する(ステップS3)。打ち切り長は、どれだけの長さの演算結果をトレースバック処理するか否かで決定される。
ステップS3において、打ち切り長に達していない場合(ステップS3:No)、ステップS1に戻り、次の時点の入力データに対してACS演算を行う。一方、ステップS3において打ち切り長に達していた場合(ステップS3:Yes)、トレースバック演算器13によってトレースバック処理を行い復号結果の取得を行う(ステップS4)。この復号結果は、復号データとして出力メモリ21に格納される。そして、1フレーム分(例えば、入力メモリ20に格納されている1サイクル分の入力データ)の全結果を取得したか否かを判断する(ステップS5)。ステップS5において、1フレーム分の全結果を取得していないと判断した場合(ステップS5:No)、再度ステップS1に戻り、続きの入力データに対するACS演算を行う。一方、ステップS5において、1フレーム分の全結果を取得できている判断した場合(ステップS5:Yes)、ステップS5までで得られた復号データの誤りを確認する(ステップS6)。
ここで、復号データが誤りである場合には再度ACS演算を行い、復号データが正しければ復号を終了することが基本的な思想である。しかし、ACS演算を一定回数以上、繰り返した後は復号データのエラーレートがさほど変化しないこと、ACS演算を無限に繰り返すことは実施の形態としてふさわしくないこと、に基づき、本実施の形態では、復号データが誤りである場合に再度ACS演算を行うかどうかを以下のように判断する。以下の実施の形態のステップによって、無駄なデコードの繰り返しを回避することができ、デコード時間を短縮することができる。さらには電子回路で構成した場合の消費電力の削減にも寄与する。
ステップS6の確認処理は、誤り検出部22によって行われる。より具体的には、誤り検出部22は、復号データに含まれる第1のCRCと、復号データに含まれるデータ列から算出される第2のCRCとの一致比較演算を行う。そして、第1のCRCと第2のCRCとが一致していれば、復号データに誤りがないと判断して、復号データが正しいことを示す検出結果を出力する(ステップS6:Yes)。一方、第1のCRCと第2のCRCとが不一致の場合、復号データに誤りがあると判断して、復号データが誤りであることを示す検出結果を出力する(ステップS6:No)。そして、デコードコントローラ15は、この検出結果に基づきコントローラ23に復号結果の状態を示す制御信号を出力する。
ステップS6でYesの枝に進む場合、デコードコントローラ15はコントローラ23に対して復号が正しく行われたことを示す制御信号を出力する。そして、コントローラ23は復号器10に復号処理の終了を指示する。一方、ステップS6でNoの枝に進む場合、デコードコントローラ15はコントローラ23に未だ復号処理が完了していないことを示す制御信号を出力する。次に、データ比較器14では、現サイクル(現ラップ)の復号データ(第2復号データ)と前サイクル(前ラップ)の復号データ(第1復号データ)の一致比較演算を行う。そして、デコードコントローラ15は、データ比較器14による比較結果を参照し、復号データが前回のラップと今回のラップで同じであるか否かを判断する(ステップS7)。
ステップS7において、比較結果が一致を示している場合(ステップS7:Yes)、デコードコントローラ15はコントローラ23に対して復号を続けても復号データに変化がないことを示す制御信号を出力する。すなわち、デコードコントローラは、復号の終了を決定する。そして、コントローラ23は復号器10に復号処理の終了を指示する。一方、ステップS7において、比較結果が不一致を示している場合(ステップS7:No)、デコードコントローラ15はコントローラ23に未だ復号処理が完了していないことを示す制御信号を出力する。次に、デコードコントローラ15はデコードカウンタ16が出力するカウント値を参照し、同じ入力データに対して行われたACS演算が規定回数に達したか否かを判断する(ステップS8)。
ステップS8においてカウント値が規定回数以上であった場合(ステップS8:Yes)、デコードコントローラ15はコントローラ23に対して復号が完了したことを示す制御信号を出力する。すなわち、デコードコントローラ15は、復号の終了を決定する。このステップ8は、本発明者が発見した図8の性質に基づき設けられているものである。そして、コントローラ23は復号器10に復号処理の終了を指示する。一方、ステップS8においてカウント値が規定回数よりも小さい場合(ステップS8:No)、デコードコントローラ15は、再度ACS演算を実行することが可能であることを示す制御信号をコントローラ23に出力し、デコードカウンタ16のカウント値を1増加させる。そして、コントローラ23は、復号器10に同じ入力データに対して再度復号処理を行うことを指示する。
再度、復号を行う場合、入力メモリに記憶された受信データについて、再度ACS演算器がACS演算を行う。このとき、ACS演算器11は、内部メモリ12から前回のACS演算で算出したパスメトリックのうち、復号パスの最終時点に属する各状態のパスメトリックを読み出す。そして読み出したパスメトリックを再度のACS演算に使用する。具体的にはACS演算器11は、内部メモリ12から読み出した各状態のパスメトリックを初期値としてACS演算を行う。以降の処理は上述した通りである。
上記説明より、本実施の形態にかかるビタビ復号装置1では、復号データに対してCRCによるエラーチェックを行った結果、復号データにエラーが含まれている場合に再度同じ入力データに対して復号処理を行う。これにより、ビタビ復号装置1は、ビタビ復号アルゴリズムに基づいて符号データのエラー訂正を繰り返し行うことができる。つまり、ビタビ復号装置1は、繰り返し演算によって誤り訂正能力を向上させることができる。
また、ビタビ復号装置1では、前ラップの復号データと現ラップの復号データとが一致していた場合に復号処理を終了する。ビタビ復号アルゴリズムは、繰り返し演算を行っても復号データに変化がない場合、その後繰り返し演算を続けても結果に変更が生じない可能性が高い。そのため、このような復号データの変化によって、復号処理の終了判断をすることで、ビタビ復号装置1は、無駄な復号処理を繰り返すことなく処理を高速化することができる。
またビタビ復号に時間制約がある場合、繰り返し何度も演算を行えない場合がある。そこで、ビタビ復号装置1では、繰り返し演算の繰り返し回数による終了判断を行う。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、誤り検出符号はCRCに限らず、データの仕様あるいは通信システムの使用に応じて適宜変更することが可能である。
実施の形態1にかかるビタビ復号装置のブロック図である。 実施の形態1にかかるビタビ復号装置に入力される入力データの符号化前の状態を示す概念図である。 畳み込み符号化器の一例を示すブロック図である。 図3の畳み込み符号化器においてテイルバイティング方式の符号化処理を行った場合の入力データと出力データの関係を示す表である。 図3の畳み込み符号化器におけるトレリス線図である。 実施の形態1にかかるビタビ復号装置のトレリス線図である。 実施の形態1にかかるビタビ復号装置において図4のデータを用いた場合のトレリス線図の一例である。 実施の形態1にかかるビタビ復号装置における演算の繰り返し回数とエラー率との関係を示すグラフである。 実施の形態1にかかるビタビ復号装置における復号処理のフローチャートである。 従来のビタビ復号方法のフローチャートである。 従来のビタビ復号回路における状態遷移図である。
符号の説明
1 ビタビ復号装置
10 復号器
11 ACS演算器
12 内部メモリ
13 トレースバック演算器
14 データ比較器
15 デコードコントローラ
16 デコードカウンタ
20 入力メモリ
21 出力メモリ
22 誤り検出部
23 コントローラ
30 符号化器
31〜33 XOR回路
D0、D1 シフトレジスタ

Claims (13)

  1. 符号化された受信データに対して加算比較選択演算を実行するACS演算器と、
    実行した前記加算比較選択演算に基づき算出された復号データが誤りであるか否かを検出する誤り検出部と、を有し、
    前記ACS演算器は、前記復号データが誤りである場合、トレリス線図に含まれる各時点の内、前記加算比較選択演算により算出された復号パスの最終状態が属する時点、に含まれる各状態のパスメトリックを使用して、再度、前記受信データに対して前記加算比較選択演算を実行することを特徴とする復号装置。
  2. 前記誤り検出部は、前記復号データに含まれる誤り検出符号に基づき前記復号データが誤りであるか否かを検出することを特徴とする請求項に記載の復号装置。
  3. 前記誤り検出部の検出結果に基づき、前記ACS演算器が前記受信データに対する前記加算比較選択演算を再度実行するか否かを判断するデコードコントローラをさらに有することを特徴とする請求項に記載の復号装置。
  4. 実行された前記加算比較選択演算に基づき算出された第1復号データと、再度実行された前記加算比較選択演算に基づき算出された第2復号データと、を比較して前記第1復号データと前記第2復号データが同一であるか否かを判定するデータ比較器をさらに有し、
    前記デコードコントローラは、前記誤り検出部が前記第2復号データの誤りを検出し、かつ、前記データ比較器が前記第1復号データと前記第2復号データが同一であると判定した場合、前記受信データの復号の終了を決定することを特徴とする請求項に記載の復号装置。
  5. 前記デコードコントローラは、前記誤り検出部が前記第2復号データの誤りを検出し、かつ、前記データ比較器が前記第1復号データと前記第2復号データは同一でないと判定した場合、前記受信データに対する前記加算比較選択演算の実行回数が所定数以下であるか否かを判定することを特徴とする請求項に記載の復号装置。
  6. 前記実行回数が所定数以下である場合、前記デコードコントローラは前記受信データに対する前記加算比較選択演算をさらに実行することを決定する請求項に記載の復号装置。
  7. 前記実行回数が所定数以上である場合、前記デコードコントローラは前記受信データの復号の終了を決定することを特徴とする請求項に記載の復号装置。
  8. 前記符号化は、データ送信側で行われるテイルバイティング方式の畳み込み符号化であることを特徴とする請求項1に記載の復号装置。
  9. 前記誤り検出符号は、CRCであることを特徴とする請求項に記載の復号装置。
  10. 符号化された受信データに対して実行した加算比較選択演算に基づき算出された復号データが誤りである場合、トレリス線図に含まれる各時点の内、前記加算比較選択演算により算出された復号パスの最終状態が属する時点、に含まれる各状態のパスメトリックを使用して、再度、前記受信データに対して前記加算比較選択演算を実行することを特徴とする復号方法。
  11. 前記復号データが誤りであるか否かを、前記復号データに含まれる誤り検出符号に基づき判定することを特徴とする請求項10に記載の復号方法。
  12. 再度、加算比較選択演算を実行して得た第2復号データが誤りである場合、前記第2復号データを算出する前に実行した加算比較選択演算に基づき算出された第1復号データと、前記第2復号データと、を比較し、前記第1復号データと前記第2復号データとが同一である場合には前記受信データの復号を終了することを特徴とする請求項10に記載の復号方法。
  13. 前記第1復号データと前記第2復号データとが同一でない場合、前記受信データに対する加算比較選択演算の実行回数を判定し、前記実行回数が所定回数以上である場合には前記受信データの復号を終了することを特徴とする請求項12に記載の復号方法。
JP2007337548A 2007-12-27 2007-12-27 復号装置及び復号方法 Expired - Fee Related JP4806673B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007337548A JP4806673B2 (ja) 2007-12-27 2007-12-27 復号装置及び復号方法
EP08021681A EP2075919A3 (en) 2007-12-27 2008-12-12 Decoding apparatus and decoding method
US12/342,595 US8230308B2 (en) 2007-12-27 2008-12-23 Decoding apparatus and decoding method using an additional add-compare-select operation on decoded data in the event of an error in the decoded data
KR1020080133577A KR20090071455A (ko) 2007-12-27 2008-12-24 디코딩 장치 및 디코딩 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007337548A JP4806673B2 (ja) 2007-12-27 2007-12-27 復号装置及び復号方法

Publications (2)

Publication Number Publication Date
JP2009159482A JP2009159482A (ja) 2009-07-16
JP4806673B2 true JP4806673B2 (ja) 2011-11-02

Family

ID=40548012

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007337548A Expired - Fee Related JP4806673B2 (ja) 2007-12-27 2007-12-27 復号装置及び復号方法

Country Status (4)

Country Link
US (1) US8230308B2 (ja)
EP (1) EP2075919A3 (ja)
JP (1) JP4806673B2 (ja)
KR (1) KR20090071455A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5315449B1 (ja) * 2012-09-25 2013-10-16 ソフトバンクモバイル株式会社 復号装置、復号方法、プログラム及び受信装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7607073B1 (en) * 2004-08-04 2009-10-20 Marvell International Ltd. Methods, algorithms, software, circuits, receivers and systems for iteratively decoding a tailbiting convolutional code
CN102377438B (zh) * 2010-08-11 2013-12-04 中兴通讯股份有限公司 信道译码方法和咬尾卷积译码器
EP2717477B1 (en) * 2011-05-27 2016-12-21 Shanghai Research Center For Wireless Communications Channel decoding method and decoder for tail-biting codes
WO2016197390A1 (zh) * 2015-06-12 2016-12-15 华为技术有限公司 信道译码的方法、装置和系统
US9787332B2 (en) * 2015-09-15 2017-10-10 Intel Corporation Error-checking compressed streams in heterogeneous compression accelerators
US10069517B2 (en) 2016-07-06 2018-09-04 Samsung Electronics Co., Ltd. Convolutional decoder and method of decoding convolutional codes
EP3576304A4 (en) * 2017-03-09 2020-07-22 Mitsubishi Electric Corporation DECODING DEVICE
KR102338852B1 (ko) * 2017-08-08 2021-12-13 삼성전자주식회사 무선 통신 시스템에서 신호를 복호하기 위한 장치 및 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5349589A (en) 1991-07-01 1994-09-20 Ericsson Ge Mobile Communications Inc. Generalized viterbi algorithm with tail-biting
JP3233847B2 (ja) * 1996-02-23 2001-12-04 沖電気工業株式会社 ビタビ復号方法及びビタビ復号回路
US5721746A (en) * 1996-04-19 1998-02-24 General Electric Company Optimal soft-output decoder for tail-biting trellis codes
US6094465A (en) * 1997-03-21 2000-07-25 Qualcomm Incorporated Method and apparatus for performing decoding of CRC outer concatenated codes
TW377427B (en) * 1998-05-26 1999-12-21 Koninklijke Philips Electronics Nv Transmission system having a simplified channel decoder applicable to mobile phone systems for better reliability in serial transmission
JP3239870B2 (ja) * 1998-12-28 2001-12-17 日本電気株式会社 データ誤り訂正システム
JP2002077121A (ja) * 2000-08-31 2002-03-15 Sony Corp データ復調装置および方法
KR100424460B1 (ko) * 2000-10-05 2004-03-26 삼성전자주식회사 터보 복호기의 전송률 검출 장치 및 방법
JP3852401B2 (ja) * 2002-12-18 2006-11-29 ソニー・エリクソン・モバイルコミュニケーションズ株式会社 信号処理装置及び方法
JP2005294898A (ja) * 2004-03-31 2005-10-20 Matsushita Electric Ind Co Ltd ビタビ復号方法、復号化装置、移動局無線装置、基地局無線装置および移動通信システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5315449B1 (ja) * 2012-09-25 2013-10-16 ソフトバンクモバイル株式会社 復号装置、復号方法、プログラム及び受信装置

Also Published As

Publication number Publication date
JP2009159482A (ja) 2009-07-16
EP2075919A2 (en) 2009-07-01
US8230308B2 (en) 2012-07-24
EP2075919A3 (en) 2012-03-21
KR20090071455A (ko) 2009-07-01
US20090172503A1 (en) 2009-07-02

Similar Documents

Publication Publication Date Title
JP4806673B2 (ja) 復号装置及び復号方法
JPH1070471A (ja) 大きな制約長を持つ場合に有効なソフト判定ビテルビ復号
KR100853139B1 (ko) 전송 포맷 검출 장치 및 방법
US8843811B2 (en) Apparatus and method for decoding in communication system
JP3233847B2 (ja) ビタビ復号方法及びビタビ復号回路
US7404139B2 (en) Decoder with M-AT-A-Time Traceback
JP2008118327A (ja) ビタビ復号方法
JP2005294898A (ja) ビタビ復号方法、復号化装置、移動局無線装置、基地局無線装置および移動通信システム
KR101212856B1 (ko) 통신 시스템에서 데이터를 복호하는 방법 및 장치
JP5169771B2 (ja) 復号器および復号方法
JP3512176B2 (ja) ターボ復号装置およびターボ復号における復号の繰返し回数の制御方法
Kim et al. A new list decoding algorithm for short-length TBCCs with CRC
KR101476560B1 (ko) 채널 복호화 방법과 테일 바이팅 길쌈부호 복호기
CN108768412B (zh) 一种低延时Viterbi译码方法及系统
JP3979266B2 (ja) ブラインドレート検出装置、復号装置、通信装置、ブラインドレート検出方法および復号方法
US8644432B2 (en) Viterbi decoder for decoding convolutionally encoded data stream
CN107342775B (zh) 删余卷积码的维特比译码方法
US8181098B2 (en) Error correcting Viterbi decoder
JP3337950B2 (ja) 誤り訂正復号化方法及び誤り訂正復号化装置
TWI760898B (zh) 資料解碼電路及方法
CN110460339B (zh) 卷积码译码的检测方法、装置、存储介质及电子设备
JP5370487B2 (ja) 復号方法および復号装置
TWI491178B (zh) 去尾迴旋碼之解碼器及解碼方法
Hulyalkar et al. Hard and Soft Decision Decoding Using Viterbi Algorithm
KR20060084218A (ko) 부호 복호 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100806

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110720

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: 20110809

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110815

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140819

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees