JP2010130271A - 復号器および復号方法 - Google Patents

復号器および復号方法 Download PDF

Info

Publication number
JP2010130271A
JP2010130271A JP2008301980A JP2008301980A JP2010130271A JP 2010130271 A JP2010130271 A JP 2010130271A JP 2008301980 A JP2008301980 A JP 2008301980A JP 2008301980 A JP2008301980 A JP 2008301980A JP 2010130271 A JP2010130271 A JP 2010130271A
Authority
JP
Japan
Prior art keywords
node
value
calculation
counter
information frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008301980A
Other languages
English (en)
Other versions
JP5169771B2 (ja
Inventor
Junya Mikami
純矢 三上
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008301980A priority Critical patent/JP5169771B2/ja
Publication of JP2010130271A publication Critical patent/JP2010130271A/ja
Application granted granted Critical
Publication of JP5169771B2 publication Critical patent/JP5169771B2/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/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

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

【課題】復号処理の遅延を防ぐこと。消費電力の増大を防ぐこと。
【解決手段】ノード数N(Nは整数)の情報フレームの全てのノード位置でACS演算を所定回数(例えば1回)行う。その所定回数目のACS演算により得られた、情報フレームの最後尾ノードのパスメトリック値を情報フレームの先頭ノードのパスメトリック値に設定して、再び情報フレームの先頭ノードからLノード目(Lは整数、L<N)の中間ノードまでの各ノード位置でACS演算を行う。所定回数目のACS演算の結果に基づいて最後尾ノードから中間ノードまでのトレースバックを行い、最後のACS演算の結果に基づいて中間ノードから先頭ノードまでのトレースバックを行う。
【選択図】図1

Description

この発明は、復号器および復号方法に関する。
従来、ターボ符号化されたデータ系列を繰り返し復号するターボ復号装置として、次のような構成の装置が知られている。例えば、排他的論理和は、要素復号器(1)、要素復号器(2)の事後値と事前値のサインビット(正負の符号)をそれぞれ比較し、レジスタ(1)、レジスタ(2)、減算器、絶対値演算器により、復号の前後における事前値と事後値のサインビットの不一致数と前回繰り返し復号時の不一致数との差分値の絶対値を算出する。閾値判定部は、差分値の絶対値と所定の繰り返し終了判定閾値とを閾値判定して、論理積は、閾値判定部における閾値判定結果に基づいて繰り返し復号の終了判定を行う(例えば、特許文献1参照。)。
特開2007−81640号公報
しかしながら、従来の復号器では、情報フレームに対して演算を繰り返し行うため、演算量が情報フレームの長さに対して繰り返し回数の整数倍となる。そのため、情報フレームが長いと演算量が膨大となり、復号処理の遅延や消費電力の増大を招くという問題点がある。
復号処理の遅延を防ぐことができる復号器および復号方法を提供することを目的とする。消費電力の増大を防ぐことができる復号器および復号方法を提供することを目的とする。
この復号器および復号方法は、情報フレームの全てのノード位置で、直前のノード位置からの遷移確率の高いパスを選択する演算を所定回数行う。その所定回数目の演算により得られた、情報フレームの最後尾ノードに関する値を情報フレームの先頭ノードの値に設定して、その先頭ノードから情報フレームの中間ノードまでの各ノード位置でさらに同様の演算を行う。
この復号器および復号方法によれば、最後の演算では、情報フレームの先頭ノードから中間ノードまで演算すればよいので、情報フレームの全てのノードに対して演算を繰り返す場合に比べて、演算量が減る。
この復号器および復号方法によれば、復号処理の遅延を防ぐことができる。また、消費電力の増大を防ぐことができる。
以下に添付図面を参照して、この復号器および復号方法の好適な実施の形態を詳細に説明する。
図1は、実施の形態にかかる復号器による復号処理を示す説明図である。図1に示すように、ノード数N(Nは整数)の情報フレームの全てのノード位置で、直前のノード位置からの遷移確率の高いパスを選択する演算を所定回数、図示例では1回、行う。その所定回数目の演算により得られた、情報フレームの最後尾ノードに関する値を情報フレームの先頭ノードに関する値に設定して、再び情報フレームに対して演算を行う。最後の演算では、情報フレームの先頭ノードからLノード目(Lは整数、L<N)の中間ノードまでの各ノード位置で演算を行う。そして、所定回数目の演算の結果に基づいて最後尾ノードから中間ノードまでのトレースバックを行い、最後の演算の結果に基づいて中間ノードから先頭ノードまでのトレースバックを行う。ここでは、簡単のため、前記所定回数を1回とする。従って、以下の説明では、1回目の演算が所定回数目の演算に該当し、2回目の演算が最後の演算に該当する。なお、所定回数が2回以上でも同様である。演算としては、例えばACS(Add Compare Select)演算が含まれる。情報フレームの最後尾ノードに関する値や、情報フレームの先頭ノードに関する値としては、例えばパスメトリック値が含まれる。
(受信機の説明)
図2は、実施の形態にかかる受信機の構成を示す説明図である。図2に示すように、受信機1は、無線部2、FFT(離散フーリエ変換)部3、サブキャリアデマッパ部4、復調部5および復号部6を備えている。無線部2は、アンテナ7で受信した受信信号の搬送波周波数での処理を行い、ダウンコンバート後のベースバンド信号を得る。FFT部3は、ベースバンド信号からガードインターバル部(GI)を除去した信号に対して高速フーリエ変換を行い、ベースバンド信号を周波数領域のサブキャリア信号に変換する。サブキャリアデマッパ部4は、サブキャリア信号に多重されている複数の物理チャネルを個々の物理チャネルに分離する。復調部5は、物理チャネルの受信信号を検波して尤度信号を得る。復号部6は、尤度信号を復号して受信データを得る。
(復号部の説明)
図3は、実施の形態にかかる復号部の構成を示す説明図である。図3に示すように、復号部6は、デインターリーブ部11、レートデマッチング部12、ビタビ復号器13およびCRC検査部14を備えている。デインターリーブ部11は、送信機において送信時のインターリーブによって入れ替えられたビットの並びを元に戻す。レートデマッチング部12は、送信機において送信時のレートマッチングによって間引き処理されたビットや繰り返し処理されたビットを処理して元のビットサイズに戻す。ビタビ復号器13は、畳み込み符号の復号を行う。CRC検査部14は、復号後のデータに対して巡回冗長検査を行って復号結果が正しいか否かを検査し、CRCビットを除去して受信データを出力する。
(ビタビ復号器の説明)
図4は、実施の形態にかかるビタビ復号器の構成を示す説明図である。図4に示すように、ビタビ復号器13は、入力データバッファ21、ブランチメトリック演算部22、パスメトリックメモリ23、ACS演算部24、パスメモリ25、最尤判定部26、トレースバック部27、TBCC条件検査部28および制御部29を備えている。入力データバッファ21は、1情報フレーム分の入力データを保持する。ブランチメトリック演算部22は、入力データから各状態の遷移確率を表すブランチメトリック値を求める。ここで、状態とは、送信側の畳み込み符号器の遅延素子の状態を、畳み込み符号器の入力側から順に表したものである(図5参照)。パスメトリックメモリ23は、前ノードのパスメトリック値と現在のノードのパスメトリック値を保持する。パスメトリック値は、ブランチメトリック値の累積値である。パスメトリックメモリ23は、2バンク構成のメモリで構成されている。一方のバンクが前ノードのパスメトリック値の読み出しに用いられているときに、他方のバンクは現在のノードのパスメトリック値の書き込みに用いられる。
ACS演算部24は、ブランチメトリック値および前ノードのパスメトリック値に基づいて現在のノードのパスメトリック値を求める。そして、ACS演算部24は、現在のノードのパスメトリック値に基づいて、各状態について2つの前ノードからのパスのうち、どちらかの生き残りパスを選択する。パスメモリ25は、ACS演算部24により選択された生き残りパスの値(0または1)を保持する。最尤判定部26は、トレースバック開始位置において、パスメトリック値の中から最大尤度の状態を検索する。トレースバック部27は、パスメモリに保持された生き残りパスを逆順に辿ってデコード結果を求める。
TBCC条件検査部28は、トレースバックの開始状態とトレースバックの終了状態とが一致するか否かを判定して、TBCC条件を満たすか否かを検査する。TBCC条件とは、トレースバックの開始状態と終了状態とが一致するというテイルビッティングコンボリューションコード(Tail biting Convolutional Code)の束縛条件のことである。制御部29は、ACS演算部24に対して処理中のノード番号および状態番号を管理して、入力データバッファ21やパスメトリックメモリ23やパスメモリ25などのアドレス制御やその他の制御を行う。また、制御部29は、最尤判定部26の判定結果に基づいてトレースバック開始状態を指示する。また、制御部29は、TBCC条件検査部28の検査結果に基づいてデコードが完了したことを判定する。
次に、制御部29およびトレースバック部27について詳細に説明する。ここでは、簡単のため、送信機において図5に示す畳み込み符号器により畳み込み符号化された情報を受信機側で復号する場合を例にする。
図5は、畳み込み符号器の構成を示す説明図である。図5に示すように、畳み込み符号器100は、6個の遅延素子(D)を有し、その拘束長K(Kは整数)は7である。従って、情報フレームの各ノードには、6個の遅延素子(D)の状態に応じた64(=26)通りの状態がある。また、この畳み込み符号器100の符号化率は1/3である。図5において、左側が情報ビットの入力側であり、右側が出力側である。なお、畳み込み符号器の拘束長および符号化率は、これらの値に限らない。
(制御部の説明)
図6は、実施の形態にかかる制御部の構成を示す説明図である。図6に示すように、制御部29は、セレクタ31、第2カウンタである繰り返しカウンタ32、第1カウンタであるノードアップカウンタ33、状態カウンタ34、タイミングカウンタ35、比較部36、入力バッファアドレス演算部37、パスメトリックアドレス演算部38およびデコーダ39を備えている。
タイミングカウンタ35は、メトリック演算時やACS演算時に所定のタイミングを生成する。タイミングカウンタ35は、デコード開始時の初期化信号の入力によって初期値に設定され、イネーブル信号の入力によってカウントアップする。タイミングカウンタ35の上限値は、生成するタイミングの数に応じて設定される。図6に示す例では、タイミングカウンタ35は、その上限値が例えば3に設定される4進カウンタである。デコーダ39は、タイミングカウンタ35の出力値をデコードし、パスメトリックメモリ読み出し1タイミング、パスメトリックメモリ読み出し2タイミング、パスメトリックメモリ・パスメモリ書き込みタイミングおよび状態カウンタ34のカウントタイミングを生成する。
状態カウンタ34は、あるノードタイミングに対する状態数分の演算の繰り返しを制御する。状態カウンタ34は、初期化信号の入力によって初期値に設定され、デコーダ39から出力されるイネーブル信号の入力によってカウントアップする。状態カウンタ34は、その上限値s_maxが[2(K-1)−1]に設定される2(K-1)進カウンタである(K:畳み込み符号器の拘束長)。図5に示す畳み込み符号器100の場合、K=7であるので、状態カウンタ34は、その上限値s_maxが63(2進数の表記では111111)に設定される64進カウンタである。状態カウンタ34から出力される演算指定信号は、ACS演算部24においてACS演算を行う際の演算すべき状態の指定に用いられる。状態カウンタ34のキャリーアウト信号は、ノードアップカウンタ33のカウントタイミングに用いられる。
ノードアップカウンタ33は、ノードタイミングの繰り返しを制御する。ノードアップカウンタ33は、初期化信号の入力によって初期値に設定され、状態カウンタ34のキャリーアウト信号がイネーブル信号として入力することによってカウントアップする。ノードアップカウンタ33は、その上限値がセレクタ31の出力値によって設定されるN進カウンタである(N:情報フレームのノード数)。ノードアップカウンタ33のキャリーアウト信号は、繰り返しカウンタ32のカウントタイミングに用いられる。
繰り返しカウンタ32は、ACS演算の繰り返しを制御する。繰り返しカウンタ32は、初期化信号の入力によって初期値に設定され、ノードアップカウンタ33のキャリーアウト信号がイネーブル信号として入力することによってカウントアップする。繰り返しカウンタ32は、その上限値が[i_max−1]に設定されるi_max進カウンタである(i_max:ACS演算の繰り返し回数の最大値、iは2以上の整数)。ACS演算を2回行う場合、i_maxは2である。繰り返しカウンタ32のキャリーアウト信号は、ACS演算の完了を示す完了信号として用いられる。
比較部36は、[i_max−1]と繰り返しカウンタ32の出力値とを比較し、両者が一致するときに一致信号を出力し、一致しないときに不一致信号を出力する。セレクタ31は、比較部36から不一致信号が出力されるときに、ノードアップカウンタ33に上限値として[N−1]を設定し、比較部36から一致信号が出力されるときに、ノードアップカウンタ33に上限値として[L−1]を設定する。つまり、所定回数目までは、情報フレームの全ノード(ノード数N)についてACS演算を行い、所定回数目の次の回では、情報フレームの先頭ノードから中間のLノード目までについてACS演算を行う。ACS演算の繰り返し回数の最大値i_maxが2であるときには、1回目のACS演算では、情報フレームの全ノードを演算の対象とし、2回目のACS演算では、途中のノード(Lノード目)までを演算の対象とする。
パスメトリックアドレス演算部38は、状態カウンタ34の出力値およびノードアップカウンタ33の出力の例えば最下位ビット(LSB:Least Significant Bit)に基づいて、パスメトリックメモリ23に対する読み出し1アドレス、読み出し2アドレスおよび書き込みアドレス、並びにパスメモリ25に対する書き込みアドレスを生成する。例えば、状態カウンタ34の出力値を2進数の表記でs5s4s3s2s1s0とし、ノードアップカウンタ33の出力値の最下位ビットの値を2進数の表記でn0とする。n0、s0、s1、s2、s3、s4およびs5の値は、0または1である。この場合、パスメトリックアドレス演算部38は、2進数の表記で、0側の状態の読み出し1アドレスとしてn0s4s3s2s1s00を生成し、1側の状態の読み出し2アドレスとしてn0s4s3s2s1s01を生成し、書き込みアドレスとして/n0s5s4s3s2s1s0を生成する。ここで、/n0は、n0を反転した値である。これらのアドレスの最上位ビット(n0、/n0)は、パスメトリックメモリ23のバンクを切り替える信号として用いられる。
n0の値は、ノードアップカウンタ33がカウントアップするたびに0と1とで切り替わるので、パスメトリックメモリ23において、読み出しのバンクと書き込みのバンクが交互に入れ替わることになる。つまり、あるノードタイミングで一方のバンク(バンクAとする)から前ノードの0側および1側の各状態のパスメトリック値が読み出され、他方のバンク(バンクBとする)に現在のノードのパスメトリック値が書き込まれると、次のノードタイミングでバンクBから前ノードの0側および1側の各状態のパスメトリック値が読み出され、バンクAに現在のノードのパスメトリック値が書き込まれる。
入力バッファアドレス演算部37は、ノードアップカウンタ33の出力値に基づいて、入力データバッファ21に対する読み出しアドレスを生成する。例えば、ノードタイミングm(mは整数、0≦m≦N−1)の入力データのアドレスがmである場合には、入力バッファアドレス演算部37は、ノードアップカウンタ33の出力値をそのまま入力データバッファ21に対する読み出しアドレスとして出力する。
図7および図8は、実施の形態にかかる制御部の動作タイミングを示す説明図である。図7および図8において、t_outはタイミングカウンタ35の出力値である。s_enおよびs_outは、それぞれ、状態カウンタ34のイネーブル信号および出力値である。n_enおよびn_outは、それぞれ、ノードアップカウンタ33のイネーブル信号および出力値である。i_enおよびi_outは、それぞれ、繰り返しカウンタ32のイネーブル信号および出力値である。
例えば、図7に示すように、パスメトリックメモリ読み出し1タイミングおよびパスメトリックメモリ読み出し2タイミングで、それぞれ、パスメトリックメモリ23の一方のバンクから前のノードの0側および1側の各状態のパスメトリック値が読み出される。そして、ACS演算部24において、読み出された各パスメトリック値に、それぞれ、対応するブランチメトリック値が加算され、生き残りパスが選択される。その生き残りパスのパスメトリック値は、パスメトリックメモリ書き込みタイミングでパスメトリックメモリ23の他方のバンクに書き込まれる。また、パスメモリ書き込みタイミングでパスメモリ25に生き残りパスが書き込まれる。タイミングカウンタ35が上限値に達し、キャリーアウトが発生すると、状態カウンタ34がカウントアップし、状態が遷移する。現在のノードタイミングにおいて全ての状態に対する生き残りパスとそのパスメトリック値がメモリに書き込まれると、状態カウンタ34が上限値に達してキャリーアウトが発生する。それによって、ノードアップカウンタ33がカウントアップし、次のノードへ遷移する。このような動作が繰り返される。
図8に示すように、ノードアップカウンタ33が上限値に達し、キャリーアウトが発生すると、繰り返しカウンタ32がカウントアップし、先頭ノードからACS演算の繰り返しが始まる。繰り返しカウンタ32が上限値(図示例では、1)のときには、ACS演算は先頭ノードから途中のLノード目までのノードについて図7に示す動作を行う。繰り返しカウンタ32が上限値に達し、キャリーアウトが発生すると、完了信号が出力される。
(トレースバック部およびTBCC条件検査部の説明)
図9は、実施の形態にかかるトレースバック部およびTBCC条件検査部の構成を示す説明図である。図9に示すように、トレースバック部27は、セレクタ41、ノードダウンカウンタ42、状態レジスタ43、パスメモリアドレス演算部44、前状態演算部45およびデコード結果アドレス演算部46を備えている。TBCC条件検査部28は、比較部51およびレジスタ52を備えている。
ノードダウンカウンタ42は、トレースバック時に、ノードタイミングを逆から辿る際のノードタイミングの繰り返しを制御する。ノードダウンカウンタ42は、カウントダウンの初期値として[N−1]が設定され、初期化信号の入力によってカウントダウンを開始するN進カウンタである。ノードダウンカウンタ42は、カウンタ値がゼロになると、ゼロ信号をTBCC条件検査部28へ出力する。セレクタ41は、初期化信号の入力時に、状態指定データにより指定されるトレースバック開始状態を選択し、それ以外のときに前状態演算部45の出力データを選択する。状態レジスタ43は、セレクタ41から出力されるデータを保持する。パスメモリアドレス演算部44は、ノードダウンカウンタ42の出力値と状態レジスタ43の格納データに基づいて、パスメモリ25に対する読み出しアドレスを生成する。
前状態演算部45は、パスメモリ25から読み出されたデータおよび状態レジスタ43の格納データ(現在の状態を表すデータ)に基づいて、前の状態を演算する。前状態演算部45により求められた前の状態を表すデータは、セレクタ41を介して状態レジスタ43に現在の状態を表すデータとして格納される。また、前状態演算部45で前の状態を演算する際に、デコード結果が1ビット分求まるので、これを図示省略するデコード結果メモリに格納する。デコード結果アドレス演算部46は、ノードダウンカウンタ42の出力値に基づいて、デコード結果メモリに対する書き込みアドレスを生成する。
比較部51は、状態指定データ(トレースバック開始状態を表すデータ)と前状態演算部45の出力データ(前の状態を表すデータ)とを比較し、両者が一致するときに一致信号を出力し、一致しないときに不一致信号を出力する。レジスタ52は、ノードダウンカウンタ42からゼロ信号が入力すると、比較部51から出力される一致信号または不一致信号を保持し、TBCC条件検査の結果を表す検査結果信号として出力する。ノードダウンカウンタ42の値は、トレースバックが最後尾ノードから始まって先頭ノードに到達したときにゼロになる。従って、レジスタ52は、トレースバックの開始状態とトレースバックの終了状態とを比較部51で比較した結果を出力することになる。
図10は、実施の形態にかかるトレースバック部の動作タイミングを示す説明図である。図10において、n_outはノードアップカウンタ33の出力値であり、s_reg_outは状態レジスタ43の出力値である。簡単のため、図10に示す例では、情報フレームのノード数Nを100とし、トレースバック開始状態の状態指定データを010101とする。また、パスメモリ25からの読み出しデータは一例である。実際には、ACS演算部24により選択された生き残りパスの値が読み出される。また、パスメモリ25に対する読み出しアドレスは、ノードダウンカウンタ42の出力値と状態レジスタ43の出力値を連結したものになっている。
ノードダウンカウンタ42は、99(2進数の表記で1100011)から0(2進数の表記で0000000)までカウントダウンする。状態レジスタ43に保持されている現在の状態をs5s4s3s2s1s0とし、パスメモリ25からの読み出しデータをp(pは0または1)とすると、前状態演算部45により、前の状態はs4s3s2s1s0pとなる。そして、現在の状態の最上位ビットのs5は、デコード結果としてデコード結果メモリに書き込まれる。その際、デコード結果メモリに対する書き込みアドレスがノードダウンカウンタ42の出力値であるので、ノードダウンカウンタ42のカウントダウンに伴って、ノードタイミングの後ろから順にデコード結果が書き込まれることになる。
(復号処理手順の説明)
図11および図12は、実施の形態にかかる復号処理の手順を示す説明図である。復号処理が開始されると、まず、初期化して、情報フレームの先頭ノードにおける各状態のパスメトリック値を全て0とする(ステップS1)。次いで、ACS演算の繰り返し回数iを0に設定し、iが[i_max−1]以上であるか否かを判断する(ステップS2)。この繰り返し回数iは、繰り返しカウンタ32の値である。最初は、i(=0)が[i_max−1]よりも小さいので(ステップS2:No)、ノード数の最大値n_maxをNに設定し、情報フレームの全ノードをACS演算の対象とする(ステップS3)。次いで、ノード位置nを0に設定し、入力データバッファ21から入力データD(0)を読み出す(ステップS4)。ノード位置nは、ノードアップカウンタ33の値である。D(0)は、ノード位置0、すなわち先頭ノードの入力データである。
次いで、状態sを0(畳み込み符号器の拘束長K=7の場合は2進数の表記で000000)に設定しブランチメトリック値を求め、ACS演算を行う。状態sは、状態カウンタ34の値である。状態0についてACS演算が終了したら、状態sが上限値(畳み込み符号器の拘束長K=7の場合は2進数の表記で111111)となるまで状態sをカウントアップしながらACS演算を行う。状態sが上限値となり、ノード位置0について全ての状態のACS演算が終了したら、ノード位置nが上限値となるまでノード位置nをカウントアップしながら、各ノード位置nの全ての状態sについてACS演算を行う(ステップS5)。
ノード位置nが上限値となり、全てのノード位置nで全ての状態のACS演算が終了したら、トレースバックを行う。トレースバックでは、最後尾ノード(ノード位置n=N−1)での各状態sのパスメトリック値のうち、最大の尤度となる状態sからトレースバックを開始し、最後尾ノードから先頭ノードへ向かってパスメモリの状態を逆に辿っていく。トレースバックが終了したら、トレースバックの終了点、すなわち先頭ノード(ノード位置n=0)の状態sが、トレースバックの開始点、すなわち最後尾ノード(ノード位置n=N−1)の状態sと同じであるというテイルビッティングコンボリューションコードの束縛条件を満たすか否かを判定する(ステップS6)。テイルビッティングコンボリューションコードの束縛条件を満たす場合(ステップS6:Yes)、正解パスの探索が完了したとする。そして、トレースバックを行い(ステップS9)、正解パスに対応する入力データの列を復号結果として、一連の復号処理を終了する。
一方、ステップS6で、テイルビッティングコンボリューションコードの束縛条件を満たさない場合(ステップS6:No)、繰り返し回数iが上限値となるまで繰り返し回数iをカウントアップしながら、ステップS2〜ステップS6を繰り返す。繰り返し回数iをカウントアップしてステップS2〜ステップS6を繰り返すだびに、その直前の最後尾ノードのパスメトリック値を先頭ノードのパスメトリック値に設定する。また、繰り返し回数iが1であるときに求められたブランチメトリック値が用いられる。繰り返し回数iが[i_max−1]よりも小さいときには、全ノードをACS演算の対象とするが(ステップS3)、繰り返し回数iが[i_max−1]に達したら(ステップS2:Yes)、ノード数の最大値n_maxをLに設定する(ステップS7)。それによって、ステップS5のACS演算は、先頭ノードから途中のLノード目までのノードが対象となる。
ステップS2〜ステップS6を繰り返している間にテイルビッティングコンボリューションコードの束縛条件を満たせば(ステップS6:Yes)、トレースバックを行って(ステップS9)、一連の復号処理を終了する。テイルビッティングコンボリューションコードの束縛条件を満たす前に、繰り返し回数iが上限値であるときの演算が終了した場合には、その束縛条件を満たすパスのうちで最後尾ノードのパスメトリック値が最も大きいパス、すなわち最尤のパスを探索する(ステップS8)。そして、その最尤のパスを正解パスとし、トレースバックを行い(ステップS9)、正解パスに対応する入力データの列を復号結果として、一連の復号処理を終了する。
(演算量のシミュレーション結果の説明)
次に、繰り返し回数iが[i_max−1]に達したときのACS演算の対象を、先頭ノードからLノード目までの中間ノードとした場合の演算量のシミュレーション結果について説明する。ただし、ACS演算の繰り返し回数iの最大値i_maxを2とし、情報フレームのノード数Nを100とし、送信側の畳み込み符号器の拘束長を7とし、符号化率を1/3とし、QPSK変調を行うとする。また、干渉波はガウス雑音のみであるとする。
図13は、比較対象の復号器による復号処理を示す説明図である。図13に示すように、比較対象の場合の復号器では、2回目の繰り返し時のACS演算の対象が先頭ノードから最後尾ノードまでとなっている。
図14は、実施の形態にかかる復号器のブロックエラーレート特性のシミュレーション結果を示す説明図である。図14において、縦軸はブロックエラーレートであり、横軸はS/N比である。L=100の特性は、図13の比較対象のものである。図14に示すように、Lが10以上であれば、Lが100であるときと同じオーダーの特性が得られることがわかる。また、Lが15以上であれば、Lが100であるときと同程度の特性が得られることがわかる。さらに、Lが20以上であれば、Lが100であるときと殆ど同じ特性が得られることがわかる。Lを20とした場合、合計で120ノード分のACS演算を行えばよい。それに対して、全ノードでACS演算を繰り返す場合には、合計で200ノード分のACS演算を行うことになる。従って、Nを100とし、Lを20とする場合には、ACS演算の演算量を40%削減することができる。
以上説明したように、本実施の形態によれば、ACS演算の演算量が減るので、復号処理の遅延を防ぐことができる。また、消費電力の増大を防ぐことができる。また、本実施の形態にかかる復号器には、例えばLTE受信機に用いられる復号器が含まれる。LTE(Long Term Evolution)は、W−CDMA(Wideband Code Division Multiple Access)方式による第3世代携帯電話(3G)を拡張した通信方式の一つであり、標準化団体である3GPP(3rd Generation Partnership Project)において標準化が進められている。
なお、受信機1、復号部6、ビタビ復号器13、制御部29、トレースバック部27およびTBCC条件検査部28は、上述した構成に限らず、種々変更可能である。また、上述した復号器の一部または全部の構成を、CPUと、該CPUに図11および図12に示す手順で処理を行わせるプログラムとで構成し、CPUがそのプログラムを実行することにより、実施の形態にかかる復号器を実現するようにしてもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)情報フレームの各ノード位置に対して直前のノード位置からの遷移確率の高いパスを選択する演算を行う演算部と、前記演算部に、情報フレームの全てのノード位置で前記演算を所定回数行わせ、前記所定回数目の前記演算により得られた前記情報フレームの最後尾ノードに関する値を前記情報フレームの先頭ノードの値に設定して前記先頭ノードから前記情報フレームの中間ノードまでの各ノード位置でさらに前記演算を行わせる制御部と、を備えることを特徴とする復号器。
(付記2)前記演算部の結果に基づいてトレースバックを行うトレースバック部、をさらに備え、前記制御部は、前記トレースバック部に、前記所定回数目の前記演算の結果に基づいて前記最後尾ノードから前記中間ノードまでトレースバックを行わせ、前記所定回数目の次の回の前記演算の結果に基づいて前記中間ノードから前記先頭ノードまでトレースバックを行わせることを特徴とする付記1に記載の復号器。
(付記3)前記制御部は、前記演算部が前記演算を行う際のノード数をカウントする第1カウンタを備え、前記第1カウンタの上限値は、前記先頭ノードから前記最後尾ノードまでのノード数に対応する第1の値と、前記先頭ノードから前記中間ノードに対応する第2の値とで、切り替え可能になっていることを特徴とする付記1に記載の復号器。
(付記4)前記制御部は、前記演算部が全てのノード位置で前記演算を行った回数をカウントする第2カウンタを備え、前記第2カウンタは、前記第1カウンタの上限値を、前記第2カウンタの値が前記所定回数に対応する値以下であるときに前記第1の値とし、前記第2カウンタの値が前記所定回数を超える値であるときに前記第2の値に切り替えることを特徴とする付記3に記載の復号器。
(付記5)情報フレームの全てのノード位置で直前のノード位置からの遷移確率の高いパスを選択する演算を所定回数行う第1ステップと、前記所定回数目の前記演算により得られた前記情報フレームの最後尾ノードに関する値を前記情報フレームの先頭ノードに関する値に設定して前記先頭ノードから前記情報フレームの中間ノードまでの各ノード位置で前記演算を行う第2ステップと、を含むことを特徴とする復号方法。
(付記6)前記所定回数目の前記演算の結果に基づいて前記最後尾ノードから前記中間ノードまでトレースバックを行い、前記所定回数目の次の回の前記演算の結果に基づいて前記中間ノードから前記先頭ノードまでトレースバックを行う第3ステップ、をさらに含むことを特徴とする付記5に記載の復号方法。
実施の形態にかかる復号器による復号処理を示す説明図である。 実施の形態にかかる受信機の構成を示す説明図である。 実施の形態にかかる復号部の構成を示す説明図である。 実施の形態にかかるビタビ復号器の構成を示す説明図である。 畳み込み符号器の構成を示す説明図である。 実施の形態にかかる制御部の構成を示す説明図である。 実施の形態にかかる制御部の動作タイミングを示す説明図である。 実施の形態にかかる制御部の動作タイミングを示す説明図である。 実施の形態にかかるトレースバック部およびTBCC条件検査部の構成を示す説明図である。 実施の形態にかかるトレースバック部の動作タイミングを示す説明図である。 実施の形態にかかる復号処理の手順を示す説明図である。 実施の形態にかかる復号処理の手順を示す説明図である。 比較対象の復号器による復号処理を示す説明図である。 実施の形態にかかる復号器のブロックエラーレート特性のシミュレーション結果を示す説明図である。
符号の説明
13 復号器
24 演算部
27 トレースバック部
29 制御部
32 第2カウンタ
33 第1カウンタ

