(57)【要約】【課題】復号処理部において復号処理の反復を行いつつも、処理能力を向上させる。【解決手段】復号処理部１１が、符号化された入力データに対する復号処理を反復して行う復号器５であって、前記復号処理部１１は、前記復号処理が分割された複数の部分処理を順次実行するための複数のステージ１１ａ，１１ｂ，１１ｃを有し、前記復号処理を反復できるように、最終ステージ１１ｃと先頭ステージ１１ａとが接続されており、先に前記復号処理部に入力された入力データに対する復号処理の反復が終了する前のタイミングであって、先に前記復号処理部に入力された入力データについての処理データが、前記先頭ステージ以外のステージに存在しているタイミングにおいて、新たな入力データが前記先頭ステージにおいて処理されるよう構成されている。【選択図】      図６
2010130342.tif 000002
【特許請求の範囲】
【請求項１】
復号処理部が、符号化された入力データに対する復号処理を反復して行う復号器であって、
前記復号処理部は、反復の対象である前記復号処理が分割された複数の部分処理を、復号処理部の動作クロックに従って順次実行するための複数のステージを有し、
前記複数のステージは、前記復号処理における最初の部分処理を実行する先頭ステージと、前記復号処理における最後の部分処理を実行する最終ステージと、を含み、
前記復号処理を反復できるように、前記最終ステージの出力を前記先頭ステージに与えるべく、前記最終ステージと前記先頭ステージとが接続されており、
先に前記復号処理部に入力された入力データに対する復号処理の反復が終了する前のタイミングであって、先に前記復号処理部に入力された入力データについての処理データが、前記先頭ステージ以外のステージに存在しているタイミングにおいて、新たな入力データが前記先頭ステージにおいて処理されるよう構成されている
ことを特徴とする復号器。
【請求項２】
前記入力データが前記復号処理部に与えられる入力時間間隔を、Ｘとし、
復号処理の反復時間間隔を、Ｙとし、
復号処理の反復可能回数を、Ｎとしたときに、
下記式を満たすように構成されていることを特徴とする請求項１記載の復号器。
式  ：  （Ｙ  ×  Ｎ）  ＜  ＸとＹの最小公倍数  
【請求項３】
前記Ｘと前記Ｙは互いに素である請求項２記載の復号器。
【請求項４】
前記復号処理部の動作クロック周波数を調整して、前記入力データが前記復号処理部に与えられる入力時間間隔を調整する手段を備えていることを特徴とする請求項１〜３のいずれか１項に記載の復号器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号処理部が、入力データに対する復号処理を反復して行う復号器に関するものである。
【背景技術】
【０００２】
デジタル通信の分野では、有線及び無線を問わず、高速通信、低消費電力及び高い通信品質（ビット誤り率）が望まれている。誤り訂正技術は、これらの要求を満足させるための技術の一つとして、無線、有線及び記録システム等において幅広く利用されている。
かかる誤り訂正技術の一つとして、低密度パリティ検査（ＬＤＰＣ：Low-Density Parity-Check）符号と、その復号法であるサムプロダクト（sum-product）復号法とが注目されている（特許文献１並びに非特許文献１及び２）。
【０００３】
このＬＤＰＣ符号では、白色ガウス通信路のシャノン（Shannon）限界まで、０．００４ｄＢという復号特性が得られることが知られている（非特許文献３）。
また、サムプログラム復号法は、並列処理による復号処理を実行するため、符号長を長くすることができるとともに、処理能力を向上させることができる。また、復号法としては、サムプロダクト復号法を簡略化した、ミニサム（min-sum）復号法も知られている。
【０００４】
上記復号法では、受信信号から計算した対数尤度比を、行処理及び列処理からなる復号処理を行う復号処理部に与え、当該復号処理部において、行処理及び列処理の復号処理を繰り返し行うことで誤り訂正を行う。このようなＬＤＰＣ符号の誤り訂正復号を行う復号器は、特許文献１に開示されている。
上記のような復号器では、行処理及び列処理の復号処理は、反復して繰り返し行われる。そして、行処理及び列処理の繰り返し回数が所定値（反復可能回数）に到達するか、又は所定値に達する前であっても所定の条件を満たすと、行処理及び列処理の反復が終了する。
【０００５】
【特許文献１】特開２００７−３２５０１１号公報
【非特許文献１】和田山正  「低密度パリティ検査符号とその復号法について」  信学技報
【非特許文献２】Engling Yeo “VLSI Architectures for Iterative Decoders in Magnetic Recording Channels” IEEE Trans. On Magnetics, vol.37, NO2. March 2001
【非特許文献３】S.Y.Chung “On the design of low-density parity-check codes within 0.0045dB of the Shannon limit”IEEE Communications Letters,Vol.5,No.2,Februaly 2001
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＬＤＰＣ符号の復号器のように、復号処理を繰り返し行う必要があるものでは、復号処理の反復のため、復号器全体の処理速度が低下するという問題がある。
例えば、図１０に示すように、復号処理部（Ｄｅｃｏｄｅｒ）１０１が、入力誤り訂正を行う復号処理を１０回反復する復号器１００を想定する。
【０００７】
なお、図１０の復号処理部１０１は、全並列型であり、一つのパラレル符号データを、全並列的に処理できるものとする。
また、図１０の復号器１００では、復号処理部１０１の入力側に、Ｓ／Ｐ変換部（シリアル／パラレル変換部）１０２が設けられ、復号処理部１０２の出力側に、Ｐ／Ｓ変換部（パラレル／シリアル変換部）１０３が設けられている。Ｓ／Ｐ変換部１０２により、シリアルの入力データは、パラレルの入力データに変換される。復号処理部１０１は、パラレルの入力データに対して並列的に復号処理を行い、パラレルの出力データを出力する。パラレルの出力データは、Ｐ／Ｓ変換部１０３により、シリアルの出力データに変換される。
【０００８】
図１０の場合、復号対象の入力データは、復号処理部１０１において繰り返し処理されているため、その入力データについて処理中のデータは、１０回の反復が終了するまで、当該復号処理部１０１内部に滞留している。
したがって、復号処理部１０１における反復が終了するまでは、新たな入力データを、復号処理部１０１に与えることができない。
【０００９】
このため、図１０の全並列型復号器の処理能力は、次の計算式によって計算される。
処理能力＝（Ｆ×符号長）／（Ｎ×Ｙ）
ただし、
「Ｆ」は、復号処理部１０１の動作クロック周波数
「Ｎ」は、復号処理の反復回数
「Ｙ」は、１回の復号処理の所要サイクル数（所要クロック数）
である。
【００１０】
例えば、動作クロック周波数Ｆが１００［ＭＨｚ］、符号長が１０００［ｂｉｔ］、反復回数Ｎが１０回、復号処理の所要サイクル数Ｙが１、とすると、復号器１００の処理能力は、次の通りである。
処理能力＝（１００［ＭＨｚ］×１０００［ｂｉｔ］）／（１０×１）
＝１０［Ｇｂｉｔ／ｓ］
【００１１】
処理能力に関する上記式によれば、ある符号長において、処理能力を向上させるには、（１）動作クロック周波数Ｆを上げる、（２）反復回数Ｎを少なくする、（３）復号処理の所要サイクル数Ｙを少なくする、ことの３つが考えられる。
【００１２】
しかし、動作クロック周波数Ｆの高速化は、半導体回路技術の進歩を待つ必要があり、復号器自体の改良で対処できる範疇の方策ではない。
また、復号処理の反復回数Ｎを少なくすると、復号精度を低下させるため、復号精度を下げてまで、復号器の処理能力を上げるという方策は、採用し難いものである。具体的には、反復回数は最悪の場合で、例えば１０回程度は確保したいところである。
【００１３】
そうすると、上記式の観点からは、１回の復号処理の所要サイクル数（所要クロック数）Ｙを、小さくすることが、処理能力向上のための復号器自体の改良としては、現実的な唯一の方策となる。
【００１４】
しかし、復号処理の所要サイクル数Ｙを小さくするにしても、復号処理の所要サイクル数Ｙは、「１」が最小値であるから、当該所要サイクル数を「１」にしてしまうと、それ以上の処理能力向上が図れない。つまり、上記数値例によって求めた１０［Ｇｂｉｔ／ｓ］程度が、現実的な限界処理能力（限界速度）となってしまう。
【００１５】
もっとも、復号処理の反復回数分の複数の復号処理部（例えば、１０個の復号処理部）を並べた復号器（「超全並列復号器」というものとする）であれば、個々の復号処理部では、復号処理を反復させずに、複数の復号処理部においてパイプライン処理を行い、全体として処理能力を向上させることも考えられる。この場合、反復がないため、処理能力をさらに向上させることができる。
しかし、復号処理部は、元来、大規模な回路であり、そのような復号処理部を複数具備させることは、回路規模が非現実的なほど大きくなってしまう。
したがって、超全並列復号器も、現実的な方策ではない。
【００１６】
そこで、本発明は、復号処理部において復号処理の反復を行いつつも、処理能力を向上させることができる復号器等を提供することを目的とする。
【課題を解決するための手段】
【００１７】
（１）本発明は、復号処理部が、符号化された入力データに対する復号処理を反復して行う復号器であって、前記復号処理部は、反復の対象である前記復号処理が分割された複数の部分処理を、復号処理部の動作クロックに従って順次実行するための複数のステージを有し、前記複数のステージは、前記復号処理における最初の部分処理を実行する先頭ステージと、前記復号処理における最後の部分処理を実行する最終ステージと、を含み、前記復号処理を反復できるように、前記最終ステージの出力を前記先頭ステージに与えるべく、前記最終ステージと前記先頭ステージとが接続されており、先に前記復号処理部に入力された入力データに対する復号処理の反復が終了する前のタイミングであって、先に前記復号処理部に入力された入力データについての処理データが、前記先頭ステージ以外のステージに存在しているタイミングにおいて、新たな入力データが前記先頭ステージにおいて処理されるよう構成されていることを特徴とする復号器である。
【００１８】
上記本発明によれば、ある入力データについての復号処理の反復の終了を待つことなく、次の入力データの復号処理を開始することができる。したがって、復号器の処理能力を向上させることができる。
【００１９】
（２）前記入力データが前記復号処理部に与えられる入力時間間隔を、Ｘとし、
復号処理の反復時間間隔を、Ｙとし、
復号処理の反復可能回数を、Ｎとしたときに、
下記式を満たすように構成されている復号器であるのが好ましい。
式  ：  （Ｙ  ×  Ｎ）  ＜  ＸとＹの最小公倍数
この場合、データの衝突を確実に回避することができる。
【００２０】
（３）上記（２）において、前記Ｘと前記Ｙは互いに素であるのが好ましい。この場合、ＸとＹの最小公倍数が大きくなり、Ｙ×Ｎを大きくとることができる。
【００２１】
（４）前記復号処理部の動作クロック周波数を調整して、前記入力データが前記復号処理部に与えられる入力時間間隔を調整する手段を備えているのが好ましい。この場合、動作クロック周波数の調整で、入力時間間隔を調整することができる。
【発明の効果】
【００２２】
本発明によれば、復号処理部において復号処理の反復を行いつつも、処理能力を向上させることができる。
【発明を実施するための最良の形態】
【００２３】
以下、図面を参照しつつ、本発明の実施形態を説明する。
図１は、本発明の実施形態に係る復号器を有する、通信システムの構成例を示す図である。図１に示すように、この通信システムは、符号化データを送信する送信装置（送信側通信装置）Ｓと、符号化データを受信して復号する受信装置（受信側通信装置）Ｒとを備えている。
【００２４】
上記送信装置Ｓは、送信情報に誤り訂正用の冗長ビットを付加して送信符号（符号化データ）を生成する符号化器１と、この符号化器１からの（Ｋ＋Ｍ）ビットの符号を所定の方式に従って変調して通信路３へ出力する変調器２とを含む。
符号化器１は、Ｋビットの情報に対し、パリティ計算用の冗長ビットＭビットを付加して、（Ｋ＋Ｍ）ビットのＬＤＰＣ（低密度パリティ検査）符号化データを生成する。低密度パリティ検査行列においては、行が冗長ビットに対応し、列が符号ビットに対応する。
【００２５】
なお、（Ｋ＋Ｍ）ビットのＬＤＰＣ符号化データのどのビットに、Ｋ個の情報ビット及びＭ個の冗長ビットを配置するかは、送信側と受信側で取り決めていれば、どのように配置してもよい。
変調器２は、この通信路３の構成に応じて、振幅変調、位相変調、コード変調、周波数変調または直交周波数分割多重変調などの変調を行なう。
【００２６】
例えば、通信路３が光ファイバの場合、変調器２においては、レーザダイオードの輝度を送信情報ビット値に応じて変更させることにより、光の強度変調（一種の振幅変調）を行なっている。すなわち、送信データビットが“０”の場合には、”＋１”に変換して、レーザダイオードの発光強度を強くして送信し、また送信データビットが“１”の場合、”−１”に変換して、レーザダイオードの発光強度を弱くして送信する。
【００２７】
前記受信装置Ｒは、通信路３を介して送信された変調信号に復調処理を施して、（Ｋ＋Ｍ）ビットのデジタル符号を復調する復調器４と、この復調器４からの（Ｋ＋Ｍ）ビットの符号にパリティ検査行列に基づく復号処理を施して元のＫビットの情報を再生する復号器５とを備えている。
復調器４は、この通信路３における送信形態に応じて復調処理を行なう。例えば、振幅変調、位相変調、コード変調、周波数変調および直交周波数分割多重変調等の場合、復調器４において、振幅復調、位相復調、コード復調、および周波数復調等の処理が行なわれる。
【００２８】
図２は、通信路３が光ファイバである場合の、変調器２及び復調器４の出力データの対応関係を一覧にして示す図である。
図２において、上述のように、通信路３が光ファイバの場合、変調器２においては、送信データが“０”のときには、”１”に変換され、送信用のレーザダイオード（発光ダイオード）の発光強度が強くなり、また送信データビットが“１”のときには、”−１”に変換され、レーザダイオードの発光強度を弱くして送信する。
【００２９】
この通信路３における伝送損失等により、復調器４に伝達される光強度は、最も強い強度から最も弱い強度までの間のアナログ的な強度分布を有する。復調器４においては、この入力された光信号に、量子化処理（アナログ／デジタル変換）を行なって、この受光レベルを検出する。
図２においては、８段階に受光レベルが量子化された場合の受信信号強度を示す。すなわち、受光レベルがデータ“７”のときには、発光強度がかなり強く、受光レベルが“０”のときには、光強度がかなり弱い状態である。
【００３０】
各受光レベルは符号付きデータに対応づけられ、復調器４から出力される。この復調器４の出力は、受光レベルが“７”のときにはデータ“３”が出力され、受光レベルが“０”のときには、データ“−４”が出力される。従って、この復調器４からは、１ビットの受信信号に対し、多値量子化された信号が出力される。
復号器５は、この復調器４から与えられた（Ｋ＋Ｍ）ビットの受信符号化データ（各ビットは、多値情報を含む）の入力を受け、サムプロダクト（sum-product）復号法、或いは、これの変形アルゴリズムであるミニサム（min-sum）復号法又はファーストミニサム（fast mini-sum）復号法に従ってＬＤＰＣパリティ検査行列を適用して、元のＫビットの情報を復元（誤り訂正）する。
【００３１】
なお、この図２においては、復調器４において、８レベルに量子化されたビットが生成されている。しかしながら、一般に、この復調器４においては、Ｌ値（Ｌ≧２）に量子化されたビットを用いて復号処理を行なうことができる。
また、図２においては、比較器を用いて、ある閾値を使って受信信号のレベルを判定し、２値信号を生成してもよい。
【００３２】
図３は、上記復号器５の基本機能を概略的に示す図である。
この図３においては、復調器４および通信路３も併せて示している。
復調器４は、通信路３から与えられた信号を復調する復調回路４ａと、この復調回路４ａにより生成されたアナログ復調信号をデジタル信号に変換するアナログ／デジタル変換回路４ｂを含み、このアナログ／デジタル変換回路４ｂの出力データ（符号化データ）Ｘｎが復号器５へ与えられる。
【００３３】
復号器５へ与えられる符号化データＸｎはＬ値（Ｌ≧２）のデータである。この符号化データＸｎは多値量子化データであるため、以下においては、当該データＸｎをシンボルと称することがある。
【００３４】
復号器５は、上記入力シンボルＸｎに対して、いわゆるサムプロダクト復号法、ミニサム復号法などの復号法に従って復号処理を行ない、符号ビットＣｎを復号データとして生成する。
また、復号器５は、復調器４からの復調シンボルＸｎの対数尤度比λｎを生成する対数尤度比算出部６（単に、算出部６と表記することがある。）と、算出部６から出力されたシリアルの対数尤度比λｎを、符号長分のパラレルデータに変換するＳ／Ｐ変換部７、パラレルの対数尤度比λｎのデータを複数個記憶できる対数尤度比記憶部８と、パラレルの対数尤度比λｎを入力データとして復号処理を行う復号処理部１１（単に、処理部１１と表記することがある。）と、を含む。
【００３５】
対数尤度比λｎの算出部６は、上記受信信号のノイズ情報と独立に、対数尤度比λｎを生成する。通常、ノイズ情報を考慮した場合には、対数尤度比λｎは、Ｘｎ／（２・σ・σ）で与えられる。ここで、σはノイズの分散を示す。
しかし、本実施形態においては、この対数尤度比算出部６は、定数乗算回路で形成され、対数尤度比λｎは、Ｘｎ・ｆで与えられる。ここで、ｆは非ゼロの正の数である。
【００３６】
前記復号処理部１１は、パリティ検査行列の行処理を行処理部９と、パリティ検査行列の列処理を行う列処理部１０とを備えている。
本実施形態の復号処理部１１は、列処理部１０の出力が行処理部９にフィードバック入力されるようになっている。すなわち、行処理部９と列処理部１０とは、ループ状に接続されている。
【００３７】
復号法がサムプロダクト復号法である場合、行処理部９及び列処理部１０は、次の式（１）及び（２）に従って演算処理を行い、パリティ検査行列の行の各要素についての処理（行処理）と、列についての各要素についての処理（列処理）を繰り返し実行する。
具体的には、行処理部９が、式（１）による外部値対数比（第１変数）αｍｎを算出する演算を行い、列処理部１０が、式（２）による事前値対数比βｍｎを算出する演算を行う。
【数１】
2010130342.tif 000003
【００３８】
上記式（１）及び（２）において、ｎ’∈Ａ（ｍ）＼ｎとｍ’∈Ｂ（ｎ）＼ｍは、自身を除く要素を意味する。外部値対数比αｍｎについては、ｎ’≠ｎであり、事前値対数比βｍｎについては、ｍ’≠ｍである。
また、αおよびβの行列内の位置を示す添え字“ｍｎ”は、通常は下付文字で示されるが、本明細書においては、読みやすさのために、「横並びの文字」で示す。
式（１）中において、ｆはギャラガ（Gallager）のｆ関数であり、関数ｓｉｇｎ（ｘ）は次の式（３）で定義される。
【数２】
2010130342.tif 000004
【００３９】
また、集合Ａ（ｍ）およびＢ（ｎ）は、２元Ｍ・Ｎ行列  Ｈ＝［Ｈｍｎ］を復号対象のＬＤＰＣ符号の検査行列とした場合、集合［１，Ｎ］＝｛１，２，…，Ｎ｝の部分集合である。
Ａ（ｍ）＝｛ｎ：Ｈｍｎ＝１｝ …（４）
Ｂ（ｎ）＝｛ｍ：Ｈｍｎ＝１｝ …（５）
【００４０】
すなわち、上記部分集合Ａ（ｍ）は、検査行列Ｈの第ｍ行目において１（非零要素）が立っている列インデックスの集合を意味し、部分集合Ｂ（ｎ）は、検査行列Ｈの第ｎ列目において１（非零要素）が立っている行インデックスの集合を示す。
より具体的に説明するために、例えば図４に示す検査行列Ｈを考える。
この図４の検査行列Ｈにおいては、第１行の第１列から第３列に“１”が立ち、また第２行の第３列および第４列に“１”が立ち、また第３行の第４列から第６列に、“１”が立つ。従って、この場合、部分集合Ａ（ｍ）は以下のようになる。
【００４１】
Ａ（１）＝｛１，２，３｝
Ａ（２）＝｛３，４｝
Ａ（３）＝｛４，５，６｝
【００４２】
同様に、部分集合Ｂ（ｎ）については、以下のようになる。
Ｂ（１）＝Ｂ（２）＝｛１｝
Ｂ（３）＝｛１，２｝
Ｂ（４）＝｛２，３｝
Ｂ（５）＝Ｂ（６）＝｛３｝
【００４３】
この検査行列Ｈにおいて、タナー（Tanner）グラフを用いた場合、列に対応する変数ノードと行に対応するチェックノードの接続関係が、この“１”により示される。これを、本明細書においては「“１”が立つ」と称している。
すなわち、図５に示すように、変数ノード１，２，３は、チェックノードＸ（第１行）に接続され、変数ノード３，４が、チェックノードＹ（第２行）に接続される。変数ノード４，５，６が、チェックノードＺ（第３行）に接続される。
【００４４】
この変数ノードが検査行列Ｈの列に対応し、チェックノードＸ，ＹおよびＺが、この検査行列Ｈの各行に対応する。従って、図４に示す検査行列は、情報ビットが３ビット、冗長ビットが３ビットの合計６ビットの符号長の符号に対して適用される。
ＬＤＰＣの検査行列Ｈでは、“１”の数は少なく、低密度の検査行列であり、これにより、計算量を低減できる。この変数ノードとチェックノードの間で各条件確率Ｐ（Ｘｉ｜Ｙｉ）を伝播させ、ＭＡＰアルゴリズムに従って、尤もらしい符号を各変数ノードについて決定する。ここで、条件付確率Ｐ（Ｘｉ｜Ｙｉ）は、Ｙｉの条件下でＸｉとなる確率を示す。
【００４５】
一方、復号法がミニサム復号法である場合には、行処理部９及び列処理部１０は、次の式（６）及び（７）に従って演算処理を行う。
【数３】
2010130342.tif 000005
【００４６】
式（１）と式（６）とを比較すれば明らかな通り、ミニサム復号法は、外部値対数比αｍｎの演算において、ギャラガのｆ関数に関する項を近似値に置き換えたものであり、これによって演算負荷が軽減される。従って、ミニサム復号法はサムプロダクト復号法の簡易な実装形式の一つである。
なお、式（６）において、関数ｍｉｎは最小値を求める演算子である。また、サムプロダクト復号法の式（２）とミニサム復号法の式（７）とは同じものである。
【００４７】
図３に示すように、前記復号器５は、行処理及び列処理からなる復号演算の反復終了を判定する判定部１２を備えている。
この判定部１３は、行処理及び列処理からなる復号処理（復号演算）の反復回数が、終了回数に達したか否かを判定し、行処理と列処理の反復回数が終了回数に達すると、復号処理部１１による復号処理の反復を終了させる。なお、反復回数が、所定の終了回数に達する前であっても、十分な精度の復号結果が得られた場合には、反復を打ち切るように反復を制御してもよい。
【００４８】
判定部１２は、復号演算の反復が終了した後、外部値対数比αｍｎ（または事前値対数比βｍｎ）と対数尤度比λｎとを用いて符号を判定する機能を有している。
具体的には、判定部１２は、次の式（８）に従ってＱｎを算出する。
【数４】
2010130342.tif 000006
【００４９】
更に、判定部１２は、次の式（９）に従って、復号データである推定符号Ｃｎを算出する。
【数５】
2010130342.tif 000007
【００５０】
算出された推定符号Ｃｎ（パラレルデータ）は、Ｐ／Ｓ変換部１３によって、シリアルデータに変換され、復号器５から出力される。
【００５１】
次に、上述の復号器５の基本機能を前提とし、図６に基づき、本実施形態の復号器５を更に詳細に説明する。
図３の復号処理部１１においては、機能的な面に着目して、行処理部９と列処理部１０とを書き分けたが、図６では、復号処理部１１のハードウェア構成として分けられる複数のステージを示した。本実施形態の復号処理部１１は、３つのステージ１１ａ，１１ｂ，１１ｃを有している。
これら３つのステージ１１ａ，１１ｂ，１１ｃは、それぞれ、１回の復号処理（１回の行処理及び１回の列処理）が分割された部分処理を実行するためのものである。例えば、複数のステージのうち、先頭ステージ１１ａは行処理の前半を実行し、第２ステージ１１ｂは、行処理の後半を実行し、最終ステージ１１ｃは、列処理全体を実行するものとする。
【００５２】
前記先頭ステージ１１ａは、対数尤度比記憶部８から出力されたλｎと、最終ステージ１１ｃから出力されたβｍｎ（初期値は０）との和を入力として受け付けるため、最終ステージ１１ｃの出力と、先頭ステージ１１ａの入力とは、λｎとβｍｎを加算するための加算部１６を介して接続されている。これにより、復号処理部１１は、最終ステージ１１ｃの出力βｍｎに基づいて、復号処理を反復して行うことができる。
なお、加算部１６は、先頭ステージ１１ａの一部として考えても良い。このように考えた場合、先頭ステージ１１ａは、λｎとβｍｎとをそれぞれ入力として受け付けることになる。
【００５３】
上記の各ステージ１１ａ，１１ｂ，１１ｃは、動作クロック１５に従って、各ステージにおける処理を順次実行する。つまり、各ステージ１１ａ，１１ｂ，１１ｃに与えられた各入力に基づいて、各ステージが処理結果を出力するには、１クロックを要するようよう構成されている。
したがって、図６の復号処理部１１では、１回の復号処理（１回の反復処理）を完了するのに、３クロック（３サイクル）要する。
【００５４】
なお、サムプロダクト復号法やミニサム復号法において、列処理は、足し算だけで行える。足し算は、順序回路を用いなくても、組み合わせ論理回路によって実現可能である。組み合わせ論理回路によって構成された列処理回路では、入力が与えられると、クロックを待つことなく、演算結果が出力される。
一方、本実施形態に係るステージ１１ａ，１１ｂ，１１ｃは、クロックが与えられたときの入力に応じて、当該ステージが担当する部分処理に係る演算を行い、その演算結果を出力するものである。
したがって、列処理を行う前記最終ステージ１１ｃには、組み合わせ論理回路によって構成された列処理回路に加えて、クロックを待ってから出力するためのメモリが付加されることになる。
【００５５】
なお、図６におけるステージ数は、単なる例示であって、これに限定されるものではない。ステージ数は、２つであってもよいし、４以上であってもよい。
また、復号処理が複数のステージによって実行されていれば足り、行処理及び／又は列処理が分割されている必要はない。例えば、行処理及び列処理を１クロック（１サイクル）で実行できる一つのステージと、遅延回路からなる１又は複数のステージとで、複数のステージを構成してもよい。
さらに、行処理や列処理を分割する場合、分割された部分処理それぞれは、機能的に意味のある単位である必要はない。
【００５６】
また、前記対数尤度比記憶部（入力データ記憶部）８は、先頭ステージ１１ａの入力に与えるための対数尤度比λｎ（パラレルデータ）を記憶するものである。この対数尤度比記憶部８から出力された対数尤度比（入力データ）λｎが、先頭ステージ１１ａ又はその他のステージに与えられ、先頭ステージ１１ａ等における演算に用いられる。
この対数尤度比記憶部８は、複数の対数尤度比（パラレルデータ）λｎ−Ａ，λｎ−Ｂ，λｎ−Ｃを蓄積することができ、蓄積された複数の対数尤度比のうちの一の対数尤度比を、選択的に、必要なステージ１１ａに与えることができる。対数尤度比記憶部８では、復号処理部１１において処理対象となっている入力データ（対数尤度比）を全て記憶できるように、対数尤度比記憶部８に記憶可能な対数尤度比の数は、ステージ数以上の数に設定される。
【００５７】
対数尤度比記憶部８から、先頭ステージ１１ａに出力される対数尤度比は、制御部１４によって選択される。制御部１４は、記憶された複数の対数尤度比のうち、先頭ステージ１１ａ等における演算に必要とされる対数尤度比を選択して、記憶部８から出力させる。
なお、図６においては、動作クロック１５によって動作する範囲を、反復処理部２０として示した。反復処理部２０には、対数尤度比記憶部８、復号処理部１１、判定部１２、制御部１４など反復処理に必要なものが含まれる。
【００５８】
図７は、図６の反復処理部２０において、パラレルの入力データ（対数尤度比λｎ）が、入力される入力間隔Ｘを示している。ここでは、ＬＤＰＣ符号の符号長を５５０ｂｉｔとし、受信機Ｒの通信路の伝送速度を１０Ｇｂｉｔ／ｓとする。
この場合、反復処理部２０における動作クロック１５の周波数（処理速度）を２００ＭＨｚとした場合、Ｓ／Ｐ変換部から、復号処理部１１の処理対象とするパラレルの入力データ（対数尤度比λｎ）が、Ｓ／Ｐ変換部７から出力されて反復処理部２０に与えられる間隔（入力間隔）Ｘは、下記式のように、１１サイクル（１１クロック）となる。
入力間隔Ｘ＝（５５０ｂｉｔ／１０ＧＨｚ）／（１／２００ＭＨｚ）＝１１サイクル
【００５９】
図７は、上記例における入力間隔Ｘを示している。図７の横軸の一目盛りは、１サイクル（動作クロック１５の１クロック）であり、１１サイクルごとに、入力データが、発生し、復号処理部１１の先頭ステージ１１ａに与えられる。
【００６０】
図８及び図９は、本実施形態の復号処理部１１の処理の流れを示している。図８及び図９において、ループ状に接続された３つの丸が、先頭ステージ１１ａ、第２ステージ１１ｂ、最終ステージ１１ｃを示している。また、内部数字付きの□は第１入力データついての当該ステージでの処理データ、内部数字付きの△は第２入力データについての当該ステージでの処理データ、内部数字付きの○は第３入力データについての当該ステージでの処理データ、内部数字付きの◇は第４入力データについての当該ステージでの処理データを示している。□、△、○、◇内の各数値は、復号処理の反復回数を示している。
【００６１】
まず、ＣＬＫ＝０において、先頭ステージ１１ａの入力側に、第１入力データ□が与えられ、ＣＬＫ＝１〜ＣＬＫ３の間に、１回目の復号処理がおこなわれる。ＣＬＫ＝１では、復号処理のうち、先頭ステージ１１ａが分担する部分処理の演算が行われ、その処理結果が、先頭ステージ１１ａから出力される。ＣＬＫ＝２では、復号処理のうち、第２ステージ１１ｂが分担する部分処理の演算が行われ、その処理結果が、第２ステージ１１ｂから出力される。ＣＬＫ＝３では、復号処理のうち、最終ステージ１１ｃが分担する部分処理の演算が行われ、その処理結果（βｍｎ）が最終ステージ１１ｃから出力され、先頭ステージ１１ａ側に与えられる。以上によって、復号処理の１回目の復号処理が完了する。
【００６２】
さらに、ＣＬＫ＝４〜ＣＬＫ＝６の間に、第１入力データ□についての２回目の復号処理がおこなわれる。ＣＬＫ＝４では、１回目の復号処理の演算結果（βｍｎ）と、対数尤度比記憶部８から選択的に出力される第１入力データとしての対数尤度比λｎとから、先頭ステージ１１ａにおける部分演算が行われ、以下、１回目の復号処理と同様の処理が行われる。
【００６３】
さらに、ＣＬＫ＝７〜ＣＬＫ９の間に、第１入力データ□についての３回目の復号処理がおこなわれ、ＣＬＫ＝１０〜ＣＬＫ１２の間に、第１入力データ□についての４回目の復号処理が行われる。以上の間において、対数尤度比記憶部８からは、常時、第１入力データとしての対数尤度比λｎが出力されている。
【００６４】
４回目の復号処理中であるＣＬＫ＝１１において、対数尤度比記憶部８から先頭ステージ１１ａの入力側に、新たな入力データとして、第２入力データ△が与えられ、ＣＬＫ＝１２において、第２入力データ△に対する先頭ステージ１１ａの演算（１回目の復号処理）が行われる。このＣＬＫ＝１２の時点で、第１入力データ□についての処理データは、最終ステージ１１ｃに存在するため、第１入力データの処理データと第２入力データの処理データとの衝突が回避されている。
【００６５】
ＣＬＫ＝１３では、第１入力データ□についての５回目の復号処理のうち、先頭ステージ１１ａにおける演算が実行される。このとき、先頭ステージ１１ａにおける演算に用いるため、対数尤度比記憶部８からは、第１入力データとしての対数尤度比λｎが選択的に出力されている。
また、図示はしないが、ＣＬＫ＝１５などで、先頭ステージ１１ａにおいて第２入力データ△についての処理が行われる場合には、対数尤度比記憶部８からは、第２入力データとしての対数尤度比λｎが選択的に出力される。
【００６６】
以上のようにして、ＣＬＫ＝１６〜ＣＬＫ＝１８においては、第１入力データについての６回目の復号処理が行われ、ＣＬＫ＝１９〜ＣＬＫ＝２１においては、第１入力データについての７回目の復号処理が行われる。また、これと同時に、第２入力データについての第２〜第４回目の復号処理も進行する。
【００６７】
さらに、ＣＬＫ＝２２〜ＣＬＫ＝２４では、第１入力データについての８回目の復号処理が行われる。この８回目の復号処理中であるＣＬＫ＝２２において、対数尤度比記憶部８から先頭ステージ１１ａの入力側に、新たな入力データとして、第３入力データ○が与えられ、ＣＬＫ＝２３において、第３入力データ○に対する先頭ステージ１１ａの演算（１回目の復号処理）が行われる。
このＣＬＫ＝２３の時点で、第１入力データ□についての処理データは、第２ステージ１１ｂに存在し、第２入力データ△についての処理データは最終ステージ１１ｃに存在するめ、新たな入力データである第３入力データについての処理データと、先に入力された第１及び第２データの処理データとの衝突が回避されている。
【００６８】
ＣＬＫ＝２４では、第２入力データ△についての５回目の復号処理のうち、先頭ステージ１１ａにおける演算が実行される。このとき、先頭ステージ１１ａにおける演算に用いるため、対数尤度比記憶部８からは、第２入力データとしての対数尤度比λｎが選択的に出力されている。
また、ＣＬＫ＝２５，２８などで、先頭ステージ１１ａにおいて第１入力データ□についての処理が行われる場合には、対数尤度比記憶部８からは、第１入力データとしての対数尤度比λｎが選択的に出力される。
また、ＣＬＫ＝２６，２９などで、先頭ステージ１１ａにおいて第３入力データ○についての処理が行われる場合には、対数尤度比記憶部８からは、第３入力データとしての対数尤度比λｎが選択的に出力される。
【００６９】
以上のようにして、ＣＬＫ＝２５〜ＣＬＫ＝２７においては、第１入力データ□についての９回目の復号処理が行われ、ＣＬＫ＝２８〜ＣＬＫ＝３０においては、第１入力データ□についての１０回目の復号処理が行われる。また、これと同時に、第２入力データ△についての第５〜第７回目の復号処理と、第３入力データ○についての第１〜第３回目の復号処理が進行する。
【００７０】
ＣＬＫ＝３０では、対数尤度比記憶部８から先頭ステージ１１ａの入力側に、新たな入力データとして、第４入力データ◇が与えられ、ＣＬＫ＝３１において、第４入力データ◇に対する先頭ステージ１１ａの演算（１回目の復号処理）が行われる。
ＣＬＫ＝３０の時点では、第１入力データ□についての１０回目（反復回数の上限）の復号処理の最終ステージ１１ｃにおける処理が完了している。このため、第１入力データについての処理データは、破棄され、先頭ステージ１１ａの入力に反映されない。したがって、次のＣＬＫ＝３１の時点では、先頭ステージ１１ａには、処理中のデータが存在しない。
したがって、新たに入力された第４入力データと、先に入力されたデータとの衝突が回避されている。
【００７１】
以上のように、本実施形態の復号処理部１１では、先に入力されたデータについての処理データと、新たに入力されたデータとの衝突が回避されているため、一つの入力データについての反復復号処理が完了する前に、次のデータを復号処理部１１に受け入れて、複数（３つ）の入力データを処理することができる。
【００７２】
したがって、多数の入力データを処理する場合、本実施形態に係る復号器５の処理速度は、（動作クロック１５の周波数）×（符号長）のオーダーとなり、復号処理の反復回数Ｎや、１回の復号処理の所要サイクル数（所要クロック数）Ｙによる処理速度劣化が生じない。
【００７３】
また、本実施形態の復号処理部１１では、入力データを復号処理部１１へ与えるタイミングの制御など特別な制御を行うことなくても、データの衝突を回避できる。つまり、本実施形態では、順次発生する入力データを復号処理部１１にて、単に順次処理しても、先に復号処理部１１に入力されたデータについての処理データと、新たに入力されたデータとの衝突を回避することができる。
【００７４】
この衝突を回避するための条件は、下記条件式の通りである。
条件式  ：  （Ｙ  ×  Ｎ）  ＜  ＸとＹの最小公倍数  
Ｘ：入力データが先頭ステージに与えられる入力時間間隔
Ｙ：復号処理の反復時間間隔（ステージ数）
Ｎ：復号処理の反復可能回数
なお、図６の例では、Ｘ＝１１、Ｙ＝３、Ｎ＝１０であった。
【００７５】
上記条件式の左辺である「Ｙ×Ｎ」は、一つの入力データについての処理データが、反復される復号処理のために復号処理部１１内に滞留する最大時間である。
また、上記条件式の右辺である「ＸとＹの最小公倍数」＝ＬＣＭ（Ｙ，Ｘ）は、復号処理部１１への入力が、復号処理部における反復と衝突する間隔である。
ＬＣＭ（Ｙ，Ｘ）で求まる衝突間隔よりも、ある入力データについての処理データが、反復される復号処理のために復号処理部１１内に滞留する最大時間を短くすることで、衝突が発生する前に、復号処理部１１のステージを新たな入力データに開放することができ、データの衝突を防止できる。
【００７６】
なお、図６の例では、ＬＣＭ（３，１１）＝３３サイクルである。３３サイクル目（ＣＬＫ＝３３）は、第１入力データについてみると、１１回目の反復に相当するが、図６の例では、最大の反復回数Ｎを１０に設定しているため、図９に示すように、衝突が発生する１１回目の反復の前（１０回目の反復終了時）に、第１入力データについての処理データが復号処理部１１内から消去され、衝突が回避されている。
【００７７】
上記条件式を満たすように、Ｘ，Ｙ，Ｎの各値を設定することで、処理速度に優れた復号器を設計することができる。このとき、反復可能回数数Ｎを大きくとるため、Ｘ，Ｙは互いに素であるのが好ましい。ＸとＹが互いに素であれば、ＬＣＭ（Ｙ，Ｘ）が大きくなり、反復可能回数Ｎも大きくとれる。
【００７８】
上記本実施形態によれば、復号処理部１１において１回の復号処理を実行する時間Ｙを最小値「１」にしなくても、処理の高速化が実現でき、復号処理部１１の設計が容易になる。
【００７９】
ここで、復号器５の設計の際に、所望の反復回数Ｎをまず決めた場合、所定の入力間隔Ｘのときに、所望の反復回数Ｎを得るための最小の復号処理の反復間隔（ステージ数）Ｙを設定すればよい。
【００８０】
また、復号器５の設計の際に、入力間隔Ｘを調整するには、復号処理部１１の設計を変更せずに、動作クロック１５の周波数を調整してもよい。
【００８１】
（例１）
例えば、図６の復号器５の設計後に、図６通信路４の伝送速度を上げたくなった場合を考える。伝送速度が上がった場合、同じ動作クロック周波数であれば、Ｓ／Ｐ変換部７からパラレルの入力データが出力されるサイクル間隔（クロック数）は、小さくなる。
仮に、図６においてＸ＝１１であった入力間隔Ｘが９サイクルになった場合、ＬＣＭ（Ｙ，Ｘ）＝ＬＣＭ（３，９）＝９である。この場合、反復可能回数Ｎの最大値を、上記条件式から求めると、反復可能回数Ｎ＝２となる。
【００８２】
つまり、条件式：（Ｙ  ×  Ｎ）  ＜  ＸとＹの最小公倍数
３  ×  Ｎ    ＜  ＬＣＭ（３，９）＝９
Ｎ    ＜  ３
【００８３】
（例２）
また、図６通信路４の伝送速度をさらに上げたくなった場合を考える。さらに伝送速度が上がった場合、同じ動作クロック周波数であれば、Ｓ／Ｐ変換部７からパラレルの入力データが出力されるサイクル間隔（クロック数）は、さらに小さくなる。ここでは、仮に、入力間隔Ｘ＝８になったとする。この場合、反復可能回数Ｎ＝８となる。
【００８４】
この場合、条件式：（Ｙ  ×  Ｎ）  ＜  ＸとＹの最小公倍数
３  ×  Ｎ    ＜  ＬＣＭ（３，８）＝２４
Ｎ    ＜  ９
【００８５】
図６の場合では１０回の反復回数が確保できていたのに、上記例１では、伝送速度が高速になったために、反復可能回数Ｎが減少した。この結果、反復回数の不足のため復号精度が低下することになる。一方、上記例２では、例１よりも伝送速度を更に上げると、反復可能回数Ｎが、例１よりも大きくなった。
【００８６】
そこで、例１の場合、動作クロック１５の周波数を低下させて、復号処理部１５の動作速度を低下させて、入力間隔Ｘを９よりも更に低下させ、例２のようにＸ＝８とすることで、例２のように、反復可能回数Ｎ＝８とすることができる。このように、動作クロックの周波数の変更によって、復号処理部１１の構成を変更せずに、反復可能回数Ｎとして適切な数値を確保できる。
【００８７】
また、例１，２とは逆に、伝送速度が低速になった場合は、入力間隔Ｘが大きくなる。入力間隔Ｘが大きくなって、ＬＣＭ（Ｙ，Ｘ）も大きくなった場合、反復可能回数Ｎも多くとれることになるが、反復は、ある程度の回数（例、１０回）を行うと、それ以上の復元精度向上を期待できず、あまり多い反復は必要とされない。
そこで、伝送速度が低速になった場合、十分な反復回数が確保できる場合には、故意に、動作クロック１５の周波数を低下させて、入力間隔Ｘが大きくなるのを抑制する（例えば、Ｘ＝１１を維持する）ことができる。この場合、動作クロック周波数が低くできるため、復号器５の消費電力を抑えることができる。
【００８８】
なお、本実施形態では、制御部１４は、通信路の伝送速度に応じて、動作クロック１５の周波数を調整する機能を有している。したがって、復号器５の動作時において、入力間隔（サイクル数）Ｘを動的に調整して、必要な反復回数を確保したり、復号器５の消費電力を低減させることができる。
【００８９】
これまで開示した実施形態はすべて例示であって制限的なものではない。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲の構成と均等の範囲内のすべての変更が本発明に含まれる。
例えば、本発明の復号器の復号器は、ＬＤＰＣ符号の復号器に限られるものではなく、ターボ復号器のように他の反復復号型の復号器であってもよい。
また、上記実施形態では、復号処理部１１の外部にある対数尤度比記憶部８から、先頭ステージ１１ａに対数尤度比λｎを与えたが、各ステージ１１ａ，１１，１１ｃがλｎの記憶部を備えておき、処理対象となっている入力データについての対数尤度比λｎを、処理データの一部としてとして、各ステージ１１ａ，１１ｂ，１１ｃが保持できるようにしてもよい。また、復号処理として、１回目の反復では対数尤度比を用いるが、２回目の反復では対数尤度比λｎを用いない方式を採用する場合、対数尤度比記憶部８は不要である。
さらに、上記実施形態では、復号処理部１１は、全並列型のものを示したが、部分並列型であってもよい。
【図面の簡単な説明】
【００９０】
【図１】第一実施形態の通信システムの概略構成図である。
【図２】送信データと復調データの対応の一例を示す図である。
【図３】復号器の構成図である。
【図４】検査行列の一例を示す図である。
【図５】図４に示す検査行列のタナーグラフである。
【図６】復号器の詳細な構成図である。
【図７】復号処理部への入力間隔の説明図である。
【図８】復号処理部での処理の流れを示す図である。
【図９】復号処理部での処理の流れを示す図である。
【図１０】反復復号処理を行う復号器の基本構成図である。
【符号の説明】
【００９１】
１：符号化器    ２：変調器    ３：通信路    ４：復調器
４ａ：復調回路    ４ｂ：アナログ／デジタル変換回路
５：復号器  ６：対数尤度比算出部    ７：Ｓ／Ｐ変換部    ８：対数尤度比記憶部
９：行処理部  １０：列処理部    １１：復号処理部    １１ａ：先頭ステージ
１１ｂ：第２ステージ    １１ｃ：最終ステージ    １２：判定部  
１３：Ｐ／Ｓ変換部    １４：制御部    １５：動作クロック    １６：加算部
２０：反復処理部      Ｓ：送信装置    Ｒ：受信装置    Ｘｎ：符号化データ
Ｃｎ：復号データ    λｎ：対数尤度比  
【図１】
2010130342.tif 000008
【図２】
2010130342.tif 000009
【図３】
2010130342.tif 000010
【図４】
2010130342.tif 000011
【図５】
2010130342.tif 000012
【図６】
2010130342.tif 000013
【図７】
2010130342.tif 000014
【図８】
2010130342.tif 000015
【図９】
2010130342.tif 000016
【図１０】
2010130342.tif 000017