JP2010206570A - 復号装置、復号方法 - Google Patents

復号装置、復号方法 Download PDF

Info

Publication number
JP2010206570A
JP2010206570A JP2009050200A JP2009050200A JP2010206570A JP 2010206570 A JP2010206570 A JP 2010206570A JP 2009050200 A JP2009050200 A JP 2009050200A JP 2009050200 A JP2009050200 A JP 2009050200A JP 2010206570 A JP2010206570 A JP 2010206570A
Authority
JP
Japan
Prior art keywords
path
traceback
selection information
ram
path selection
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.)
Pending
Application number
JP2009050200A
Other languages
English (en)
Inventor
Hitoshi Shinagawa
仁 品川
Makoto Noda
誠 野田
Hiroyuki Yamagishi
弘幸 山岸
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2009050200A priority Critical patent/JP2010206570A/ja
Priority to US12/699,604 priority patent/US20100229076A1/en
Priority to CN201010124829.4A priority patent/CN101826879B/zh
Publication of JP2010206570A publication Critical patent/JP2010206570A/ja
Pending legal-status Critical Current

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/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • H03M13/4169Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
    • H03M13/4176Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback using a plurality of RAMs, e.g. for carrying out a plurality of traceback implementations simultaneously
    • 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
    • H03M13/4169Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
    • 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/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations

Landscapes

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

Abstract

【課題】トレースバック処理に用いるパス選択情報を格納するメモリのサイズと、復号に伴うレイテンシを抑えることができるようにする。
【解決手段】シフトレジスタ81に対しては、radix-2xのパス選択情報が1クロックあたりxNビットずつ入力され、k入力分蓄積された後、kxNビットのパス選択情報がまとめてパスメモリ用RAM82の1アドレスに書き込まれる。トレースバック回路83においては、パスメモリ用RAM82に格納されているパス選択情報に基づいてトレースバック処理が行われることによって最尤パスが選択され、最尤パス上にある各状態に対応する値を復号系列として出力される。本発明は受信装置に適用することができる。
【選択図】図6

Description