Claims (5)

  1. 情報フレームの各ノード位置に対して直前のノード位置からの遷移確率の高いパスを選択する演算を行う演算部と、
    前記演算部に、情報フレームの全てのノード位置で前記演算を所定回数行わせ、前記所定回数目の前記演算により得られた前記情報フレームの最後尾ノードに関する値を前記情報フレームの先頭ノードの値に設定して前記先頭ノードから前記情報フレームの中間ノードまでの各ノード位置でさらに前記演算を行わせる制御部と、
    を備えることを特徴とする復号器。
  2. 前記演算部の結果に基づいてトレースバックを行うトレースバック部、をさらに備え、
    前記制御部は、前記トレースバック部に、前記所定回数目の前記演算の結果に基づいて前記最後尾ノードから前記中間ノードまでトレースバックを行わせ、前記所定回数目の次の回の前記演算の結果に基づいて前記中間ノードから前記先頭ノードまでトレースバックを行わせることを特徴とする請求項1に記載の復号器。
  3. 前記制御部は、前記演算部が前記演算を行う際のノード数をカウントする第1カウンタを備え、
    前記第1カウンタの上限値は、前記先頭ノードから前記最後尾ノードまでのノード数に対応する第1の値と、前記先頭ノードから前記中間ノードに対応する第2の値とで、切り替え可能になっていることを特徴とする請求項1に記載の復号器。
  4. 前記制御部は、前記演算部が全てのノード位置で前記演算を行った回数をカウントする第2カウンタを備え、
    前記第2カウンタは、前記第1カウンタの上限値を、前記第2カウンタの値が前記所定回数に対応する値以下であるときに前記第1の値とし、前記第2カウンタの値が前記所定回数を超える値であるときに前記第2の値に切り替えることを特徴とする請求項3に記載の復号器。
  5. 情報フレームの全てのノード位置で直前のノード位置からの遷移確率の高いパスを選択する演算を所定回数行う第1ステップと、
    前記所定回数目の前記演算により得られた前記情報フレームの最後尾ノードに関する値を前記情報フレームの先頭ノードに関する値に設定して前記先頭ノードから前記情報フレームの中間ノードまでの各ノード位置で前記演算を行う第2ステップと、
    を含むことを特徴とする復号方法。
