(57)【特許請求の範囲】
【請求項１】
LDPC(Low Density Parity Check)符号を定義する所定の検査行列を用いてLDPC符号化されたデータ信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された伝送制御信号が多重化されて伝送されてきた場合、前記データ信号と前記伝送制御信号との両信号を受信して復号する受信装置であって、
前記両信号を復号可能なLDPC復号手段と、
前記LDPC復号手段の前段にそれぞれ設けられる、受信された前記データ信号を保持するデータ信号用入力バッファ、および、受信された前記伝送制御信号を保持する伝送制御信号用入力バッファと、
前記データ信号用入力バッファに保持された前記データ信号と、前記伝送制御信号用入力バッファに保持された前記伝送制御信号とのうちの少なくとも一方を、復号対象信号として選択して、前記LDPC復号手段に転送して前記復号対象信号の復号を行わせる制御を行う制御手段と
を備え、
前記伝送制御信号の受信値については、前記データ信号と比してその量子化ビット数を減らして前記伝送制御信号用入力バッファに保持される
受信装置。
【請求項２】
前記伝送制御信号は、
所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、その系列から前記既知信号が削除された形態の信号として前記受信装置に伝送され、
前記受信装置に受信された形態の信号に対して、前記既知信号が０である場合は０である確率が１、前記既知信号が１である場合は１である確率が１を意味する値が付加されて、前記伝送制御信号用入力バッファに保持される
請求項１に記載の受信装置。
【請求項３】
前記伝送制御信号は、
所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、
その系列から前記既知信号が削除された形態の信号として前記受信装置に伝送され、前記受信装置に受信されて前記伝送制御信号用入力バッファに保持され、
その後、前記伝送制御信号が前記復号対象信号に選択された場合、前記既知信号が０である場合は０である確率が１、前記既知信号が１である場合は１である確率が１を意味する値が、前記伝送制御信号用入力バッファに保持された信号に対して付加された信号が、前記伝送制御信号として前記LDPC復号手段に転送される
請求項１に記載の受信装置。
【請求項４】
前記伝送制御信号は、所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、
前記LDPC復号手段は、前記伝送制御信号の復号のうちの前記既知信号については、その既知信号ビットに連結するエッジのメッセージは既知信号が０である場合は０である確率が１、既知信号が１である場合は１である確率が１を意味する値として取り扱う
請求項１に記載の受信装置。
【請求項５】
前記伝送制御信号は、前記既知信号が全て０で構成されている形態の信号であり、
前記LDPC復号手段は、前記伝送制御信号の復号のうちの前記既知信号については、その既知信号ビットに連結するエッジのバリアブルノードまたはチェックノードの演算の処理を省略する
請求項４に記載の受信装置。
【請求項６】
前記制御手段は、
前記伝送制御信号の復号を、前記データ信号のうちの第１のデータ信号の復号が完了してから次の第２のデータ信号の復号を開始するまでの間の期間に、前記伝送制御信号を前記LDPC復号手段に復号させる制御を行う
請求項１に記載の受信装置。
【請求項７】
前記データ信号と前記伝送制御信号とは所定単位で多重化されて伝送され、
前記制御手段は、
少なくとも前記第１のデータ信号、前記第２のデータ信号、および前記伝送制御信号と多重化された前記所定単位が前記受信装置に受信し終えたタイミングで、前記伝送制御信号を前記第２のデータ信号に先んじて前記LDPC復号手段に復号させる制御を行う
請求項６に記載の受信装置。
【請求項８】
前記制御手段は、
前記伝送制御信号の復号を、前記データ信号のうちの第１のデータ信号の復号が成功した場合、その第１のデータ信号の復号が完了してから次の第２のデータ信号の復号を開始するまでの間の期間に、前記伝送制御信号を前記LDPC復号手段に復号させる制御を行う
請求項６に記載の受信装置。
【請求項９】
前記制御手段は、前記伝送制御信号の復号を、その受信が完了する前から前記LDPC復号手段に開始させ、
前記LDPC復号手段は、前記伝送制御信号のうちの未受信のビットは０である確率と１である確率が０．５を意味する値に設定して、前記伝送制御信号の復号を行う
請求項１に記載の受信装置。
【請求項１０】
前記LDPC復号手段は、前記伝送制御信号を復号して得た系列が、前記伝送制御信号が伝送されるシステム上使われていない値であった場合には、復号が失敗したと判断する
請求項１に記載の受信装置。
【請求項１１】
LDPC(Low Density Parity Check)符号を定義する所定の検査行列を用いてLDPC符号化されたデータ信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された伝送制御信号が多重化されて伝送されてきた場合、前記データ信号と前記伝送制御信号との両信号を受信して復号する受信装置の受信方法であって、
前記両信号を復号可能なLDPC復号手段と、
前記LDPC復号手段の前段にそれぞれ設けられる、受信された前記データ信号を保持するデータ信号用入力バッファ、および、受信された前記伝送制御信号を保持する伝送制御信号用入力バッファと
を備え、
前記伝送制御信号の受信値については、前記データ信号と比してその量子化ビット数を減らして前記伝送制御信号用入力バッファに保持される受信装置の受信方法において、
前記データ信号用入力バッファに保持された前記データ信号と、前記伝送制御信号用入力バッファに保持された前記伝送制御信号とのうちの少なくとも一方を、復号対象信号として選択して、前記LDPC復号手段に転送して前記復号対象信号の復号を行わせる制御を行う
ステップを含む受信方法。
【請求項１２】
LDPC(Low Density Parity Check)符号を定義する所定の検査行列を用いてLDPC符号化されたデータ信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された伝送制御信号が多重化されて伝送されてきた場合、前記データ信号と前記伝送制御信号との両信号を受信して復号する受信装置であって、
前記両信号を復号可能なLDPC復号手段と、
前記LDPC復号手段の前段にそれぞれ設けられる、受信された前記データ信号を保持するデータ信号用入力バッファ、および、受信された前記伝送制御信号を保持する伝送制御信号用入力バッファと
を備え、
前記伝送制御信号の受信値については、前記データ信号と比してその量子化ビット数を減らして前記伝送制御信号用入力バッファに保持される受信装置を制御するコンピュータに、
前記データ信号用入力バッファに保持された前記データ信号と、前記伝送制御信号用入力バッファに保持された前記伝送制御信号とのうちの少なくとも一方を、復号対象信号として選択して、前記LDPC復号手段に転送して前記復号対象信号の復号を行わせる制御を行う
ステップを実行させるプログラム。
【請求項１３】
LDPC(Low Density Parity Check)符号を定義する所定の検査行列を用いてLDPC符号化されたデータ信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された伝送制御信号が多重化されて伝送されてきた場合、前記データ信号と前記伝送制御信号との両信号を受信して復号する受信装置であって、
前記データ信号の復号専用のデータ信号用LDPC復号手段と、
前記伝送制御信号の復号専用の伝送制御信号用LDPC復号手段と、
前記伝送制御信号用LDPC復号手段の前段に設けられる、受信された前記伝送制御信号を保持する伝送制御信号用入力バッファと
を備え、
前記伝送制御信号の受信値については、前記データ信号と比してその量子化ビット数を減らして前記伝送制御信号用入力バッファに保持される
受信装置。
【請求項１４】
前記データ信号用LDPC復号手段と前記伝送制御信号用LDPC復号手段とは、同一の復号装置として構成されている
請求項１３に記載の受信装置。
【請求項１５】
前記伝送制御信号用LDPC復号手段は、硬判定復号装置として構成されている
請求項１３に記載の受信装置。
【請求項１６】
前記伝送制御信号用LDPC復号手段は、バリアブルノードおよびチェックノードの演算を各ビット毎にシリアルに行う復号装置として構成されている
請求項１３に記載の受信装置。
【請求項１７】
前記伝送制御信号は、
所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、その系列から前記既知信号が削除された形態の信号として前記受信装置に伝送され、
前記受信装置に受信された形態の信号に対して、前記既知信号が０である場合は０である確率が１、前記既知信号が１である場合は１である確率が１を意味する値が付加されて、前記伝送制御信号用入力バッファに保持される
請求項１３に記載の受信装置。
【請求項１８】
前記伝送制御信号は、
所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、
その系列から前記既知信号が削除された形態の信号として前記受信装置に伝送され、前記受信装置に受信されて前記伝送制御信号用入力バッファに保持され、
その後、前記伝送制御信号が復号対象信号に選択された場合、前記既知信号が０である場合は０である確率が１、前記既知信号が１である場合は１である確率が１を意味する値が、前記伝送制御信号用入力バッファに保持された信号に対して付加された信号が、前記伝送制御信号として前記伝送制御信号用LDPC復号手段に転送される
請求項１３に記載の受信装置。
【請求項１９】
前記伝送制御信号は、所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、
前記伝送制御信号用LDPC復号手段は、前記伝送制御信号の復号のうちの前記既知信号については、その既知信号ビットに連結するエッジのメッセージは既知信号が０である場合は０である確率が１、既知信号が１である場合は１である確率が１を意味する値として取り扱う
請求項１３に記載の受信装置。
【請求項２０】
前記伝送制御信号は、前記既知信号が全て０で構成されている形態の信号であり、
前記伝送制御信号用LDPC復号手段は、前記伝送制御信号の復号のうちの前記既知信号については、その既知信号ビットに連結するエッジのバリアブルノードまたはチェックノードの演算の処理を省略する
請求項１９に記載の受信装置。
【請求項２１】
前記伝送制御信号用LDPC復号手段は、
前記伝送制御信号の復号を、その受信が完了する前から開始し、
前記伝送制御信号のうちの未受信のビットは０である確率と１である確率が０．５を意味する値に設定して、前記伝送制御信号の復号を行う
請求項１３に記載の受信装置。
【請求項２２】
前記伝送制御信号用LDPC復号手段は、前記伝送制御信号を復号して得た系列が、前記伝送制御信号が伝送されるシステム上使われていない値であった場合には、復号が失敗したと判断する
請求項１３に記載の受信装置。
【請求項２３】
LDPC(Low Density Parity Check)符号を受信して復号する受信装置の受信方法において、
LDPC符号を定義する所定の検査行列を用いてLDPC符号化されたデータ信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された伝送制御信号が多重化されて伝送されてきた場合、前記データ信号と前記伝送制御信号との両信号を受信して復号し、
前記伝送制御信号の受信値については、前記データ信号と比してその量子化ビット数を減らして保持された後に復号する
ステップを含む受信方法。
【請求項２４】
LDPC(Low Density Parity Check)符号を受信して復号する受信装置を制御するコンピュータに、
LDPC符号を定義する所定の検査行列を用いてLDPC符号化されたデータ信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された伝送制御信号が多重化されて伝送されてきた場合、前記データ信号と前記伝送制御信号との両信号を受信して復号し、
前記伝送制御信号の受信値については、前記データ信号と比してその量子化ビット数を減らして保持された後に復号する
ステップを実行させるプログラム。
【請求項２５】
LDPC(Low Density Parity Check)符号を受信して復号する受信装置において、
前記LDPC符号を定義する所定の検査行列を用いてLDPC符号化された第１の信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された第２の信号が多重化されて伝送されてきた場合、前記第１の信号と前記第２の信号とを分離する分離手段と、
前記分離手段により分離された前記第１の信号と前記第２の信号とをそれぞれ復号するLDPC復号手段と
を備え、
前記第２の信号は、
所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、その系列から前記既知信号が削除された形態の信号として前記受信装置に伝送され、
前記受信装置に受信された形態の信号に対して、前記既知信号が０である場合は０である確率が１、前記既知信号が１である場合は１である確率が１を意味する値が付加されて、受信された前記第２の信号を保持する第２の信号用入力バッファに保持される
受信装置。
【請求項２６】
LDPC(Low Density Parity Check)符号を受信して復号する受信装置において、
前記LDPC符号を定義する所定の検査行列を用いてLDPC符号化された第１の信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された第２の信号が多重化されて伝送されてきた場合、前記第１の信号と前記第２の信号とを分離する分離手段と、
前記分離手段により分離された前記第１の信号と前記第２の信号とをそれぞれ復号するLDPC復号手段と
を備え、
前記第２の信号は、
所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、
その系列から前記既知信号が削除された形態の信号として前記受信装置に伝送され、前記受信装置に受信されて、受信された前記第２の信号を保持する第２の信号用入力バッファに保持され、
その後、前記第２の信号が復号を行わせる復号対象信号に選択された場合、前記既知信号が０である場合は０である確率が１、前記既知信号が１である場合は１である確率が１を意味する値が、前記第２の信号用入力バッファに保持された信号に対して付加された信号が、前記第２の信号として前記LDPC復号手段に転送される
受信装置。
【請求項２７】
LDPC(Low Density Parity Check)符号を受信して復号する受信装置において、
前記LDPC符号を定義する所定の検査行列を用いてLDPC符号化された第１の信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された第２の信号が多重化されて伝送されてきた場合、前記第１の信号と前記第２の信号とを分離する分離手段と、
前記分離手段により分離された前記第１の信号と前記第２の信号とをそれぞれ復号するLDPC復号手段と
を備え、
前記第２の信号は、所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、
前記LDPC復号手段は、前記第２の信号の復号のうちの前記既知信号については、その既知信号ビットに連結するエッジのメッセージは既知信号が０である場合は０である確率が１、既知信号が１である場合は１である確率が１を意味する値として取り扱う
受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信装置および方法並びにプログラムに関し、特に、復号性能を維持しつつ回路規模を従来より縮小できるようになった受信装置および方法並びにプログラムに関する。
【背景技術】
【０００２】
通信システムにおいては、コーディングを使用して雑音のある通信チャネルに渡る信頼性ある通信が行われている。例えば、衛星ネットワークのようなワイヤレス（または無線）システムでは、地理的および環境的要因からの雑音源が多い。これらの通信チャネルは固定容量を表し、ある信号対雑音比（ＳＮＲ）におけるシンボル当たりのビットに関して表すことができ、シャノン限界として知られる理論的上限を規定している。結果として、コーディング設計はこのシャノン限界に近づくレートを達成することを目的としている。この目的は、帯域幅制約衛星システムに対して特に密接な関係がある。
【０００３】
近年では、シャノン限界に近い性能を示す符号化方法として、例えば、並列連接畳み込み符号(PCCC(Parallel Concatenated Convolutional Codes))や、縦列連接畳み込み符号(SCCC(Serially Concatenated Convolutional Codes))といった、いわゆるターボ符号化(Turbo coding)と称される手法が開発されている。また、これらのターボ符号が開発される一方で、古くから知られる符号化方法である低密度パリティ検査符号(Low Density Parity Check codes)（以下、LDPC符号と称する）が脚光を浴びつつある。
【０００４】
LDPC符号は、R. G. Gallagerによる非特許文献１において最初に提案されたものであり、その後、非特許文献２，３等において再注目されるに至ったものである。
【０００５】
LDPC符号は、近年の研究により、ターボ符号等と同様に、符号長を長くしていくに従って、シャノン限界に近い性能が得られることがわかりつつある。また、LDPC符号は、最小距離が符号長に比例するという性質があることから、その特徴として、ブロック誤り確率特性がよく、さらに、ターボ符号等の復号特性において観測される、いわゆるエラーフロア現象が殆ど生じないことが利点として挙げられる。
【０００６】
以下、このようなLDPC符号について具体的に説明する。なお、LDPC符号は、線形符号であり、必ずしも２元である必要はないが、ここでは、２元であるものとして説明する。
【０００７】
LDPC符号は、そのLDPC符号を定義する検査行列(parity check matrix)が疎なものであることを最大の特徴とするものである。ここで、疎な行列とは、行列のコンポーネントの"1"の個数が非常に少なく構成されるものであり、疎な検査行列をHで表すものとすると、そのような検査行列Hとしては、例えば、図１に示すように、各列のハミング重み（"1"の数）(weight)が"3"であり、且つ、各行のハミング重みが"6"であるもの等がある。
【０００８】
このように、各行及び各列のハミング重みが一定である検査行列Hによって定義されるLDPC符号は、レギュラーLDPC符号と称される。一方、各行及び各列のハミング重みが一定でない検査行列Hによって定義されるLDPC符号は、イレギュラーLDPC符号と称される。
【０００９】
このようなLDPC符号による符号化は、検査行列Hに基づいて生成行列Gを生成し、この生成行列Gを２元の情報メッセージに対して乗算することによって符号語を生成することで実現される。具体的には、LDPC符号による符号化を行う符号化装置は、まず、検査行列Hの転置行列HTとの間に、式GHT=0が成立する生成行列Gを算出する。ここで、生成行列Gが、k×n行列である場合には、符号化装置は、生成行列Gに対してkビットからなる情報メッセージ（ベクトルu）を乗算し、nビットからなる符号語ｃ（＝uＧ）を生成する。この符号化装置によって生成された符号語は、値が"0"の符号ビットが"+1"に、値が"1"の符号ビットが"−1"にといったようにマッピングされて送信され、所定の通信路を介して受信側において受信されることになる。
【００１０】
一方、LDPC符号の復号は、Gallagerが確率復号(Probabilistic Decoding)と称して提案したアルゴリズムであって、バリアブルノード(バリアブルノード（メッセージノード(message node)とも呼ばれる。）)と、チェックノード(チェックノード)とからなる、いわゆるタナーグラフ(Tanner graph)上での確率伝播(belief propagation)によるメッセージ・パッシング・アルゴリズムによって行うことが可能である。ここで、以下、適宜、バリアブルノードとチェックノードを、単に、ノードともいう。
【００１１】
しかしながら、確率復号においては、各ノード間で受け渡されるメッセージが実数値であることから、解析的に解くためには、連続した値をとるメッセージの確率分布そのものを追跡する必要があり、非常に困難を伴う解析を必要とすることになる。そこで、Gallagerは、LDPC符号の復号アルゴリズムとして、アルゴリズムＡ又はアルゴリズムＢを提案している。
【００１２】
LDPC符号の復号は、例えば、図２に示すような手順に従って行われる。なお、ここでは、符号長の長さのLDPC符号の受信データのi番目をU0(u0i)とし、チェックノードから出力されるj番目のメッセージ（チェックノードに接続しているj番目の枝から出力されるメッセージ）をujとし、バリアブルノードから出力されるi番目のメッセージ（バリアブルノードに接続しているi番目の枝から出力されるメッセージ）をviとする。また、ここでは、メッセージとは、値の"0"らしさを表す、いわゆる対数尤度比(log likelihood ratio)等を表現する実数値である。
【００１３】
まず、LDPC符号の復号においては、図２に示すように、ステップＳ１１において、受信データU0(u0i)が受信され、メッセージujが"0"に初期化されるとともに、繰り返し処理のカウンタとしての整数をとる変数kが"0"に初期化され、処理は、ステップＳ１２に進む。ステップＳ１２において、受信データU0(u0i)を用いて、式（１）に示すバリアブルノードの演算を行うことによってメッセージviが求められ、さらに、このメッセージviを用いて、式（２）に示すチェックノードの演算を行うことによってメッセージujが求められる。
【００１４】
【数１】
0004626827.tif 000002
・・・（１）
【００１５】
【数２】
0004626827.tif 000003
・・・（２）
【００１６】
ここで、式（１）と式（２）におけるdvとdcは、それぞれ、検査行列Hの縦方向（列）と横方向（行）の"1"の個数、つまり、列の重み（ハミング重み）と行の重みを示す任意に選択可能とされるパラメータであり、例えば、(3,6)符号の場合には、dv=3，dc=6となる。
【００１７】
なお、式（１）又は（２）の演算においては、それぞれ、メッセージを出力しようとする枝(edge)から入力されたメッセージを、和又は積演算の対象としては用いないことから、和又は積演算の範囲が、１ないしdv-1又は１ないしdc-1となっている。また、式（２）に示す演算は、２入力v1，v2に対して１が得られる式（３）に示す関数R(v1,v2)のテーブルを予め作成しておき、これを式（４）に示すように連続的（再帰的）に用いることによって行うことができる。
【００１８】
【数３】
0004626827.tif 000004
・・・（３）
【００１９】
【数４】
0004626827.tif 000005
・・・（４）
【００２０】
ステップＳ１２では、さらに、変数kが"1"だけインクリメントされ、処理は、ステップＳ１３に進む。ステップＳ１３では、変数kが所定の繰り返し復号回数N以上であるか否かが判定される。ステップＳ１３において、変数kがN以上ではないと判定された場合、処理は、ステップＳ１２に戻り、以下、同様の処理が繰り返される。
【００２１】
また、ステップＳ１３において、変数kがN以上であると判定された場合、処理は、ステップＳ１４に進み、式（５）に示す演算を行うことによって最終的に出力する復号結果としてのメッセージvが求められて出力され、LDPC符号の復号処理が終了する。
【００２２】
【数５】
0004626827.tif 000006
・・・（５）
【００２３】
ここで、式（５）の演算は、式（１）の演算とは異なり、バリアブルノードに接続している全ての枝からのメッセージujを用いて行われる。
【００２４】
このようなLDPC符号の復号では、例えば(3,6)符号の場合には、図３に示すように、各ノード間でメッセージの授受が行われる。なお、図３において"="（イコール）で示すノードは、バリアブルノードを表し、式（１）に示したバリアブルノードの演算が行われる。また、図３において"+"（プラス）で示すノードは、チェックノードを表し、式（２）に示したチェックノードの演算が行われる。特に、アルゴリズムＡにおいては、メッセージを２元化し、"+"で示すチェックノードにて、dc-1個の入力メッセージ（チェックノードに入力されるメッセージvi）の排他的論理和演算を行い、"="で示すバリアブルノードにて、受信データRに対して、dv-1個の入力メッセージ（バリアブルノードに入力されるメッセージuj）が全て異なるビット値であった場合には、符号を反転して出力する。
【００２５】
また、近年、LDPC符号の復号の実装法に関する研究も行われている。実装方法について述べる前に、まず、LDPC符号の復号を摸式化して説明する。
【００２６】
図４は、(3,6)符号のLDPC符号（符号化率1/2、符号長12）の検査行列(parity check matrix)Hの例である。LDPC符号の検査行列Hは、図５のように、タナーグラフを用いて書き表すことができる。ここで、図５において、"+"で表されるのが、チェックノードであり、"="で表されるのが、バリアブルノードである。チェックノードとバリアブルノードは、それぞれ、検査行列の行と列に対応する。チェックノードとバリアブルノードとの間の結線は、枝(edge)であり、検査行列Hの"1"に相当する。すなわち、検査行列の第ｊ行第ｉ列のコンポーネントが１である場合には、図５において、上からｉ番目のバリアブルノード（"="のノード）と、上からｊ番目のチェックノード（"+"のノード）とが、枝により接続される。枝は、バリアブルノードに対応するLDPC符号（の受信データ）のビットが、チェックノードに対応する拘束条件を持つことを表す。なお、図５は、図４の検査行列Hのタナーグラフとなっている。
【００２７】
LDPC符号の復号方法であるサムプロダクトアルゴリズム(Sum Product Algorithm)は、バリアブルノードの演算とチェックノードの演算とを繰り返し行う。
【００２８】
バリアブルノードでは、図６のように、式（１）のバリアブルノードの演算を行う。すなわち、図６において、バリアブルノードに接続している枝のうちのi番目の枝に対応するメッセージviは、バリアブルノードに接続している残りの枝からのメッセージu1及びu2と、受信データu0iとを用いて計算される。他の枝に対応するメッセージも同様に計算される。
【００２９】
チェックノードの演算について説明する前に、式（２）を、式a×b=exp{ln(|a|)+ln(|b|)}×sign(a)×sign(b)の関係を用いて、式（６）のように書き直す。但し、sign(x)は、x≧0のとき1（論理０）であり、x＜0のとき-1（論理１）である。
【００３０】
【数６】
0004626827.tif 000007
・・・（６）
【００３１】
さらに、x≧0において、非線形関数φ(x)=-ln(tanh(x/2))を定義すると、その逆関数φ-1(x)は、式φ-1(x)=2tanh-1(e-x)で表されるから、式（６）は、式（７）のように書くことができる。
【００３２】
【数７】
0004626827.tif 000008
・・・（７）
【００３３】
チェックノードでは、図７のように、式（７）のチェックノードの演算を行う。すなわち、図７において、チェックノードに接続している枝のうちのj番目の枝に対応するメッセージujは、チェックノードに繋がっている残りの枝からのメッセージv1,v2,v3,v4,v5を用いて計算される。他の枝に対応するメッセージも同様に計算される。
【００３４】
なお、関数φ(x)は、φ(x)=ln((ex+1)/(ex-1))とも表すことができ、x＞0において、φ(x)=φ-1(x)、すなわち、非線形関数φ(x)の演算結果と、その逆関数φ-1(x)の演算結果とは同一である。関数φ(x)及びφ-1(x)をハードウェアに実装する際には、LUT(Look Up Table)を用いて実装される場合があるが、両者は同一のLUTとなる。
【００３５】
また、式（１）のバリアブルノードの演算は、式（５）と、次の式（８）とに分けることができる。
【００３６】
【数８】
0004626827.tif 000009
・・・（８）
【００３７】
したがって、式（５）及び式（８）と、式（７）の演算を繰り返し行うことにより、式（１）のバリアブルノードの演算と、式（７）のチェックノードの演算を繰り返し行うことができる。
【００３８】
この場合、図８に示されるように、式（５）及び式（８）のバリアブルノードの演算のうちの、式（５）の演算の結果を、そのまま、最終的な復号結果とすることができる。
【００３９】
サムプロダクトアルゴリズムをハードウェアに実装して、復号装置とする場合、式（１）（、又は式（５）及び式（８））で表されるバリアブルノード演算（バリアブルノードの演算）及び式（７）で表されるチェックノード演算（チェックノードの演算）を、適度な回路規模と動作周波数で繰り返し行うことが必要である。
【００４０】
復号装置の実装の例として、単純に各ノードの演算を一つずつ順次行うことによって復号を行うフルシリアルの復号(full serial decoding)の実装法について説明する。
【００４１】
図９は、LDPC符号の復号を行う復号装置の構成例を示している。
【００４２】
図９の復号装置では、動作クロックの１クロック(clock)ごとに、１つの枝に対応するメッセージが計算される。
【００４３】
すなわち、図９の復号装置は、メッセージ計算部１０１、メッセージメモリ１０４、受信値メモリ１０５、制御部１０６からなる。また、メッセージ計算部１０１は、バリアブルノード計算器１０２とチェックノード計算器１０３とから構成されている。
【００４４】
図９の復号装置では、メッセージメモリ１０４からメッセージ計算部１０１に、メッセージが１つずつ読み出され、メッセージ計算部１０１において、そのメッセージを用いて、所望の枝に対応するメッセージが計算される。そして、その計算によって求められたメッセージが、メッセージメモリ１０４に格納されていく。図９の復号装置では、以上の処理が繰り返し行われる。即ち、いわゆる繰り返し復号が行われる。
【００４５】
すなわち、受信値メモリ１０５には、送信されてきたLDPC符号を受信することにより得られる、符号の0（又は1）らしさを表す対数尤度比である受信データ（LDPC符号）D100が供給され、受信値メモリ１０５は、その受信データD100を格納（記憶）する。
【００４６】
バリアブルノード演算時には、受信値メモリ１０５は、制御部１０６から供給される制御信号に従って、記憶している受信データを読み出し、受信データD101として、メッセージ計算部１０１のバリアブルノード計算器１０２に供給する。
【００４７】
また、バリアブルノード演算時には、メッセージメモリ１０４は、制御部１０６から供給される制御信号に従って、記憶しているメッセージ（チェックノードメッセージuj）D102を読み出し、バリアブルノード計算器１０２に供給する。バリアブルノード計算器１０２は、メッセージメモリ１０４から供給されるメッセージD102と受信値メモリ１０５から供給される受信データD101を用い、式（１）のバリアブルノード演算を行い、そのバリアブルノード演算の結果得られたメッセージ（バリアブルノードメッセージ）viを、メッセージD103として、メッセージメモリ１０４に供給する。
【００４８】
そして、メッセージメモリ１０４は、以上のようにしてバリアブルノード計算器１０２から供給されるメッセージD103を記憶する。
【００４９】
一方、チェックノード演算時には、メッセージメモリ１０４は、制御部１０６から供給される制御信号に従って、記憶しているバリアブルノードメッセージviを、メッセージD104として読み出し、チェックノード計算器１０３に供給する。
【００５０】
チェックノード計算器１０３は、メッセージメモリ１０４から供給されるメッセージD104を用いて、式（７）のチェックノード演算を行い、そのチェックノード演算によって求められたメッセージ（チェックノードメッセージ）ujを、メッセージD105として、メッセージメモリ１０４に供給する。
【００５１】
そして、メッセージメモリ１０４は、以上のようにしてチェックノード計算器１０３から供給されるメッセージD105を記憶する。
【００５２】
メッセージメモリ１０４が記憶したチェックノード計算器１０３からのメッセージD105、すなわち、チェックノードメッセージujは、次のバリアブルノード演算時に、メッセージD102として読み出され、バリアブルノード計算器１０２に供給される。
【００５３】
図１０は、バリアブルノード演算を１つずつ行う図９のバリアブルノード計算器１０２の構成例を示している。
【００５４】
バリアブルノード計算器１０２は、外部からメッセージ（データ）が供給（入力）される入力ポートとして、２つの入力ポートP101とP102を有し、外部にメッセージを供給（出力）するポートとして、１つの出力ポートP103を有している。そして、バリアブルノード計算器１０２は、入力ポートP101とP102それぞれから入力されるメッセージを用いて、式（１）のバリアブルノード演算を行い、その結果得られるメッセージを、出力ポートP103から出力する。
【００５５】
すなわち、入力ポートP101には、受信値メモリ１０５から読み出された受信データD101が供給される。また、入力ポートP102には、メッセージメモリ１０４から読み出されたメッセージD102（チェックノードメッセージuj）が供給される。
【００５６】
バリアブルノード計算器１０２では、検査行列の各行に対応するチェックノードからのメッセージD102（メッセージuj）が入力ポートP102から１つずつ読み込まれ、そのメッセージD102が、演算器１５１とFIFOメモリ１５５に供給される。また、バリアブルノード計算器１０２では、受信値メモリ１０５から受信データD101が入力ポートP101から1つずつ読み込まれ、演算器１５７に供給される。
【００５７】
演算器１５１は、メッセージD102（メッセージuj）とレジスタ１５２に格納されている値D151とを加算することにより、メッセージD102を積算し、その結果得られる積算値を、レジスタ１５２に再格納する。なお、検査行列の１列に亘る全ての枝からのメッセージD102が積算された場合、レジスタ１５２は０にリセットされる。
【００５８】
検査行列の１列に亘るメッセージD102が１つずつ読み込まれ、レジスタ１５２に１列分のメッセージD102が積算された値が格納された場合、すなわち、レジスタ１５２に、検査行列の１列に亘る全ての枝からのメッセージD102（メッセージuj）が積算された積算値（ｊ＝１からdvまでのΣuj)が格納された場合、セレクタ１５３は、レジスタ１５２に格納されている値、すなわち、検査行列の１列に亘る全ての枝からのメッセージD102（メッセージuj）が積算された積算値D151（ｊ＝１からdvまでのΣuj)を選択し、レジスタ１５４に出力して格納させる。
【００５９】
レジスタ１５４は、格納している値D151を、値D152として、セレクタ１５３と演算器１５６に供給する。レジスタ１５２に１列分のメッセージD102が積算された値が格納される直前までは、セレクタ１５３は、レジスタ１５４から供給された値D152を選択し、レジスタ１５４に出力し再格納させる。すなわち、検査行列の１列に亘る全ての枝からのメッセージD102（メッセージuj）が積算されるまで、レジスタ１５４は、前回積算された値を、セレクタ１５３と演算器１５６に供給する。
【００６０】
一方、FIFO(First In First Out)メモリ１５５は、レジスタ１５４から新たな値D152（ｊ＝１からdvまでのΣuj)が出力されるまでの間、チェックノードからのメッセージD102を遅延し、値D153として演算器１５６に供給する。演算器１５６は、レジスタ１５４から供給された値D152から、FIFOメモリ１５５から供給された値D153を減算する。すなわち、演算器１５６は、検査行列の１列に亘る全ての枝からのメッセージD102（メッセージuj）の積算値（ｊ＝１からdvまでのΣuj）から、求めたい枝からのメッセージujを減算して、その減算値（ｊ＝１からdv-1までのΣuj）を求め、演算器１５７に供給する。
【００６１】
演算器１５７は、入力ポートP101からの受信データD101と、演算器１５６からの減算値（ｊ＝１からdv-1までのΣuj）とを加算し、その結果得られる加算値をメッセージD103（メッセージvi）として、出力ポートP103から出力する。
【００６２】
以上のように、バリアブルノード計算器１０２では、式（１）のバリアブルノード演算（vi=uoi＋Σuj）が行われ、その結果得られるメッセージ（バリアブルノードメッセージ）viが、出力ポートP103から出力される。
【００６３】
図１１は、チェックノード演算を１つずつ行う図９のチェックノード計算器１０３の構成例を示している。
【００６４】
チェックノード計算器１０３は、外部からメッセージ（データ）が供給（入力）される入力ポートとして、１つの入力ポートP111を有し、外部にメッセージを供給（出力）するポートとして、１つの出力ポートP112を有している。そして、チェックノード計算器１０３は、入力ポートP111から入力されるメッセージを用いて、式（７）のチェックノード演算を行い、その結果得られるメッセージを、出力ポートP112から出力する。
【００６５】
すなわち、入力ポートP111には、メッセージメモリ１０４から読み出されたメッセージD104（バリアブルノードメッセージvi）が供給される。
【００６６】
チェックノード計算器１０３では、検査行列の各列に対応するバリアブルノードからのメッセージD104（メッセージvi）が入力ポートP111から１つずつ読み込まれ、その最上位ビットを除く下位ビット、つまり、メッセージD104の絶対値D122(|vi|)が、LUT１２１に供給されるとともに、最上位ビット、つまりメッセージD104の符号ビット（正負を表すビット）D121が、EXOR回路１２９とFIFOメモリ１３３にそれぞれ供給される。
【００６７】
LUT１２１は、そこに入力される値を引数xとして、式（７）のチェックノード演算における非線形関数φ(x)の演算結果を出力するLUTであり、絶対値D122(|vi|)の供給に対して、非線形関数φ(|vi|)の演算を行った演算結果D123（φ(|vi|)）を読み出し、演算器１２２とFIFOメモリ１２７に供給する。
【００６８】
演算器１２２は、演算結果D123（φ(|vi|)）とレジスタ１２３に格納されている値D124とを加算することにより、演算結果D123を積算し、その結果得られる積算値をレジスタ１２３に再格納する。なお、検査行列の１行に亘る全ての枝からのメッセージD104の絶対値D122(|vi|)に対する演算結果D123（φ(|vi|)）が積算された場合、レジスタ１２３は０にリセットされる。
【００６９】
検査行列の１行に亘るメッセージD104が１つずつ読み込まれ、レジスタ１２３に１行分の演算結果D123が積算された積算値が格納された場合、セレクタ１２４は、レジスタ１２３に格納されている値、すなわち、検査行列の１行に亘る全ての枝からのメッセージD104（メッセージvi）から求められたφ(|vi|)が積算された積算値D124（ｉ＝１からｄcまでのΣφ(|vi|)）を選択し、値D125として、レジスタ１２５に出力して格納させる。レジスタ１２５は、格納している値D125を、値D126として、セレクタ１２４と演算器１２６に供給する。
【００７０】
レジスタ１２３に１行分の演算結果D123が積算された積算値が格納される直前までは、セレクタ１２４は、レジスタ１２５から供給された値D126を選択し、レジスタ１２５に出力して再格納させる。すなわち、検査行列の１行に亘る全ての枝からのメッセージD104（メッセージvi）から求められたφ(|vi|)が積算されるまで、レジスタ１２５は、前回積算されたφ(|vi|)の積算値を、セレクタ１２４と演算器１２６に供給する。
【００７１】
一方、FIFOメモリ１２７は、レジスタ１２５から新たな値D126（ｉ＝１からdcまでのΣφ(|vi|)）が出力されるまでの間、LUT１２１が出力した演算結果D123（φ(|vi|)）を遅延し、値D127として演算器１２６に供給する。演算器１２６は、レジスタ１２５から供給された値D126から、FIFOメモリ１２７から供給された値D127を減算し、その減算結果を、減算値D128としてLUT１２８に供給する。すなわち、演算器１２６は、検査行列の１行に亘る全ての枝からのメッセージD104（メッセージvi）から求められたφ(|vi|)の積算値（ｉ＝１からdcまでのΣφ(|vi|)）から、求めたい枝からのメッセージ（ｉ＝dcのメッセージvi）から求められたφ(|vi|)を減算して、その減算値（ｉ＝１からdc-1までのΣφ(|vi|)）を減算値D128としてLUT１２８に供給する。
【００７２】
LUT１２８は、そこに入力される値を引数xとして、式（７）のチェックノード演算における非線形関数φ(x)の逆関数φ-1(x)の演算結果を出力するLUTであり、演算器１２６からの減算値D128（ｉ＝１からdc-1までのΣφ(|vi|)）の供給に対して、逆関数φ-1（Σφ(|vi|)）の演算を行った演算結果D129（φ-1(Σφ(|vi|)))を出力する。
【００７３】
なお、上述したように、同一の引数xに対する非線形関数φ(x)の演算結果と逆関数φ-1(x)の演算結果とは等しいので、LUT１２１と１２８とは、同一構成のLUTとなっている。
【００７４】
以上の処理と並行して、EXOR回路１２９は、レジスタ１３０に格納されている値D131と符号ビット（正負を表すビット）D121との排他的論理和を演算することにより、メッセージD104の符号ビットD121同士の乗算を行い、乗算結果D130をレジスタ１３０に再格納する。なお、検査行列の１行に亘る全ての枝からのメッセージD104の符号ビットD121が乗算された場合、レジスタ１３０はリセットされる。
【００７５】
検査行列の１行に亘る全ての枝からのメッセージD104の符号ビットD121が乗算された乗算結果D130（ｉ＝１からdcまでのΠsign(vi)）がレジスタ１３０に格納された場合、セレクタ１３１は、レジスタ１３０に格納されている値、すなわち、検査行列の１行に亘る全ての枝からのメッセージD104の符号ビットD121が乗算された値D131（ｉ＝１からdcまでのΠsign(vi)）を選択し、値D132としてレジスタ１３２に出力して格納させる。レジスタ１３２は、格納している値D132を、値D133としてセレクタ１３１とEXOR回路１３４に供給する。
【００７６】
検査行列の１行に亘る全ての枝からのメッセージD104の符号ビットD121が乗算された乗算結果D130（ｉ＝１からdcまでのΠsign(vi)）がレジスタ１３０に格納される直前までは、セレクタ１３１は、レジスタ１３２から供給された値D133を選択し、レジスタ１３２に出力して再格納させる。すなわち、検査行列の１行に亘る全ての枝からのメッセージD104（メッセージvi）の符号ビットD121が乗算されるまで、レジスタ１３２は、前回格納した値を、セレクタ１３１とEXOR回路１３４に供給する。
【００７７】
一方、FIFOメモリ１３３は、レジスタ１３２から新たな値D133（ｉ＝１からdcまでのΠsign(vi)）がEXOR回路１３４に供給されるまでの間、符号ビットD121を遅延し、１ビットの値D134としてEXOR回路１３４に供給する。EXOR回路１３４は、レジスタ１３２から供給された値D133と、FIFOメモリ１３３から供給された値D134との排他的論理和を演算することにより、値D133を、値D134で除算し、除算結果を除算値D135として出力する。すなわち、EXOR回路１３４は、検査行列の１行に亘る全ての枝からのメッセージD104の符号ビットD121（sign(vi)）の乗算値を、求めたい枝からのメッセージD104の符号ビットD121（sign(vi)）で除算して、その除算値（ｉ＝１からdc-1までのΠsign(vi)）を除算値D135として出力する。
【００７８】
そして、チェックノード計算器１０３では、LUT１２８から出力された演算結果D129を下位ビットとするとともに、EXOR回路１３４から出力された除算値D135を最上位ビット（符号ビット）とするビット列がメッセージD105（メッセージuj）として、出力ポートP112から出力される。
【００７９】
以上のように、チェックノード計算器１０３では、式（７）の演算が行われ、メッセージ（チェックノードメッセージ）ujが求められる。
【００８０】
なお、図示しないが、図９の復号装置では、復号の最終段（例えば、あらかじめ定められた繰り返し復号の回数Nだけ行われるバリアブルノード演算及びチェックノード演算のうちの最後に行われるバリアブルノード演算）において、式（１）のバリアブルノード演算の代わりに、式（５）の演算が行われ、その演算結果が、最終的な復号結果として出力される。
【００８１】
図９の復号装置によれば、メッセージメモリ１０４（図９）、バリアブルノード計算器１０２（図１０）のFIFOメモリ１５５、チェックノード計算器１０３（図１１）のFIFOメモリ１２７及び１３３の容量さえ足りれば、様々な検査行列のLDPC符号を復号することができる。
【００８２】
図９の復号装置を繰り返し用いて復号する場合には、チェックノード計算とバリアブルノード計算を交互に行う必要があるため、１回復号するのにメッセージの数の２倍のクロック数が必要となる。但し、検査行列の構造を持つ LDPC符号の場合、各ノード計算器をP個持つことで、1/P のクロック数で復号させることが可能になる。
【００８３】
以下、LDPCの構成行列毎にパラレルにノード演算を行う構成を有するLDPC符号の復号装置について説明する。なお、以下、かかる演算を、パリティパラレルの復号（partly parallel decoding）と称する。
【００８４】
パリティパラレルの復号を行うLDPC符号は、P×Pの単位行列、その単位行列のコンポーネントである１のうち１個以上が０になった行列（以下、適宜、準単位行列という）、単位行列または準単位行列をサイクリックシフト(cyclic shift)した行列（以下、適宜、シフト行列という）、単位行列、準単位行列、またはシフト行列のうちの２以上(複数)の和（以下、適宜、和行列という）、P×Pの０行列を構成行列として、複数の構成行列の組み合わせにより構成される行列で表すことができるようになっている。なお、以下、かかる構造の検査行列を、P×Pの構造の検査行列と称し、そのような構造の検査行列で表されるLDPC符号を、「Pの符号」と称する。
【００８５】
このような「Pの符号」の復号する際には、チェックノード演算とバリアブルノード演算とをP個同時に行うことが可能になる。
【００８６】
例えば図１２は、P＝6とした場合のP×Pの構造の検査行列Hの一例を示している。即ち、図１２の検査行列Hは、6×6の単位行列、6×6の準単位行列、6×6のシフト行列、6×6の和行列、6×6の０行列を構成行列として、複数の構成行列の組み合わせにより構成される行列の一例を示している。なお、この符号は符号化率2/3、符号長108とされている。
【００８７】
さらに、以下、別個のバリアブルノード計算器とチェックノード計算器とを採用する代わりに、チェックノード演算とバリアブルノード演算との両演算を同一回路で切り替えて処理できるノード計算器を採用した場合の例として、パリティパラレルの復号を説明する。
【００８８】
図１３は、「P=6の符号」の復号であって、６個のノード計算器を用いてパリティパラレルの復号を行う復号装置の構成例を示している。ただし、図１３の例では、「P=6の符号」として上述した図１２の符号を復号することが想定されている。
【００８９】
図１３の復号装置は、受信値メモリ２００、メッセージメモリ２０１、P=6個のノード計算器２１０−１乃至２１０−６を含むメッセージ計算部２０２、制御部２０３、シフト部２０４、および復号結果メモリ２０５からなる。
【００９０】
なお、以下、ノード計算器２１０−１乃至２１０−６を個々に区別する必要が無い場合、これらをまとめて、ノード計算器２１０と称する。
【００９１】
受信値メモリ２００には、送信されてきたLDPC符号を受信することにより得られる、符号の0（又は1）らしさを表す対数尤度比である受信データ（LDPC符号）D200が供給され、受信値メモリ２００は、その受信データD200を格納（記憶）する。
【００９２】
バリアブルノード演算時には、受信値メモリ２００は、制御部２０３から供給される制御信号に従って、記憶している受信データを読み出し、受信データD201として、メッセージ計算部２０２のノード計算器２１０に供給する。
【００９３】
メッセージメモリ２０１は、制御部２０３の制御に基づいてメッセージデータを格納し、また適宜読み出すメモリである。すなわち、メッセージメモリ２０１は、ノード計算器２１０にメッセージD202，D203を適宜供給し、また、シフト部２０４からのメッセージD205を適宜格納する。メッセージメモリ２０１は、２つのメッセージデータを同時に読み出すことができるように、独立に制御可能な２つ以上のメモリで構成されている。
【００９４】
メッセージ計算部２０２の各ノード計算器２１０は、バリアブルノード演算とチェックノード演算とを切り替えて処理することが可能な演算器である。
【００９５】
すなわち、バリアブルノード演算時には、ノード計算器２１０は、メッセージメモリ２０１から供給されるメッセージD202，D203と受信値メモリ２００から供給される受信データD201を用いて、式(１)等に従ってバリアブルノード演算を行い、そのバリアブルノード演算の結果得られたメッセージ（バリアブルノードメッセージ）viを、メッセージD204として、シフト部２０４に供給する。
【００９６】
また、チェックノード演算時には、ノード計算器２１０は、メッセージメモリ２０１から供給されるメッセージD202，D203を用いて、式(７)等に従ってチェックノード演算を行い、そのチェックノード演算によって求められたメッセージ（チェックノードメッセージ）ujを、メッセージD204として、シフト部２０４に供給する。
【００９７】
シフト部２０４には、メッセージ計算部２０２からメッセージD204が供給される場合、それに対応する枝が図１２の検査行列において元となる単位行列などを幾つサイクリックシフトしたものであるかの情報が制御部２０３から提供される。そこで、シフト部２０４は、この情報に基づいてメッセージD204を並べ替えるサイクリックシフトを行い、その結果をメッセージD205として、メッセージメモリ２０１に供給する。
【００９８】
図１３では、構成行列あたりのバリアブルノード 6個をパラレルに演算すべく、P=6個のノード計算器２１０−１乃至２１０−６が設けられている。例えば、1受信データ当りのビット数mを6とした場合、構成行列が6 ×6のサイズとなるので、受信値メモリ２００は、例えば1wordあたり36bitのRAMで構成される。ノード演算は、構成行列あたりパラレルに行われるので、受信値メモリ２００から構成行列分のデータが同時に各ノード演算器２１０−１乃至２１０−６に送られる。
【００９９】
図１４は、式(１)に従ったバリアブルノード演算と、式(７)に従ったチェックノード演算とを相互に切り替えて行う図１３のノード計算器２１０の構成例を示している。
【０１００】
ノード計算器２１０は、外部からメッセージ（データ）が供給（入力）される入力ポートとして、３つの入力ポートP301,P302,P303を有し、外部にメッセージを供給（出力）するポートとして、２つの出力ポートP304，P305を有している。
【０１０１】
すなわち、入力ポートP301には、図１３の受信値メモリ２００から読み出された受信データD201が供給される。また、入力ポートP302,P303には、メッセージメモリ２０１から読み出されたメッセージD202，D203が供給される。そして、後述するメッセージD321が、出力メッセージD204として出力ポートP304から出力されてメッセージメモリ２０１に供給される。また、復号の最終段階では、後述するメッセージD308が復号結果として出力ポートP305から出力されて復号結果メモリ２０５に供給される。
【０１０２】
図１４のノード計算器２１０は、セレクタ３０１,３１１，３１６を有している。これらのセレクタ３０１,３１１，３１６が“v”の側を選択した場合には、図１４のノード計算器２１０はバリアブルノード演算を行うことになる。これに対して、セレクタ３０１,３１１，３１６が“c”の側を選択した場合には、図１４のノード計算器２１０はチェックノード演算を行うことになる。
【０１０３】
まず、バリアブルノード演算を行う場合の動作の観点から、図１４のノード計算器２１０の説明をする。
【０１０４】
メッセージメモリ２０１から供給される検査行列の１列に対応するチェックノードからのメッセージD202が入力ポートP302を介して、メッセージD301（メッセージuj）として一つずつ入力され、セレクタ３０１を通過してメッセージD306として加算器３０２に入力される。加算器３０２において、このメッセージD306に対して、レジスタ３０３に格納してあるデータD307が加算されて、その加算値がレジスタ３０３に再格納される。このように、データD307は、メッセージD301（メッセージuj）の積算値となる。
【０１０５】
1列分のメッセージD301（メッセージuj）が積算されると、その積算値D307（ｊ＝１からdvまでのΣuj)はセレクタ３０４を通過して、レジスタ３０５に格納される。
【０１０６】
また、ポートP302に入力されたメッセージD301（メッセージuj）と同じ値が再びメッセージメモリ２０１からメッセージD203として読み出されて、入力ポートP303を介して、遅延入力メッセージD302として、再び入力される。
【０１０７】
遅延入力メッセージD302は、セレクタ３１１を通過して、減算器３１２においてレジスタ３０５に格納されている積算メッセージD308から減算されて、その減算値D316（ｊ＝１からdv-1までのΣuj）が加算器３１３に供給される。加算器３１３にはまた、受信値メモリ２００からの受信データD201(u0i)が、入力ポートP301を介して受信データD300として供給される。そこで、加算器３１３において、減算値D316（ｊ＝１からdv-1までのΣuj）に対して、受信データD300 (u0i)が加算され、その加算値D317（ｊ＝１からdv-1までのΣuj＋u0i)がセレクタ３１６を通過して、メッセージD321となる。このメッセージD312が、出力メッセージD204として出力ポートP304から出力されてシフト部２０４に供給される。
【０１０８】
以上の内容を換言すると、図１４のノード計算器２１０は、バリアブルノードに繋がっている全てのチェックノードからのメッセージと受信データの和から、求めたいチェックノードからのメッセージを引いて、求めたい枝 (edge)へのメッセージを計算することで、式(１)の演算を実現している。
【０１０９】
次に、チェックノード演算を行う場合の動作の観点から、図１４のノード計算器２１０の説明をする。
【０１１０】
メッセージメモリ２０１から供給される 検査行列の１行に対応するバリアブルノードからのメッセージD202が入力ポートP302を介して、メッセージD301（メッセージvi）として一つずつ入力され、その絶対値D303(|vi|)がLUT３００に供給される。
【０１１１】
LUT３００は、そこに入力される値を引数xとして、式（７）のチェックノード演算における非線形関数φ(x)の演算結果を出力するLUTであり、絶対値D303(|vi|)の供給に対して、非線形関数φ(|vi|)の演算を行った演算結果D305（φ(|vi|)）を読み出す。
【０１１２】
この演算結果D305（φ(|vi|)）は、セレクタ３０１を通過してメッセージD306として加算器３０２に入力される。加算器３０２において、このメッセージD306に対して、レジスタ３０３に格納してあるデータD307が加算されて、その加算値がレジスタ３０３に再格納される。このように、データD307は、演算結果D305（φ(|vi|)）の積算値となる。
【０１１３】
1行分のメッセージD301（メッセージvi）の各演算結果D305（φ(|vi|)）が積算されると、その積算値D307（i＝１からdcまでのΣφ(|vi|))はセレクタ３０４を通過して、レジスタ３０５に格納される。
【０１１４】
また、ポートP302に入力されたメッセージD301（メッセージvi）と同じ値が再びメッセージメモリ２０１からメッセージD203として読み出されて、入力ポートP303を介して、遅延入力メッセージD302として、再び入力される。
【０１１５】
遅延入力メッセージD302は、入力メッセージD301に対するLUT３００の演算と同様に、LUT３１０において、その絶対値 D312(|vi|)の供給に対して、非線形関数φ(|vi|)の演算が行われ、その演算結果D314（φ(|vi|)）が読み出される。
【０１１６】
この演算結果D314（φ(|vi|)）は、セレクタ３１１を通過してメッセージD315として減算器３１２に入力される。
【０１１７】
減算器３１２において、レジスタ３０５に格納されている積算メッセージD308から、メッセージD315が減算され、その減算値D316（i＝１からdc-1までのΣφ(|vi|))はLUT３１４に提供される。
【０１１８】
LUT３１４は、そこに入力される値を引数xとして、式（７）のチェックノード演算における非線形関数φ(x)の逆関数φ-1(x)の演算結果を出力するLUTであり、減算器３１２からの減算値D316（ｉ＝１からdc-1までのΣφ(|vi|)）の供給に対して、逆関数φ-1（Σφ(|vi|)）の演算を行った演算結果D318（φ-1(Σφ(|vi|)))を出力する。
【０１１９】
以上の処理と並行して、各メッセージD301の正負を表す符号ビット(sign bit)D304 (sign(vi))と、レジスタ３０７に格納されている値D310との排他的論理和がEXOR回路３０６において演算されることで、その演算結果D309がレジスタ３０７に再格納される。
【０１２０】
レジスタ３０７において、1行分の符号ビットが積算されたところで、その積算値D310(ｉ＝１からdcまでのΠsign(vi)）がセレクタ３０８を通過して、レジスタ３０９に格納される。
【０１２１】
また、積算に用いられた値D304(sign(vi))は遅延入力メッセージの符号ビットD313 として再度入力ポートP303から入力され、EXOR回路３１５に入力される。この符号ビットD313と、レジスタ３０９の積算値D311との排他的論理和がEXOR回路３１５において演算されることで、その演算結果、即ちｉ＝１からdc-1までのΠsign(vi)が符号ビットD319として出力される。
【０１２２】
最終的に、LUT３１４の演算結果D318（φ-1(Σφ(|vi|)))に対して、この符号ビットD319が付加された値D320が、セレクタ３１６を通過してメッセージD321となる。このメッセージD312が、出力メッセージD204として出力ポートP304から出力されてシフト部２０４に供給される。
【０１２３】
以上の内容を換言すると、図１４のノード計算器２１０は、チェックノードに繋がっている全てのバリアブルノードからのメッセージの和から、求めたいバリアブルノードからのメッセージを引くことで、式(７)の演算を実現している。
【０１２４】
また、図１４のノード計算器２１０は、復号の最終段（例えば、あらかじめ定められた繰り返し復号の回数Nだけ行われるバリアブルノード演算及びチェックノード演算のうちの最後に行われるバリアブルノード演算）において、式（１）のバリアブルノード演算の代わりに、式（５）の演算が行われ、その演算結果、即ち、レジスタ３０５からの出力データD308が、復号結果として出力ポートP305から出力されて図１３の復号結果メモリ２０５に供給される。
【０１２５】
ところで、バリアブルノード演算(式(１))とチェックノード演算(式(７))とは、u'j =φ(|uj|) × sign(uj)と置き換えることで、次の式（９），式（１０）のように書き直すことができる。
【０１２６】
【数９】
0004626827.tif 000010
・・・（９）
【数１０】
0004626827.tif 000011
・・・（１０）
【０１２７】
ここで、φ(x)＝φ-1(x)である。すなわち、バリアブルノード演算(式(９))とチェックノード演算(式(１０))のどちらの演算も入力データの絶対値に対してφ(x)の演算が行われることになる。そこで、チェックノード演算の場合には絶対値での積算を行い、別に求めた符号をかけて出力メッセージを計算することができる。一方、バリアブルノード演算の場合には符号ビットも含めて加算を行い、更に受信データを加算して出力メッセージとすることができる。
【０１２８】
図１５は、式(９)に従ったバリアブルノード演算と、式(１０)に従ったチェックノード演算とを相互に切り替えて行う図１３のノード計算器２１０の構成例を示している。
【０１２９】
ノード計算器２１０は、外部からメッセージ（データ）が供給（入力）される入力ポートとして、３つの入力ポートP601,P602,P603を有し、外部にメッセージを供給（出力）するポートとして、２つの出力ポートP604，P605を有している。
【０１３０】
すなわち、入力ポートP601には、図１３の受信値メモリ２００から読み出された受信データD201が供給される。また、入力ポートP602,P603には、メッセージメモリ２０１から読み出されたメッセージD602，D603が供給される。そして、後述するメッセージD622が、出力メッセージD204として出力ポートP604から出力されてメッセージメモリ２０１に供給される。また、復号の最終段階では、後述するメッセージD609が復号結果として出力ポートP605から出力されて復号結果メモリ２０５に供給される。
【０１３１】
図１５のノード計算器２１０は、セレクタ６０１,６１１，６１５を有している。これらのセレクタ６０１,６１１，６１５が“v”の側を選択した場合には、図１５のノード計算器２１０はバリアブルノード演算を行うことになる。これに対して、セレクタ６０１,６１１，６１５が“c”の側を選択した場合には、図１５のノード計算器２１０はチェックノード演算を行うことになる。
【０１３２】
まず、バリアブルノード演算を行う場合の動作の観点から、図１５のノード計算器２１０の説明をする。
【０１３３】
メッセージメモリ２０１から供給される 検査行列の１列に対応するチェックノードからのメッセージD202が入力ポートP602を介して、メッセージD601（メッセージu'j）として一つずつ入力される。その絶対値D603 (|u'j|)を引数xとするφ-1(x)の演算がLUT６００にて行われ、その演算結果D605 (|uj|)に符号ビットD604(sign(uj))がかけられた値D606(メッセージuj)がセレクタ６０１を通過して、値D607として加算器６０２に供給される。この値D607は、加算器６０２において、レジスタ６０３に格納されていたデータD608と加算されて、レジスタ６０３に再格納される。このように、データD608は、メッセージD607（メッセージuj）の積算値となる。
【０１３４】
1列分のメッセージD607（メッセージuj）が積算されると、その積算値D608（ｊ＝１からdvまでのΣuj)はセレクタ６０４を通過して、レジスタ６０５に格納される。
【０１３５】
また、ポートP602に入力されたメッセージD601（メッセージu'j）と同じ値が再びメッセージメモリ２０１からメッセージD203として読み出されて、入力ポートP603を介して、遅延入力メッセージD602として、再び入力される。
【０１３６】
遅延入力メッセージD602のうちの、絶対値D613(|u'j|)を引数xとするφ-1(x)の演算がLUT６１０にて行われ、その演算結果D615(|uj|)に符号ビットD614(sign(uj))がかけられた値D616(メッセージuj)がセレクタ６１１を通過して、値D617として減算器６１２に供給される。
【０１３７】
減算器６１２において、レジスタ６０５に格納されている積算メッセージD609 から、この値D617が減算されて、その減算値D618（ｊ＝１からdv-1までのΣuj）が加算器６１３に供給される。加算器６１３にはまた、受信値メモリ２００からの受信データD201(u0i)が、入力ポートP601を介して受信データD600として供給される。そこで、加算器６１３において、減算値D618（ｊ＝１からdv-1までのΣuj）に対して、受信データD600 (u0i)が加算され、その加算値D619（ｊ＝１からdv-1までのΣuj＋u0i)がセレクタ６１５を通過して、メッセージD622となる。このメッセージD622が、出力メッセージD204として出力ポートP604から出力されてシフト部２０４に供給される。
【０１３８】
以上の内容を換言すると、図１５のノード計算器２１０は、バリアブルノードに繋がっている全てのチェックノードからのメッセージと受信データの和から、求めたいチェックノードからのメッセージを引いて、求めたい枝（edge）へのメッセージを計算することで、式(９)の演算を実現している。
【０１３９】
次に、チェックノード演算を行う場合の動作の観点から、図１５のノード計算器２１０の説明をする。
【０１４０】
メッセージメモリ２０１から供給される 検査行列の１行に対応するバリアブルノードからのメッセージD202が入力ポートP602を介して、メッセージD601（メッセージvi）として一つずつ入力され、その絶対値D603(|vi|)がLUT６００に供給される。その絶対値D603 (|vi|)を引数xとするφ(x)の演算がLUT６００にて行われ、その演算結果D605 (φ|vi|)がセレクタ６０１を通過して、値D607として加算器６０２に供給される。この値D607は、加算器６０２において、レジスタ６０３に格納されていたデータD608と加算されて、レジスタ６０３に再格納される。このように、データD608は、演算結果D607（φ(|vi|)）の積算値となる。
【０１４１】
1行分のメッセージD601（メッセージvi）の各演算結果D607（φ(|vi|)）が積算されると、その積算値D608（i＝１からdcまでのΣφ(|vi|))はセレクタ６０４を通過して、レジスタ６０５に格納される。
【０１４２】
また、ポートP602に入力されたメッセージD601（メッセージvi）と同じ値が再びメッセージメモリ２０１からメッセージD203として読み出されて、入力ポートP603を介して、遅延入力メッセージD602として、再び入力される。
【０１４３】
遅延入力メッセージD602は、入力メッセージD601に対するLUT６００の演算と同様に、LUT６１０において、その絶対値 D613(|vi|)を引数xとするφ(x)の演算が行われ、その演算結果D615（φ(|vi|)）が読み出される。
【０１４４】
この演算結果D615（φ(|vi|)）は、セレクタ６１１を通過してメッセージD617として減算器６１２に入力される。
【０１４５】
減算器６１２において、レジスタ６０５に格納されている積算メッセージD609から、メッセージD617が減算され、その減算値D618（i＝１からdc-1までのΣφ(|vi|))が出力される。
【０１４６】
以上の処理と並行して、各メッセージD601の正負を表す符号ビット(sign bit)D604 (sign(vi))と、レジスタ６０７に格納されている値D611との排他的論理和がEXOR回路６０６において演算されることで、その演算結果D610がレジスタ６０７に再格納される。
【０１４７】
レジスタ６０７において、1行分の符号ビットが積算されたところで、その積算値D611(ｉ＝１からdcまでのΠsign(vi)）がセレクタ６０８を通過して、レジスタ６０９に格納される。
【０１４８】
また、積算に用いられた値D604(sign(vi))は遅延入力メッセージの符号ビットD614として再度入力ポートP603から入力され、EXOR回路６１４に入力される。この符号ビットD614と、レジスタ６０９の積算値D612との排他的論理和がEXOR回路６１４において演算されることで、その演算結果、即ちｉ＝１からdc-1までのΠsign(vi)が符号ビットD620として出力される。
【０１４９】
最終的に、減算器６１２からの減算値D618（i＝１からdc-1までのΣφ(|vi|))に対して、この符号ビットD620が付加された値D621が、セレクタ６１５を通過してメッセージD622となる。このメッセージD622が、出力メッセージD204として出力ポートP604から出力されてシフト部２０４に供給される。
【０１５０】
以上の内容を換言すると、図１５のノード計算器２１０は、チェックノードに繋がっている全てのバリアブルノードからのメッセージの和から、求めたいバリアブルノードからのメッセージを引くことで、式(１０)の演算を実現している。
【０１５１】
また、図１５のノード計算器２１０は、復号の最終段（例えば、あらかじめ定められた繰り返し復号の回数Nだけ行われるバリアブルノード演算及びチェックノード演算のうちの最後に行われるバリアブルノード演算）において、式（９）のバリアブルノード演算の代わりに、式（５）を式（９）と同様に書き直した式に従った演算が行われ、その演算結果、即ち、レジスタ６０５からの出力データD609が、復号結果として出力ポートP605から出力されて図１３の復号結果メモリ２０５に供給される。
【０１５２】
さらに、バリアブルノード演算(式(１))と チェックノード演算(式(７))は、v'i =φ(|vi|)×sign(vi)と置き換えることで、次の式（１２），式（１３）のように書き直すことができる。なお、式（１１）は、式（１２）との比較を容易にすべく、式（１）を再度書いたものである。
【０１５３】
【数１１】
0004626827.tif 000012
・・・（１１）
【数１２】
0004626827.tif 000013
・・・（１２）
【数１３】
0004626827.tif 000014
・・・（１３）
【０１５４】
ここで、φ(x)＝φ-1(x)である。すなわち、バリアブルノード演算(式(１２))とチェックノード演算(式(１３))のどちらの演算も入力データの絶対値に対してφ(x)の演算が行われることになる。そこで、チェックノード演算の場合には入力データに対して絶対値での積算行い、そのφ(x)の演算を行った後に、別に求めた符号ビットをかけて出力メッセージを計算することができる。一方、バリアブルノード演算の場合には入力データを符号ビットも含めて積算を行い、更に受信データを加算した後、その絶対値に対して、φ(x)の演算を行い、符号ビットをかけたものを出力メッセージとすることができる。
【０１５５】
図１６は、式(１２)に従ったバリアブルノード演算と、式(１３)に従ったチェックノード演算とを相互に切り替えて行う図１３のノード計算器２１０の構成例を示している。
【０１５６】
ノード計算器２１０は、外部からメッセージ（データ）が供給（入力）される入力ポートとして、３つの入力ポートP701,P702,P703を有し、外部にメッセージを供給（出力）するポートとして、２つの出力ポートP704，P705を有している。
【０１５７】
すなわち、入力ポートP701には、図１３の受信値メモリ２００から読み出された受信データD201が供給される。また、入力ポートP702,P703には、メッセージメモリ２０１から読み出されたメッセージD702，D703が供給される。そして、後述するメッセージD722が、出力メッセージD204として出力ポートP704から出力されてメッセージメモリ２０１に供給される。また、復号の最終段階では、後述するメッセージD707が復号結果として出力ポートP705から出力されて復号結果メモリ２０５に供給される。
【０１５８】
図１６のノード計算器２１０は、セレクタ７００,７０５，７１２，７１５を有している。これらのセレクタ７００,７０５，７１２，７１５が“v”の側を選択した場合には、図１６のノード計算器２１０はバリアブルノード演算を行うことになる。これに対して、セレクタ７００,７０５，７１２，７１５が“c”の側を選択した場合には、図１６のノード計算器２１０はチェックノード演算を行うことになる。
【０１５９】
まず、バリアブルノード演算を行う場合の動作の観点から、図１６のノード計算器２１０の説明をする。
【０１６０】
メッセージメモリ２０１から供給される 検査行列の１列に対応するチェックノードからのメッセージD202が入力ポートP702を介して、メッセージD701（メッセージuj）として一つずつ入力され、セレクタ７００を通過してメッセージD705として加算器７０１に入力される。加算器７０１において、このメッセージD705に対して、レジスタ７０２に格納してあるデータD706と加算されて、レジスタ７０２に再格納される。このように、データD706は、メッセージD701（メッセージuj）の積算値となる。
【０１６１】
1列分のメッセージD701（メッセージuj）が積算されると、その積算値D706（ｊ＝１からdvまでのΣuj)はセレクタ７０３を通過して、レジスタ７０４に格納される。
【０１６２】
また、ポートP702に入力されたメッセージD701（メッセージuj）と同じ値が再びメッセージメモリ２０１からメッセージD203として読み出されて、入力ポートP703を介して、遅延入力メッセージD702として、再び入力される。
【０１６３】
遅延入力メッセージD702は、セレクタ７０５を通過して、減算器７１０においてレジスタ７０４に格納されている積算メッセージD707から減算されて、その減算値D714（ｊ＝１からdv-1までのΣuj）が加算器７１１に供給される。加算器７１１にはまた、受信値メモリ２００からの受信データD201(u0i)が、入力ポートP701を介して受信データD700として供給される。そこで、加算器７１１において、減算値D714（ｊ＝１からdv-1までのΣuj）に対して、受信データD700 (u0i)が加算され、その加算値D715（ｊ＝１からdv-1までのΣuj＋u0i=vi）の絶対値D716(|vi|)が、セレクタ７１２を通過して、絶対値D718(|vi|)となりLUT７１３に供給される。絶対値D718(|vi|)を引数xとするφ(x)の演算がLUT７１３にて行われ、その演算結果D719(φ|vi|)が出力される。
【０１６４】
以上の処理と並行して、加算器７１１からの加算値D715（vi）の符号ビット(sign bit)D717(sign(vi))が、セレクタ７１５を通過して符号ビットD721となる。この符号ビットD721が、LUT７１３の演算結果D719(φ|vi|)に掛け合わされてメッセージD722（φ|vi|×sign(vi))となる。このメッセージD722が、出力メッセージD204として出力ポートP704から出力されてシフト部２０４に供給される。
【０１６５】
以上の内容を換言すると、図１６のノード計算器２１０は、バリアブルノードに繋がっている全てのチェックノードからのメッセージと受信データの和から、求めたいチェックノードからのメッセージを引いて、求めたい枝（edge）へのメッセージを計算することで、式(１２)の演算を実現している。
【０１６６】
次に、チェックノード演算を行う場合の動作の観点から、図１６のノード計算器２１０の説明をする。
【０１６７】
メッセージメモリ２０１から供給される 検査行列の１行に対応するバリアブルノードからのメッセージD202が入力ポートP702を介して、メッセージD701（メッセージv'i）として一つずつ入力され、その絶対値D703(|v'i|)がセレクタ７００を通過して絶対値D705として加算器７０１に入力される。加算器７０１において、この絶対値D705に対して、レジスタ７０２に格納してあるデータD706が加算されて、レジスタ７０２に再格納される。このように、データD706は、絶対値D703(|v'i|)の積算値となる。
【０１６８】
1行分のメッセージD701（メッセージv'i）の絶対値D703(|v'i|)が積算されると、その積算値D706（i＝１からdcまでのΣ|v'i|)はセレクタ７０３を通過して、レジスタ７０４に格納される。
【０１６９】
また、ポートP702に入力されたメッセージD701（メッセージv'i）と同じ値が再びメッセージメモリ２０１からメッセージD203として読み出されて、入力ポートP703を介して、遅延入力メッセージD702として、再び入力される。
【０１７０】
遅延入力メッセージD702の絶対値 D711(|v'i|)はセレクタ７０５を通過して、減算器７１０においてレジスタ７０４に格納されている積算メッセージD707から減算されて、その減算値D714（i＝１からdc-1までのΣ|v'i|)がセレクタ７１２を通過して減算値D718としてLUT７１３に供給される。LUT７１３において、その減算値 D718(i＝１からdc-1までのΣ|v'i|)を引数xとするφ-1(x)の演算が行われ、その演算結果D719（φ-1（Σ|v'i|)  ただし、i＝１からdc-1まで）が読み出される。
【０１７１】
以上の処理と並行して、各メッセージD701の正負を表す符号ビット(sign bit)D704 (sign(v'i))と、レジスタ７０７に格納されている値D709との排他的論理和がEXOR回路７０６において演算されることで、その演算結果D708がレジスタ７０７に再格納される。
【０１７２】
レジスタ７０７において、1行分の符号ビットが積算されたところで、その積算値D709(ｉ＝１からdcまでのΠsign(v'i)）がセレクタ７０８を通過して、レジスタ７０９に格納される。
【０１７３】
また、積算に用いられた値D704(sign(v'i))は遅延入力メッセージの符号ビットD712として再度入力ポートP703から入力され、EXOR回路７１４に入力される。この符号ビットD712と、レジスタ７０９の積算値D710との排他的論理和がEXOR回路７１４において演算されることで、その演算結果、即ちｉ＝１からdc-1までのΠsign(v'i)が符号ビットD720として出力される。この符号ビットD720は、セレクタ７１５を通過してさらに符号ビットD721になる。
【０１７４】
最終的に、LUT７１３の演算結果D719（φ-1（Σ|v'i|)  ただし、i＝１からdc-1まで）に対して、この符号ビットD721が付加された値が、メッセージD722となる。このメッセージD722が、出力メッセージD204として出力ポートP704から出力されて復号結果メモリ２０５に供給される。
【０１７５】
以上の内容を換言すると、図１６のノード計算器２１０は、チェックノードに繋がっている全てのバリアブルノードからのメッセージの和から、求めたいバリアブルノードからのメッセージを引くことで、式(１３)の演算を実現している。
【０１７６】
また、図１６のノード計算器２１０は、復号の最終段（例えば、あらかじめ定められた繰り返し復号の回数Nだけ行われるバリアブルノード演算及びチェックノード演算のうちの最後に行われるバリアブルノード演算）において、式（１２）のバリアブルノード演算の代わりに、式（５）を式（１２）と同様に書き直した式に従った演算が行われ、その演算結果、即ち、レジスタ７０４からの出力データD707が、復号結果として出力ポートP705から出力されて図１３の復号結果メモリ２０５に供給される。
【０１７７】
【非特許文献１】R. G. Gallager, "Low Density Parity Check Codes", Cambridge, Massachusetts: M. I. T. Press, 1963
【非特許文献２】D. J. C. MacKay, "Good error correcting codes based on very parse matrices", Submitted to IEEE Trans. Inf. Theory, IT-45, pp. 399-431, 1999
【非特許文献３】M. G. Luby, M. Mitzenmacher, M. A. Shokrollahi and D. A. Spielman, "Analysis of low density codes and improved designs using irregular graphs", in Proceedings of ACM Symposium on Theory of Computing, pp. 249-258, 1998
【発明の開示】
【発明が解決しようとする課題】
【０１７８】
ところで、近年、LDPC符号化されたデータ信号とTMCC（Transmission and Multiplexing Configuration Control）信号が多重されて伝送されるシステムの研究開発が行われている。しかしながら、かかるシステムに適用して好適な受信装置が現状見受けられない状況である。
【０１７９】
本発明は、LDPC符号化されたデータ信号とTMCC信号が多重されて伝送されるシステムに適用可能な受信装置を提供することを目的とするものである。
【課題を解決するための手段】
【０１８０】
本発明の一側面の第１の受信装置は、LDPC(Low Density Parity Check)符号を定義する所定の検査行列を用いてLDPC符号化されたデータ信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された伝送制御信号が多重化されて伝送されてきた場合、前記データ信号と前記伝送制御信号との両信号を受信して復号する受信装置であって、前記両信号を復号可能なLDPC復号手段と、前記LDPC復号手段の前段にそれぞれ設けられる、受信された前記データ信号を保持するデータ信号用入力バッファ、および、受信された前記伝送制御信号を保持する伝送制御信号用入力バッファと、前記データ信号用入力バッファに保持された前記データ信号と、前記伝送制御信号用入力バッファに保持された前記伝送制御信号とのうちの少なくとも一方を、復号対象信号として選択して、前記LDPC復号手段に転送して前記復号対象信号の復号を行わせる制御を行う制御手段とを備え、前記伝送制御信号の受信値については、前記データ信号と比してその量子化ビット数を減らして前記伝送制御信号用入力バッファに保持される。
【０１８２】
前記伝送制御信号は、所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、その系列から前記既知信号が削除された形態の信号として前記受信装置に伝送され、前記受信装置に受信された形態の信号に対して、前記既知信号が０である場合は０である確率が１、前記既知信号が１である場合は１である確率が１を意味する値が付加されて、前記伝送制御信号用入力バッファに保持される。
【０１８３】
前記伝送制御信号は、所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、その系列から前記既知信号が削除された形態の信号として前記受信装置に伝送され、前記受信装置に受信されて前記伝送制御信号用入力バッファに保持され、その後、前記伝送制御信号が前記復号対象信号に選択された場合、前記既知信号が０である場合は０である確率が１、前記既知信号が１である場合は１である確率が１を意味する値が、前記伝送制御信号用入力バッファに保持された信号に対して付加された信号が、前記伝送制御信号として前記LDPC復号手段に転送される。
【０１８４】
前記伝送制御信号は、所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、前記LDPC復号手段は、前記伝送制御信号の復号のうちの前記既知信号については、その既知信号ビットに連結するエッジのメッセージは既知信号が０である場合は０である確率が１、既知信号が１である場合は１である確率が１を意味する値して取り扱う。
【０１８５】
前記伝送制御信号は、前記既知信号が全て０で構成されている形態の信号であり、前記LDPC復号手段は、前記伝送制御信号の復号のうちの前記既知信号については、その既知信号ビットに連結するエッジのバリアブルノードまたはチェックノードの演算の処理を省略する。
【０１８６】
前記制御手段は、前記伝送制御信号の復号を、前記データ信号のうちの第１のデータ信号の復号が完了してから次の第２のデータ信号の復号を開始するまでの間の期間に、前記伝送制御信号を前記LDPC復号手段に復号させる制御を行う。
【０１８７】
前記データ信号と前記伝送制御信号とは所定単位で多重化されて伝送され、前記制御手段は、少なくとも前記第１のデータ信号、前記第２のデータ信号、および前記伝送制御信号と多重化された前記所定単位が前記受信装置に受信し終えたタイミングで、前記伝送制御信号を前記第２のデータ信号に先んじて前記LDPC復号手段に復号させる制御を行う。
【０１８８】
前記制御手段は、前記伝送制御信号の復号を、前記データ信号のうちの第１のデータ信号の復号が成功した場合、その第１のデータ信号の復号が完了してから次の第２のデータ信号の復号を開始するまでの間の期間に、前記伝送制御信号を前記LDPC復号手段に復号させる制御を行う。
【０１８９】
前記制御手段は、前記伝送制御信号の復号を、その受信が完了する前から前記LDPC復号手段に開始させ、前記LDPC復号手段は、前記伝送制御信号のうちの未受信のビットは０である確率と１である確率が０．５を意味する値に設定して、前記伝送制御信号の復号を行う。
【０１９０】
前記LDPC復号手段は、前記伝送制御信号を復号して得た系列が、前記伝送制御信号が伝送されるシステム上使われていない値であった場合には、復号が失敗したと判断する。
【０１９１】
本発明の一側面の第１の受信方法およびプログラムは、本発明の一側面の上述した第１の受信装置に対応する方法およびプログラムである。
【０１９２】
本発明の一側面の第１の受信装置および方法並びにプログラムにおいては、LDPC(Low Density Parity Check)符号を定義する所定の検査行列を用いてLDPC符号化されたデータ信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された伝送制御信号が多重化されて伝送されてきた場合、前記データ信号と前記伝送制御信号との両信号を受信して復号する受信装置であって、前記両信号を復号可能なLDPC復号手段と、前記LDPC復号手段の前段にそれぞれ設けられる、受信された前記データ信号を保持するデータ信号用入力バッファ、および、受信された前記伝送制御信号を保持する伝送制御信号用入力バッファとを備える受信装置において、次のような処理が行われる。即ち、前記データ信号用入力バッファに保持された前記データ信号と、前記伝送制御信号用入力バッファに保持された前記伝送制御信号とのうちの少なくとも一方が、復号対象信号として選択されて、前記LDPC復号手段に転送されて前記復号対象信号の復号が行われる。このとき、前記伝送制御信号の受信値については、前記データ信号と比してその量子化ビット数を減らして前記伝送制御信号用入力バッファに保持される。
【０１９３】
本発明の一側面の第２の受信装置は、LDPC(Low Density Parity Check)符号を定義する所定の検査行列を用いてLDPC符号化されたデータ信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された伝送制御信号が多重化されて伝送されてきた場合、前記データ信号と前記伝送制御信号との両信号を受信して復号する受信装置であって、前記データ信号の復号専用のデータ信号用LDPC復号手段と、前記伝送制御信号の復号専用の伝送制御信号用LDPC復号手段と、前記伝送制御信号用LDPC復号手段の前段に設けられる、受信された前記伝送制御信号を保持する伝送制御信号用入力バッファとを備え、前記伝送制御信号の受信値については、前記データ信号と比してその量子化ビット数を減らして前記伝送制御信号用入力バッファに保持される。
【０１９４】
前記データ信号用LDPC復号手段と前記伝送制御信号用LDPC復号手段とは、同一の復号装置として構成されている。
【０１９５】
前記伝送制御信号用LDPC復号手段は、硬判定復号装置として構成されている。
【０１９６】
前記伝送制御信号用LDPC復号手段は、バリアブルノードおよびチェックノードの演算を各ビット毎にシリアルに行う復号装置として構成されている。
【０１９９】
前記伝送制御信号は、所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、その系列から前記既知信号が削除された形態の信号として前記受信装置に伝送され、前記受信装置に受信された形態の信号に対して、前記既知信号が０である場合は０である確率が１、前記既知信号が１である場合は１である確率が１を意味する値が付加されて、前記伝送制御信号用入力バッファに保持される。
【０２００】
前記伝送制御信号は、所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、その系列から前記既知信号が削除された形態の信号として前記受信装置に伝送され、前記受信装置に受信されて前記伝送制御信号用入力バッファに保持され、その後、前記伝送制御信号が復号対象信号に選択された場合、前記既知信号が０である場合は０である確率が１、前記既知信号が１である場合は１である確率が１を意味する値が、前記伝送制御信号用入力バッファに保持された信号に対して付加された信号が、前記伝送制御信号として前記伝送制御信号用LDPC復号手段に転送される。
【０２０１】
前記伝送制御信号は、所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、前記伝送制御信号用LDPC復号手段は、前記伝送制御信号の復号のうちの前記既知信号については、その既知信号ビットに連結するエッジのメッセージは既知信号が０である場合は０である確率が１、既知信号が１である場合は１である確率が１を意味する値して取り扱う。
【０２０２】
前記伝送制御信号は、前記既知信号が全て０で構成されている形態の信号であり、前記伝送制御信号用LDPC復号手段は、前記伝送制御信号の復号のうちの前記既知信号については、その既知信号ビットに連結するエッジのバリアブルノードまたはチェックノードの演算の処理を省略する。
【０２０３】
前記伝送制御信号用LDPC復号手段は、前記伝送制御信号の復号を、その受信が完了する前から開始し、前記伝送制御信号のうちの未受信のビットは０である確率と１である確率が０．５を意味する値に設定して、前記伝送制御信号の復号を行う。
【０２０４】
前記伝送制御信号用LDPC復号手段は、前記伝送制御信号を復号して得た系列が、前記伝送制御信号が伝送されるシステム上使われていない値であった場合には、復号が失敗したと判断する。
【０２０５】
本発明の一側面の第２の受信方法およびプログラムは、本発明の一側面の上述した第２の受信装置に対応する方法およびプログラムである。
【０２０６】
本発明の一側面の第２の受信装置および方法並びにプログラムにおいては、LDPC(Low Density Parity Check)符号を定義する所定の検査行列を用いてLDPC符号化されたデータ信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された伝送制御信号が多重化されて伝送されてきた場合、前記データ信号と前記伝送制御信号との両信号を受信して復号する受信装置であって、前記伝送制御信号用LDPC復号手段の前段に設けられる、受信された前記伝送制御信号を保持する伝送制御信号用入力バッファ備える受信装置において、次のような処理が行われる。即ち、LDPC符号を定義する所定の検査行列を用いてLDPC符号化されたデータ信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された伝送制御信号が多重化されて伝送されてきた場合、前記データ信号と前記伝送制御信号との両信号が受信されて復号される。このとき、前記伝送制御信号の受信値については、前記データ信号と比してその量子化ビット数を減らして前記伝送制御信号用入力バッファに保持される。
【０２０７】
本発明の一側面の第３の受信装置は、LDPC(Low Density Parity Check)符号を受信して復号する受信装置であって、前記LDPC符号を定義する所定の検査行列を用いてLDPC符号化された第１の信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された第２の信号が多重化されて伝送されてきた場合、前記第１の信号と前記第２の信号とを分離する分離手段と、前記分離手段により分離された前記第１の信号と前記第２の信号とをそれぞれ復号するLDPC復号手段とを備え、前記第２の信号は、所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、その系列から前記既知信号が削除された形態の信号として前記受信装置に伝送され、前記受信装置に受信された形態の信号に対して、前記既知信号が０である場合は０である確率が１、前記既知信号が１である場合は１である確率が１を意味する値が付加されて、受信された前記第２の信号を保持する第２の信号用入力バッファに保持される。
【０２０８】
本発明の一側面の第４の受信装置は、LDPC(Low Density Parity Check)符号を受信して復号する受信装置において、前記LDPC符号を定義する所定の検査行列を用いてLDPC符号化された第１の信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された第２の信号が多重化されて伝送されてきた場合、前記第１の信号と前記第２の信号とを分離する分離手段と、前記分離手段により分離された前記第１の信号と前記第２の信号とをそれぞれ復号するLDPC復号手段とを備え、前記第２の信号は、所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、その系列から前記既知信号が削除された形態の信号として前記受信装置に伝送され、前記受信装置に受信されて、受信された前記第２の信号を保持する第２の信号用入力バッファに保持され、その後、前記第２の信号が復号を行わせる復号対象信号に選択された場合、前記既知信号が０である場合は０である確率が１、前記既知信号が１である場合は１である確率が１を意味する値が、前記第２の信号用入力バッファに保持された信号に対して付加された信号が、前記第２の信号として前記LDPC復号手段に転送される。
本発明の一側面の第５の受信装置は、LDPC(Low Density Parity Check)符号を受信して復号する受信装置において、前記LDPC符号を定義する所定の検査行列を用いてLDPC符号化された第１の信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された第２の信号が多重化されて伝送されてきた場合、前記第１の信号と前記第２の信号とを分離する分離手段と、前記分離手段により分離された前記第１の信号と前記第２の信号とをそれぞれ復号するLDPC復号手段とを備え、前記第２の信号は、所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、前記LDPC復号手段は、前記第２の信号の復号のうちの前記既知信号については、その既知信号ビットに連結するエッジのメッセージは既知信号が０である場合は０である確率が１、既知信号が１である場合は１である確率が１を意味する値として取り扱う。
【０２０９】
本発明の一側面の第３の受信装置においては、前記LDPC符号を定義する所定の検査行列を用いてLDPC符号化された第１の信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された第２の信号が多重化されて伝送されてきた場合、前記第１の信号と前記第２の信号とが分離され、分離された前記第１の信号と前記第２の信号とがそれぞれ復号され、前記第２の信号は、所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、その系列から前記既知信号が削除された形態の信号として前記受信装置に伝送され、前記受信装置に受信された形態の信号に対して、前記既知信号が０である場合は０である確率が１、前記既知信号が１である場合は１である確率が１を意味する値が付加されて、受信された前記第２の信号を保持する第２の信号用入力バッファに保持される。
本発明の一側面の第４の受信装置においては、前記LDPC符号を定義する所定の検査行列を用いてLDPC符号化された第１の信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された第２の信号が多重化されて伝送されてきた場合、前記第１の信号と前記第２の信号とが分離され、分離された前記第１の信号と前記第２の信号とがそれぞれ復号され、前記第２の信号は、所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、その系列から前記既知信号が削除された形態の信号として前記受信装置に伝送され、前記受信装置に受信されて、受信された前記第２の信号を保持する第２の信号用入力バッファに保持され、その後、前記第２の信号が復号を行わせる復号対象信号に選択された場合、前記既知信号が０である場合は０である確率が１、前記既知信号が１である場合は１である確率が１を意味する値が、前記第２の信号用入力バッファに保持された信号に対して付加された信号が、前記第２の信号として転送される。
本発明の一側面の第５の受信装置においては、前記LDPC符号を定義する所定の検査行列を用いてLDPC符号化された第１の信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された第２の信号が多重化されて伝送されてきた場合、前記第１の信号と前記第２の信号とが分離され、分離された前記第１の信号と前記第２の信号とがそれぞれ復号され、前記第２の信号は、所定の制御情報に対して既知信号が付加されてLDPC符号化された系列であり、前記第２の信号の復号のうちの前記既知信号については、その既知信号ビットに連結するエッジのメッセージが、既知信号が０である場合は０である確率が１、既知信号が１である場合は１である確率が１を意味する値として取り扱われる。
【発明の効果】
【０２１０】
本発明によれば、LDPC(Low Density Parity Check)符号を受信して復号する受信装置を提供できる。特に、復号性能を維持しつつ、その回路規模を従来より縮小できるようになる。
【発明を実施するための最良の形態】
【０２１６】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【０２１７】
本実施の形態では、受信装置に伝送される伝送信号は、図１７に示される形式の信号が採用されているとする。
【０２１８】
即ち、図１７に示されるように、データ信号（Data）以外にも、伝送パラメータが入ったTMCC信号が、LDPC符号を用いて符号化され、その結果得られる各符号化データが時分割多重化された信号が、伝送信号として受信装置に伝送される。
【０２１９】
図１７の伝送信号の単位はスロット(slot)とされている。以下、各スロットを個々に区別すべく＃α（αは整数値であって、図１７の例では１乃至１２０の整数値）という符号を用いて説明していく。
【０２２０】
１つのスロットは、Sync，Pilotの後に、DataとTMCCとが交互に配置されて構成される。スロットにおけるDataには、LDPC符号化されたデータ信号が時分割された結果得られるデータ（以下、単位データと称する）が格納される。一方、TMCCには、LDPC符号化されたTMCC信号が時分割された結果得られる単位データが格納される。
【０２２１】
この場合、図１７に示されるように、データ信号の単位データと、TMCC信号の単位データとが交互に配置されることで、時分割多重化が実現されている。ただし、例えば、LDPC符号化されたデータ信号がBPSKである場合には、データ信号のLDPC１符号分は、５つのスロットで時分割多重化されるのに対して、TMCC信号のLDPC１符号分は、１２０のスロットで時分割多重化される。換言すると、LDPC２４符号分のデータ信号と、LDPC１符号分のTMCC信号とが時分割多重化された結果得られる信号が、図１７に示されるスロット#1乃至#120から構成される伝送信号となる。
【０２２２】
また、伝送時のデータ信号は、符号長４４８８０ビットで構成されるのに対し、伝送時のTMCC信号は、図１８の下側の図に示されるように、３１６８０ビットで構成されるとする。即ち、図１８の上側の図で示されるように、TMCC信号のLDPC符号化の際には、実データ（DATA）の先頭に１８７０ビットをすべて０としたヌルデータ（NULL）を付加し、また、実データ（DATA）の後尾に１１３３０ビットをすべて０としたヌルデータ（NULL）を付加したものを情報部としてLDPC符号化が施される。ただし、そのうちのヌルデータの伝送は不要であるので、LDPC符号化後にヌルデータを削除した結果得られる３１６８０ビットのデータ、即ち、図１８の下側の図のデータが、LDPC符号化されたTMCC信号として復号装置に伝送されるとする。また、データ信号が複数の符号化率、かつ複数の変調方式を選択できるのに対し、TMCC信号は、例えば、既知信号（ヌルデータ等）を情報長に入れても符号化率が１/２、変調方式はBPSKといったように、符号化率と変調方式は固定されているとする。
【０２２３】
図１９は、このような図１７や図１８で定義される伝送信号、即ち、LDPC符号化されたデータ信号とTMCC信号が時分割多重された伝送信号が伝送される伝送システムの構成例を示している。
【０２２４】
図１９の伝送システムにおいては、送信側の装置として、LDPC符号化装置８０１と変調装置８０２とが設けられている。
【０２２５】
LDPC符号化装置８０１は、TMCC信号符号化部８１１、データ信号符号化部８１２、およびセレクタ８１３を含むように構成されている。含むようにと記述したのは、その他、図１９には図示せぬブロック、例えば制御部等も構成要素として存在する場合があるからである。
【０２２６】
TMCC信号符号化部８１１は、TMCC信号情報部に対してLDPC符号化を施すことで、上述した図１８の下側の図の構造のLDPC符号、即ち３１６８０ビットのLDPC符号を生成し、セレクタ８１３に出力する。なお、TMCC信号符号化部８１１に入力される段階のTMCC信号情報部とは、ヌルデータを含んでいる図１８の上側の図の構造であってもよいし、ヌルデータを含まない構造、即ち、実データのみの構造であってもよい。後者の場合、TMCC信号符号化部８１１が、図１８の上側の図の構造に従ってヌルデータを付加した後、LDPC符号化を施せばよいからである。
【０２２７】
一方、データ信号符号化部８１２は、データ信号情報部に対してLDPC符号化を施すことで、４４８８０ビットのLDPC符号を生成し、セレクタ８１３に出力する。
【０２２８】
セレクタ８１３は、図示せぬ制御部等の制御に基づいて、適切に入出力を切り替えることで、LDPC符号化されたデータ信号とTMCC信号との時分割多重化を実現する。即ち、上述の図１７の形態の伝送信号が、LDPC符号化装置８０１から出力されて、変調装置８０２により変調された後、伝送路においてノイズが付加されて、受信側に伝送されることになる。
【０２２９】
このような伝送信号を受信する受信側の装置、即ち、本発明が適用される受信装置として、復調装置８０３とLDPC復号装置８０４が設けられている。
【０２３０】
即ち、変調装置８０２により変調された伝送信号は、復調装置８０３において復調され、上述の図１７の形態で、LDPC復号装置８０４に提供される。
【０２３１】
このように、復調装置８０３自体は従来のものをそのまま採用することができる。
【０２３２】
本発明が適用される受信装置の少なくとも一部としてのLDPC復号装置８０４は、復調装置８０３から供給された伝送信号を復号し、その復号結果を出力する。
【０２３３】
ここで、LDPC復号装置８０４に供給される伝送信号とは、上述の如く、図１７の形態の伝送信号、即ち、LDPC符号化されたデータ信号とTMCC信号が時分割多重された伝送信号である。
【０２３４】
そこで、LDPC復号装置８０４は、LDPC符号化されたデータ信号と、LDPC符号化されたTMCC信号とを分離して、それぞれ個別に復号し、それぞれの復号結果であるデータ信号とTMCC信号とを出力する。
【０２３５】
換言すると、LDPC復号装置８０４は、LDPC符号化されたデータ信号と、LDPC符号化されたTMCC信号とを復号できる機能を有していれば足り、その構成自体は特に限定されない。即ち、LDPC復号装置８０４は、様々な実施の形態を取ることが可能である。そこで、以下、LDPC復号装置８０４の幾つかの実施の形態について、それぞれ個別に具体的に説明していく。
【０２３６】
図２０は、LDPC復号装置８０４の一実施の形態の構成例を示している。
【０２３７】
図２０のLDPC復号装置８０４は、分離部９０１、データ信号用入力バッファ９０２Ｄ、TMCC信号用入力バッファ９０２Ｔ、データ信号用LDPC復号部９０３Ｄ、TMCC信号用LDPC復号部９０３Ｔ、セレクタ９０４、および制御部９０５から構成されている。
【０２３８】
データ信号用LDPC復号部９０３ＤとTMCC信号用LDPC復号部９０３Ｔとはそれぞれ、上述した図１３の復号装置と基本的に同様の機能と構成を有している。ここで、「基本的に」と記述したのは、図１３の復号装置では、「P=6の符号」が復号対象とされていたのに対して、図２０のLDPC復号装置８０４は、Pが任意の整数である場合の「Pの符号」が復号対象とされているからである。また、図２０の例では、制御部は設けられておらず、外部に別途制御部９０５が設けられているからである。
【０２３９】
即ち、図２０のデータ信号用LDPC復号部９０３Ｄは、データ信号用受信値メモリ１２００Ｄ、データ信号用メッセージメモリ１２０１Ｄ、P個のノード計算器１２１０Ｄ−１乃至１２１０Ｄ−Ｐを含むメッセージ計算部１２０２Ｄ、シフト部１２０４Ｄ、および復号結果メモリ１２０５Ｄからなる。
【０２４０】
同様に、図２０のTMCC信号用LDPC復号部９０３Ｔは、TMCC信号用受信値メモリ１２００Ｔ、TMCC信号用メッセージメモリ１２０１Ｔ、P個のノード計算器１２１０Ｔ−１乃至１２１０Ｔ−Ｐを含むメッセージ計算部１２０２Ｔ、シフト部１２０４Ｔ、および復号結果メモリ１２０５Ｔからなる。
【０２４１】
図２０のLDPC復号装置８０４の動作は、次のようになる。
【０２４２】
即ち、図１７の形態の伝送信号（復調後）が、LDPC復号装置８０４の分離部９０１に提供される。そこで、分離部９０１は、LDPC符号化されたデータ信号（Data)とTMCC信号（TMCC）とを伝送信号からそれぞれ分離し、LDPC符号化されたデータ信号をデータ信号用入力バッファ９０２Ｄに受信値として供給し、LDPC符号化されたTMCC信号をTMCC信号用入力バッファ９０２Ｔに受信値として提供する。
【０２４３】
データ信号用入力バッファ９０２Ｄに一度保持された受信値は、前スロットで入力されたデータ信号が、データ信号用LDPC復号部９０３Ｄのデータ信号用受信値メモリ１２００Ｄに転送されて復号が完了するまで、データ信号用入力バッファ９０２Ｄに保持され続ける。
【０２４４】
データ信号用LDPC復号部９０３Ｄは、LDPC符号化されたデータ信号を復号し、その復号結果、即ちデータ信号をセレクタ９０４に供給する。なお、復号の処理自体は、Pが変化する可能性があることを除いて、図１３の復号装置の処理と同様なので、ここではその説明については省略する。
【０２４５】
このようなLDPC符号化されたデータ信号の復号処理と全く同様の処理が、TMCC信号用入力バッファ９０２ＴとTMCC信号用LDPC復号部９０３Ｔとにおいて行われ、その復号結果、即ちTMCC信号がセレクタ９０４に供給される。
【０２４６】
データ信号用LDPC復号部９０３Ｄから出力されたデータ信号、または、TMCC信号用LDPC復号部９０３Ｔから出力されたTMCC信号は、セレクタ９０４を通過して、最終的な復号結果として外部に出力される。
【０２４７】
なお、上述のLDPC復号装置８０４の全体の動作が、制御部９０５により制御されることになる。
【０２４８】
以上説明したように、図２０のLDPC復号装置８０４は、データ信号用LDPC復号部９０３Ｄに加えてさらに、TMCC信号用LDPC復号部９０３Ｔを有している。即ち、図２０のLDPC復号装置８０４は、２つの同一構成のLDPC復号部を有している。
【０２４９】
よって、LDPC復号装置８０４として図２０の構成を採用した場合、TMCC信号の復号を伴わない従来の復号装置と比較すると、LDPC復号部が１つ多い分だけ回路規模が増大することになる。そこで、回路規模をさらに縮小したいという要望がある場合、LDPC復号装置８０４の構成として、例えば図２１に示される構成を採用すればよい。
【０２５０】
即ち、図２１は、LDPC復号装置８０４の一実施の形態の構成例であって、図２０の例とは異なる例を示している。
【０２５１】
図２１のLDPC復号装置８０４は、分離部１５０１、データ信号用入力バッファ１５０２Ｄ、TMCC信号用入力バッファ１５０２Ｔ、セレクタ１５０３、LDPC復号部１５０４、および制御部１５０６から構成されている。
【０２５２】
LDPC復号部１５０４は、受信値メモリ１７００、メッセージメモリ１７０１、P個のノード計算器１７１０−１乃至１７１０−Ｐを含むメッセージ計算部１７０２、シフト部１７０４、および復号結果メモリ１７０５からなる。
【０２５３】
即ち、LDPC復号部１５０４は、図２０のデータ信号用LDPC復号部９０３ＤやTMCC信号用LDPC復号部９０３Ｔと同様の機能と構成を有している。換言すると、図２０のLDPC復号装置８０４は２つのLDPC復号部を有していたのに対して、図２１のLDPC復号装置８０４は１つのLDPC復号部を有している。
【０２５４】
図２１のLDPC復号装置８０４の動作は、次のようになる。
【０２５５】
図１７の形態の伝送信号（復調後）が、LDPC復号装置８０４の分離部１５０１に提供される。そこで、分離部１５０１は、LDPC符号化されたデータ信号（Data)とTMCC信号（TMCC）とを伝送信号からそれぞれ分離し、LDPC符号化されたデータ信号をデータ信号用入力バッファ１５０２Ｄに受信値として供給し、LDPC符号化されたTMCC信号をTMCC信号用入力バッファ１５０２Ｔに受信値として提供する。
【０２５６】
即ち、LDPC符号化されたデータ信号が、データ信号用入力バッファ１５０２Ｄに受信値として保持される一方、LDPC符号化されたTMCC信号が、TMCC信号用入力バッファ１５０２Ｔに受信値として保持される。
【０２５７】
セレクタ１５０３は、制御部１５０６の制御に基づいて、データ信号用入力バッファ１５０２Ｄに保持された受信値（LDPC符号化されたデータ信号）、または、TMCC信号用入力バッファ１５０２Ｔに保持された受信値（LDPC符号化されたTMCC信号）を、LDPC復号部１５０４に供給する。
【０２５８】
LDPC復号部１５０４は、セレクタから供給された受信値を復号し、その復号結果を出力する。即ち、受信値としてLDPC符号化されたデータ信号が供給された場合には、データ信号が復号結果として出力される。一方、受信値としてLDPC符号化されたTMCC信号が供給された場合には、TMCC信号が復号結果として出力される。
【０２５９】
換言すると、制御部１５０６は、予め設定されたスケジューリングに基づいて、データ信号の復号タイミングと、TMCC信号の復号タイミングとを管理している。なお、かかるスケジューリングの具体例については、図２９乃至図３２を参照して後述する。
【０２６０】
即ち、データ信号の復号タイミングでは、制御部１５０６の制御に基づいて、セレクタ１５０３の入力が、データ信号用入力バッファ１５０２Ｄ側に切り替えられる。これにより、データ信号用入力バッファ１５０２Ｄから受信値メモリ１７００に受信値（LDPC符号化されたデータ信号）がセレクタ１５０３を介して転送され、LDPC復号部１５０４において、復号が開始される。
【０２６１】
データ信号の復号が終わり、TMCC信号の復号タイミングが到来すると、制御部１５０６の制御に基づいて、セレクタ１５０３の入力が、TMCC信号用入力バッファ１５０２Ｔ側に切り替えられる。これにより、TMCC信号用入力バッファ１５０２Ｔから受信値メモリ１７００に受信値（LDPC符号化されたTMCC信号）がセレクタ１５０３を介して転送され、LDPC復号部１５０４において、復号が開始される。
【０２６２】
以上説明したように、LDPC復号装置８０４として図２１の構成を採用した場合、図２０の構成を採用した場合と比較すると、LDPC復号部が１つ少ないため、その分だけ回路規模を縮小することができる。即ち、入力バッファ以外は、データ信号とTMCC信号との復号のために回路を分割する必要はなく共通化できるので、回路規模を縮小できる。
【０２６３】
さらに、LDPC符号化されたTMCC信号としての受信値の量子化ビット数を削減することにより、TMCC信号用入力バッファ１５０２Ｔの大きさを削減することが可能である。LDPC符号化されたTMCC信号は、例えば既知信号を情報長に入れても符号化率は１/２と低くBPSK変調で送信されているため、LDPC符号化されたデータ信号よりかなり所要SNが小さいために、受信値のビット数を削減しても十分低いCNで復号成功することが可能となる。
【０２６４】
ただし、分離部１５０１から出力されてTMCC信号用入力バッファ１５０２Ｔに入力される段階のLDPC符号化されたTMCC信号とは、図１８の下側の図に示されるように、１符号３１６００ビットである。これに対して、分離部１５０１から出力されてデータ信号用入力バッファ１５０２Ｄに入力される段階のLDPC符号化されたデータ信号とは、上述したように、１符号４４８８０ビットである。
【０２６５】
よって、LDPC復号部１５０４でデータ信号とTMCC信号との復号を共有する場合には、LDPC符号化されたTMCC信号の構造を、図１８の上側の図に示される構造に再変換する必要がある。即ち、１符号３１６００ビットの構造に対して、LDPC符号化の際に挿入されたヌルデータ１３２００ビットに対応する分の値を付加することで、１符号４４８８０ビットの構造に変換して、LDPC復号部１５０４に供給する必要がある。
【０２６６】
そこで、例えば、TMCC信号用入力バッファ１５０２Ｔとして、図２２に示される構成のバッファを採用することができる。即ち、図２２のTMCC信号用入力バッファ１５０２Ｔは、セレクタ１８０１と入力バッファメモリ１８０２からなる。
【０２６７】
図２２のTMCC信号用入力バッファ１５０２Ｔの動作は次のようになる。即ち、TMCC信号がLDPC符号化される際に挿入されたヌルデータは、全て０である確率１として、セレクタ１８０１に供給される。また、分離部１５０１から出力されてTMCC信号用入力バッファ１５０２Ｔに入力される段階のLDPC符号化されたTMCC信号、即ち、図１８の下側の図に示される１符号３１６００ビットの構造の信号もセレクタ１８０１に提供される。そこで、制御部１５０６の制御に基づいて、図１８の上側の構造のヌルデータに対応するタイミングでは、０である確率１という値がセレクタ１８０１を介して入力バッファメモリ１８０２に供給され、また、それ以外のタイミングでは、分離部１５０１から出力される受信値がセレクタ１８０１を介して入力バッファメモリ１８０２に供給される。即ち、TMCC信号がLDPC符号化される際に挿入されたヌルデータは全て０である確率１という値として、入力バッファメモリ１８０２にその値が挿入されることになる。これを”０ ”らしさを対数尤度比で表現した値とすると、＋∞の値となり、これをハードウェアに実装する場合は、とりうる値の最大値となる。
【０２６８】
或いはまた例えば、TMCC信号用入力バッファ１５０２Ｔとして、図２３に示される構成のバッファを採用することができる。即ち、図２３のTMCC信号用入力バッファ１５０２Ｔは、入力バッファ１８１１とセレクタ１８１２からなる。
【０２６９】
図２３のTMCC信号用入力バッファ１５０２Ｔの動作は次のようになる。即ち、TMCC信号がLDPC符号化される際に挿入されたヌルデータは、全て０である確率１として、セレクタ１８１２に供給される。また、分離部１５０１から出力されてTMCC信号用入力バッファ１５０２Ｔに入力される段階のLDPC符号化されたTMCC信号、即ち、図１８の下側の図に示される１符号３１６００ビットの構造の信号は、入力バッファ１８１１に一旦バッファリングされた後、セレクタ１８１２に提供される。そこで、制御部１５０６の制御に基づいて、図１８の上側の構造のヌルデータに対応するタイミングでは、０である確率１という値がセレクタ１８１２から出力され、また、それ以外のタイミングでは、入力バッファ１８１１にバッファリングされた受信値がセレクタ１８１２から出力される。即ち、TMCC信号が符号化される際に挿入されたヌルデータは、全て０である確率１として、LDPC復号部１５０４に受信値が転送される際に、その受信値に挿入されることになる。これを”０ ”らしさを対数尤度比で表現した値とすると、＋∞の値となり、これをハードウェアに実装する場合は、とりうる値の最大値となる。
【０２７０】
このような図２２と図２３のうちの何れの構成をTMCC信号用入力バッファ１５０２Ｔとして採用したとしても、TMCC信号用入力バッファ１５０２Ｔから出力される段階のLDPC符号化されたTMCC信号は、図１８の上側の図に示される１符号４４８８０ビットの構造の信号となる。即ち、１符号のビット数は、データ信号もTMCC信号も同一となる。その結果、図２１のセレクタ１５０３から後段、即ち、LDPC復号部１５０４は、データ信号の復号と同様の処理で、TMCC信号の復号もできるようになる。
【０２７１】
ただし、LDPC復号部１５０４は、LDPC符号化されたTMCC信号（ヌルビット含）のうちのヌルビットについては、図２４と図２５に示される手法に従った復号を行うことができる。
【０２７２】
図２４は、ヌルビットの復号結果出力の手法について説明する図である。
【０２７３】
即ち、ヌルビット以外については、上述した図８に示されるように、式（５）の演算の結果が、最終的な復号結果として出力される。
【０２７４】
これに対して、ヌルビットについては、図２４に示されるように、０である確率１が最終的な復号結果として常に出力される。これを”０ ”らしさを対数尤度比で表現した値とすると、＋∞の値となる。これをハードウェアに実装する場合は、とりうる値の最大値となる。このように、LDPC復号部１５０４は、受信データu0iとして０である確率が１という値が供給された場合、それはヌルデータであると判断して、０である確率が１を最終的な復号結果として常に出力すればよい。即ち、ヌルビットについての復号結果出力のための演算は不要となる。
【０２７５】
図２５は、ヌルビットのバリアブルノードの演算手法を説明する図である。
【０２７６】
即ち、ヌルビット以外については、上述した図６に示されるように、式（１）のバリアブルノード演算が行われる。
【０２７７】
これに対して、ヌルビットについては、図２５に示されるように、０である確率１が常に出力される。これを”０ ”らしさを対数尤度比で表現した値とすると、＋∞の値となる。これをハードウェアに実装する場合は、とりうる値の最大値となる。このように、LDPC復号部１５０４は、バリアブルノード演算時に、受信データu0iとして０である確率が１という値が供給された場合、それはヌルデータであると判断して、０である確率が１を常に出力すればよい。即ち、ヌルビットについてのバリアブルノード演算は不要となる。
【０２７８】
また、以上より、ヌルビットの受信値、およびヌルビットに連結するエッジのメッセージは、常に０である確率が１と固定の値になるため、TMCC信号用に別途LDPC復号部（例えば上述した図２０のTMCC信号用LDPC復号部９０３Ｔ）を用意した場合は、そのLDPC復号部における受信値メモリとメッセージメモリを削減することが可能である。
【０２７９】
なお、以上においては、TMCC信号は、図１８に示されるように、ヌルビットが付加されてLDPC符号化されることが前提とされていた。しかしながら、TMCC信号は、かかる前提に基づく信号である必要は特にない。
【０２８０】
即ち、TMCC信号としては、例えば、所定の制御情報（図１８のDATAに相当する情報）に対して既知信号（図１８の例ではヌルビット）が付加されてLDPC符号化された系列であり、その系列から既知信号が削除された形態の信号として受信装置に伝送される形態の信号を採用することもできる。
【０２８１】
この場合、TMCC信号用入力バッファ１５０２Ｔが図２２の構成を取る場合、既知信号が０である場合は０である確率が１を、既知信号が１である場合は１である確率が１を意味する値をセレクタ１８０１に入力させるようにすればよい。
【０２８２】
また、TMCC信号用入力バッファ１５０２Ｔが図２３の構成を取る場合、既知信号が０である場合は０である確率が１を、既知信号が１である場合は１である確率が１を意味する値をセレクタ１８１２に入力させるようにすればよい。
【０２８３】
また、LDPC復号部１５０４は、TMCC信号の復号のうちの既知信号については、その既知信号ビットに連結するエッジのメッセージは既知信号が０である場合は０である確率が１を、既知信号が１である場合は１である確率が１を意味する値して取り扱うようにすればよい。
【０２８４】
さらに以下、図２６乃至図２８を参照して、LDPC復号装置８０４の別の実施の形態について説明していく。
【０２８５】
図２６は、LDPC復号装置８０４の一実施の形態の構成例であって、図２０，図２１の例とは異なる例を示している。
【０２８６】
即ち、図２６のLDPC復号装置８０４は、分離部１９０１、データ信号用入力バッファ１９０２Ｄ、TMCC信号用入力バッファ１９０２Ｔ、データ信号用LDPC復号部１９０３Ｄ、セレクタ１９０４、制御部１９０５、LDPC硬判定復号部１９０６、復号結果メモリ１９０７から構成されている。
【０２８７】
図２６のデータ信号用LDPC復号部１９０３Ｄは、図２０のデータ信号用LDPC復号部９０３Ｄと同様の機能と構成を有している。即ち、図２６のデータ信号用LDPC復号部１９０３Ｄは、受信値メモリ２０００Ｄ、メッセージメモリ２００１Ｄ、P個のノード計算器２０１０Ｄ−１乃至２０１０Ｄ−Ｐを含むメッセージ計算部２００２Ｄ、シフト部２００４Ｄ、および復号結果メモリ２００５Ｄからなる。
【０２８８】
このように、図２６のデータ信号の復号用の構成は、図２０の構成と同様の構成となっている。これに対して、図２６のTMCC信号の復号用の構成は、図２０のTMCC信号用LDPC復号部９０３Ｔの代わりに、LDPC硬判定復号部１９０６と復号結果メモリ１９０７とが採用された構成となっている。
【０２８９】
即ち、LDPC符号化されたTMCC信号は、例えば上述したように、BPSK変調方式で符号化率も既知信号を情報長に含めても１/２と低いので、LDPC符号化されたデータ信号と比較すると所要CNが小さいという特徴を有している。かかる特徴を有するということは、LDPC符号化されたTMCC信号については、硬判定復号しても十分に低いCNで復号が可能であることを意味する。よって、図２６のLDPC復号装置８０４では、TMCC信号の復号用として、図２０のTMCC信号用LDPC復号部９０３Ｔの代わりに、LDPC硬判定復号部１９０６と復号結果メモリ１９０７とが設けられているのである。
【０２９０】
以上の説明をまとめると、LDPC復号装置８０４の構成の点で、図２０の例と図２６の例とを比較するに、TMCC信号の復号のための構成として、図２０の例ではTMCC信号用LDPC復号部９０３Ｔが採用されていたのに対して、図２６の例ではLDPC硬判定復号部１９０６と復号結果メモリ１９０７とが採用されている点が差異点となる。
【０２９１】
よって、図２６のLDPC復号装置８０４の動作についても、LDPC硬判定復号部１９０６の動作を除いては、図２０のLDPC復号装置８０４の上述した動作と同様になる。よって、以下、図２６のLDPC復号装置８０４の動作のうちの、LDPC硬判定復号部１９０６の動作についてのみ説明し、それ以外の動作の説明については省略する。
【０２９２】
LDPC硬判定復号部１９０６は、例えば図６に示されるバリアブルノードの演算を行う場合、受信データと他の枝から到来するメッセージの多数決結果をバリアブルノードのメッセージとすることができる。即ち、次の式（１４）乃至（１６）に従った演算が、バリアブルノードの演算としてLDPC硬判定復号部１９０６において実行される。
【０２９３】
v1 = (u0i + u2 + u3 > 1) ? 1 : 0      ・・・（１４）
v2 = (u0i + u1 + u2 > 1) ? 1 : 0      ・・・（１５）
v3 = (u0i + u2 + u3 > 1) ? 1 : 0      ・・・（１６）
【０２９４】
式（１４）乃至式（１６）において、左辺のv1乃至v3が、バリアブルノードのメッセージを示している。また、右辺のu0iが受信データを、u1乃至u3が他の枝から到来するメッセージをそれぞれ示している。
【０２９５】
また、式（１４）乃至式（１６）は、プログラミングにおけるいわゆる三項演算子の形態の式である。即ち、右辺は「<条件>? <1>: <0> 」の形態で表してあり、もし<条件>が真ならばこの式の値（左辺の値）は<1>になり、偽ならば<0>となることを意味している。
【０２９６】
具体的には例えば式（１４）において、(u0i + u2 + u3 > 1)という条件が成立する場合、バリアブルノードのメッセージv1は１であると演算され、(u0i + u2 + u3 > 1)という条件が成立しない場合、バリアブルノードのメッセージv1は０であると演算される。
【０２９７】
また、LDPC硬判定復号部１９０６は、例えば図７に示されるチェックノードの演算を行う場合、他の枝から到来するメッセージの排他的論理和の演算結果をチェックノードのメッセージuiとすることができる。即ち、次の式（１７）乃至式（２２）に従った演算が、チェックノードの演算としてLDPC硬判定復号部１９０６において実行される。
【０２９８】
u1 = EXOR(v2,v3,v4,v5,v6)    ・・・（１７）
u2 = EXOR(v1,v3,v4,v5,v6)    ・・・（１８）
u3 = EXOR(v1,v2,v4,v5,v6)    ・・・（１９）
u4 = EXOR(v1,v2,v3,v5,v6)    ・・・（２０）
u5 = EXOR(v1,v2,v3,v4,v6)    ・・・（２１）
u6 = EXOR(v1,v2,v3,v4,v5)    ・・・（２２）
【０２９９】
式（１７）乃至式（２２）において、左辺のu1乃至u6が、チェックノードのメッセージを示している。また、右辺のv1乃至v6が他の枝から到来するメッセージを示している。
【０３００】
このような式（１４）乃至式（２２）で示されるような簡単な演算でバリアブルノードまたはチェックノードの演算が可能になるので、図２６のLDPC硬判定復号部１９０６と復号結果メモリ１９０７の回路規模は、図２０のTMCC信号用LDPC復号部９０３Ｔと比較して小規模とすることができる。即ち、LDPC復号装置８０４として図２６の構成を採用した場合、図２０の構成を採用した場合と比較すると、TMCC信号の復号のための回路を縮小することができるので、その分だけ全体の回路規模も縮小することができる。
【０３０１】
図２７は、LDPC復号装置８０４の一実施の形態の構成例であって、図２０，図２１，図２６の例とは異なる例を示している。
【０３０２】
即ち、図２７のLDPC復号装置８０４は、分離部２１０１、データ信号用入力バッファ２１０２Ｄ、TMCC信号用入力バッファ２１０２Ｔ、データ信号用LDPC復号部２１０３Ｄ、TMCC信号用LDPC復号部２１０３Ｔ、セレクタ２１０４、および制御部２１０５から構成されている。
【０３０３】
図２７のデータ信号用LDPC復号部２１０３Ｄは、図２０のデータ信号用LDPC復号部９０３Ｄと同様の機能と構成を有している。即ち、図２７のデータ信号用LDPC復号部２１０３Ｄは、データ信号用受信値メモリ２２００Ｄ、データ信号用メッセージメモリ２２０１Ｄ、P個のノード計算器２２１０Ｄ−１乃至２２１０Ｄ−Ｐを含むメッセージ計算部２２０２Ｄ、シフト部２２０４Ｄ、および復号結果メモリ２２０５Ｄからなる。
【０３０４】
このように、図２７のデータ信号の復号用の構成は、図２０の構成と同様の構成となっている。これに対して、図２７のTMCC信号の復号用の構成は、図２０のTMCC信号用LDPC復号部９０３Ｔの代わりに、それとは異なる構成のTMCC信号用LDPC復号部２１０３Ｔが採用された構成となっている。
【０３０５】
即ち、図２７のTMCC信号用LDPC復号部２１０３Ｔは、TMCC信号用受信値メモリ２２００Ｔ、TMCC信号用メッセージメモリ２２０１Ｔ、１個のノード計算器２２１０Ｔのみを含むメッセージ計算部２２０２Ｔ、および復号結果メモリ２２０５Ｔからなる。
【０３０６】
換言すると、図２０の例では、LDPC符号化されたTMCC信号についても、パリティパラレルの復号（partly parallel decoding）を行うべく、即ちLDPC符号を表す検査行列を構成するP×Pの構造の構成行列毎にパラレルにノード演算を行うべく、P個のノード計算器１２１０Ｔ−１乃至１２１０Ｔ−Ｐを含むTMCC信号用LDPC復号部９０３Ｔが採用されている。
【０３０７】
これに対して、図２７の例では、LDPC符号化されたTMCC信号については、フルシリアルの復号(full serial decoding)を行うべく、即ち単純に各ノードの演算を一つずつ順次行うことによって復号を行うべく、１個のノード計算器２２１０Ｔを含むTMCC信号用LDPC復号部２１０３Ｔが採用されている。
【０３０８】
このように、図２７の例では、LDPC符号化されたTMCC信号について、フルシリアルの復号(full serial decoding)が行われるが、その理由は次の通りである。
【０３０９】
即ち、本実施の形態では、図１７の形式の伝送信号がLDPC復号装置８０４に供給されることになる。この場合、上述したように、データ信号が最大１２０符号分到来する間に、TMCC信号は１符号分しか到来しないことになる。このことは、LDPC符号化されたデータ信号とTMCC信号を並列的に復号する場合、データ信号の復号と比較して、復号回数を最大１２０倍確保できることを意味する。そのため、図２７の例のように、TMCC信号用に１個のノード演算器２２１０Ｔしか存在しなく、かつ例えばP=３７４であっても、即ち、検査行列の構成行列が３７４×３７４の構造であっても、データ信号の復号回数の１２０／３７４倍と十分な復号回数は確保されるからである。
【０３１０】
また、上述したように、LDPC符号化されたTMCC信号が伝送されてくる場合、例えば、BPSK変調方式で符号化率も既知信号を情報長に含めても１/２と低いので、LDPC符号化されたデータ信号と比較すると所要CNが小さいという特徴を有している。かかる特徴を有するということは、LDPC符号化されたTMCC信号については、データ信号の１２０／３７４倍の復号回数であっても、十分に低いSNで復号が可能であるからである。
【０３１１】
なお、図２７のLDPC復号装置８０４の動作は、LDPC符号化されたTMCC信号について上述の如くパリティパラレルの復号ではなくフルシリアルの復号が行われることを除いては、図２０のLDPC復号装置８０４の上述した動作と同様になる。よって、図２７のLDPC復号装置８０４の動作については、その説明を省略する。
【０３１２】
図２８は、LDPC復号装置８０４の一実施の形態の構成例であって、図２０，図２１，図２６，図２７の例とは異なる例を示している。
【０３１３】
即ち、図２８のLDPC復号装置８０４は、分離部２３０１、データ信号用入力バッファ２３０２Ｄ、TMCC信号用入力バッファ２３０２Ｔ、LDPC復号部２３０３、および制御部２３０５から構成されている。
【０３１４】
図２８のLDPC復号部２３０３は、データ信号用受信値メモリ２４００Ｄ、TMCC信号用受信値メモリ２４００Ｔ、データ信号用メッセージメモリ２４０１Ｄ、TMCC信号用メッセージメモリ２４０１Ｔ、P個のノード計算器２４１０−１乃至２４１０−Ｐを含むメッセージ計算部２４０２、シフト部２４０４、復号結果メモリ２４０５、およびセレクタ２４０６からなる。
【０３１５】
図２８のLDPC復号装置８０４の動作は、次のようになる。
【０３１６】
図１７の形式の伝送信号（復調後）が、LDPC復号装置８０４の分離部２３０１に提供される。そこで、分離部２３０１は、LDPC符号化されたデータ信号（Data)とTMCC信号（TMCC）とを伝送信号からそれぞれを分離し、LDPC符号化されたデータ信号をデータ信号用入力バッファ２３０２Ｄに受信値として供給し、LDPC符号化されたTMCC信号をTMCC信号用入力バッファ２３０２Ｔに受信値として提供する。
【０３１７】
即ち、LDPC符号化されたデータ信号が、データ信号用入力バッファ２３０２Ｄに受信値として保持される一方、LDPC符号化されたTMCC信号が、TMCC信号用入力バッファ２３０２Ｔに受信値として保持される。
【０３１８】
ここで、制御部２３０５は、予め設定されたスケジューリングに基づいて、データ信号の復号タイミングと、TMCC信号の復号タイミングとを管理している。なお、かかるスケジューリングの具体例については、図２９乃至図３２を参照して後述する。
【０３１９】
即ち、データ信号の復号タイミングでは、制御部２３０５の制御に基づいて、セレクタ２４０６の入力が、データ信号用受信値メモリ２４００Ｄの側とデータ信号用メッセージメモリ２４０１Ｄの側にそれぞれ切り替えられる。また、データ信号用入力バッファ２３０２Ｄに保持された受信値（LDPC符号化されたデータ信号）が、データ信号用受信値メモリ２４００Ｄに転送される。そして、シフト部２４０４から出力されるメッセージが、データ信号用メッセージメモリ２４０１Ｄに格納されるように制御される。この場合のLDPC復号部２３０３の回路構成は、図２０のデータ信号用LDPC復号部９０３Ｄの回路構成と等価になる。これにより、LDPC復号部２３０３において、LDPC符号化されたデータ信号の復号が可能になる。
【０３２０】
これに対して、TMCC信号の復号タイミングでは、制御部２３０５の制御に基づいて、セレクタ２４０６の入力が、TMCC信号用受信値メモリ２４００Ｔの側とTMCC信号用メッセージメモリ２４０１Ｔの側にそれぞれ切り替えられる。また、TMCC信号用入力バッファ２３０２Ｔに保持された受信値（LDPC符号化されたTMCC信号）が、TMCC信号用受信値メモリ２４００Ｔに転送される。そして、シフト部２４０４から出力されるメッセージが、TMCC信号用メッセージメモリ２４０１Ｔに格納されるように制御される。この場合のLDPC復号部２３０３の回路構成は、図２０のTMCC信号用LDPC復号部９０３Ｔの回路構成と等価になる。これにより、LDPC復号部２３０３において、LDPC符号化されたTMCC信号の復号が可能になる。
【０３２１】
以上、LDPC復号装置８０４の実施の形態として、図２０，図２１，図２６，図２７，図２８の５つの形態について説明した。
【０３２２】
これらの実施の形態は、データ信号の復号とTMCC信号の復号とを選択的に切り換えてシリアルに処理する形態（以下、シリアル形態と称する）と、データ信号の復号とTMCC信号の復号との両者をパラレルに処理する形態（以下、パラレル形態と称する）とに大別できる。即ち、図２１，図２８のLDPC復号装置８０４がシリアル形態の一例であって、図２０，図２６，図２７のLDPC復号装置８０４がパラレル形態の一例である。
【０３２３】
以下、シリアル形態とパラレル形態とに区別して、TMCC信号の復号タイミングのスケジューリング例について幾つか説明する。
【０３２４】
以下のスケジューリング例は、図１７の形式の伝送信号を単位として、即ち、１フレーム１２０スロットを単位として、受信値（復調後）がLDPC復号装置８０４に受信されることが前提とされている。
【０３２５】
また、以下のスケジューリング例を示すタイミングチャートにおいて、即ち図２９乃至図３２のタイミングチャートにおいて、「受信」と記述されている右方のタイミングチャートは、図１７の形態の伝送信号（復調後）がLDPC復号装置８０４に到来するタイミングを示している。一方、「復号」と記述されている右方のタイミングチャートは、LDPC復号装置８０４の復号のタイミングを示している。
【０３２６】
図２９は、シリアル形態のTMCC信号の復号タイミングのスケジューリングの一例を示すタイミングチャートである。
【０３２７】
図２９の例では、LDPC復号装置８０４は、１フレーム１２０スロットの全てを受信した後のタイミングで、まず、受信し終えたフレーム（以下、第１フレームと称する）に時分割多重化されていた、LDPC符号化されたTMCC信号（以下、第１フレームのTMCC信号と略記する）の復号を開始する。LDPC復号装置８０４は、第１フレームのTMCC信号の復号を完了すると、通常のデータ信号の復号の処理に戻り（切り替え）、第１フレームのスロット＃１２０に含まれるLDPC符号化されたデータ信号（以下、スロット＃１２０のデータ信号と称する。他のスロットについても同様の呼称を採用する）の復号を行う。そして、その後、LDPC復号装置８０４は、第１フレームの次に受信されるフレーム（以下、第２フレームと称する）のデータスロット＃１乃至＃１１９のそれぞれのデータ信号の復号を順次行う。
【０３２８】
ここで、TMCC信号の復号の手法としては、例えば、次の２つの手法を採用することができる。
【０３２９】
即ち、第１の手法とは、とある復号繰り返し回数を指定し、その繰り返し回数の復号が失敗した場合には、強制的に復号を終了するという手法である。
【０３３０】
これに対して、第２の手法とは、LDPC符号化されたTMCC信号については、復号が成功するまでひたすら復号の処理を繰り返すといった手法である。この第２の手法を採用する理由は次の通りである。即ち、LDPC符号化されたTMCC信号の所要CNは、LDPC符号化されたデータ信号の所要CNと比較してかなり小さいため、TMCC信号の復号が成功しないときにはは、他のデータ信号の復号も失敗する可能性がかなり高いからである。また、TMCC信号の復号が成功しないと、後に到来するフレームの制御情報が分からないからである。即ち、これらの理由に基づき、LDPC符号化されたTMCC信号を優先的に成功するまで復号する第２の手法を採用するのである。
【０３３１】
具体的には例えば図２１のLDPC復号装置８０４を想定した場合、第１フレームのTMCC信号を全て受信した後のタイミングで、制御部１５０６の制御に基づいて、セレクタ１５０３の入力がTMCC信号用入力バッファ１５０２Ｔ側に切り替えられ、TMCC信号用入力バッファ１５０２Ｔに保持されたた第１フレームのTMCC信号が、LDPC復号部１５０４の受信値メモリ１７００に転送され、第１フレームのTMCC信号の復号が開始される。
【０３３２】
ここで、TMCC信号の復号の手法として第１の手法が採用されている場合には、とある復号回数を消化した段階の復号結果が出力される。また、TMCC信号の復号の手法として第２の手法が採用されている場合には、復号が成功した段階で復号結果が出力される。
【０３３３】
すると、制御部１５０６の制御に基づいて、セレクタ１５０３の入力がデータ信号用入力バッファ１５０２Ｄ側に切り替えられ、第１フレームのスロット＃１２０のデータ信号（受信値）がデータ信号用入力バッファ１５０２Ｄから、LDPC復号部１５０４の受信値メモリ１７００に転送され、スロット＃１２０のデータ信号の復号が開始される。LDPC復号部１５０４は、その後、スロット＃１２００のデータ信号の復号を、復号が成功するまで、もしくは次の第２フレームのスロット＃１の受信が終わるまで続ける。
【０３３４】
このような図２９の例のスケジューリングに従って、LDPC復号装置８０４がTMCC信号を復号することにより、第１フレームのスロット＃１２０の復号回数が削減される以外は、回路規模が増大したり性能が劣化することは生じない。
【０３３５】
図３０は、シリアル形態のTMCC信号の復号タイミングのスケジューリングの一例であって、図２９とは異なる例を示すタイミングチャートである。
【０３３６】
図３０の例では、LDPC復号装置８０４は、第１フレームの１２０スロットの全てを受信した後のタイミングで、先ず、第１フレームのスロット＃１２０のデータ信号の復号を開始する。ここで、スロット＃１２０のデータ信号の復号が成功したタイミング（図３０中、dec sucと記述されたタイミング）から、次の第２フレームのスロット＃１を受信し終わってそのデータ信号の復号を開始するまでの間に時間的な余裕があれば、LDPC復号装置８０４は、その時間的な余裕がある間に、第１フレームのTMCC信号のLDPC復号を行う。仮に、この間に復号が成功に至らない場合は、LDPC復号装置８０４は、そのまま途中経過を保持しておき、次のスロット＃２乃至＃１１９のデータ信号のうちの何れかの復号が完了した後であって、次のフレームのスロットを受信し終わってそのデータ信号の復号を開始するまでの間に時間的な余裕がある場合に、LDPC復号装置８０４は、その時間的な余裕がある間に、第１フレームのTMCC信号のLDPC復号を再開する。
【０３３７】
このような図３０の例のスケジューリングに従って、LDPC復号装置８０４がTMCC信号を復号することにより、データ信号の復号性能が通常の復号より劣化することはなくなる。
【０３３８】
ただし、図３０の例のスケジューリングを採用する場合には、上述の如く、データ信号の復号の間にも復号途中のTMCC信号についての受信値とメッセージとを保持しておく必要がある。よって、LDPC復号装置８０４は、TMCC信号用の受信値メモリとメッセージメモリを有する構成を取る必要がある。即ち、図３０の例のスケジューリングを採用する場合には、上述の実施の形態の中では、TMCC信号用受信値メモリ２４００ＴとTMCC信号用メッセージメモリ２４０１Ｔとを有する図２８のLDPC復号装置８０４を採用する必要がある。
【０３３９】
図３１は、シリアル形態のTMCC信号の復号タイミングのスケジューリングの一例であって、図２９，図３０とは異なる例を示すタイミングチャートである。
【０３４０】
上述したように、LDPC符号化されたTMCC信号は時分割多重化され、複数の単位データに区分され、１フレーム１２０スロット内に断続的に挿入される。即ち、図１７に示されるように、TMCC信号の単位データ（図３１中TMCCと記述されたデータ）は断続的に伝送されてくる。そこで例えば、図３１に示されるように、LDPC復号装置８０４は、第１フレームの最後のTMCC信号の単位データの受信を待たずに、第１フレームのTMCC信号の復号を開始する。これにより、TMCC信号の単位データ分の４シンボルと、その前に送られるデータ信号の単位データ（図３１中Data#7920と記述されているデータ）分の１３６シンボルと合わせた計１４０シンボルだけ早いタイミングで、第１フレームのTMCC信号の復号を開始することが可能になる。
【０３４１】
なお、図３１の例では、第１フレームのTMCC信号の復号の開始タイミングは、フレームの最後のTMCC信号の単位データ（より正確には、その前のデータ信号の単位データ）とされているが、それよりも前であっても構わない。
【０３４２】
ただし、何れにしても、第１フレームのTMCC信号の復号が開始される段階では、第１フレームの最後の数シンボルについては受信が完了していないことになる。よって、受信が完了していないビットについては適当な受信値、例えば”０ ”である確率０．５といった値に設定して復号を開始する手法等を採用すればよい。この場合、真の受信値を使用していないので当然ながら、TMCC信号の復号性能は劣化する可能性があるが、その劣化は実用上問題ない。
【０３４３】
このような図３１の例のスケジューリングに従って、LDPC復号装置８０４がTMCC信号を復号することにより、TMCC信号の復号開始時間を早めることが可能となる。
【０３４４】
なお、図３１の例のスケジューリングは、シリアル形態のTMCC信号の復号タイミングのスケジューリングの一例である。しかしながら、受信が完了していないうちからTMCC信号の復号を開始するという技術的思想は、パラレル形態のTMCC信号の復号タイミングのスケジューリングとしても全く同様に適用可能である。
【０３４５】
以上説明したように、図２９乃至図３１は、シリアル形態のTMCC信号の復号タイミングのスケジューリングの各例を示すタイミングチャートであった。
【０３４６】
これに対して、図３２は、パラレル形態のTMCC信号の復号タイミングのスケジューリングの一例を示すタイミングチャートである。
【０３４７】
即ち、図３２の例のスケジューリングに従うことで、LDPC復号装置８０４は、LDPC符号化されたデータ信号とTMCC信号との両者の復号をパラレルに行うことができる。
【０３４８】
図３２の例では、第１フレームのデータ信号の復号については、最後のスロット＃１２０の復号が、次の第２フレームのスロット＃１を受信し終えるまでに完了する必要がある、という条件がある。しかしながら、第１フレームのTMCC信号の復号については、第２フレームが受信し終わるまでその復号を続けることができる。このことが、TMCC信号用LDPC復号部として、図２７の例のように、フルシリアルの復号(full serial decoding)を行う構成を採用できる理由のひとつである。
【０３４９】
以上説明したように、各種構成のLDPC復号装置８０４を採用することににより、データ信号のみならず、TMCC信号もLDPC符号化されて時間分割多重されるシステムを実現できる。即ち、LDPC復号装置８０４として、例えば図２０の例の構成を採用することで、LDPC符号化されたデータ信号とTMCC信号の両者を復号できる復号装置を実現することができる。さらに、LDPC復号装置８０４として、例えば図２１，図２６，図２７，図２８の例の構成を採用することで、図２０の例の構成を採用した場合と比較して、最小限に回路規模増大を抑えつつ、LDPC符号化されたデータ信号とTMCC信号の両者を復号できる復号装置を実現することができる。
【０３５０】
ただし、LDPC復号装置８０４の実現形態は、上述した例に限定されないことは言うまでもない。
【０３５１】
例えば、TMCC信号とは、変調方式は何であるのかといった伝送パラメータを伝送する信号である。具体的には例えば、変調方式を４ビットで表現するとすると、変調方式としては１６通りの表現が可能となる。そこで例えば、１０通りの変調方式しか利用されないシステムに本発明を適用することを考えると、TMCC信号の中には、使われない値が存在することになる。そこで、このような場合、例えば次のような処理を実行する機能を有するLDPC復号装置８０４を採用することもできる。即ち、かかるLDPC復号装置８０４は、TMCC信号の復号をした結果、使われない値を出力した場合、例えばシンドロームチェックが成功していたとしても、復号は失敗したものとして、復号をやり直す、もしくは受信値をそのまま出力する、もしくは使われている何らかの値に置き換えるといった処理を実行する。これにより、少なくとも使われるはずのない値を出力することを避けることが可能となる。
【０３５２】
なお、説明は省略するが、本発明が適用される上述した手法は、他の変調方式や符号化率が変わっても全く同様に適用することができる。即ち、本発明は他のおよび異なる実施形態を取ることができ、そのいくつかの詳細は全て本発明の精神および範囲を逸脱することなくさまざまな明白な点で修正できる。従って図面および発明の詳細な説明は本質的に例証とみなされるべきであり、限定的とみなされてはならない。
【０３５３】
さらに言えば、本発明は、LDPC符号を定義する所定の検査行列を用いてLDPC符号化された第１の信号と、これと同一若しくは異なる検査行列を用いてLDPC符号化された第２の信号が多重化されて伝送されるシステムにも適用可能である。即ち、この場合、本発明が適用される受信装置としては、第１の信号と第２の信号とを分離し、分離された第１の信号と第２の信号とをそれぞれ復号できる機能を有していれば足り、その構成は特に限定されない。
【０３５４】
ところで、上述した一覧表示処理も含む一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。
【０３５５】
上述した一連の処理をソフトウエアにより実行させる場合、本発明が適用される復号装置は、例えば、図３３に示されるコンピュータで構成することもできる。
【０３５６】
図３３において、CPU（Central Processing Unit）３００１は、ROM（Read Only Memory）３００２に記録されているプログラム、または記憶部３００８からRAM（Random Access Memory）３００３にロードされたプログラムに従って各種の処理を実行する。RAM３００３にはまた、CPU３００１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０３５７】
CPU３００１、ROM３００２、およびRAM３００３は、バス３００４を介して相互に接続されている。このバス３００４にはまた、入出力インターフェース３００５も接続されている。
【０３５８】
入出力インターフェース３００５には、キーボード、マウスなどよりなる入力部３００６、ディスプレイなどよりなる出力部３００７、ハードディスクなどより構成される記憶部３００８、および、モデム、ターミナルアダプタなどより構成される通信部３００９が接続されている。通信部３００９は、インターネットを含むネットワークを介して他の装置（図示せず）との間で行う通信を制御する。
【０３５９】
入出力インターフェース３００５にはまた、必要に応じてドライブ３０１０が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどよりなるリムーバブルメディア３０１１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部３００８にインストールされる。
【０３６０】
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０３６１】
このようなプログラムを含む記録媒体は、図３３に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フロッピディスクを含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク（ＭＤ（Mini-Disk）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア（パッケージメディア）３０１１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM３００２や、記憶部３００８に含まれるハードディスクなどで構成される。
【０３６２】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０３６３】
また、本明細書において、システムとは、複数の装置や処理部により構成される装置全体を表すものである。
【図面の簡単な説明】
【０３６４】
【図１】LDPC 符号のparity check matrix（検査行列）の例を示す図である。
【図２】LDPC符号を復号する際の一連の処理行程を説明するフローチャートである。
【図３】メッセージの流れの説明図である。
【図４】(3,6) LDPC 符号の 検査行列 の例を示す図である。
【図５】図４の 検査行列 のタナーグラフを示す図である。
【図６】バリアブルノードでのメッセージ計算を説明する図である。
【図７】チェックノードでのメッセージ計算を説明する図である。
【図８】復号結果出力計算を説明する図である。
【図９】LDPC 符号の従来の復号装置の構成例を示すブロック図である。
【図１０】バリアブルノード計算器の構成例を示すブロック図である。
【図１１】チェックノード計算器の構成例を示すブロック図である。
【図１２】LDPC 符号の 検査行列の例を示す図である。
【図１３】パリティパラレルの復号を行うLDPC符号の従来の復号装置の構成例を示すブロック図である。
【図１４】ノード計算器の第１の構成例を示すブロック図である。
【図１５】ノード計算器の第２の構成例を示すブロック図である。
【図１６】ノード計算器の第３の構成例を示すブロック図である。
【図１７】データ信号とTMCC信号を伝送する信号形式の一例を示す図である。
【図１８】TMCC信号のLDPC符号化の手法を説明する図である。
【図１９】本発明が適用される伝送システムの構成例を示すブロック図である。
【図２０】図１９のLDPC復号装置の第１の構成例を示すブロック図である。
【図２１】図１９のLDPC復号装置の第２の構成例を示すブロック図である。
【図２２】図２１等のLDPC復号装置のTMCC信号用入力バッファの第１の構成例を示すブロック図である。
【図２３】図２１等のLDPC復号装置のTMCC信号用入力バッファの第１の構成例を示すブロック図である。
【図２４】LDPC符号化されたTMCC信号のうちのヌルビットについての復号結果出力計算を説明する図である。
【図２５】LDPC符号化されたTMCC信号のうちのヌルビットについてのバリアブルノードでのメッセージ計算を説明する図である。
【図２６】図１９のLDPC復号装置の第３の構成例を示すブロック図である。
【図２７】図１９のLDPC復号装置の第４の構成例を示すブロック図である。
【図２８】図１９のLDPC復号装置の第５の構成例を示すブロック図である。
【図２９】図１９のLDPC復号装置のTMCC信号の復号の第１のスケジューリング例を示すブロック図である。
【図３０】図１９のLDPC復号装置のTMCC信号の復号の第２のスケジューリング例を示すブロック図である。
【図３１】図１９のLDPC復号装置のTMCC信号の復号の第３のスケジューリング例を示すブロック図である。
【図３２】図１９のLDPC復号装置のTMCC信号の復号の第１のスケジューリング例を示すブロック図である。
【図３３】本発明が適用される復号装置の他の実施形態としての、コンピュータの構成例を示すブロック図である。
【符号の説明】
【０３６５】
８０４  LDPC復号装置，  ９０１  分離部，  ９０２Ｄ  データ信号用入力バッファ，９０２Ｔ  TMCC信号用入力バッファ，  ９０３Ｄ  データ信号用LDPC復号部，  ９０３Ｔ  TMCC信号用LDPC復号部，  ９０４  セレクタ，  ９０５  制御部，  １５０１  分離部，  １５０２Ｄ  データ信号用入力バッファ，  １５０２Ｔ  TMCC信号用入力バッファ，  １５０３Ｄ  データ信号用LDPC復号部，  １５０４  LDPC復号部，  １５０６  制御部，  １９０１  分離部，  １９０２Ｄ  データ信号用入力バッファ，  １９０２Ｔ  TMCC信号用入力バッファ，  １９０３Ｄ  データ信号用LDPC復号部，  １９０４  セレクタ，  １９０５  制御部，  １９０６  LDPC硬判定復号部，  １９０７  復号結果メモリ，  ２１０１  分離部，  ２１０２Ｄ  データ信号用入力バッファ，  ２１０２Ｔ  TMCC信号用入力バッファ，  ２１０３Ｄ  データ信号用LDPC復号部，  ２１０３Ｔ  TMCC信号用LDPC復号部，  ２１０４  セレクタ，  ２１０５  制御部，  ２３０１  分離部，  ２３０２Ｄ  データ信号用入力バッファ，  ２３０２Ｔ  TMCC信号用入力バッファ，  ２３０３  LDPC復号部，  ２３０５  制御部，３００１  CPU，  ３００２  ROM，  ３００３  RAM，  ３００８  記憶部，  ３０１０  リムーバブルメディア
【図１】
0004626827.tif 000015
【図２】
0004626827.tif 000016
【図３】
0004626827.tif 000017
【図４】
0004626827.tif 000018
【図５】
0004626827.tif 000019
【図６】
0004626827.tif 000020
【図７】
0004626827.tif 000021
【図８】
0004626827.tif 000022
【図９】
0004626827.tif 000023
【図１０】
0004626827.tif 000024
【図１１】
0004626827.tif 000025
【図１２】
0004626827.tif 000026
【図１３】
0004626827.tif 000027
【図１４】
0004626827.tif 000028
【図１５】
0004626827.tif 000029
【図１６】
0004626827.tif 000030
【図１７】
0004626827.tif 000031
【図１８】
0004626827.tif 000032
【図１９】
0004626827.tif 000033
【図２０】
0004626827.tif 000034
【図２１】
0004626827.tif 000035
【図２２】
0004626827.tif 000036
【図２３】
0004626827.tif 000037
【図２４】
0004626827.tif 000038
【図２５】
0004626827.tif 000039
【図２６】
0004626827.tif 000040
【図２７】
0004626827.tif 000041
【図２８】
0004626827.tif 000042
【図２９】
0004626827.tif 000043
【図３０】
0004626827.tif 000044
【図３１】
0004626827.tif 000045
【図３２】
0004626827.tif 000046
【図３３】
0004626827.tif 000047