本発明は、復号装置、復号方法に関し、特に、トレースバック処理に用いるパス選択情報を格納するメモリのサイズと、復号に伴うレイテンシを抑えることができるようにした復号装置、復号方法に関する。
送信装置から受信装置にデータを送信する場合や、記録装置によって記録媒体に記録された情報を再生装置によって再生する、つまり記録装置から再生装置にデータを伝送する場合などにおいて、その伝送路上でデータに誤りが生じることがある。
伝送路上で生じた誤りを訂正する代表的な方法の一つとして畳み込み符号(convolutional code)があり、畳み込み符号の最尤復号を実現する方法としてビタビ復号がある。ビタビ復号(Viterbi decoding)については例えば非特許文献1に開示されている。
図1は、送受信システムの構成例を示すブロック図である。
図1の送受信システムは、送信装置1と受信装置3が伝送路2を介して接続されることによって構成される。送信装置1は、畳み込み符号器11と伝送路符号器12から構成され、受信装置3は、符号検出器31、伝送路復号器32、およびビタビ復号器33から構成される。伝送対象の情報系列は、送信装置1の畳み込み符号器11に入力される。
送信装置1の畳み込み符号器11は、入力された情報系列に対して畳み込み符号化処理を施し、誤り訂正符号化を行うことによって得られた符号系列を伝送路符号器12に出力する。
伝送路符号器12は、畳み込み符号器11から供給された符号系列に対して、伝送路2に応じた変調処理等の符号化処理を施し、得られたデータを、伝送路2を介して受信装置3に送信する。伝送路符号器12から送信された信号は伝送路2を介して受信装置3の符号検出器31に入力される。
受信装置3の符号検出器31は、受信した信号に基づいてデータを検出し、検出したデータを伝送路復号器32に出力する。
伝送路復号器32は、符号検出器31から供給されたデータに対して復調処理等の復号処理を施し、得られた受信系列をビタビ復号器33に出力する。
ビタビ復号器33は、伝送路復号器32から供給された受信系列に対してビタビ復号処理を施し、誤り訂正を行うことによって得られた復号系列を復号結果として出力する。
ここで、ビタビ復号の原理について簡単に説明する。
ある符号系列Wを送信したときの受信系列がVである条件付き確率(尤度関数)P0(V|W)は下式(11)で表される。
Figure 2010206570
式(11)において、Sは受信系列数、viはi番目の受信信号、wiはある符号系列Wにおけるi番目の送信信号を表す。P(vi|wi)は、wiを送信したときの受信信号がviである条件付確率となる。最尤復号は、このP0(V|W)を最大にする符号系列を求めることによって行われる。
-logP(vi|wi)をブランチメトリック(branch metric)と呼び、あるパスに対応する符号系列Wに対するブランチメトリックの和、つまり、-logP(V|W)をパスメトリック(path metric)と呼ぶ。
図2は、最尤復号をトレリス線図に基づいて実現するビタビ復号器33の構成例を示すブロック図である。
図2に示すように、ビタビ復号器33は、ブランチメトリック計算器41、ACS(Add Compare Select)処理器42、パスメトリックメモリ43、および生き残りパス処理器44から構成される。畳み込み符号器11の拘束長(constraint length)をKとすると、トレリス線図における状態数NはN=2K-1で表される。K,Nは正の整数である。
ブランチメトリック計算器41は、受信系列を構成する各受信信号に対するブランチメトリックを計算し、ACS処理器42に出力する。
ACS処理器42は、ブランチメトリック計算器41により計算されたブランチメトリックを参照し、畳み込み符号器11の拘束長によって定まる状態数のトレリス線図に従って各状態の生き残りパス(survivor path)を決定する。生き残りパスは、ある状態と、その状態に接続される前状態とを結ぶ複数のパスの中からハミング距離に基づいて選択されたパスである。
また、ACS処理器42は、生き残りパスの情報であるパス選択情報を生き残りパス処理器44に出力し、生き残りパス処理器44内のパスメモリ(path memory)44Aに記憶させる。ACS処理器42は、パス選択情報を生き残りパス処理器44に出力するのと同時に、各状態のメトリックを記憶するメモリであるパスメトリックメモリ43の値を更新する。
生き残りパス処理器44は、パスメモリ44Aに記憶されているパス選択情報に基づいて、受信系列の入力が終了した時点で各状態について生き残ったパスの中から、パスメトリックが最小のパス(最尤パス)を選択する。生き残りパス処理器44により選択された最尤パス上の状態に対応する値が復号系列として出力され、これにより最尤復号が実現される。
ところで、受信系列が長い場合、このことが、最尤パスを選択するまでにパスメモリに記憶させておくパス選択情報の長さであるパスメモリ長の増大や、復号に要する時間(レイテンシ)の増大を生じさせてしまう。このため、通常、パスメモリは、復号特性にほとんど影響を与えない長さにパスメモリ長を打ち切って用いられる。一般に、畳み込み符号器の拘束長Kや符号化率が大きくなる程、パスメモリ長を長く確保する必要がある。
ところで、パスメモリに記憶されたパス選択情報から最尤パスを選択する方法として、トレースバック(Traceback)方式と、レジスタエクスチェンジ(Register Exchange)方式が知られている。
レジスタエクスチェンジ方式は、回路構成が単純で高速動作が可能である反面、パスメモリ長が長くなると回路規模や消費電力が大きくなるという性質を有する。このため、パスメモリ長が長い場合には、RAM(Random Access Memory)を用いて生き残りパスの情報を記憶し、その情報をパスメモリ長分遡ることで最尤パスを選択するトレースバック方式が用いられることが多い。
ここで、トレースバック方式において遡るパスメモリの長さであるトレースバック長をTとする。また、ビタビ復号器に対する入力はradix-2xで構成されているものとする。T,xは正の整数である。
非特許文献2においては、トレースバック方式のアルゴリズムとして、k-pointerアルゴリズム、One-pointerアルゴリズムが提案されている。また、非特許文献3においては、これらの2つのアルゴリズムを組み合わせたHybridアルゴリズムが提案されている。
k-pointerアルゴリズムは、パスメモリ用のRAMをビット幅xN、深さT/{x・(k-1)}の2k個のバンクに分割し、k個の読み出しポインタを用いて、1回の書き込みに対してk箇所の読み出しを並列に行うアルゴリズムである。kは1より大きい正の整数であり、トレースバック方式において必要な、パスメモリ用のRAMからの読み出し操作の数を表す。
One-pointerアルゴリズムは、RAMをビット幅xN、深さT/{x・(k-1)}のk+1個のバンクに分割し、書き込み速度のk倍の速度で読み出しを行うことで、1回の書き込みに対してk回の読み出しを行うアルゴリズムである。
Hybridアルゴリズムは、k=kkを満たす正の整数k,kを用い、書き込み速度のk倍の速度で、k個の読み出しポインタを用いてk箇所の読み出しを並列に行うアルゴリズムである。
非特許文献4においては、pretrace-back回路を用いてk入力に1回の書き込みを行うことで、one-pointerアルゴリズムと同様のメモリ構成およびレイテンシを実現するHybrid pretrace-backアルゴリズムが提案されている。
Hybrid pretrace-backアルゴリズムは、ACS処理器から出力されるパス選択情報をパスメモリに書き込む前にpretrace-back回路を用いて予め並び替えておくことで、トレースバック処理時の負荷を減らすアルゴリズムである。pretrace-back回路はk段のレジスタエクスチェンジ構造を持つ回路である。
特許文献1においては、パスメモリとして1-writeポート、1-readポートのデュアルポートRAMをk個用いることで1回の書き込みに対してk箇所の読み出しを実現し、1クロックでkx時刻分のトレースバックを行うことが提案されている。これによりRAMのサイズを小さくすることが可能になっている。
特許文献2においては、k-pointerアルゴリズムにおいて書き込みを行うバンクと復号のための読み出しを行うバンクを共有することによってバンクを1つ減らし、2k-1個のバンクに分割する構成が提案されている。これによりRAMに対するアドレスの指定が簡単なメモリマネジメントが可能になっている。
従来のトレースバック方式の各アルゴリズムを用いた場合の生き残りパス処理器のパスメモリサイズM、およびレイテンシLの関係をまとめると下の表1のようになる。レイテンシLは、ACS処理器がxNビットのパス選択情報を出力する時間間隔を1としたときの、生き残りパス処理器にパス選択情報が最初に入力されてから最初の復号結果が出力されるまでの時間である。
Figure 2010206570
また、T=112,x=2としてkを変化させたときのMの変化を図3に示し、Lの変化を図4に示す。
図3、図4には示していないが、HybridアルゴリズムのM,Lの値は、k=kkを満たすk,kの値によって、one-pointerアルゴリズムのM,Lの値以上、k-pointerアルゴリズムのM,Lの値以下となる。例えば、HybridアルゴリズムのM,Lの値は、k=1のときk-pointerアルゴリズムの値と一致し、k=1のときone-pointerアルゴリズムの値と一致する。
なお、表1、図3に示すpretrace-backアルゴリズムのMの値は、パスメモリのメモリサイズに加えてpretrace-back回路のメモリサイズを考慮して求められたものである。
A. J. Viterbi and J. K. Omura: Principles of Digital Communication and Coding, MacGraw-Hill, New York, 1979. G. Feygin and P. G. Gulak, "Architectural Tradeoffs for Survivor Sequence Memory Management in Viterbi Decoders," IEEE Transactions on Communications, vol. 41, no. 3, pp. 425 - 429, March 1993. R. Cypher and C. B. Shung, "Generalized Trace Back Techniques for Survivor Memory Management in the Viterbi Algorithm," IEEE Global Telecommunications Conference and Exhibition. 'Communications: Connecting the Future', vol. 2, pp. 1318 - 1322, Dec 1990. P. J. Black and T. H. -Y. Meng, "Hybrid Survivor Path Architectures for Viterbi Decoders," ICASSP, vol. 1, pp. 433 - 436, April 1993.
T. Miyauchi and M. Hattori, “Viterbi Decoding apparatus and Viterbi Decoding Method,” US 6,651,215 B2, Sony Corporation, Nov. 18, 2003, Filed Dec. 17, 1998. M. Rim and Y. Oh, “Traceback-Performing Apparatus in Viterbi Decoder,” US 6,712,880, Samsung Electronics Co., Ltd., Jan. 27, 1998, Filed Nov. 14, 1995. S. Thurnhofer, “Traceback Buffer Management for VLSI Viterbi Decoders,” US 6,601,215 B1, Agere Systems Inc., Jul. 29, 2003, Filed Feb. 1, 2000.
従来のトレースバック方式の各アルゴリズムによれば、表1の各式から分かるように、kの値を大きくすることによってメモリサイズM、およびレイテンシLの値を小さくすることが可能である。
しかしながら、kの値が大きくなるに従ってパスメモリのバンク数も増加することになるため、それらのバンクから読み出した情報を選択するセレクタやコントローラなどの周辺回路の回路規模が大きくなってしまう。
このため、kの値として3以下の値が設定されることが多く、この場合、パスメモリのメモリサイズMは2TNビット以上必要になる。一般的に、Nの値が大きくなるに従って、長いトレースバック長Tが必要になり、2TNビットのサイズのパスメモリの回路規模は大きいものになってしまう。
また、特許文献1において提案されているような1クロックでkx時刻分のトレースバック処理を行う構成は、kの値が大きいと1クロックの時間内に完了しなければならない処理が多くなるために、高いクロック周波数での動作が困難になる。
そのため、メモリサイズと、周辺回路を含めた回路規模ができるだけ小さく、かつ、高いクロック周波数での動作が可能なトレースバック方式のアルゴリズムが望まれている。また、無線通信システムなどで短い処理時間が要求される場合には、レイテンシができるだけ小さくなるようなアルゴリズムが求められる。
本発明はこのような状況に鑑みてなされたものであり、例えばトレースバック処理に用いるパス選択情報を格納するメモリのサイズと、復号に伴うレイテンシを抑えることができるようにするものである。
本発明の一側面の復号装置は、N及びxを正の整数、kを1より大きい正の整数として、状態数Nの畳み込み符号の各遷移状態におけるradix-2xで構成されたxNビットの生き残りパスの情報であるパス選択情報をk入力分蓄積するk段のシフトレジスタと、前記シフトレジスタに蓄積されたk入力分の前記パス選択情報を1アドレスに格納する、バンク数が1のパスメモリと、tをkxの約数、rを2または1/tとして、前記パスメモリから読み出した前記パス選択情報を用いて、1クロックの間にm=rkx時刻分のパスを遡り、復号結果を出力するトレースバック回路とを備える。
1個設けられる前記トレースバック回路のトレースバック長をkxで割り切れる正の整数Tで表し、前記パスメモリに対する前記パス選択情報の書き込みがs回行われる毎に次のトレースバック処理が開始される場合の1回のトレースバック処理に要するクロック数をlで表し、α=T/(kx)とし、ceiling(b)を実数b以上の最小の整数を表すものとしたとき、sとlがそれぞれ、
Figure 2010206570
Figure 2010206570
で表され、前記トレースバック回路には、T+skx時刻分の1回のトレースバック処理をlクロック分の時間をかけて行わせ、skxビットの復号結果を出力させることができる。
2個設けられる前記トレースバック回路のトレースバック長をkxで割り切れる正の整数Tで表し、前記パスメモリに対する前記パス選択情報の書き込みがs回行われる毎に次のトレースバック処理が開始される場合の1回のトレースバック処理に要するクロック数をlで表し、α=T/(kx)とし、uをu≦sを満たす正の整数とし、ceiling(b)を実数b以上の最小の整数を表すものとしたとき、sとlがそれぞれ、
Figure 2010206570
Figure 2010206570
で表され、前記トレースバック回路には、T+skx時刻分の1回のトレースバック処理をlクロック分の時間をかけて行わせ、skxビットの復号結果を出力させることができる。
前記パスメモリを構成するRAMの深さaが
Figure 2010206570
によって表されるようにすることができる。
r=2、または前記トレースバック回路の数が2である場合、前記パスメモリを、読み出しポートを2つ備えるデュアルポートRAMによって構成することができる。
r≦1かつs=1である場合、前記パスメモリを、シングルポートRAMによって構成することができる。
前記パスメモリを、書き込みを行った次の時刻の読み出しポートから、直前に書き込んだ書き込み情報を出力する動作を行うRAMによって構成することができる。
mの最大値をmfcとしてmの値を制限し、kおよびrの値として、m≦mfcを満たす値を用いるようにすることができる。
kおよびrの値として、前記シフトレジスタの回路規模と、前記パスメモリとして用いるRAMの回路規模を足し合わせたものが最小となる値を用いることができる。
kおよびrの値として、前記トレースバック回路を含むモジュールに設けられる、前記パスメモリから読み出した情報を保持するフリップフロップの回路規模をさらに足し合わせたものが最小となる値を用いることができる。
前記シフトレジスタがk段のpretrace-back回路であるようにすることができる。
本発明の復号方法は、N及びxを正の整数、kを1より大きい正の整数として、状態数Nの畳み込み符号の各遷移状態におけるradix-2xで構成されたxNビットの生き残りパスの情報であるパス選択情報をk段のシフトレジスタによってk入力分蓄積し、前記シフトレジスタに蓄積されたk入力分の前記パス選択情報を1アドレスに格納する、バンク数が1のパスメモリによって前記パス選択情報を格納し、tをkxの約数、rを2または1/tとして、前記パスメモリから読み出した前記パス選択情報を用いて、1クロックの間にm=rkx時刻分のパスをトレースバック回路によって遡り、復号結果を出力するステップを含む。
本発明の一側面においては、状態数Nの畳み込み符号の各遷移状態におけるradix-2xで構成されたxNビットの生き残りパスの情報であるパス選択情報がk段のシフトレジスタによってk入力分蓄積され、前記シフトレジスタに蓄積されたk入力分の前記パス選択情報を1アドレスに格納する、バンク数が1のパスメモリによって前記パス選択情報が格納される。また、tをkxの約数、rを2または1/tとして、前記パスメモリから読み出した前記パス選択情報を用いて、1クロックの間にm=rkx時刻分のパスをトレースバック回路によって遡り、復号結果を出力することが行われる。
本発明の一側面によれば、トレースバック処理に用いるパス選択情報を格納するメモリのサイズと、復号に伴うレイテンシを抑えることができる。
送受信システムの構成例を示すブロック図である。 ビタビ復号器の構成例を示すブロック図である。 T=112,x=2としてkを変化させたときのMの変化を示す図である。 T=112,x=2としてkを変化させたときのLの変化を示す図である。 本発明の一実施形態に係る受信装置の構成例を示すブロック図である。 生き残りパス処理器の基本的な構成例を示すブロック図である。 パスメモリ用RAMの構成例を示す図である。 T=112,x=2の場合において、r=2としてkを変化させたときのMの変化を示す図である。 T=112,x=2の場合において、r=2としてkを変化させたときのLの変化を示す図である。 生き残りパス処理器の構成パラメータの決定手順について説明するフローチャートである。 図10のステップS2において行われる計算の手順について説明するフローチャートである。 図10のステップS0において行われる決定の手順について説明するフローチャートである。 生き残りパス処理器の構成例を示すブロック図である。 図13のパスメモリ用RAMのメモリアクセスチャートである。 生き残りパス処理器の他の構成例を示すブロック図である。 生き残りパス処理器のさらに他の構成例を示すブロック図である。 図16のパスメモリ用RAMのメモリアクセスチャートである。 パスメモリ用RAMのレイアウトの例を示す図である。 図10のステップS0において行われる決定の手順の変形例について説明するフローチャートである。 図10のステップS0において行われるkとrの決定の手順の他の変形例について説明するフローチャートである。 生き残りパス処理器の構成例を示すブロック図である。 図21のパスメモリ用RAMのメモリアクセスチャートである。 畳み込み符号器の構成例を示す図である。 図23の畳み込み符号器によって符号化される系列のトレリス線図である。 生き残りパス処理器の構成例を示すブロック図である。 図25のパスメモリ用RAMのメモリアクセスチャートである。
<受信装置の構成例>
図5は、本発明の一実施形態に係る受信装置51の構成例を示すブロック図である。
図5に示す受信装置51の構成は、図1、図2に示す受信装置の構成を組み合わせたものと同じ構成である。重複する説明については適宜省略する。
受信装置51の符号検出器61は、受信した信号に基づいて検出したデータを伝送路復号器62に出力する。
伝送路復号器62は、符号検出器61から供給されたデータに対して復号処理を施し、得られた受信系列をビタビ復号器63に出力する。
ビタビ復号器63はブランチメトリック計算器71、ACS処理器72、パスメトリックメモリ73、および生き残りパス処理器74から構成される。伝送路復号器62から出力された受信系列はブランチメトリック計算器71に入力される。
ブランチメトリック計算器71は、受信系列を構成する各受信信号に対するブランチメトリックを計算し、ACS処理器72に出力する。
ACS処理器72は、各状態の生き残りパスを決定し、パス選択情報を生き残りパス処理器74に出力する。また、ACS処理器72はパスメトリックメモリ73の値を更新する。
図6は、生き残りパス処理器74の基本的な構成例を示すブロック図である。
詳細な構成については後述するが、図6に示すように、生き残りパス処理器74は、シフトレジスタ81、パスメモリ用RAM82、およびトレースバック回路83から構成される。シフトレジスタ81に対しては、radix-2xで構成されるパス選択情報が1クロックあたりxNビットずつ入力される。生き残りパス処理器74の各部には同一周波数のクロックが入力され、そのクロックを基準として動作が行われる。
シフトレジスタ81は、入力されたパス選択情報をkクロック分蓄積し、kxNビットのパス選択情報をまとめて、パスメモリ用RAM82の1アドレスに書き込む。
パスメモリ用RAM82はシフトレジスタ81から供給されたパス選択情報を格納する。
トレースバック回路83は、受信系列の入力がトレースバック処理を開始するべき数だけ終了した時点で、パスメモリ用RAM82に格納されているパス選択情報に基づいてトレースバック処理を行い、最尤パスを選択する。生き残りパス処理器74は、最尤パス上の状態に対応する値を復号系列として出力する。
[パスメモリ用RAMのアドレス構成]
実現するシステムにおいて要求される誤り率性能やスループットに応じて、状態数N、トレースバック長T、およびxは予め定められている。N,xは正の整数であり、kは1より大きい正の整数である。Tはkxで割り切れる正の整数である。
図7は、パスメモリ用RAM82の構成例を示す図である。
図7の例においては、横方向にパス選択情報r1乃至raが示されている。また、状態数Nが16とされ、縦方向に状態N1乃至N16が示されている。
各マス目にはパス選択情報に対応するkxビットの値が格納される。kxNビットのパス選択情報をまとめて記憶させる生き残りパス処理器74においては、パスメモリ用RAM82の1アドレスにはkx時刻分のパス選択情報が格納されることになる。
また、αを下式(12)のように定義する。
Figure 2010206570
1アドレスあたりkx時刻分のパス選択情報が格納されているので、αはT時刻分のパス選択情報を格納するために必要なパスメモリ用RAM82のアドレス数を表す。Tはkxで割り切れるのでαは必ず正の整数となる。
1アドレスに対するパス選択情報の書き込み、または1アドレスからのパス選択情報の読み出しは1つのポートを用いて行われる。パスメモリ用RAM82がシングルポートのRAMである場合は同一時刻に書き込みと読み出しのうちのいずれかしかできない。これに対して、書き込みポートと読み出しポートがそれぞれ1つずつ設けられているデュアルポートのRAMである場合は同一時刻に書き込みと読み出しを行うことが可能となる。
また、パスメモリ用RAM82が、読み出しポートが2つ設けられるデュアルポートのRAMである場合、同一時刻に2アドレス分まとめてパス選択情報の読み出しを行うことも可能となる。
なお、図7の例においては、パス選択情報rα+sまで蓄積されたタイミングで、生き残りパスを遡るトレースバック処理が開始される。パス選択情報rα+s,rα+s-1,…,rα,…,rs,…,r2,r1と読み出してトレースバック処理を行うことによって、skxビットの復号結果を得る。Sは正の整数である。
また、パスメモリ用RAM82は、従来のアルゴリズムで用いられるパスメモリとは異なり、複数のバンクに分割して用いるようなことはされず、単一のバンクを有するRAMで構成される。従って、kの値を増加させたとしてもセレクタなどの周辺回路を用意する必要がなく、それによって回路規模が増大するようなことはない。上述したように複数のバンクがパスメモリに構成されている場合、読み出したデータを選択するセレクタなどの周辺回路が必要になる。
なお、パス選択情報の書き込みの単位であるkxNビットの幅が大きく、このビット幅を持つRAMを用意することができない場合、kxNビットのパス選択情報を分割して複数のRAMに分けて格納するようにしてもよい。
この場合、複数のRAM全てに対して同一アドレス、同一タイミングで書き込みと読み出しを行うことによって、複数のRAMが等価的に1つのRAMとして用いられる。これにより、パスメモリ用RAM82が複数のRAMによって構成されることになるが、動作は1つのRAMとみなせるのでバンク数は1であるといえる。
[パス選択情報を用いたトレースバック処理]
トレースバック回路83は1クロックでm時刻分のパスを遡ってトレースバック処理を行う回路である。mは下式(13)で表される。
Figure 2010206570
式(13)において、rの値は2または1/tである。tはkxの約数である。
r=2の場合、m=2kxとなり、1クロックで2kx時刻分のパスを遡ってトレースバック処理が行われる。パスメモリ用RAM82には1アドレスあたりkx時刻分のパス選択情報が格納されているので、トレースバック処理においては1クロックで2つのアドレスに格納されたパス選択情報を読み出す必要がある。
従って、r=2の場合は、2つの読み出しポートを備えたデュアルポートRAMがパスメモリ用RAM82として用いられる。ただし、2つのポートを使ってパス選択情報を読み出している最中に書き込みが生じた際、一方のポートを書き込みに使用する必要があり、その際の読み出しは他方のポートからしか行うことができない。
一方、rの値が1/tであり、 r≦1の場合、1クロックでkx/t時刻分のパスを遡ってトレースバック処理が行われる。kx時刻分のパス選択情報のトレースバック処理がtクロックで行われることになる。トレースバック処理においては1クロックで1つのアドレスに格納されたパス選択情報を読み出せば済む。
r≦1の場合も2つのポートを備えたデュアルポートRAMがパスメモリ用RAM82として用いられるようにしてもよい。この場合、パス選択情報を読み出している最中に書き込みが生じても一方のポートを使用して読み出しを続けることが可能となる。パス選択情報の読み出しと書き込みをそれぞれ独立に行うことが出来るため、パス選択情報の読み出しが書き込みの影響を受けることはない。
次に、正の整数sを用いて、一回のトレースバック処理によって得られる復号ビット数をskxビットとする。トレースバック回路83はT+skx時刻分のパス選択情報がパスメモリ用RAM82に書き込まれた後、トレースバック処理を開始する。トレースバック回路83により行われるトレースバック処理は、パスメモリ用RAM82に書き込まれたT+skx時刻分のパス選択情報を順次読み出してパスを遡り、skxビットの復号結果を得る処理となる。
上述したようにパスメモリ用RAM82の1アドレスにはkx時刻分のパス選択情報が書き込まれているので、T+skx時刻分のパス選択情報はα+s個のアドレスに格納されている。トレースバック処理のためにT+skx時刻分のパス選択情報を読み出すにはα+s回の読み出し操作が必要になる。
その後、パスメモリ用RAM82に対するパス選択情報の書き込みがs回行われる毎に次のトレースバック処理がトレースバック回路83により開始される。
s回の書き込みのうちの最後の1回の書き込みは、s回の書き込みの直後に開始されるトレースバック処理において最初に使用される情報である。従って、書き込みを行った後、その読み出しポートから、直前に書き込んだ書き込み情報を出力するいわゆるWrite-first動作を行うRAMをパスメモリ用RAM82として用いるようにしてもよい。また、後述するように、遅延素子を用い、遅延させた書き込み情報がトレースバック処理において最初に使用されるようにしてもよい。
以上のように、パス選択情報が毎クロック入力される場合、生き残りパス処理器74においては、kクロック毎にパスメモリ用RAM82に対する書き込みが行われ、書き込みがs回行われる毎にトレースバック処理が開始される。次のトレースバック処理を開始するまでの時間であるskクロックの間に1回のトレースバック処理を終了するには、skクロックの間に、T+skx時刻分のパス選択情報の読み出しとs回の書き込みを行う必要がある。
よって、rとsは下式(14)に示す関係を満たす必要がある。式(14)よりsは下式(15)で表される。関数ceiling(b)は、実数bの値を超える整数のうちの最小の整数を表す。
Figure 2010206570
Figure 2010206570
T+skx時刻分のパス選択情報を読み出してトレースバック処理をlクロックかけて行い、skxビットの復号結果が得られる。トレースバック処理に要するクロック数lは下式(16)で表される。
Figure 2010206570
また、1クロックでm時刻分のパスを遡るトレースバック回路83の個数をpとする。後述するように、トレースバック回路を複数設けることによって生き残りパス処理器74を構成することも可能である。
lクロックに渡って1回のトレースバック処理を行う一方で、kクロック毎にパスメモリ用RAM82に対する書き込みが行われるため、パスメモリ用RAM82のアドレス数はceiling(l/k)-1だけ増やされる。これは、トレースバック処理に使用するパス選択情報が読み出される前に上書きされるのを防ぐためのものである。
パスメモリ用RAM82のアドレス数(深さ)aは下式(17)で表される。
Figure 2010206570
以上より、生き残りパス処理器74に設けられるメモリサイズMは下式(18)で表され、レイテンシLは下式(19)で表される。式(18)のMは、パスメモリ用RAM82のメモリサイズakxNと、シフトレジスタ81のメモリサイズkxNを加算したものに相当する。
Figure 2010206570
Figure 2010206570
生き残りパス処理器74のメモリサイズMとレイテンシLを表1に対応する形でまとめると表2に示すようなものになる。
Figure 2010206570
また、T=112,x=2の場合において、r=2としてkの値を変化させたときの生き残りパス処理器74のメモリサイズMを図8に示し、レイテンシLを図9に示す。トレースバック長T=112がkxで割り切れない場合には、112を超え、かつkxで割り切れる最小の整数をTとして計算を行った結果を図8,9に示している。
以上のような生き残りパス処理器74の構成によれば、通常用いられるようにkの値を3としたときには、one-pointerアルゴリズムやpretrace-backアルゴリズムと比較して約23%のメモリサイズ、レイテンシの削減が可能となる。また、生き残りパス処理器74の構成によれば、特許文献1で提案されているアルゴリズムと比較すると、レイテンシは約9%増加してしまうが、メモリサイズについては約23%の削減が可能となる。
[生き残りパス処理器の構成パラメータの決定手順]
図10のフローチャートを参照して、生き残りパス処理器74の構成パラメータの決定手順について説明する。
この手順に従って、各構成パラメータが受信装置51の設計時などにおいて決定され、決定された構成パラメータによって規定される生き残りパス処理器74が生成される。
ステップS0において、2または1/tであるrの値と、r=2のときk>1、r≦1のときk>1/r=tを満たす正の整数kの値が決定される。tはkxの約数である。rとkの決定手順については図12のフローチャートを参照して後述する。
ステップS1において、ステップS0で決定されたrとkの値を用いて、上式(13)に従ってmの値が計算される。xは要求される性能などによって予め定められている値である。
ステップS2において、x,T,k,rの値を用いて、その他の構成パラメータであるs,l,aの値が計算される。Tの値も要求される性能などによって予め定められている値である。
次に、図11のフローチャートを参照して、図10のステップS2において行われるs,l,aの値の計算の手順について説明する。説明の便宜上、ステップS0の詳細より先にステップS2の詳細について説明する。
ステップS10において、上式(12)に従ってαの値が計算される。
ステップS11においてr=2であるか否かが判定される。
r=2であるとステップS11において判定された場合、ステップS12において、上式(15)に従ってsの値が計算される。
また、ステップS13において、上式(16)に従ってlの値が計算される。
r=2ではなく、r=1/tであるとステップS11において判定された場合、ステップS14において、上式(15)に従ってsの値が計算される。
また、ステップS15において、上式(16)に従ってlの値が計算される。
s,lの値が計算された後、ステップS16において、上式(17)に従ってaの値が計算される。その後、図10のステップS2に戻り、パラメータの決定手順が終了される。
N=64,T=114,x=2とした場合の計算結果の具体例について説明する。
ここでは、k=3,r=2が図10のステップS0において決定されているものとする。図10のステップS1においてはm=2・3・2=12が求められている。
この場合、図11のステップS10においては、α=114/(3・2)=19が計算される。ここではr=2であるためステップS11の判定の後、ステップS12においてs=ceiling((19-1)/(2・(3-1)))=5が計算される。
ステップS13においてl=ceiling((19+2・5-1)/2)=14が計算され、ステップS16においてa=19+5+ceiling(14/3)-1=28が計算される。
N=64,T=114,x=2,k=3,r=2として求められた各構成パラメータの計算結果を表3の左から2列目に示す。左から3列目、4列目、5列目に示す構成パラメータの計算については順に後述する。
Figure 2010206570
次に、図12のフローチャートを参照して、図10のステップS0において行われるkとrの値の決定の手順について説明する。
kとrの値はメモリサイズとレイテンシが最小、かつ回路規模が最小となるように決定するのが望ましいが、生き残りパス処理器74のkとrの値については、メモリサイズが最小となるkとrの値が、回路規模が最小となるkとrの値であるとは限らない。なぜならば、生き残りパス処理器74のメモリサイズはパスメモリ用RAM82のメモリサイズとシフトレジスタ81のメモリサイズを足し合わせたものであり、一般的に、フリップフロップを用いて構成されるシフトレジスタの1ビットあたりの回路規模はRAMの1ビットあたりの回路規模と比べて大きいためである。
また、r=2のときはパスメモリ用RAM82としてデュアルポートRAMを用いる必要があるが、p=1かつr≦1かつs=1のときはシングルポートRAMを用いて構成可能である。これは、上述したように、r=2のときは1クロックで2アドレス分のパス選択情報を読み出す必要があり、読み出しポートを2つ備えたRAMが必要になる。一方、r≦1かつs=1のときはトレースバック回路83が1つのポートを用いてパス選択情報を読み出せばよく、さらに、読み出しを行っている間に新たなパス選択情報の書き込みが発生することもないからである。
一般的に、RAMの深さが浅い場合、デュアルポートRAMの回路規模はシングルポートRAMの回路規模よりも約20%大きくなる(非特許文献4)。パスメモリ用RAM82のメモリサイズがデュアルポートRAMの場合と比べて20%程度大きかったとしても、シングルポートRAMで実現することができれば、そのパスメモリ用RAM82の回路規模はデュアルポートRAMで実現した場合と同等の規模になる。
よって、kとrの値の選択に際しては、単にメモリサイズやレイテンシだけでなく、回路規模も考慮される。具体的には、下式(20)で表されるパスメモリ用RAM82の回路規模yRAMと、シフトレジスタ81の回路規模yREG・kxNとを合わせた回路規模Bが最小となるkとrの値が決定される。
Figure 2010206570
ここで、yRAMは、RAMの種類、RAMのビット幅、および深さによって定まる。RAMの種類としては、シングルポートRAM、1-writeポート1-readポートのデュアルポートRAM、2-writeポート2-readポートのデュアルポートRAMなどがある。また、yREGは、1ビットあたりの回路規模であり、使用するセルライブラリによって定まる。
ステップS20において、検索対象とするkの最大値kmaxとrの最小値rminが設定される。ただし、kmaxとrminは、kmax>1/rminの関係を満たすものとする。また、yREGが設定される。
ステップS21において、kとrが初期化され、それぞれの値として2が設定される。
ステップS22において、トレースバック長Tが下式(21)に従って計算される。
Figure 2010206570
式(21)において、Tinitはトレースバック長の初期値である。kの値を変化させたときにTinitがkxで割り切れればそのTinitを生き残りパス処理器74のトレースバック長Tとし、kxで割り切れなければTinitを超え、かつkxで割り切れる最小の整数をTとする。
ステップS23において、図11を参照して説明した手順に従って構成パラメータs,l,aの値が計算される。
ステップS24において、いまのrの値と、ステップS23で計算された構成パラメータs,aの値と、kxNの値から、RAMの種類とyRAMが定められる。
具体的には、RAMの種類としては、p=1かつr≦1かつs=1の場合にはシングルポートRAMが定められる。また、r=2もしくはp=2の場合には読み出しポートを2つ備えるデュアルポートRAMが定められ、それ以外の場合には読み出しポートを1つ備えるデュアルポートRAMが定められる。また、決定した種類のRAMでビット幅kxN、深さaとしたときに回路規模yRAMがどの程度であるのかが、データシートやコンパイルなどによって定められる。
ここで、浅すぎるために深さaのRAMを実現することができない場合には、実現可能な最低の深さのRAMの回路規模がyRAMとされる。また、幅が広すぎるためにビット幅kxNのRAMを実現することができない場合には、kxNビットを分割して複数のRAMに格納するようにされ、その複数のRAMの回路規模の合計がyRAMとされる。
ステップS25において、上式(20)に従って回路規模Bが計算され、計算結果が保存される。
ステップS26において、いまのkの値がkmax以上であるか否かが判定される。
いまのkの値がkmax以上ではないとステップS26において判定された場合、ステップS27において、kの値が1だけインクリメントされ、その後、ステップS22以降の処理が繰り返される。
一方、いまのkの値がkmax以上であるとステップS26において判定された場合、ステップS28において、いまのrの値がrmin以下であるか否かが判定される。
いまのrの値がrmin以下ではないとステップS28において判定された場合、ステップS29において、いまのrの値が2であるか否かが判定される。
いまのrの値が2であるとステップS29において判定された場合、ステップS30において、tの値として1が設定される。
また、ステップS31において、rの値として1が設定される。
ステップS32において、kの値としてt+1が設定され、その後、ステップS22以降の処理が繰り返される。
一方、いまのrの値が2ではないとステップS29において判定された場合、ステップS33において、tの値が1だけインクリメントされる。
ステップS34において、いまのtの値がkxの約数であるか否かが判定される。
いまのtの値がkxの約数ではないとステップS34において判定された場合、ステップS33に戻り、tの値を1だけインクリメントすることが繰り返される。
いまのtの値がkxの約数であるとステップS34において判定された場合、ステップS35において、rの値として1/tが設定され、その後、ステップS32以降の処理が行われる。
一方、いまのrの値がrmin以下であるとステップS28において判定された場合、ステップS36において、それまでに保存しておいたBの中で、Bを最小にするkとrの値が選択される。
ステップS37において、上式(21)に従ってトレースバック長Tが計算される。その後、図10のステップS0に戻り、それ以降の処理が行われる。
N=64,Tinit=112,x=2とした場合の具体的な計算について説明する。
ステップS20においてはkmax,rmin,yREGが設定されるが、ここでは、kmax=10,rmin=1/2,yREG=10とする。
ステップS21においてkとrの値として2が設定され、ステップS22においてTの値が計算された後、ステップS23において構成パラメータs,l,aの値が計算される。この場合、s=14,l=28,a=55が計算される。
ステップS24においてその計算結果からRAMの種類とyRAMが定められる。ここでは説明を簡単にするため、RAMの1ビットあたりの回路規模がビット幅kxNと深さaに依存せず一定で、yRAMはRAMのメモリサイズakxNのみに依存するものとする。
RAMの種類がシングルポートRAMの場合、つまりp=1かつr≦1かつs=1の場合、yRAM=2akxNとなり、デュアルポートRAMの場合、yRAM=2.4akxとする。また、ここでは比較的深さの浅いRAMを仮定している。これより、いまのrの値はr=2であるので、yRAM=2.4akxN=2.4・55・2・2・64=33792となる。
ステップS25においては、B=33792+10・2・2・64=36352が計算され、この計算結果が保存される。ステップS26においては、いまkの値はk=2であり、kmax=10より小さいためステップS27に進み、k=3が設定された後、ステップS22に戻る。
ステップS22乃至S27の処理が繰り返され、k=10になっている場合、いまのkの値がkmax=10以上であるとステップS26において判定され、ステップS28に進む。
ステップS28においては、いまのrの値はr=2であり、rmin=1/2より大きいためステップS29に進む。その後、上述したようなステップS29乃至S32の処理が、いまのrの値が1/2となり、rmin=1/2以下であるとステップS28において判定されるまで繰り返される。
ステップS36においては、Bの値を最小にするkとrの値としてk=8,r=1が選択され、ステップS37において、T=112が計算される。
以上のような具体的な値を用いて計算され、ステップS25において保存されるBの値を示すと表4に示すようなものになる。表4の計算結果の数字に重ねて示す矢印は、計算により求められる順番を示す。k=8,r=1であるとき、Bの値として26624が求められる。
Figure 2010206570
N=64,T=112,x=2,k=8,r=1とし、図10の手順によって求められた各構成パラメータの計算結果を表3の左から3列目に示す。
以上のように、メモリサイズやレイテンシだけでなく、回路規模なども考慮してkとrの値が決定され、他の構成パラメータが決定される。
これにより、従来のアルゴリズムの場合と比べて同等もしくはそれ以下のメモリサイズおよびレイテンシを実現する事が可能となる。また、パスメモリ用RAM82を分割して用いないため、読み出した情報を選択するセレクタも不要となり、読み出しの制御も容易となるため、周辺回路の回路規模も少なくて済む。さらに、パスメモリ用RAMの種類を考慮することによっても回路規模を削減することが可能になる。
[生き残りパス処理器の構成の詳細]
図13は、生き残りパス処理器74の構成例を示すブロック図である。
図13は、k=3,r=2のときに求められた表3の左から2列目の構成パラメータによって規定される生き残りパス処理器74の構成を示す。図6に示される構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。上述したようにN=64,x=2であるとき、他の構成パラメータの値はそれぞれT=114,s=5,l=14,m=12,p=1,a=28となる。
p=1であるから、トレースバック処理を行う回路としてトレースバック回路83が1つ設けられる。
コントローラ91は、パスメモリ用RAM82に対するパス選択情報の書き込み、パスメモリ用RAM82からのパス選択情報の読み出しを制御する。
LIFO(Last-In First-Out)92は、トレースバック回路83から供給されたデータを格納し、新しく格納したデータから順に読み出して復号結果として出力する。
図14は、図13のパスメモリ用RAM82に対するパス選択情報の書き込みとパスメモリ用RAM82からのパス選択情報の読み出しのタイミングを示すメモリアクセスチャートである。コントローラ91による制御に従って、図14に示すような動作が実現される。
図14の横軸はクロックを表し、縦軸はパスメモリ用RAM82のアドレスを表す。また、黒塗りの1つの四角は、ポート1を使って行われるパス選択情報の書き込みのタイミングと書き込み先となるアドレスを表す。白抜きの1つの四角は、ポート1を使って行われるパス選択情報の読み出しのタイミングと読み出し元となるアドレスを表す。柄付の1つの四角は、ポート2を使って行われるパス選択情報の読み出しのタイミングと読み出し元となるアドレスを表す。後述するメモリアクセスチャートにおいても同様である。
k=3であるから、シフトレジスタ81においては毎クロック入力されるxN=2・64=128ビットのパス選択情報が3入力分蓄積され、3入力分の情報がまとめて出力される。
図14に示すように、1つのアドレスに対するパス選択情報の書き込みは、3クロック毎に、ポート1を使用して行われることになる。1回の書き込みによって書き込まれるパス選択情報のビット幅はkxN=3・2・64=384ビットとなる。
図14の例においては、3クロック目のタイミングにおいてアドレス0に対して書き込みが行われ、6クロック目のタイミングにおいてアドレス1に対して書き込みが行われている。
パスメモリ用RAM82にT+skx=114+5・3・2=144時刻分のパス選択情報が格納された72クロック目のタイミングにおいて、パスメモリ用RAM82からのパス選択情報の読み出しが開始される。読み出しが開始された後も、パスメモリ用RAM82に対するパス選択情報の書き込みは続けられる。
r=2であるから、1クロック毎に2つのアドレスにアクセスしてパス選択情報の読み出しが行われる。この場合、kx=3・2=6時刻分の2倍、すなわち2kx=12時刻分の情報である、2kxN=768ビットのパス選択情報が1クロック毎に読み出され、1クロックでm=12時刻分のパスを遡るトレースバック回路83に入力される。トレースバック回路83においては、T+skx=144時刻分のトレースバック処理がl=14クロック分の時間だけかけて行われる。
ただし、一方のポートを使って書き込みが行われるタイミングでは、他方のポートを使ってしかパス選択情報の読み出しを行うことができない。この場合、1アドレスから読み出されたパス選択情報だけがトレースバック回路83に入力され、トレースバック回路83においては1クロックでm/2=6時刻分のパスだけを遡ってトレースバック処理が進められる。
図14の例においては、72クロック目のタイミングにおいてアドレス23に対する書き込みがポート1を使用して行われるとともに、アドレス22からの読み出しがポート2を使用して行われている。また、パス選択情報の書き込みが行われない73クロック目のタイミングにおいてはアドレス21からの読み出しがポート1を使用して行われ、アドレス20からの読み出しがポート2を使用して行われている。読み出されたパス選択情報は順次、トレースバック回路83によりパスを遡るのに用いられる。
72クロック目のタイミングまでに格納されたパス選択情報の読み出しは、85クロック目のタイミングまで続けられ、その後、パス選択情報の書き込みと読み出しが繰り返される。
トレースバック回路83からの1クロック毎の出力であるm=12ビットのうち、最後のs=5アドレス分のパス選択情報に対する出力がLIFO92に入力され、1回のトレースバック処理が行われる毎に、skx=30ビットが復号結果として出力される。
ここで、パスメモリ用RAM82は読み出しポートを2つ備えるデュアルポートRAMであり、さらに、書き込みを行った後の読み出しポートから、直前に書き込んだ情報を出力するWrite-first動作を行うものである。
図15は、生き残りパス処理器74の他の構成例を示すブロック図である。
図15の構成を実現するのに用いられる構成パラメータは、図13の構成を実現するのに用いられる構成パラメータと同じである。図13の構成と同じ構成には同じ符号を付してある。
例えば、図13のパスメモリ用RAM82のようなWrite-first動作を行うRAMを用いないとした場合、図15に示すように、図13の構成と同じ構成に加え、遅延素子101とセレクタ102が用いられて生き残りパス処理器74が構成される。
遅延素子101は、シフトレジスタ81の出力を、パスメモリ用RAM82からのパス選択情報の読み出しにかかる時間と同じ時間だけ遅延させ、セレクタ102に出力する。
セレクタ102は、遅延素子101の出力と、ポート1を使用してパスメモリ用RAM82から読み出したパス選択情報のうちのいずれかを選択し、トレースバック回路83に出力する。セレクタ102は、例えば図14の72クロック目のように、トレースバック処理を開始するタイミングに読み出すアドレス22のパス選択情報が、パスメモリ用RAM82から出力されるタイミングでは遅延素子102の出力を選択し、それ以外のタイミングではパスメモリ用RAM82から読み出したパス選択情報を選択する。パスメモリ用RAM82のポート2から読み出されたパス選択情報は、トレースバック回路83に直接供給される。
これにより、Write-first動作によって供給される情報と同じ情報をトレースバック回路83に供給することが可能になる。図15のパスメモリ用RAM82においても、図14に示されるのと同じタイミングでパス選択情報の書き込みと読み出しが行われる。
遅延素子101による遅延が1クロック分の時間であるとき、書き込み情報を1クロック分の時間だけ遅延させたのと同じ出力を生成するのにkxNビット分の遅延素子は必要ない。例えば、シフトレジスタ81を構成するレジスタの段数をもう一段追加し、k+1段とすることによっても書き込み情報を1クロック分の時間だけ遅延させたのと同じ出力を生成することが可能である。
このときの生き残りパス処理器74の構成は、xNビット分のレジスタをシフトレジスタ81の内部に追加するだけでよく、他の構成は図13の構成と同じ構成である。
図16は、生き残りパス処理器74のさらに他の構成例を示すブロック図である。
図16は、k=8,r=1のときに求められた表3の左から3列目の構成パラメータによって規定される生き残りパス処理器74の構成を示す。上述したようにN=64,x=2であるとき、他の構成パラメータの値はそれぞれT=112,s=1,l=8,m=16,p=1,a=8となる。
構成パラメータの値は異なるが、パスメモリ用RAM82のポートの数が異なる点を除いて、他の構成自体は図13の構成と同じ構成である。
図17は、図16のパスメモリ用RAM82に対するパス選択情報の書き込みとパスメモリ用RAM82からのパス選択情報の読み出しのタイミングを示すメモリアクセスチャートである。
k=8であるから、シフトレジスタ81においては毎クロック入力されるxN=2・64=128ビットのパス選択情報が8入力分蓄積され、8入力分の情報がまとめて出力される。
図17に示すように、1つのアドレスに対するパス選択情報の書き込みは、8クロック毎に行われることになる。1回の書き込みによって書き込まれるパス選択情報のビット幅はkxN=8・2・64=1024ビットとなる。
図17の例においては、8クロック目のタイミングにおいてアドレス0に対して書き込みが行われ、16クロック目のタイミングにおいてアドレス1に対して書き込みが行われている。
パスメモリ用RAM82にT+skx=112+1・8・2=128時刻分のパス選択情報が格納された64クロック目のタイミングの次のタイミングである65クロック目のタイミングにおいてパス選択情報の読み出しが開始される。
r=1であるから、1クロック毎に異なる1アドレスにアクセスしてパス選択情報の読み出しが行われる。この場合、kx=16時刻分の情報である、kxN=1024ビットのパス選択情報が1クロック毎に読み出され、1クロックでm=16時刻分のパスを遡るトレースバック回路83に入力される。トレースバック回路83においては、T+skx=128時刻分のトレースバック処理がl=8クロック分の時間だけかけて行われる。
図17の例においては、65クロック目のタイミングにおいてアドレス6からの読み出しが行われ、66クロック目のタイミングにおいてアドレス5からの読み出しが行われている。読み出されたパス選択情報は順次、トレースバック回路83によりパスを遡るのに用いられる。
64クロック目のタイミングまでに格納されたパス選択情報の読み出しは、71クロック目のタイミングまで続けられ、その後、同様にしてパス選択情報の書き込みと読み出しが繰り返される。
トレースバック回路83からの1クロック毎の出力であるm=16ビットのうち、最後のs=1アドレス分のパス選択情報に対する出力がLIFO92に入力され、1回のトレースバック処理が行われる毎に、skx=16ビットが復号結果として出力される。
図16のパスメモリ用RAM82は、表3の左から3列目に示されるようにp=1かつr≧1かつs=1であるのでシングルポートRAMである。また、このシングルポートRAMはWrite-first動作を行うものである。
<変形例1>
一般的に、チップにおけるパスメモリ用RAM82のレイアウト位置は決まっている。配線遅延に伴うモジュールのレイアウトの自由度低下を防ぐために、モジュール内に設けられるトレースバック回路83においては、RAMから読み出した情報を一度フリップフロップで保持してから使用するようになされている。
図18は、チップにおけるパスメモリ用RAM82のレイアウトの例を示す図である。
図18に示すように、同じチップ上に、トレースバック回路83を含むモジュールとパスメモリ用RAM82が配設される。図18においてはトレースバック回路83とパスメモリ用RAM82だけを示しているが、受信装置51の他の構成も、適宜、トレースバック回路83と同じモジュール内、または異なるモジュール内に設けられる。受信装置51の他の構成が、トレースバック回路83が設けられるチップと異なるチップに設けられることもある。
トレースバック回路83とパスメモリ用RAM82間の、トレースバック回路83を含むモジュールの部分には図18に示すようにフリップフロップ(文字“D”を付して示すブロック)が設けられる。例えばパスメモリ用RAM82から読み出されたデータはそのフリップフロップで保持してからトレースバック回路83に供給され、トレースバック処理に用いられる。
このフリップフロップの回路規模も考慮して、図12のフローチャートを参照して説明した手順と同様の手順によってkとrの値を決定することも可能である。
この場合、下式(22)で表されるパスメモリ用RAM82の読み出しポート数zの値が用いられる。また、このフリップフロップの回路規模も考慮した回路規模を表すBが計算され、Bを最小にするkとrの値が決定される。Bは下式(23)によって表される。
Figure 2010206570
Figure 2010206570
図19のフローチャートを参照して、図10のステップS0において行われるkとrの決定の手順の変形例について説明する。
図19のステップS50乃至S53,S56乃至S65,S67の処理は、図12のステップS20乃至S23,S26乃至S35,S37の処理と同じ処理である。重複する説明については適宜省略する。
ステップS50においてkmax,rmin、およびyREGが設定され、ステップS51においてkとrの値としてそれぞれ2が設定される。
ステップS52においてトレースバック長Tが計算され、ステップS53において構成パラメータs,l,aの値が計算される。
ステップS54において、いまのrの値と、ステップS53で計算された構成パラメータs,aの値と、kxNの値から、RAMの種類とyRAMが定められる。また、上式(22)に従って読み出しポート数zが定められる。
定められたRAMの種類がシングルポートRAM、もしくは1つの読み出しポートを備えるデュアルポートRAMのときはz=1となり、2つの読み出しポートを備えるデュアルポートRAMのときはz=2となる。
ステップS55において、上式(23)に従って回路規模Bが計算され、計算結果が保存される。
ステップS56においていまのkの値がkmax以上であると判定され、ステップS58においていまのrの値がrmin以下であると判定された場合、ステップS66に進む。
ステップS66において、それまでに保存しておいたBの中で、Bの値を最小にするkとrの値が選択される。
ステップS67においてトレースバック長Tが計算され、その後、図10のステップS0以降の処理が行われる。
上述した例と同様にN=64,Tinit=112,x=2とした場合、図19の手順によってk=8,r=1,T=112が計算される。この場合に図10の手順によって求められる各構成パラメータの計算結果も、表3の左から3列目に示される結果と同様の結果になる。
<変形例2>
トレースバック回路83においては1クロックでm/x段のN to 1セレクト処理を行う必要がある。N to 1セレクト処理はNの状態の中から1つの状態(パス)を選択する処理である。1クロックでm/x段のN to 1セレクト処理を行うことの詳細については後述する。
生き残りパス処理器74内の動作のタイミングの基準となるクロックの周波数として使用したいクロック周波数をfとすると、このクロック周波数fでの動作が不可能である場合に問題となる。mが大きいために1クロックの時間内に完了しなければならないトレースバック処理の遅延が大きい場合などに、クロック周波数fでの動作が不可能になることがある。
これを解決するには、クロック周波数fで動作可能となるように、遡るパスの数(時刻)を表すmの値を小さくすればよく、mの値を小さくするには、上式(13)より、kかrの値を小さくすればよい。クロック周波数fで動作可能なmの最大値をmfcとし、図20に示す手順によってkとrの値を決定することで、クロック周波数fで動作可能となるmの値を求めることができる。
図20のフローチャートを参照して、図10のステップS0において行われるkとrの決定の手順の他の変形例について説明する。
図20に示す処理は、ステップS83,S84の処理が追加されている点を除いて、図19を参照して説明した処理と同様の処理である。重複する説明については適宜省略する。
ステップS81においてkmax,rmin、およびyREGが設定され、ステップS82においてkとrの値としてそれぞれ2が設定される。
ステップS83において、上式(13)に従ってmの値が計算され、ステップS84において、mの値がmfc以下であるか否かが判定される。
mの値がmfc以下であるとステップS84において判定された場合、ステップS85においてトレースバック長Tが計算され、ステップS86において構成パラメータs,l,aが計算される。
ステップS87において、いまのrの値と、ステップS86で計算された構成パラメータs,aの値と、kxNの値から、RAMの種類とyRAMが定められる。また、上式(22)に従って読み出しポート数zが定められる。
ステップS88において、上式(23)に従って回路規模Bが計算され、計算結果が保存される。
一方、mの値がmfc以下ではないとステップS84において判定された場合、ステップS85乃至S89はスキップされる。
ステップS89においていまのkの値がkmax以上であると判定され、ステップS91においていまのrの値がrmin以下であると判定された場合、ステップS99に進む。
ステップS99において、それまでに保存しておいたBの中で、Bの値を最小にするkとrの値が選択される。
ステップS100においてトレースバック長Tが計算され、その後、図10のステップS0以降の処理が行われる。
上述した例と同様にN=64,Tinit=112,x=2とし、さらに、mfc=8とした場合、図20の手順によってk=4,r=1,T=112が計算される。この場合に図10の手順によって求められる各構成パラメータの計算結果を表3の左から4列目に示す。
なお、図20においてはパスメモリ用RAM82から読み出したデータを保持するフリップフロップの回路規模を考慮して構成パラメータを計算する場合について説明したが、この回路規模を考慮することなく、図12の処理にステップS83,S84の処理を追加して構成パラメータが計算されるようにしてもよい。
図21は、生き残りパス処理器74の構成例を示すブロック図である。
図21は、k=4,r=1のときに求められた表3の左から4列目の構成パラメータによって規定される生き残りパス処理器74の構成を示す。上述したようにN=64,x=2であるとき、他の構成パラメータの値はそれぞれT=112,s=5,l=19,m=8,p=1,a=23となる。構成パラメータの値は異なるが、構成自体は図16の構成と同じ構成である。
図22は、図21のパスメモリ用RAM82に対するパス選択情報の書き込みとパスメモリ用RAM82からのパス選択情報の読み出しのタイミングを示すメモリアクセスチャートである。
k=4であるから、シフトレジスタ81においては毎クロック入力されるxN=2・64=128ビットのパス選択情報が4入力分蓄積され、4入力分の情報がまとめて出力される。
図22に示すように、1つのアドレスに対するパス選択情報の書き込みは、4クロック毎に行われることになる。1回の書き込みによって書き込まれるパス選択情報のビット幅はkxN=4・2・64=512ビットとなる。
図22の例においては、4クロック目のタイミングにおいてアドレス0に対して書き込みが行われ、8クロック目のタイミングにおいてアドレス1に対して書き込みが行われている。
パスメモリ用RAM82にT+skx=112+5・4・2=152時刻分のパス選択情報が格納された76クロック目のタイミングの次のタイミングである77クロック目のタイミングにおいてパス選択情報の読み出しが開始される。
r=1であるから、1クロック毎に異なる1アドレスにアクセスしてパス選択情報の読み出しが行われる。この場合、kx=8時刻分の情報である、kxN=512ビットのパス選択情報が1クロック毎に読み出され、1クロックでm=8時刻分のパスを遡るトレースバック回路83に入力される。トレースバック回路83においては、T+skx=152時刻分のトレースバック処理がl=19クロック分の時間だけかけて行われる。
図22の例においては、77クロック目のタイミングにおいてアドレス17からの読み出しが行われ、78クロック目のタイミングにおいてアドレス16からの読み出しが行われている。読み出されたパス選択情報は順次、トレースバック回路83によりパスを遡るのに用いられる。
76クロック目のタイミングまでに格納されたパス選択情報の読み出しは、94クロック目のタイミングまで続けられ、その後、同様にしてパス選択情報の書き込みと読み出しが繰り返される。
トレースバック回路83からの1クロック毎の出力であるm=8ビットのうち、最後のs=5アドレス分のパス選択情報に対する出力がLIFO92に入力され、1回のトレースバック処理が行われる毎に、skx=40ビットが復号結果として出力される。
図21のパスメモリ用RAM82は、表3の左から4列目に示されるようにp=1かつr≧1かつs=5であるので、1-writeポート1-readポートのデュアルポートRAMである。
ここで、トレースバック回路83において1クロックでm/x段のN to 1セレクト処理を行うことの詳細について説明する。
一般的に、ビタビ復号器に対する入力は、図23に示すような畳み込み符号器によって符号化されている。
図23の例においては、レジスタ111−1乃至111−6によってシフトレジスタが構成され、1ビットのデータが入力データIとして順次それぞれのレジスタによって保持される。
入力データI、レジスタ111−2の値、レジスタ111−3の値、レジスタ111−5の値、レジスタ111−6の値が加算器112に入力され、排他的論理和演算の結果が畳み込み符号化された出力データAとして出力される。また、入力データI、レジスタ111−1の値、レジスタ111−2の値、レジスタ111−3の値、レジスタ111−5の値、レジスタ111−6の値が加算器113に入力され、排他的論理和演算の結果が畳み込み符号化された出力データBとして出力される。図23の畳み込み符号器は符号化率1/2の回路である。
図23の畳み込み符号器によって符号化される系列は図24に示すトレリス線図で表すことができる。
図24において、Sn,tは時刻tにおける状態nを表す。図24は、全状態数を例えば64とし、時刻tおいてS0,tとなる2時刻分のパスをトレリス線図で表したものである。状態は図23の6ビットのレジスタの値に対応し、初期状態は状態0となる。
図24の例において、各パスの近くに示す数字と「/」は、図23の畳み込み符号器における入力と出力の関係を表す。例えばパスpは入力データIとして0の値が入力されたとき、出力データAの値として1、出力データBの値として0が出力されたことを表す。
例えば、時刻t-2において状態が0、つまりS0,t-2のとき、入力データIが0であれば図23の各レジスタの値も0のままとなり、次の時刻t-1における状態も0、つまりS0,t-1となる。同様に、時刻t-2において状態16、つまりS16,t-2のとき、入力データIが0であれば図23の各レジスタ値は2進数で100000となり、次の時刻t-1における状態は32、つまりS32,t-1となる。
ACS処理器においては、各時刻において、64個の各状態Sn,t(0≦n≦63)に接続された2通りのパスのパスメトリックが計算される(状態間のハミング距離が加算される)。また、パスメトリックが最小のパスが生き残りパスとして選択され、1ビットのパス選択情報yn,tが出力される。
そして、このパス選択情報をパスメモリに記憶しておき、後段のトレースバック回路において生き残りパスを遡ることで最も確からしい符号系列(復号結果)を得ることになる。
生き残りパスの選択においては、例えば図24のS0,t-1に接続されたS0,t-2からのパスpとS32,t-2からのパスpの中からパスを選択することになる。ここでpを選択したときは0を、パスpを選択したときは1をパス選択情報として記憶しておくことにより、トレースバックを行う際に、いずれのパスを選択したのかが分かり、前の状態を遡ることが可能になる。
図23のシフトレジスタは、入力データIがそのLSB側に入力される構成であるため、図24におけるパス選択情報yn,tは選択したパスの状態のMSBと一致することになる。
例えば、時刻t-1における状態32のパスの選択において、S32,t-1に接続されたS16,t-2からのパスpとS48,t-2からのパスpのうち、パスpを選択し、パス選択情報y32,t-1として0を記憶したとする。
さらに、次の時刻tにおける状態0のパスの選択において、S0,tに接続されたS0,t-1からのパスpとS32,t-1からのからのパスpのうち、パスpを選択し、パス選択情報y0,tとして1を記憶したとする。
このとき、時刻tの状態0、つまりS0,tからトレースバックを開始すると、まず、トレースバック回路は、時刻tにおけるパス選択情報yn,tをパスメモリから読み出して、その中から、状態0のパス選択情報を選択してy0,t=1を得る。これにより、一つ前の状態がS32,t-1であることが分かる。
次に、トレースバック回路は、時刻t-1におけるパス選択情報yn,t-1をパスメモリから読み出して、その中から、状態32のパス選択情報を選択してy32,t-1=0を得る。これにより、さらに一つ前の状態がS16,t-2であることが分かる。
このように、トレースバック処理においては、順次、1時刻前の状態を遡っていくことで最も確からしい復号結果を得ることが可能となる。
ここで、1時刻分の状態を遡るためには、上述したようにパスメモリから読み出した64状態分のパス選択情報yn,tの中から、現在遡っている状態におけるパス選択情報を選択する必要がある。以上においては状態数をNとしているため、これにより、N to 1セレクト処理が必要になる。
また、上述したように、トレースバック回路83においては、1クロックでm時刻分の状態を遡るようになされている。通常はm段のN to 1セレクト処理を行えばよいが、radix-2xのパス選択情報が入力される場合にはx時刻分のパス選択情報が一度にパスメモリ用RAM82に書き込まれるため、N to 1セレクト処理の段数はm/x段となる。
<変形例3>
トレースバック処理が、(s+u)・kクロック分の時間だけかけて行われるようにしてもよい。uはu≦sを満たす正の整数である。
この場合、skクロック分の時間ではトレースバック処理は終了しない。従って、トレースバック回路を並列に複数設け、複数のトレースバック回路にパスメモリ用RAM82のポートをそれぞれ割り当てて時間的に並行してトレースバック処理を行わせるようにしてもよい。
例えば、ポート1を用いてパス選択情報を読み出して行っているトレースバック処理の途中で開始する必要のある次のトレースバック処理については、他方のトレースバック回路にポート2を用いてパス選択情報を読み出させ、その処理を行わせる。
このとき、ポート1においては、(s+u)・kクロックの間にT+skx時刻分のパス選択情報の読み出しとu回の書き込みを行う必要がある。u回の書き込みのうちの1回は、式(14)のところで説明したように直後に開始するトレースバック処理において最初に使用する情報であるので、パス選択情報の書き込みと読み出しを兼ねることができる。
よって、r,sおよびuは下式(24)に示す関係を満たす必要がある。また、式(24)よりsは下式(25)で表される。この例においては、上式(15)のsを、式(25)で表されるものに置き換えて他の構成パラメータの計算が行われる。
Figure 2010206570
Figure 2010206570
さらに、式(16)で表される、トレースバック処理に必要なクロック数lが下式(26)で表されるものに置き換えられる。また、式(25)はskクロック毎に開始されるトレースバック処理を(s+u)・kクロックの間に終了するように導いた条件であり、uはu≦sを満たす正の整数である。このため、この例においては、生き残りパス処理器が備える、1クロックでm時刻分のパスを遡るトレースバック回路の数は2(p=2)となる。
Figure 2010206570
T=112,x=2,k=8,r=1/2,u=1として、図10のステップS1においてmの値を求め、ステップS2において計算して求められた構成パラメータを表3の左から5列目に示す。ステップS2において行われる計算の手順を示す図11のステップS14,S15においては、それぞれ上式(25),(26)の計算が行われる。
図25は、生き残りパス処理器74の構成例を示すブロック図である。
図25は、表3の左から5列目の構成パラメータによって規定される生き残りパス処理器74の構成を示す。上述したようにN=64,x=2であるとき、他の構成パラメータの値はそれぞれk=8,r=1/2,u=1,T=112,s=1,l=16,m=8,p=2,a=9となる。
p=2であるから、図25に示すように、トレースバック回路としてトレースバック回路83−1と83−2が設けられる。パスメモリ用RAM82のポート1はトレースバック回路83−1用のポートとして割り当てられ、ポート2はトレースバック回路83−2用のポートとして割り当てられている。また、トレースバック回路83−1,83−2の後段にはセレクタ121が設けられている。他の構成自体は、例えば図21に示す構成と同じ構成である。
トレースバック回路83−1と83−2は、それぞれ、パスメモリ用RAM82から読み出したパス選択情報に基づいてトレースバック処理を行い、処理の結果をセレクタ121に出力する。
セレクタ121は、トレースバック回路83−1と83−2から供給されたデータのうちのいずれかを、コントローラ91による制御に従って選択し、LIFO92に出力する。
図26は、図25のパスメモリ用RAM82に対するパス選択情報の書き込みとパスメモリ用RAM82からのパス選択情報の読み出しのタイミングを示すメモリアクセスチャートである。
k=8であるから、シフトレジスタ81においては毎クロック入力されるxN=2・64=128ビットのパス選択情報が8入力分蓄積され、8入力分の情報がまとめて出力される。
図26に示すように、1つのアドレスに対するパス選択情報の書き込みは、8クロック毎に行われることになる。1回の書き込みによって書き込まれるパス選択情報のビット幅はkxN=8・2・64=1024ビットとなる。
図26の例においては、8クロック目のタイミングにおいてアドレス0に対して書き込みが行われ、16クロック目のタイミングにおいてアドレス1に対して書き込みが行われている。
パスメモリ用RAM82にT+skx=112+1・8・2=128時刻分のパス選択情報が格納された64クロック目のタイミングの次のタイミングである65クロック目のタイミングにおいてパス選択情報の読み出しが開始される。
r=1/2であるから、2クロック毎に異なる1アドレスにアクセスしてパス選択情報の読み出しが行われる。この場合、kx=16時刻分の情報である、kxN=1024ビットのパス選択情報が2クロック毎に読み出される。
読み出されたパス選択情報は、1クロックでm=8時刻分のパスを遡るトレースバック回路83−1と83−2のうちの、ポート1に接続されているトレースバック回路83−1に入力される。トレースバック回路83−1においては、T+skx=128時刻分のトレースバック処理をl=16クロック分の時間だけかけて行われる。
一方、sk=8クロック毎に次のトレースバック処理を開始する必要があるので、ポート1を用いてトレースバック処理を行っている途中に開始する必要のある次のトレースバック処理は、読み出しポート2を用いてトレースバック回路83−2によって行われる。
それぞれのトレースバック回路から出力されるm=8ビットのうち、最後のs=1アドレス分のパス選択情報に対する出力が、セレクタ121によりsk=8クロック毎に切り替えられ、LIFO92に入力される。LIFO92からは、1回のトレースバック処理が行われる毎に、skx=16ビットが復号結果として出力される。
図25のパスメモリ用RAM82は、2-writeポート2-readポートのデュアルポートRAMである。
<変形例4>
入力信号をk入力分貯めるk段のシフトレジスタをk段のpretrace-back回路に変更するようにしてもよい。これにより、より高いクロック周波数での動作に対応することが可能となる。すなわち、上述した例においては1クロックでm/x段のN to 1セレクト処理を行う必要があるが、k段のpretrace-back回路に替えることによって1クロックで1段のN to 1セレクト処理をトレースバック回路に行わせるだけで済む。
例えば上述のT=112,x=2,k=8、およびr=1の場合では、従来のpretrace-backアルゴリズムと比べてレイテンシは同じであるがメモリサイズは約10%削減可能である。従来のpretrace-backアルゴリズムが表1に示すメモリサイズを実現するにはパスメモリをデュアルポートRAMで構成する必要がある。これに対して、例えば図16の構成においてシフトレジスタをpretrace-back回路に替えることによってパスメモリをシングルポートRAMで構成可能であり、より小さい回路規模でパスメモリを実現することが可能となる。
また、実現したいクロック周波数に応じて生き残りパス処理器を設計することができ、高いクロック周波数での動作にも対応させることが可能である。
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
51 受信装置, 61 符号検出器, 62 伝送路復号器, 63 ビタビ復号器, 71 ブランチメトリック計算器, 72 ACS処理器, 73 パスメトリックメモリ, 74 生き残りパス処理器, 81 シフトレジスタ, 82 パスメモリ用RAM, 83 トレースバック回路