JP2008301980A 2008-11-27 2008-11-27 復号器および復号方法 Expired - Fee Related JP5169771B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008301980A JP5169771B2 (ja) 2008-11-27 2008-11-27 復号器および復号方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008301980A JP5169771B2 (ja) 2008-11-27 2008-11-27 復号器および復号方法

Publications (2)

Publication Number Publication Date
JP2010130271A true JP2010130271A (ja) 2010-06-10
JP5169771B2 JP5169771B2 (ja) 2013-03-27

Family

ID=42330348

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008301980A Expired - Fee Related JP5169771B2 (ja) 2008-11-27 2008-11-27 復号器および復号方法

Country Status (1)

Country Link
JP (1) JP5169771B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010263494A (ja) * 2009-05-08 2010-11-18 Nec Corp 復号装置、復号方法およびプログラム
JP2011003997A (ja) * 2009-06-16 2011-01-06 Fujitsu Ltd 復号装置及び信号処理システム
JP2012510735A (ja) * 2008-12-02 2012-05-10 日本電気株式会社 復号方法および復号装置
US8489972B2 (en) 2008-12-02 2013-07-16 Nec Corporation Decoding method and decoding device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62233933A (ja) * 1986-04-03 1987-10-14 Toshiba Corp ヴイタビ復号法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62233933A (ja) * 1986-04-03 1987-10-14 Toshiba Corp ヴイタビ復号法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012510735A (ja) * 2008-12-02 2012-05-10 日本電気株式会社 復号方法および復号装置
US8489972B2 (en) 2008-12-02 2013-07-16 Nec Corporation Decoding method and decoding device
JP2010263494A (ja) * 2009-05-08 2010-11-18 Nec Corp 復号装置、復号方法およびプログラム
JP2011003997A (ja) * 2009-06-16 2011-01-06 Fujitsu Ltd 復号装置及び信号処理システム