Claims (12)

  1. N及びxを正の整数、kを1より大きい正の整数として、
    状態数Nの畳み込み符号の各遷移状態におけるradix-2xで構成されたxNビットの生き残りパスの情報であるパス選択情報をk入力分蓄積するk段のシフトレジスタと、
    前記シフトレジスタに蓄積されたk入力分の前記パス選択情報を1アドレスに格納する、バンク数が1のパスメモリと、
    tをkxの約数、rを2または1/tとして、前記パスメモリから読み出した前記パス選択情報を用いて、1クロックの間にm=rkx時刻分のパスを遡り、復号結果を出力するトレースバック回路と
    を備える復号装置。
  2. 1個設けられる前記トレースバック回路のトレースバック長をkxで割り切れる正の整数Tで表し、
    前記パスメモリに対する前記パス選択情報の書き込みがs回行われる毎に次のトレースバック処理が開始される場合の1回のトレースバック処理に要するクロック数をlで表し、
    α=T/(kx)とし、
    ceiling(b)を実数b以上の最小の整数を表すものとしたとき、
    sとlがそれぞれ、
    Figure 2010206570
    Figure 2010206570
    で表され、
    前記トレースバック回路は、T+skx時刻分の1回のトレースバック処理をlクロック分の時間をかけて行い、skxビットの復号結果を出力する
    請求項1に記載の復号装置。
  3. 2個設けられる前記トレースバック回路のトレースバック長をkxで割り切れる正の整数Tで表し、
    前記パスメモリに対する前記パス選択情報の書き込みがs回行われる毎に次のトレースバック処理が開始される場合の1回のトレースバック処理に要するクロック数をlで表し、
    α=T/(kx)とし、
    uをu≦sを満たす正の整数とし、
    ceiling(b)を実数b以上の最小の整数を表すものとしたとき、
    sとlがそれぞれ、
    Figure 2010206570
    Figure 2010206570
    で表され、
    前記トレースバック回路は、T+skx時刻分の1回のトレースバック処理をlクロック分の時間をかけて行い、skxビットの復号結果を出力する
    請求項1に記載の復号装置。
  4. 前記パスメモリを構成するRAMの深さaが
    Figure 2010206570
    によって表される
    請求項2または3に記載の復号装置。
  5. r=2、または前記トレースバック回路の数が2である場合、前記パスメモリは、読み出しポートを2つ備えるデュアルポートRAMによって構成される
    請求項1に記載の復号装置。
  6. r≦1かつs=1である場合、前記パスメモリは、シングルポートRAMによって構成される
    請求項2に記載の復号装置。
  7. 前記パスメモリは、書き込みを行った次の時刻の読み出しポートから、直前に書き込んだ書き込み情報を出力する動作を行うRAMによって構成される
    請求項1に記載の復号装置。
  8. mの最大値をmfcとしてmの値を制限し、kおよびrの値として、m≦mfcを満たす値を用いる
    請求項1に記載の復号装置。
  9. kおよびrの値として、前記シフトレジスタの回路規模と、前記パスメモリとして用いるRAMの回路規模を足し合わせたものが最小となる値を用いる
    請求項1に記載の復号装置。
  10. kおよびrの値として、前記トレースバック回路を含むモジュールに設けられる、前記パスメモリから読み出した情報を保持するフリップフロップの回路規模をさらに足し合わせたものが最小となる値を用いる
    請求項9に記載の復号装置。
  11. 前記シフトレジスタがk段のpretrace-back回路である
    請求項1に記載の復号装置。
  12. N及びxを正の整数、kを1より大きい正の整数として、
    状態数Nの畳み込み符号の各遷移状態におけるradix-2xで構成されたxNビットの生き残りパスの情報であるパス選択情報をk段のシフトレジスタによってk入力分蓄積し、
    前記シフトレジスタに蓄積されたk入力分の前記パス選択情報を1アドレスに格納する、バンク数が1のパスメモリによって前記パス選択情報を格納し、
    tをkxの約数、rを2または1/tとして、前記パスメモリから読み出した前記パス選択情報を用いて、1クロックの間にm=rkx時刻分のパスをトレースバック回路によって遡り、復号結果を出力する
    ステップを含む復号方法。
JP2009050200A 2009-03-04 2009-03-04 復号装置、復号方法 Pending JP2010206570A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009050200A JP2010206570A (ja) 2009-03-04 2009-03-04 復号装置、復号方法
US12/699,604 US20100229076A1 (en) 2009-03-04 2010-02-03 Decoding Apparatus and Decoding Method
CN201010124829.4A CN101826879B (zh) 2009-03-04 2010-02-26 解码装置和解码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009050200A JP2010206570A (ja) 2009-03-04 2009-03-04 復号装置、復号方法

Publications (1)

Publication Number Publication Date
JP2010206570A true JP2010206570A (ja) 2010-09-16

Family

ID=42679324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009050200A Pending JP2010206570A (ja) 2009-03-04 2009-03-04 復号装置、復号方法

Country Status (3)

Country Link
US (1) US20100229076A1 (ja)
JP (1) JP2010206570A (ja)
CN (1) CN101826879B (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9705531B2 (en) * 2015-02-18 2017-07-11 eTopus Technology Inc. Multi mode viterbi decoder
US10523367B2 (en) 2017-08-18 2019-12-31 Samsung Electronics Co., Ltd. Efficient survivor memory architecture for successive cancellation list decoding of channel polarization codes
TWI729755B (zh) * 2020-04-01 2021-06-01 智原科技股份有限公司 接收器與應用在接收器中的交織碼調變解碼器及相關的解碼方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0951278A (ja) * 1995-08-08 1997-02-18 Toshiba Corp ビタビ復号器
JPH09191258A (ja) * 1996-01-08 1997-07-22 Matsushita Electric Ind Co Ltd ビタビ復号装置及びその方法
JPH11186920A (ja) * 1997-12-19 1999-07-09 Sony Corp ビタビ復号装置
JPH11186915A (ja) * 1997-12-22 1999-07-09 Sony Corp ビタビ復号装置
JP2001028550A (ja) * 1999-01-29 2001-01-30 Texas Instr Inc <Ti> 無線応用のためのフレキシブルなビタビ・デコーダ
JP2002208219A (ja) * 2000-11-01 2002-07-26 Samsung Electronics Co Ltd 光ディスク用高倍速ビタビ検出器
JP2003258650A (ja) * 2002-03-06 2003-09-12 Hitachi Kokusai Electric Inc 最尤復号器
JP2007013337A (ja) * 2005-06-28 2007-01-18 Sony Corp ビタビ復号装置
JP2008211542A (ja) * 2007-02-27 2008-09-11 Nec Electronics Corp ビタビ復号システムおよびビタビ復号方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100212836B1 (ko) * 1996-06-14 1999-08-02 전주범 비터비 디코더의 트레이스백 진행 구조
KR100249046B1 (ko) * 1998-03-31 2000-03-15 김영환 격자복호기의 역추적장치
JP3515720B2 (ja) * 1999-11-22 2004-04-05 松下電器産業株式会社 ビタビ復号器
US6601215B1 (en) * 2000-02-01 2003-07-29 Agere Systems Inc. Traceback buffer management for VLSI Viterbi decoders
US6591395B1 (en) * 2000-06-18 2003-07-08 Silicon Integrated Systems Corporation Memory reduction techniques in a viterbi decoder
US6712880B2 (en) * 2001-03-01 2004-03-30 Abb Lummus Global, Inc. Cryogenic process utilizing high pressure absorber column
CN100505557C (zh) * 2004-03-16 2009-06-24 北京中电华大电子设计有限责任公司 基于Viterbi译码的多路并行循环块回溯方法
CN1787386A (zh) * 2004-12-08 2006-06-14 中兴通讯股份有限公司 一种维特比译码器路径度量存储的方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0951278A (ja) * 1995-08-08 1997-02-18 Toshiba Corp ビタビ復号器
JPH09191258A (ja) * 1996-01-08 1997-07-22 Matsushita Electric Ind Co Ltd ビタビ復号装置及びその方法
JPH11186920A (ja) * 1997-12-19 1999-07-09 Sony Corp ビタビ復号装置
JPH11186915A (ja) * 1997-12-22 1999-07-09 Sony Corp ビタビ復号装置
JP2001028550A (ja) * 1999-01-29 2001-01-30 Texas Instr Inc <Ti> 無線応用のためのフレキシブルなビタビ・デコーダ
JP2002208219A (ja) * 2000-11-01 2002-07-26 Samsung Electronics Co Ltd 光ディスク用高倍速ビタビ検出器
JP2003258650A (ja) * 2002-03-06 2003-09-12 Hitachi Kokusai Electric Inc 最尤復号器
JP2007013337A (ja) * 2005-06-28 2007-01-18 Sony Corp ビタビ復号装置
JP2008211542A (ja) * 2007-02-27 2008-09-11 Nec Electronics Corp ビタビ復号システムおよびビタビ復号方法

Also Published As

Publication number Publication date
CN101826879B (zh) 2013-03-27
CN101826879A (zh) 2010-09-08
US20100229076A1 (en) 2010-09-09

Similar Documents

Publication Publication Date Title
US7765459B2 (en) Viterbi decoder and viterbi decoding method
US6324226B1 (en) Viterbi decoder
EP2339757B1 (en) Power-reduced preliminary decoded bits in viterbi decoder
US7278088B2 (en) Configurable architecture and its implementation of viterbi decorder
US7793200B1 (en) Method of and circuit for accessing a memory of a trellis decoder
KR100437697B1 (ko) 다수준 격자부호변조방식의 복호 방법 및 장치
KR101212856B1 (ko) 통신 시스템에서 데이터를 복호하는 방법 및 장치
JP2010206570A (ja) 復号装置、復号方法
US7756224B2 (en) Viterbi decoding circuit and wireless device
WO2007021057A1 (en) Viterbi decoder and method thereof
JPH09232971A (ja) ビタビ復号方法及びビタビ復号回路
US8140949B2 (en) ACS unit of a Viterbi decoder and method for calculating a bit error rate before a Viterbi decoder
US6948114B2 (en) Multi-resolution Viterbi decoding technique
KR100262303B1 (ko) 비터비알고리즘을적용하는복호과정에서의생존경로역추적방법및그장치
CN101106385A (zh) 一种维特比译码装置及方法
EP1542370A1 (en) Method and system for branch label calculation in a Viterbi decoder
US20070168845A1 (en) Viterbi decoder
EP0851591B1 (en) Data processor and data processing method
JP4729938B2 (ja) ビタビ復号器及びそれを用いる移動体通信装置、基地局装置、移動体通信端末
US20070230606A1 (en) Viterbi traceback
KR100726170B1 (ko) 비터비 복호 장치 및 방법
JP2001186025A (ja) ビタビ復号装置
KR20070098201A (ko) 병렬 구조의 비터비 복호기
JP2006211403A (ja) 誤り訂正装置
KR20040065841A (ko) 비터비 복호기의 트레이스백 연산방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110118

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110705