Also Published As

Publication number Publication date
JP5169771B2 (ja) 2013-03-27

Similar Documents

Publication Publication Date Title
US7765459B2 (en) Viterbi decoder and viterbi decoding method
CN104025459A (zh) 译码处理方法及译码器
JP4806673B2 (ja) 復号装置及び復号方法
KR100346529B1 (ko) 디지탈신호프로세서
KR102547476B1 (ko) 경로 메트릭 값 기반의 디코딩 프로세스 제어 방법, 연산 장치 및 모바일 장치
JP5169771B2 (ja) 復号器および復号方法
US8009773B1 (en) Low complexity implementation of a Viterbi decoder with near optimal performance
US7234100B1 (en) Decoder for trellis-based channel encoding
EP2339757A1 (en) Power-reduced preliminary decoded bits in viterbi decoder
US5887007A (en) Viterbi decoding method and viterbi decoding circuit
JP2008118327A (ja) ビタビ復号方法
JP4580927B2 (ja) ビタビ復号装置、およびビタビ復号方法
CN110022158B (zh) 一种译码方法及装置
CN106209117B (zh) 一种低资源消耗的多参数可配置Viterbi译码器
CN105356893A (zh) 一种尾码可配置的Viterbi解码方法及解码器
US20070201586A1 (en) Multi-rate viterbi decoder
Ameen et al. FPGA implementation of modified architecture for adaptive Viterbi decoder
CN110784283B (zh) 确定前向纠错帧边界的方法、装置和解码***
US8644432B2 (en) Viterbi decoder for decoding convolutionally encoded data stream
Abubeker et al. Maximum likelihood DE coding of convolutional codes using viterbi algorithm with improved error correction capability
EP2362549B1 (en) Low-latency viterbi survivor memory architecture and method using register exchange, trace-back, and trace-forward
CN116073952B (zh) 一种基于MaPU架构的快速并行卷积编译码方法、***、设备及介质
CN110460339B (zh) 卷积码译码的检测方法、装置、存储介质及电子设备
JP3337950B2 (ja) 誤り訂正復号化方法及び誤り訂正復号化装置
Laddha et al. Implementation of Adaptive Viterbi Decoder through FPGA

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110808

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120911

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121112

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121217

LAPS Cancellation because of no payment of annual fees