(57)【要約】【課題】単純な構成で、高性能な符号化を行うことができるようにする。【解決手段】  スイッチ１３３がＰ端子に設定されることにより、レジスタ１３４−１乃至１３４−１５に格納される情報が３つのループで巡回し、加算器１３５−１には、パリティ検査行列の情報部の対象行の非零元に応じた値が入力される。加算器１３５−１は、入力された値のＦ2上の和を演算する。加算器１３５−１により演算された対象行の演算結果は、スイッチ１３６を介して演算器１４１に供給される。演算器１４１は、加算器１３５−１から供給される対象行の演算結果と、レジスタ１４２に格納されたパリティビットとのＦ2上の和を演算することにより、新たなパリティビットを求める。本発明は、情報を線形符号に符号化する符号化装置に適用できる。【選択図】図６
2005252820.tif 000002
【特許請求の範囲】
【請求項１】
環Ｒ上の線形符号の符号化装置であって、
入力される情報の長さと同数の記憶素子からなるシフトレジスタと、
前記シフトレジスタから、前記線形符号の検査行列に応じて巡回的に入力される値を加算するシフト加算手段と、
前記線形符号のパリティを記憶する記憶手段と、
前記シフト加算手段による加算結果と、前記記憶手段に記憶された前記線形符号のパリティを加算することにより、前記線形符号の新たなパリティを求め、前記記憶手段に供給する累加算手段と
を備えることを特徴とする符号化装置。
【請求項２】
前記線形符号の検査行列は、低密度である
ことを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記環Ｒは、素数のべき乗を元とする有限体である
ことを特徴とする請求項１に記載の符号化装置。
【請求項４】
前記線形符号の検査行列に応じて、前記シフト加算手段による前記加算結果を選択する選択手段をさらに備え、
前記累加算手段は、前記選択手段により選択された前記加算結果と、前記記憶手段に記憶された前記線形符号のパリティを加算することにより、前記線形符号の新たなパリティを求め、前記記憶手段に供給する
ことを特徴とする請求項１に記載の符号化装置。
【請求項５】
環Ｒ上の線形符号の符号化装置の符号化方法であって、
入力される情報の長さと同数の記憶素子からなるシフトレジスタから、前記線形符号の検査行列に応じて巡回的に入力される値を加算するシフト加算ステップと、
前記線形符号のパリティを記憶手段に記憶させる記憶ステップと、
前記シフト加算ステップの処理による加算結果と、前記記憶手段に記憶された前記線形符号のパリティを加算することにより、前記線形符号の新たなパリティを求め、前記記憶手段に供給する累加算ステップと
を含むことを特徴とする符号化方法。
【請求項６】
前記線形符号の検査行列は、低密度である
ことを特徴とする請求項５に記載の符号化方法。
【請求項７】
前記環Ｒは、素数のべき乗を元とする有限体である
ことを特徴とする請求項５に記載の符号化方法。
【請求項８】
前記線形符号の検査行列に応じて、前記シフト加算ステップの処理による前記加算結果を選択する選択ステップをさらに含み、
前記累加算ステップでは、前記選択ステップの処理により選択された前記加算結果と、前記記憶手段に記憶された前記線形符号のパリティを加算することにより、前記線形符号の新たなパリティを求め、前記記憶手段に供給する
ことを特徴とする請求項５に記載の符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置および方法に関し、特に、簡単な構成で、高性能な符号化を実現することができるようにした符号化装置および方法に関する。
【背景技術】
【０００２】
代数的手法を用いた誤り訂正符号技術を実現する線形符号として、例えば、準巡回符号や、ＩＲＡ（Irregular Repeat Accumulate）符号などが挙げられる。符号長ｎの準巡回符号とは、ｎの約数ｍに対してパリティ検査行列が、ｍ×ｍの巡回正方行列を要素とする行列の形で表現される符号のことである。
【０００３】
図１は、ｎ＝１５,ｍ＝５の準巡回符号のパリティ検査行列ＨQCの構成例を示す。図１の例において、パリティ検査行列ＨQCは、５×５の巡回正方行列を要素とする２（行）×３（列）の行列で構成される。
【０００４】
このようなパリティ検査行列を有する準巡回符号の符号化装置は、シフトレジスタを用いて、簡単に実現される。例えば、非特許文献１においては、素数のべき乗を元とする有限体Ｆq上の任意の準巡回符号で、符号長ｎ，情報長ｋ，巡回正方行列のサイズｍ，ｎ＝ｎ０×ｍ，ｋ＝ｋ０×ｍ，ｌ：＝（ｎ−ｋ）／ｍ＝ｎ０−ｋ０で表される準巡回符号が記載されている。なお、準巡回符号において、ｎ０およびｌは、ｍ×ｍの巡回正方行列を要素とした場合のパリティ検査行列の列数と行数を表す。すなわち、ｍ個をひと塊と考えた場合、ｎ０，ｋ０，およびｌは、それぞれ符号長、情報長、およびパリティ数を表す。
【０００５】
一方、符号長ｎ、情報長ｋのＩＲＡ符号とは、一般にそのパリティ検査行列が、零元（例えば、０）および非零元（例えば、１）が任意に並んだｎ−ｋ個の情報部と、非零元が階段状に並び、残りを零元が埋めているｋ個のパリティ部により構成されるもののことである。ＩＲＡ符号は、非特許文献２に示されるように、高性能な符号化を実現することで知られている。
【０００６】
図２は、ｎ＝１５，ｋ＝５のＩＲＡ符号のパリティ検査行列ＨIRAの構成例を示す。図２の例において、パリティ検査行列ＨIRAは、１０（行）×５（列）の行列である情報部１１と、１０（行）×１０（列）の行列であるパリティ部１２により構成される。
【０００７】
このパリティ検査行列ＨIRAは、図３に示されるタナーグラフ(Tanner graph)を用いて表される。図３の例においては、黒丸で表されるのがバリアブルノード(Variable Node)であり、四角で表されるのがチェックノード(Check Node)である。バリアブルノードは、パリティ検査行列ＨIRAの列に対応し、ｎ−ｋ個（図３の例の場合、５個）の情報部２１と、ｋ個（図３の例の場合、１０個）の次数２（枝の数）のパリティ部２２により構成される。チェックノードは、パリティ検査行列ＨIRAの行に対応し、ｋ個（図３の例の場合、１０個）のチェックノード２３で構成される。チェックノードとバリアブルノードの間の結線は、枝(edge)であり、パリティ検査行列ＨIRAの非零元に相当する。
【０００８】
このようなパリティ検査行列を有するＩＲＡ符号の符号化装置について、図４を参照して説明する。図４の例において、ＩＲＡ符号の符号化装置は、パンクチャ(puncture)回路３１、ランダムインタリーバ３２、およびアキュムレータ３３により構成される。
【０００９】
パンクチャ回路３１は、入力された情報ビットを所定の規則で間引いて、ランダムインタリーバ３２に供給する。ランダムインタリーバ３２は、パンクチャ回路３１により間引かれたデータの順序をランダムに並び替え、並び替えたデータを、アキュムレータ３３に供給する。
【００１０】
アキュムレータ３３は、演算器４１およびレジスタ４２により構成される。演算器４１は、ランダムインタリーバ３２からのデータと、シフトレジスタ４２から供給されたデータを有限体Ｆ2上で加算し（排他的論理和を演算し）、その加算された値をシフトレジスタ４２に供給する。シフトレジスタ４２は、演算器４１から供給された値を格納し、それに格納している値（直前に演算器４１で加算された加算結果）を演算器４１に供給するとともに、図示せぬ後段に出力する。
【００１１】
以上により、図４の符号化装置からは、入力データに対するＩＲＡ符号化結果として、入力データとアキュムレータ３３から出力される値とを合わせた符号化系列（符号ビット）が、通信路に出力される。
【００１２】
【非特許文献１】R. L. Townsent, E. j. Weldon. Jr., ”Self-Orthogonal Quasi-Cyclic Codes”, IEEE Transaction on Information Theory, Vol. IT-13,No.2,April 1967
【非特許文献２】H. Jin, A. Khandekar, R. J. McEliece, “Irregular Repeat-Accumulate Codes”, in Proc. 2nd International Symposium on Turbo Codes & Related Topics, Brest, France, PP.1-8, Sept.2000
【発明の開示】
【発明が解決しようとする課題】
【００１３】
以上のように、ＩＲＡ符号を用いることにより高性能な符号化が実現されるが、ＩＲＡ符号の符号化装置は、高価なランダムインタリーバ３２などが必要であり、コストが高くなり、構成が複雑になってしまう課題があった。
【００１４】
一方、準巡回符号の符号化装置は、シフトレジスタにより、単純な構成で簡単に実装することができるが、ＩＲＡ符号のパリティ検査行列は、準巡回ではないため、ＩＲＡ符号のように高性能な符号の符号化には対応できない課題があった。
【００１５】
本発明は、このような状況に鑑みてなされたものであり、単純な構成で、高性能な符号化を行うことができるようにするものである。
【課題を解決するための手段】
【００１６】
本発明の符号化装置は、入力される情報の長さと同数の記憶素子からなるシフトレジスタと、シフトレジスタから、線形符号の検査行列に応じて巡回的に入力される値を加算するシフト加算手段と、線形符号のパリティを記憶する記憶手段と、シフト加算手段による加算結果と、記憶手段に記憶された線形符号のパリティを加算することにより、線形符号の新たなパリティを求め、記憶手段に供給する累加算手段とを備えることを特徴とする。
【００１７】
線形符号の検査行列は、低密度であるようにすることができる。
【００１８】
環Ｒは、素数のべき乗を元とする有限体であるようにすることができる。
【００１９】
線形符号の検査行列に応じて、シフト加算手段による加算結果を選択する選択手段をさらに備え、累加算手段は、選択手段により選択された加算結果と、記憶手段に記憶された線形符号のパリティを加算することにより、線形符号の新たなパリティを求め、記憶手段に供給するようにすることができる。
【００２０】
本発明の符号化方法は、入力される情報の長さと同数の記憶素子からなるシフトレジスタから、線形符号の検査行列に応じて巡回的に入力される値を加算するシフト加算ステップと、線形符号のパリティを記憶手段に記憶させる記憶ステップと、シフト加算ステップの処理による加算結果と、記憶手段に記憶された線形符号のパリティを加算することにより、線形符号の新たなパリティを求め、記憶手段に供給する累加算ステップとを含むことを特徴とする。
【００２１】
線形符号の検査行列は、低密度であるようにすることができる。
【００２２】
環Ｒは、素数のべき乗を元とする有限体であるようにすることができる。
【００２３】
線形符号の検査行列に応じて、シフト加算ステップの処理による加算結果を選択する選択ステップをさらに含み、累加算ステップでは、選択ステップの処理により選択された加算結果と、記憶手段に記憶された線形符号のパリティを加算することにより、線形符号の新たなパリティを求め、記憶手段に供給するようにすることができる。
【００２４】
本発明においては、入力される情報の長さと同数の記憶素子からなるシフトレジスタから、線形符号の検査行列に応じて巡回的に入力される値が加算される。そして、その加算結果と、記憶手段に記憶された線形符号のパリティを加算することにより、線形符号の新たなパリティが求められ、記憶手段に供給される。
【００２５】
符号化装置は、独立した装置であってもよいし、記録再生装置や通信装置の符号化処理を行うブロックであってもよい。
【発明の効果】
【００２６】
本発明によれば、単純な構成で、高性能な符号化を行うことができる。
【発明を実施するための最良の形態】
【００２７】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。したがって、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２８】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
【００２９】
請求項１に記載の符号化装置は、入力される情報の長さ（例えば、ｋ）と同数の記憶素子からなるシフトレジスタ（例えば、図６のレジスタ１３４−１乃至１３４−１５）と、シフトレジスタから、線形符号の検査行列（例えば、図５のパリティ検査行列ＨQCIRA1）に応じて巡回的に入力される値を加算するシフト加算手段（例えば、図６の加算器１３５−１または１３５−２）と、線形符号のパリティを記憶する記憶手段（例えば、図６のレジスタ１４２）と、シフト加算手段による加算結果と、記憶手段に記憶された線形符号のパリティを加算することにより、線形符号の新たなパリティを求め、記憶手段に供給する累加算手段（例えば、図６の演算器１４１）とを備えることを特徴とする。
【００３０】
請求項４に記載の符号化装置は、線形符号の検査行列に応じて、シフト加算手段による加算結果を選択する選択手段（例えば、図６のスイッチ１３６）をさらに備え、累加算手段は、選択手段により選択された加算結果と、記憶手段に記憶された線形符号のパリティを加算することにより、線形符号の新たなパリティを求め、記憶手段に供給することを特徴とする。
【００３１】
請求項５に記載の符号化方法は、入力される情報の長さ（例えば、ｋ）と同数の記憶素子からなるシフトレジスタ（例えば、図６のレジスタ１３４−１乃至１３４−１５）から、線形符号の検査行列（例えば、図５のパリティ検査行列ＨQCIRA1）に応じて巡回的に入力される値を加算するシフト加算ステップ（例えば、図６の加算器１３５−１または１３５−２が実行する図７のステップＳ１２）と、線形符号のパリティを記憶手段（例えば、図６のレジスタ１４２）に記憶させる記憶ステップ（例えば、図７のステップＳ１５）と、シフト加算ステップの処理による加算結果と、記憶手段に記憶された線形符号のパリティを加算することにより、線形符号の新たなパリティを求め、記憶手段に供給する累加算ステップ（例えば、図７のステップＳ１４）とを含むことを特徴とする。
【００３２】
請求項８に記載の符号化方法は、線形符号の検査行列に応じて、シフト加算ステップの処理による加算結果を選択する選択ステップ（例えば、図６のスイッチ１３６が実行する図７のステップＳ１２）をさらに含み、累加算ステップでは、選択ステップの処理により選択された加算結果と、記憶手段に記憶された線形符号のパリティを加算することにより、線形符号の新たなパリティを求め、記憶手段に供給することを特徴とする。
【００３３】
以下、図を参照して本発明の実施の形態について説明する。
【００３４】
図５は、本発明を適用したＩＲＡ（Irregular Repeat Accumulate）型準巡回符号の符号化に用いられるパリティ検査行列ＨQCIRA1の例を示している。ＩＲＡ型準巡回符号とは、準巡回符号のパリティ検査行列と、ＩＲＡ符号のパリティ検査行列の両方の性質を有するパリティ検査行列を持つ線形符号のことである。なお、図５においては、有限体を、２（素数のべき乗）を元とする有限体Ｆ2上として説明する。
【００３５】
図５の例において、パリティ検査行列ＨQCIRA1は、情報長ｋが１５ビットの情報を、符号長ｎが２５ビットの、巡回正方行列のサイズｍ，符号長ｎ＝ｎ０×ｍ，情報長ｋ＝ｋ０×ｍ，ｌ：＝（符号長ｎ−情報長ｋ）／ｍ＝ｎ０−ｋ０（図５の例の場合、ｎ＝２５，ｋ＝１５，ｍ＝５，ｎ０＝５，ｋ０＝３，ｌ＝２）で表されるＩＲＡ型準巡回符号に符号化するためのパリティ検査行列である。なお、ＩＲＡ型準巡回符号において、従来の準巡回符号と同様に、ｎ０およびｌは、ｍ×ｍの巡回正方行列を要素とした場合のパリティ検査行列の列数と行数を表す。換言すると、ｎ０，ｋ０，およびｌは、ｍ個をひと塊と考えた場合の、それぞれ符号長、情報長、およびパリティ数を表す。
【００３６】
このパリティ検査行列ＨQCIRA1は、１０（行）×２５（列）の元で構成される。また、パリティ検査行列ＨQCIRA1は、情報長ｋ（１５）の元で構成される情報部１０１、および、符号長ｎ−情報長ｋ（１０）の元で構成されるパリティ部１０２からなる。したがって、ＩＲＡ型準巡回符号の復号にあたっては、情報部１０１は、ＩＲＡ型準巡回符号の情報ビットと乗算され、パリティ部１０２は、ＩＲＡ型準巡回符号のパリティビットと乗算される。
【００３７】
情報部１０１は、それぞれ５（行）×５（列）の元からなる巡回正方行列である行列ＨＩ11，行列ＨＩ12，行列ＨＩ13，行列ＨＩ21，行列ＨＩ22，および行列ＨＩ23（行列ＨＩxy（１≦ｘ≦２），（１≦ｙ≦３））を要素とする２（行）×３（列）の準巡回行列で構成される。すなわち、情報部１０１は、ｌ（行）×ｋ０（列）の準巡回行列で構成される。
【００３８】
情報部１０１の行列ＨＩ11は、第１行目が「11000」であり、第２行目が「01100」であり、第３行目が「00110」であり、第４行目が「00011」であり、第５行目が「10001」である５×５の巡回正方行列である。情報部１０１の行列ＨＩ12は、第１行目が「10100」であり、第２行目が「01010」であり、第３行目が「00101」であり、第４行目が「10010」であり、第５行目が「01001」である５×５の巡回正方行列である。情報部１０１の行列ＨＩ13は、第１行目が「11100」であり、第２行目が「01110」であり、第３行目が「00111」であり、第４行目が「10011」であり、第５行目が「11001」である５×５の巡回正方行列である。
【００３９】
情報部１０１の行列ＨＩ21は、第１行目が「10110」であり、第２行目が「01011」であり、第３行目が「10101」であり、第４行目が「11010」であり、第５行目が「01101」である５×５の巡回正方行列である。情報部１０１の行列ＨＩ22は、第１行目が「01100」であり、第２行目が「00110」であり、第３行目が「00011」であり、第４行目が「10001」であり、第５行目が「11000」である５×５の巡回正方行列である。情報部１０１の行列ＨＩ23は、第１行目が「01000」であり、第２行目が「00100」であり、第３行目が「00010」であり、第４行目が「00001」であり、第５行目が「10000」である５×５の巡回正方行列である。
【００４０】
したがって、準巡回行列としての情報部１０１の第１行目（以下、適宜、上ブロックとも称する）の行列ＨＩ1y（１≦ｙ≦３）における各行は、７個の“１”と、８個の“０”で構成されており、それぞれの行列ＨＩ1yにおいて、各行は、直上の行における各値の位置を１つ右に移動（シフト）させて表される。準巡回行列としての情報部１０１の第２行目（以下、適宜、下ブロックとも称する）の行列ＨＩ2y（１≦ｙ≦３）における各行は、６個の“１”と、９個の“０”で構成されており、それぞれの行列ＨＩ2yにおいて、各行は、直上の行における各値の位置を１つ右に移動（シフト）させて表される。すなわち、情報部１０１のそれぞれの行列ＨＩxyの各行の値は、直上の行の値を次々に巡回するようにそれぞれ構成されている。
【００４１】
一方、パリティ部１０２は、非零元（図５の例の場合、“１”）が階段状に並び、残りを零元“０”が埋めている１０（行）×１０（列）の正方行列である行列ＨＰで構成される。パリティ部１０２の行列ＨＰは、第１行目が「1000000000」であり、第２行目が「1100000000」であり、第３行目が「0110000000」であり、第４行目が「0011000000」であり、第５行目が「0001100000」であり、第６行目が「0000110000」であり、第７行目が「0000011000」であり、第８行目が「0000001100」であり、第９行目が「0000000110」であり、第１０行目が「0000000011」である１０×１０の正方行列である。この行列ＨＰは、各行の２個の“１”を１つずつ右側に移動（シフト）して表すことができる行列となっており、階段状の構造を有している（ただし、第１行目のみ、１個の“１”）。
【００４２】
以上のように、ＩＲＡ型準巡回符号のパリティ検査行列ＨQCIRA1は、ＩＲＡ符号のパリティ検査行列のように、零元および非零元が任意に並んだ情報部１０１と、非零元が階段状に並び、残りを零元が埋めているパリティ部１０２を有しており、さらに、このパリティ検査行列ＨQCIRA1の情報部１０１は、準巡回符号のパリティ検査行列のように、巡回行列を要素として構成される。
【００４３】
ここで、ＩＲＡ型準巡回符号への符号化を行う符号化装置は、パリティ検査行列Ｈの転地行列ＨTとの間に、式ＧＨT＝０が成立する生成行列Ｇを算出し、その生成行列Ｇに対して情報語を乗算して、符号語ｃを生成することにより、ＩＲＡ型準巡回符号の符号化を行う。したがって、符号化装置は、パリティ検査行列Ｈとの間に、式ＨｃT＝０（上付きのＴは、転置を表す）が成立する符号語ｃを求めることにより、情報のＩＲＡ型準巡回符号の符号化を行うことができる。
【００４４】
したがって、符号化装置では、パリティ検査行列Ｈの各行の“１”のある位置に対応する符号語ｃのＦ2上の和が０になる符号語ｃを生成すればよい。具体的には、図５のパリティ検査行列ＨQCIRA1の第１行目は、情報部１０１に、７個の“１”があり、パリティ部１０２の１列目（情報部１０１の先頭列から１６列目）に“１”がある。したがって、符号化装置は、第１行目の情報部１０１の“１”のある位置に対応する符号語ｃの値、すなわち、符号語ｃの１５ビットからなる情報の値（情報ビット）のうち、情報部１０１の“１”のある位置に対応するすべての情報ビット（７個の情報ビット）のＦ2上の和（排他的論理和）を演算し、その値を符号語ｃの１６ビット目のパリティとすることにより、第１行目の“１”のある位置に対応する符号語ｃの値のＦ2上の和が０になるようにすることができる。
【００４５】
例えば、第１行目の情報部１０１の“１”のある位置に対応する７個の情報ビットのＦ2上の和が、“１”であった場合、符号化装置は、符号語ｃの１６ビット目のパリティを“１”にする。この場合、第１行目の情報部１０１の“１”のある位置に対応する７個の情報ビットのＦ2上の和が、“１”であり、符号語ｃの１６ビット目のパリティが“１”であるので、パリティ検査行列ＨQCIRA1の第１行目の“１”のある位置に対応する符号語ｃの値のＦ2上の和は０になる。
【００４６】
パリティ検査行列ＨQCIRA1の第２行目は、情報部１０１に、７個の“１”があり、パリティ部１０２の１列目と２列目（情報部１０１の先頭列から１６列目と１７列目）に“１”がある。したがって、符号化装置は、第２行目の情報部１０１の“１”のある位置に対応する７個の情報ビットと、第１行目の演算で既に求められた符号語ｃの１６ビット目のパリティの値のＦ2上の和を演算し、その値を符号語ｃの１７ビット目のパリティとすることにより、第２行目の“１”のある位置に対応する符号語ｃの値のＦ2上の和が０になるようにすることができる。
【００４７】
例えば、第２行目の情報部１０１の“１”のある位置に対応する７個の情報ビットのＦ2上の和が、“０”であり、符号語ｃの１６ビット目のパリティの値が“１”であった場合、符号化装置は、符号語ｃの１７ビット目のパリティを“１”にする。この場合、第１行目の情報部１０１の“１”のある位置に対応する７個の情報ビットのＦ2上の和が、“０”であり、符号語ｃの１６ビット目のパリティが“１”、１７ビット目のパリティが“１”であるので、パリティ検査行列ＨQCIRA1の第２行目の“１”のある位置に対応する符号語ｃの値のＦ2上の和は０になる。
【００４８】
符号化装置は、パリティ検査行列ＨQCIRA1の第３行目乃至第５行目においても、第２行目と同様に、パリティ検査行列ＨQCIRA1の行毎の“１”のある位置に対応する７個の情報ビットと、直前に求められたパリティビットのＦ2上の和を演算することにより、パリティ（ビット）を１つずつ求める。また、符号化装置は、パリティ検査行列ＨQCIRA1の第６行目乃至第１０行目においては、パリティ検査行列ＨQCIRA1の行毎の“１”のある位置に対応する６個の情報ビットと、直前に求められたパリティビットのＦ2上の和を演算することにより、パリティ（ビット）を１つずつ求める。これにより、符号化装置においては、最終的に、１０ビットのパリティが求まる。したがって、符号化装置は、１５ビットの情報ビットと、１０ビットのパリティビットとを合わせて、２５ビットの符号語ｃを生成することにより、パリティ検査行列ＨQCIRA1を用いて、情報のＩＲＡ型準巡回符号化することができる。
【００４９】
さらに、パリティ検査行列ＨQCIRA1において、情報部１０１の“１”のある位置は、図２を用いて上述した従来のＩＲＡ符号のパリティ検査行列と異なり、ランダムではなく、各行列ＨＩxyにおいて、直上の行における各値の位置を１つ右に移動（シフト）させて表すことができる。すなわち、情報部１０１のそれぞれの行の“１”のある位置に対応する情報は、準巡回符号の符号化装置と同様に、シフトレジスタを用いて、簡単に求めることができる。
【００５０】
以上のように、この符号化装置においては、シフトレジスタを用いて、パリティ検査行列の情報部の非零元に対応する情報のＦ2上の和が求められ、その情報のＦ2上の和と、直前に求められたパリティを用いて、Ｆ2上の和（排他的論理和）を演算することにより、新たなパリティを求めることができる。
【００５１】
図６は、本発明を適用した符号化装置１２１の構成例を表す。符号化装置１２１は、図５のパリティ検査行列ＨQCIRA1に従って、入力されるデータ（情報ビット）をＩＲＡ型準巡回符号化し、符号ビットとして出力する処理を行う。パリティ検査行列ＨQCIRA1の情報部１０１のＨＩxyの第ｉ行（１≦ｉ≦１５）に対応する情報ビットをｍiとし、符号化装置１２１から出力される符号ビットをｃi（１≦ｉ≦２５）とする。符号化装置１２１には、時刻１乃至１５で、情報ビットｍ1，ｍ2，ｍ3，…，ｍ15が入力される。
【００５２】
図６の例において、制御部１３１は、内蔵するクロックに基づいて、計時動作を行い、パリティ検査行列ＨQCIRA1に従って、スイッチ１３３，１３６および１３８を所定の端子に設定する（切り替える）制御を行う。具体的には、制御部１３１は、時刻ｔ１乃至時刻ｔ１５のとき、スイッチ１３３をＤ端子に設定し、入力される情報ビットｍ1，ｍ2，ｍ3，…，ｍ15を、各レジスタ１３４−１乃至１３４−１５に格納させるとともに、スイッチ１３８をＤ端子に設定し、入力される情報ビットｍ1，ｍ2，ｍ3，…，ｍ15を、そのまま符号ビットｃ1＝ｍ1，ｃ2＝ｍ2，ｃ3＝ｍ3，…，ｃ15＝ｍ15として後段に出力させる。
【００５３】
また、制御部１３１は、時刻ｔ１６乃至時刻ｔ２５で、スイッチ１３３をＰ端子に設定し、レジスタ１３４−１乃至１３４−１５に格納されている情報ビットｍiを巡回させるとともに、スイッチ１３８をＰ端子に設定し、符号化装置１２１内で演算された結果であるパリティビットを、符号ビットｃ16，ｃ17，ｃ18，…，ｃ25として後段に出力させる。さらに、制御部１３１は、時刻ｔ１６乃至時刻ｔ２０で、スイッチ１３６をＡ１端子に設定し、加算器１３５−１からの演算結果を演算器１４１に供給させ、時刻ｔ２１乃至時刻ｔ２５で、スイッチ１３６をＡ２端子に設定し、加算器１３５−２からの演算結果を演算器１４１に供給させる。
【００５４】
セパレータ１３２は、シリアルに入力される情報ビットｍiを、各情報ビットｍiが対応するレジスタ１３４−１乃至１３４−１５に格納されるように、ｋ０本（すなわち、３本）のパラレルに分配し、分配された情報ビットｍiを、スイッチ１３３に供給する。具体的には、セパレータ１３２は、情報ビットｍ1，ｍ2，ｍ3，ｍ4，ｍ5が、レジスタ１３４−１乃至１３４−５に格納されるように、情報ビットｍ6，ｍ7，ｍ8，ｍ9，ｍ10が、レジスタ１３４−６乃至１３４−１０に格納されるように、情報ビットｍ11，ｍ12，ｍ13，ｍ14，ｍ15が、レジスタ１３４−１１乃至１３４−１５に格納されるように、情報ビットｍiを３本のパラレルに分配する。
【００５５】
スイッチ１３３は、レジスタ１３４−１乃至１３４−５が接続されるスイッチ１３３−１、レジスタ１３４−６乃至１３４−１０が接続されるスイッチ１３３−２、および、レジスタ１３４−１１乃至１３４−１５が接続されるスイッチ１３３−３により構成される。スイッチ１３３−１乃至１３３−３は、Ｐ端子とＤ端子を有しており、制御部１３１の制御により、Ｐ端子とＤ端子のうちの一方に設定される。スイッチ１３３−１乃至１３３−３は、制御部１３１の制御により、Ｄ端子に設定されると、セパレータ１３２からの情報ビットｍiを、各レジスタ１３４−１乃至１３４−１５に格納し、Ｐ端子に設定されると、レジスタ１３４−１乃至１３４−１５に格納された情報ビットｍiを、３個の各ループで巡回させる。
【００５６】
すなわち、スイッチ１３３−１は、制御部１３１の制御により、Ｄ端子に設定されると、セパレータ１３２からの情報ビットｍ1，ｍ2，ｍ3，ｍ4，ｍ5を、各レジスタ１３４−１乃至１３４−５に格納し、Ｐ端子に設定されると、レジスタ１３４−１乃至１３４−５に格納された情報ビットを、レジスタ１３４−１乃至１３４−５のループで巡回させる。スイッチ１３３−２は、制御部１３１の制御により、Ｄ端子に設定されると、セパレータ１３２からの情報ビットｍ6，ｍ7，ｍ8，ｍ9，ｍ10を、それぞれのレジスタ１３４−６乃至１３４−１０に格納し、Ｐ端子に設定されると、レジスタ１３４−６乃至１３４−１０に格納された情報ビットを、レジスタ１３４−６乃至１３４−１０のループで巡回させる。スイッチ１３３−３は、制御部１３１の制御により、Ｄ端子に設定されると、セパレータ１３２からの情報ビットｍ11，ｍ12，ｍ13，ｍ14，ｍ15を、それぞれのレジスタ１３４−１１乃至１３４−１５に格納し、Ｐ端子に設定されると、レジスタ１３４−１１乃至１３４−１５に格納された情報ビットを、レジスタ１３４−１１乃至１３４−１５のループで巡回させる。
【００５７】
レジスタ１３４−１乃至１３４−１５は、入力される情報（ビット）と同じ数のシフトレジスタにより構成され、入力される情報ビットｍiを格納する。レジスタ１３４−１乃至１３４−１５は、ｋ０個（すなわち、３個）のループが繰り返されるように、それぞれｍ台（すなわち、５台）ずつ、レジスタ１３４−１乃至１３４−５、レジスタ１３４−６乃至１３４−１０、およびレジスタ１３４−１１乃至１３４−１５として接続されて構成されている。
【００５８】
加算器１３５−１および１３５−２（これらを個々に区別する必要がない場合、加算器１３５と称する）は、パリティ検査行列ＨQCIRA1の情報部１０１の各行の非零元に応じた値が入力されるように予め設定されている。したがって、加算器１３５−１には、パリティ検査行列ＨQCIRA1の情報部１０１の上ブロック（ＨＩ1y（１≦ｙ≦３））の各行の非零元に応じた値として、レジスタ１３４−１，１３４−２，１３４−６，１３４−８，１３４−１１，１３４−１２，および１３４−１３から７つの値が入力される。一方、加算器１３５−２には、パリティ検査行列ＨQCIRA1の情報部１０１の下ブロック（ＨＩ2y（１≦ｙ≦３））の各行の非零元に応じた値として、レジスタ１３４−１，１３４−３，１３４−４，１３４−７，１３４−８，および１３４−１２から６つの値が入力される。
【００５９】
加算器１３５−１および１３５−２は、各行の非零元に応じた値が入力されると、入力された値のＦ2上の和を演算する。なお、符号化装置１２１においては、加算器１３５は、ｌ＝ｎ０−ｋ０（いまの場合、２）個設けられる。すなわち、加算器１３５は、行列を要素とした場合の、パリティ検査行列ＨQCIRA1の情報部１０１の行数分設けられる。
【００６０】
スイッチ１３６は、加算器１３５−１に接続されるＡ１端子、加算器１３５−２に接続されるＡ２端子を有しており、制御部１３１の制御により、設定された端子に接続される加算器１３５の加算（演算）結果である、情報部１０１の各行の非零元に応じた値のＦ2上の和を、アキュムレータ１３７に供給する。なお、スイッチ１３６のＡ１端子も、加算器１３５の数（ｌ＝ｎ０−ｋ０）だけ設けられる。
【００６１】
アキュムレータ１３７は、演算器１４１およびレジスタ１４２により構成される。演算器１４１は、スイッチ１３６からの演算結果と、レジスタ１４２に記憶されている直前に求められたパリティビットのＦ2上の和を演算することにより、ＩＲＡ型準巡回符号のパリティ（ビット）を求め、求められたパリティビットをレジスタ１４２に供給する。レジスタ１４２は、シフトレジスタなどにより構成され、演算器１４１からのパリティビットを格納し、格納されるパリティビットを、演算器１４１に供給するともに、Ｐ端子を選択しているスイッチ１３８を介して、符号ビットｃ16，ｃ17，ｃ18，…，ｃ25として後段に出力する。
【００６２】
スイッチ１３８は、制御部１３１の制御により、Ｐ端子に設定されると、入力される情報ビットｍiを、符号ビットｃiとして後段に出力し、制御部１３１の制御により、Ｄ端子に設定されると、アキュムレータ１３７からのパリティビットを、そのまま、符号ビットｃiとして後段に出力する。
【００６３】
次に、図７のフローチャートを参照して、符号化装置１２１の符号化処理を詳しく説明する。パリティ検査行列ＨQCIRA1の情報部１０１のＨＩxyの第ｉ行（１≦ｉ≦１５）に対応する情報ビットをｍiとし、符号化装置１２１から出力される符号ビットをｃi（１≦ｉ≦２５）とする。セパレータ１３２には、時刻ｔ１乃至時刻ｔ１５で、情報ビットｍ1，ｍ2，ｍ3，…，ｍ15が入力される。
【００６４】
ステップＳ１１において、制御部１３１は、スイッチ１３３をＤ端子に設定し、入力される情報ビットｍ1，ｍ2，ｍ3，…，ｍ15を、各レジスタ１３４−１乃至１３４−１５に格納させるとともに、スイッチ１３８をＤ端子に設定し、入力される情報ビットｍ1，ｍ2，ｍ3，…，ｍ15を、符号ビットｃ1＝ｍ1，ｃ2＝ｍ2，ｃ3＝ｍ3，…，ｃ15＝ｍ15として後段に出力させ、ステップＳ１２に進む。
【００６５】
具体的には、時間ｔ１乃至時間ｔ１５において、スイッチ１３３−１がＤ端子に設定されると、セパレータ１３２からの情報ビットｍ1，ｍ2，ｍ3，ｍ4，およびｍ5は、順に、各レジスタ１３４−１乃至１３４−５に格納され、スイッチ１３３−２がＤ端子に設定されると、セパレータ１３２からの情報ビットｍ6，ｍ7，ｍ8，ｍ9，およびｍ10は、順に、各レジスタ１３４−６乃至１３４−１０に格納され、スイッチ１３３−３がＤ端子に設定されると、セパレータ１３２からの情報ビットｍ11，ｍ12，ｍ13，ｍ14，およびｍ15は、順に、各レジスタ１３４−１１乃至１３４−１５に格納される。そして、スイッチ１３８は、制御部１３１の制御により、Ｐ端子に設定されるので、入力される情報ビットｍ1，ｍ2，ｍ3，…，ｍ15を、そのまま符号ビットｃ1＝ｍ1，ｃ2＝ｍ2，ｃ3＝ｍ3，…，ｃ15＝ｍ15として、後段に出力する。
【００６６】
制御部１３１は、内蔵するクロックに基づいて、時刻ｔ１６になったと判定すると、ステップＳ１２において、スイッチ１３３および１３８をＰ端子に設定させ、スイッチ１３６を、パリティ検査行列ＨQCIRA1に応じた設定にさせ、ステップＳ１３に進む。これにより、ステップＳ２においては、加算器１３５にパリティ検査行列ＨQCIRA1に応じた値が入力され、入力された値のＦ2上の和（排他的論理和）が加算器１３５により演算され、その加算結果が、演算器１４１に供給される。
【００６７】
ステップＳ１２の処理を具体的に説明する。制御部１３１は、時刻ｔ１６で、各レジスタ１３４−１乃至１３４−１５に格納された情報ビットｍiの巡回を開始させる。スイッチ１３３−１がＰ端子に設定されると、レジスタ１３４−１乃至１３４−５に格納された情報ビットｍ1，ｍ2，ｍ3，ｍ4，およびｍ5は、レジスタ１３４−１乃至１３４−５のループで巡回し始める。スイッチ１３３−２がＰ端子に設定されると、レジスタ１３４−６乃至１３４−１０に格納された情報ビットｍ6，ｍ7，ｍ8，ｍ9，およびｍ10は、レジスタ１３４−６乃至１３４−１０のループで巡回し始める。スイッチ１３３−２がＰ端子に設定されると、レジスタ１３４−１１乃至１３４−１５に格納された情報ビットｍ11，ｍ12，ｍ13，ｍ14，およびｍ15は、レジスタ１３４−１１乃至１３４−１５のループで巡回し始める。
【００６８】
加算器１３５は、パリティ検査行列ＨQCIRA1に応じた値、すなわち、パリティ検査行列ＨQCIRA1の情報部１０１の各行の非零元に応じた値が入力されるように予め設定されている。したがって、各ループが巡回し始めると、加算器１３５−１には、レジスタ１３４−１，１３４−２，１３４−６，１３４−８，１３４−１１，１３４−１２，および１３４−１３に格納されている７つの情報の値（情報ビット）が入力され、加算器１３５−２には、レジスタ１３４−１，１３４−３，１３４−４，１３４−７，１３４−８，および１３４−１２から６つの情報の値が入力される。
【００６９】
また、制御部１３１は、パリティ検査行列ＨQCIRA1の情報部１０１の各行に応じて、時刻ｔ１６乃至時刻ｔ２０において、スイッチ１３６をＡ１端子に設定し、加算器１３５−１からの演算結果を、演算器１４１に供給させ、時刻ｔ２１乃至時刻ｔ２５において、スイッチ１３６をＡ２端子に設定し、加算器１３５−２からの演算結果を、演算器１４１に供給させる。
【００７０】
以上により、例えば、時刻ｔ１６において、パリティ検査行列ＨQCIRA1の情報部１０１の第１行目に対応する値（ｍ1，ｍ2，ｍ6，ｍ8，ｍ11，ｍ12，およびｍ13）が、加算器１３５−１に入力され、加算器１３５−１は、入力されたパリティ検査行列ＨQCIRA1の情報部１０１の第１行目に対応する値のＦ2上の和を演算する。このとき、スイッチ１３６がＡ１端子に設定されているので、加算器１３５−１により演算された第１行目の演算結果（すなわち、パリティ検査行列ＨQCIRA1の情報部１０１の第１行目の非零元に応じた値のＦ2上の和）は、スイッチ１３６を介して演算器１４１に供給される。
【００７１】
例えば、時刻ｔ１７において、パリティ検査行列ＨQCIRA1の情報部１０１の第２行目に対応する値（ｍ2，ｍ3，ｍ7，ｍ9，ｍ12，ｍ13，およびｍ14）が加算器１３５−１に入力され、加算器１３５−１は、入力されたパリティ検査行列ＨQCIRA1の情報部１０１の第２行目に対応する値のＦ2上の和を演算する。このとき、スイッチ１３６がＡ１端子に設定されているので、加算器１３５−１により演算された第２行目の演算結果は、スイッチ１３６を介して、演算器１４１に供給される。
【００７２】
時刻ｔ１８乃至時刻ｔ２０においても、時刻ｔ１６および時刻ｔ１７の場合と同様な処理がそれぞれ実行される。すなわち、加算器１３５−１により、入力されたパリティ検査行列ＨQCIRA1の情報部１０１の対象行（処理の対象となる行）に対応する値のＦ2上の和が演算され、演算された対象行の演算結果は、演算器１４１に供給される。
【００７３】
さらに、例えば、時刻ｔ２１において、パリティ検査行列ＨQCIRA1の情報部１０１の第６行目に対応する値（ｍ1，ｍ3，ｍ4，ｍ7，ｍ8，およびｍ12）が加算器１３５−２に入力され、加算器１３５−２は、入力されたパリティ検査行列ＨQCIRA1の情報部１０１の第６行目に対応する値のＦ2上の和を演算する。このとき、スイッチ１３６がＡ２端子に設定されているので、加算器１３５−２により演算された第６行目の演算結果は、スイッチ１３６を介して、演算器１４１に供給される。
【００７４】
例えば、時刻ｔ２２において、パリティ検査行列ＨQCIRA1の情報部１０１の第７行目に対応する値（ｍ2，ｍ4，ｍ5，ｍ8，ｍ9，およびｍ13）が加算器１３５−２に入力され、加算器１３５−２は、入力されたパリティ検査行列ＨQCIRA1の情報部１０１の第７行目に対応する値のＦ2上の和を演算する。このとき、スイッチ１３６がＡ２端子に設定されているので、加算器１３５−２により演算された第７行目の演算結果は、スイッチ１３６を介して、演算器１４１に供給される。
【００７５】
時刻ｔ２３乃至時刻ｔ２５においても、時刻ｔ２１および時刻ｔ２２の場合と同様な処理が実行され、加算器１３５−２により、入力されたパリティ検査行列ＨQCIRA1の情報部１０１の対象行に対応する値のＦ2上の和が演算され、演算された対象行の演算結果は、スイッチ１３６を介して、演算器１４１に供給される。
【００７６】
以上のように、ステップＳ１２において、加算器１３５−１または１３５−２から、パリティ検査行列ＨQCIRA1の情報部１０１の対象行の非零元に対応する値のＦ2上の和が、演算器１４１に供給され、処理は、ステップＳ１３に進む。
【００７７】
ステップＳ１３において、レジスタ１４２は、後述するステップＳ１５において格納したパリティビットを、演算器１４１に供給し、ステップＳ１４に進む。なお、符号化処理の開始時には、レジスタ１４２に、初期値として、“０”が格納される。したがって、最初のステップＳ１３の処理においては、レジスタ１４２は、“０”を演算器１４１に供給する。
【００７８】
ステップＳ１４において、演算器１４１は、加算器１３５−１または１３５−２から供給されるパリティ検査行列ＨQCIRA1の情報部１０１の対象行の演算結果と、レジスタ１４２に格納されたパリティビットとのＦ2上の和を演算することにより、新たなパリティ（ビット）を求め、求められたパリティビットを、レジスタ１４２に供給し、ステップＳ１５に進む。レジスタ１４２は、ステップＳ１５において、供給されたパリティビットを格納し、ステップＳ１６に進み、供給されたパリティビットを、Ｐ端子が選択されているスイッチ１３８を介して、符号ビットｃiとして後段に出力し、ステップＳ１７に進む。
【００７９】
ステップＳ１７において、制御部１３１は、内蔵するクロックに基づいて、時刻ｔ２５になり、すべての符号ビットｃiを出力したか否かを判断し、まだ、時刻ｔ２５になっておらず、すべての符号ビットｃiを出力していないと判断した場合、ステップＳ１２に戻り、それ以降の処理を繰り返す。ステップＳ１７において、制御部１３１は、時刻ｔ２５であり、すべての符号ビットｃiを出力したと判断した場合、符号化処理を終了する。
【００８０】
これにより、符号ビットは、符号ビットｃ16，ｃ17，ｃ18，ｃ19，ｃ20，ｃ21,ｃ22，ｃ23，ｃ24,ｃ25の順で後段に出力される。すなわち、符号化装置１２１においては、最終的に、１０ビットのパリティが求められ、１５ビットの情報ビットと、１０ビットのパリティビットとを合わせて、２５ビットのＩＲＡ型準巡回符号が生成される。以上のようにして、符号化装置１２１においては、パリティ検査行列ＨQCIRA1を用いて、情報がＩＲＡ型準巡回符号化される。
【００８１】
以上のように、パリティ検査行列ＨQCIRA1の情報部１０１が準巡回行列で表され、シフトレジスタを用いて、パリティ検査行列ＨQCIRA1の情報部１０１の各行の非零元に応じた値の和が簡単に求められるので、求められた各行の非零元に応じた値の和と、その直前に求められたパリティビットのみを用いて、Ｆ2上の和（排他的論理和）を演算することにより、新たなパリティビットを求めることができる。
【００８２】
したがって、従来のように高価なランダムインタリーバを用いることなく、符号化装置１２１のように、簡単なシフトレジスタを用いて、コストを上げることなく、簡単な構成の符号化装置を実現することができる。
【００８３】
図８は、本発明を適用したＩＲＡ型準巡回符号の符号化に用いられるパリティ検査行列ＨQCIRA2の例を示している。図８のパリティ検査行列ＨQCIRA2は、図５のパリティ検査行列ＨQCIRA1の他の例であるため、その詳細な説明は繰り返しになるので、適宜省略する。なお、以下、有限体を、有限体Ｆq（ｑ＝ｐs，ｐ：素数，ｓ：自然数）上として説明する。
【００８４】
図８の例において、パリティ検査行列ＨQCIRA2は、情報長ｋ＝１５の情報を、符号長ｎ＝２５の、巡回正方行列のサイズｍ，符号長ｎ＝ｎ０×ｍ，情報長ｋ＝ｋ０×ｍ，ｌ：＝（符号長ｎ−情報長ｋ）／ｍ＝ｎ０−ｋ０（図８の例の場合、ｎ＝２５，ｋ＝１５，ｍ＝５，ｎ０＝５，ｋ０＝３，ｌ＝２）で表されるＩＲＡ型準巡回符号に符号化するためのパリティ検査行列である。なお、パリティ検査行列ＨQCIRA2において、a，b，c，d，e，f，g，h，i，j，o，p，r，s，t∈Ｆqであり、hは、可逆元（h・h-1＝０）であるとする。
【００８５】
このパリティ検査行列ＨQCIRA2は、１０（行）×２５（列）の元で構成される。また、パリティ検査行列ＨQCIRA2は、情報長ｋ（１５）の元で構成される情報部２０１、および、符号長ｎ−情報長ｋ（１０）の元で構成されるパリティ部２０２からなる。情報部２０１は、それぞれ５（行）×５（列）の元からなる巡回正方行列である行列ＨＩ11，行列ＨＩ12，行列ＨＩ13，行列ＨＩ21，行列ＨＩ22，および行列ＨＩ23（行列ＨＩxy（１≦ｘ≦２），（１≦ｙ≦３））を要素とする２（行）×３（列）の準巡回行列で構成される。
【００８６】
情報部２０１の行列ＨＩ11は、第１行目が「ab000」であり、第２行目が「0ab00」であり、第３行目が「00ab0」であり、第４行目が「000ab」であり、第５行目が「b000a」である５×５の巡回正方行列である。情報部２０１の行列ＨＩ12は、第１行目が「c0d00」であり、第２行目が「0c0d0」であり、第３行目が「00c0d」であり、第４行目が「d00c0」であり、第５行目が「0d00c」である５×５の巡回正方行列である。情報部２０１の行列ＨＩ13は、第１行目が「efg00」であり、第２行目が「0efg0」であり、第３行目が「00efg」であり、第４行目が「g00ef」であり、第５行目が「fg00e」である５×５の巡回正方行列である。
【００８７】
情報部２０１の行列ＨＩ21は、第１行目が「j0op0」であり、第２行目が「0j0op」であり、第３行目が「p0j0o」であり、第４行目が「op0j0」であり、第５行目が「0op0j」である５×５の巡回正方行列である。情報部２０１の行列ＨＩ22は、第１行目が「0rs00」であり、第２行目が「00rs0」であり、第３行目が「000rs」であり、第４行目が「s000r」であり、第５行目が「rs000」である５×５の巡回正方行列である。情報部２０１の行列ＨＩ23は、第１行目が「0t000」であり、第２行目が「00t00」であり、第３行目が「000t0」であり、第４行目が「0000t」であり、第５行目が「t0000」である５×５の巡回正方行列である。
【００８８】
したがって、情報部２０１の上ブロック（行列ＨＩ1y（１≦ｙ≦３））の各行は、７個の非零元と、８個の零元“０”で構成されており、各行列ＨＩ1yにおいて、各行は、直上の行における各値の位置を１つ右に移動（シフト）させて表される。情報部２０１の下ブロック（行列ＨＩ2y（１≦ｙ≦３））の各行は、６個の非零元と、９個の零元“０”で構成されており、行列ＨＩ2yにおいて、各行は、各直上の行における各値の位置を１つ右に移動（シフト）させて表される。すなわち、情報部２０１の各行列ＨＩxyの各行の値は、直上の行の値を次々に巡回するようにそれぞれ構成されている。
【００８９】
一方、パリティ部２０２は、非零元（図８の例の場合、“h”および“i”）が階段状に並び、残りを零元“０”が埋めている１０（行）×１０（列）の正方行列である行列ＨＰで構成される。パリティ部２０２の行列ＨＰは、第１行目が「h000000000」であり、第２行目が「ih00000000」であり、第３行目が「0ih0000000」であり、第４行目が「00ih000000」であり、第５行目が「000ih00000」であり、第６行目が「0000ih0000」であり、第７行目が「00000ih000」であり、第８行目が「000000ih00」であり、第９行目が「0000000ih0」であり、第１０行目が「00000000ih」である１０×１０の正方行列である。この行列ＨＰは、各行の “h”および“i”を１つずつ右側に移動（シフト）して表すことができる行列となっており、階段状の構造を有している（ただし、第１行目のみ、１個の“h”）。
【００９０】
以上のように、ＩＲＡ型準巡回符号のパリティ検査行列ＨQCIRA2は、ＩＲＡ符号のパリティ検査行列のように、零元および非零元が任意に並んだ情報部２０１と、非零元が階段状に並び、残りを零元が埋めているパリティ部２０２を有しており、さらに、パリティ検査行列ＨQCIRA2の情報部２０１は、準巡回符号のパリティ検査行列のように、巡回行列を要素として構成される。
【００９１】
図９は、本発明を適用した符号化装置２２１の構成例を表す。なお、図９の符号化装置２２１は、乗算器２３１−１乃至２３１−１３、および乗算器２３２が追加されている点、並びに、アキュムレータ１３７の代わりに、アキュムレータ２３３が追加されている点を除いて、その他の構成は、上述した図６の符号化装置１２１と同様の構成であり、その詳細な説明は繰り返しになるので、適宜省略する。
【００９２】
図９の符号化装置２２１は、図８のパリティ検査行列ＨQCIRA2に従って、入力されるデータ（情報シンボル）をＩＲＡ型準巡回符号化し、符号シンボルとして出力する処理を行う。パリティ検査行列ＨQCIRA2の情報部２０１のＨＩxyの第ｕ行（１≦ｕ≦１５）に対応する情報シンボルをｍuとし、符号化装置２２１から出力される符号シンボルをｃu（１≦ｕ≦２５）とする。符号化装置２２１には、時刻ｔ１乃至時刻ｔ１５で、情報シンボルｍ1，ｍ2，ｍ3，…，ｍ15が入力される。
【００９３】
図９の例においては、制御部１３１は、内蔵するクロックに基づいて、計時動作を行い、パリティ検査行列ＨQCIRA2に従って、スイッチ１３３，１３６および１３８を所定の端子に設定する（切り替える）制御を行う。セパレータ１３２は、シリアルに入力される情報シンボルｍuを、各情報シンボルｍuが対応するレジスタ１３４−１乃至１３４−１５に格納されるように、３本のパラレルに分配し、分配された情報シンボルｍuを、スイッチ１３３に供給する。
【００９４】
スイッチ１３３−１乃至１３３−３は、制御部１３１の制御により、Ｄ端子に設定されると、セパレータ１３２からの情報シンボルｍuを、各レジスタ１３４−１乃至１３４−１５に格納し、Ｐ端子に設定されると、レジスタ１３４−１乃至１３４−１５に格納された情報シンボルｍuを、３個の各ループで巡回させる。レジスタ１３４−１乃至１３４−１５は、シフトレジスタにより構成され、入力される情報シンボルｍuを格納する。レジスタ１３４−１乃至１３４−１５は、３個のループが繰り返されるように、５台ずつ、レジスタ１３４−１乃至１３４−５、レジスタ１３４−６乃至１３４−１０、およびレジスタ１３４−１１乃至１３４−１５として接続されて構成されている。
【００９５】
加算器１３５−１および１３５−２は、パリティ検査行列ＨQCIRA2の情報部２０１の各行の非零元に応じた値が入力されるように、各レジスタ１３４−１乃至１３４−１５との接続と、その接続の間に設けられる乗算器２３１−１乃至２３１−１３が予め設定されている。なお、乗算器２３１−１乃至２３１−１３の数は、情報部２０１の非零元の数により求められる。
【００９６】
具体的には、乗算器２３１−１は、レジスタ１３４−１と加算器１３５−１の間に設けられ、レジスタ１３４−１からの情報シンボルｍuを“a”倍する。乗算器２３１−２は、レジスタ１３４−６と加算器１３５−１の間に設けられ、レジスタ１３４−６からの情報シンボルｍuを“c”倍する。乗算器２３１−３は、レジスタ１３４−１１と加算器１３５−１の間に設けられ、レジスタ１３４−１１からの情報シンボルｍuを“e”倍する。乗算器２３１−４は、レジスタ１３４−１と加算器１３５−２の間に設けられ、レジスタ１３４−１１からの情報シンボルｍuを“j”倍する。乗算器２３１−５は、レジスタ１３４−２と加算器１３５−１の間に設けられ、レジスタ１３４−２からの情報シンボルｍuを“b”倍する。乗算器２３１−６は、レジスタ１３４−１２と加算器１３５−１の間に設けられ、レジスタ１３４−１２からの情報シンボルｍuを“f”倍する。乗算器２３１−７は、レジスタ１３４−７と加算器１３５−２の間に設けられ、レジスタ１３４−７からの情報シンボルｍuを“r”倍する。
【００９７】
乗算器２３１−８は、レジスタ１３４−１２と加算器１３５−２の間に設けられ、レジスタ１３４−１２からの情報シンボルｍuを“t”倍する。乗算器２３１−９は、レジスタ１３４−８と加算器１３５−１の間に設けられ、レジスタ１３４−８からの情報シンボｍuルを“d”倍する。乗算器２３１−１０は、レジスタ１３４−１３と加算器１３５−１の間に設けられ、レジスタ１３４−１３からの情報シンボルｍuを“g”倍する。乗算器２３１−１１は、レジスタ１３４−３と加算器１３５−２の間に設けられ、レジスタ１３４−３からの情報シンボルｍuを“o”倍する。乗算器２３１−１２は、レジスタ１３４−８と加算器１３５−２の間に設けられ、レジスタ１３４−８からの情報シンボルｍuを“s”倍する。乗算器２３１−１３は、レジスタ１３４−４と加算器１３５−２の間に設けられ、レジスタ１３４−４からの情報シンボルｍuを“p”倍する。
【００９８】
したがって、加算器１３５−１には、パリティ検査行列ＨQCIRA2の情報部２０１の上ブロック（ＨＩ1y（１≦ｙ≦３））の各行の非零元に応じた値として、レジスタ１３４−１からの情報シンボルｍuが、乗算器２３１−１により“a”倍された値、レジスタ１３４−２からの情報シンボルｍuが、乗算器２３１−５により“b”倍された値、レジスタ１３４−６からの情報シンボルｍuが、乗算器２３１−２により“c”倍された値、レジスタ１３４−８からの情報シンボルｍuが、乗算器２３１−９により“d”倍された値、レジスタ１３４−１１の情報シンボルｍuが、乗算器２３１−３により“e”倍された値、レジスタ１３４−１２の情報シンボルｍuが、乗算器２３１−６により“f”倍された値、および、レジスタ１３４−１３からの情報シンボルｍuが、乗算器２３１−１０により“g”倍された値が入力される。
【００９９】
一方、加算器１３５−２には、パリティ検査行列ＨQCIRA2の情報部２０１の下ブロック（ＨＩ2y（１≦ｙ≦３））の各行の非零元に応じた値として、レジスタ１３４−１からの情報シンボルｍuが、乗算器２３１−４により“j”倍された値、レジスタ１３４−３からの情報シンボルｍuが、乗算器２３１−１１により“o”倍された値、レジスタ１３４−４からの情報シンボルｍuが、乗算器２３１−１３により“p 倍された値、レジスタ１３４−７からの情報シンボルｍuが、乗算器２３１−７により“r”倍された値、レジスタ１３４−８の情報シンボルｍuが、乗算器２３１−１２により“s”倍された値、および、レジスタ１３４−１２からの情報シンボルｍuが、乗算器２３１−８により“t”倍された値が入力される。
【０１００】
加算器１３５−１および１３５−２は、各行の非零元に応じた値が入力されると、入力された値のＦq上の和を演算する。スイッチ１３６は、加算器１３５−１に接続されるＡ１端子、加算器１３５−２に接続されるＡ２端子を有しており、制御部１３１の制御により、設定された端子に接続される加算器１３５の演算結果である、各行の非零元に応じた値の和を、乗算器２３２を介して、アキュムレータ２３３に出力する。乗算器２３２は、スイッチ１３６とアキュムレータ２３３の間に設けられ、スイッチ１３６からのパリティを、“−h-1”倍し、“−h-1”倍された演算結果を、アキュムレータ２３３に供給する。
【０１０１】
アキュムレータ２３３は、演算器１４１、レジスタ１４２、および乗算器２４１により構成される。演算器１４１は、乗算器２３２からの“−h-1”倍された演算結果と、レジスタ１４２からのパリティに乗算器２４１により“i”倍された値とのＦq上の和を演算することにより、新たなパリティ（シンボル）を求め、求められたパリティシンボルを、レジスタ１４２に供給する。レジスタ１４２は、シフトレジスタなどにより構成され、演算器１４１からのパリティシンボルを格納し、格納されるパリティシンボルを、乗算器２４１を介して、演算器１４１に供給するともに、Ｐ端子を選択しているスイッチ１３８を介して、符号シンボルｃ16，ｃ17，ｃ18，…，ｃ25として後段に出力する。乗算器２４１は、レジスタ１４２からのパリティを、“i”倍し、“i”倍された値を、演算器１４１に供給する。
【０１０２】
スイッチ１３８は、制御部１３１の制御により、Ｐ端子に設定されると、入力される情報シンボルｍuを、符号シンボルｃuとして後段に出力し、制御部１３１の制御により、Ｄ端子に設定されると、アキュムレータ２３３からのパリティシンボルを、そのまま、符号シンボルｃuとして後段に出力する。
【０１０３】
次に、図１０のフローチャートを参照して、符号化装置２２１の符号化処理を詳しく説明する。なお、図１０のステップＳ３１、およびＳ３５乃至Ｓ３８は、図７のステップＳ１１、およびＳ１４乃至Ｓ１７と同様の処理を行うため、その詳細な説明は、繰り返しになるので適宜省略する。
【０１０４】
パリティ検査行列ＨQCIRA2の情報部２０１のＨＩxyの第ｕ行（１≦ｕ≦１５）に対応する情報シンボルをｍuとし、符号化装置１２１から出力される符号シンボルをｃu（１≦ｕ≦２５）とする。セパレータ１３２には、時刻ｔ１乃至時刻ｔ１５で、情報シンボルｍ1，ｍ2，ｍ3，…，ｍ15が入力される。
【０１０５】
ステップＳ３１において、制御部１３１は、スイッチ１３３をＤ端子に設定し、入力される情報シンボルｍ1，ｍ2，ｍ3，…，ｍ15を、各レジスタ１３４−１乃至１３４−１５に格納させるとともに、スイッチ１３８をＤ端子に設定し、入力される情報シンボルｍ1，ｍ2，ｍ3，…，ｍ15を、符号シンボルｃ1＝ｍ1，ｃ2＝ｍ2，ｃ3＝ｍ3，…，ｃ15＝ｍ15として後段に出力させ、ステップＳ３２に進む。
【０１０６】
制御部１３１は、内蔵するクロックに基づいて、時刻ｔ１６になったと判定すると、ステップＳ３２において、スイッチ１３３および１３８をＰ端子に設定させ、スイッチ１３６を、パリティ検査行列ＨQCIRA2に応じた設定にさせ、ステップＳ３３に進む。これにより、ステップＳ３２においては、加算器１３５にパリティ検査行列ＨQCIRA2に応じた値が入力され、入力された値のＦ2上の和が加算器１３５により演算され、その演算（加算）結果が、乗算器２３２に供給される。
【０１０７】
ステップＳ３２の処理を具体的に説明する。制御部１３１は、各レジスタ１３４−１乃至１３４−１５に格納された情報シンボルｍuの巡回を開始させる。スイッチ１３３−１がＰ端子に設定されると、レジスタ１３４−１乃至１３４−１５に格納された情報シンボルは、図７を参照して上述した３つのループでそれぞれ巡回し始める。
【０１０８】
加算器１３５−１および１３５−２は、図９を参照して上述したように、パリティ検査行列ＨQCIRA2の情報部２０１の各行の非零元に応じた値が入力されるように、各レジスタ１３４−１乃至１３４−１５との接続と、その接続の間に設けられる乗算器２３１−１乃至２３１−１３が予め設定されている。したがって、各ループが巡回し始めると、加算器１３５−１には、パリティ検査行列ＨQCIRA2の情報部２０１の上ブロック（ＨＩ1y（１≦ｙ≦３））の各行の非零元に応じた値として、レジスタ１３４−１からの情報シンボルｍuが、乗算器２３１−１により“a”倍された値、レジスタ１３４−２からの情報シンボルｍuが、乗算器２３１−５により“b”倍された値、レジスタ１３４−６からの情報シンボルｍuが、乗算器２３１−２により“c”倍された値、レジスタ１３４−８からの情報シンボルｍuが、乗算器２３１−９により“d”倍された値、レジスタ１３４−１１の情報シンボルｍuが、乗算器２３１−３により“e”倍された値、レジスタ１３４−１２の情報シンボルｍuが、乗算器２３１−６により“f”倍された値、および、レジスタ１３４−１３からの情報シンボルｍuが、乗算器２３１−１０により“g”倍された値が入力される。
【０１０９】
一方、加算器１３５−２には、パリティ検査行列ＨQCIRA2の情報部２０１の下ブロック（ＨＩ2y（１≦ｙ≦３））の各行の非零元に応じた値として、レジスタ１３４−１からの情報シンボルｍuが、乗算器２３１−４により“j”倍された値、レジスタ１３４−３からの情報シンボルｍuが、乗算器２３１−１１により“o”倍された値、レジスタ１３４−４からの情報シンボルｍuが、乗算器２３１−１３により“p”倍された値、レジスタ１３４−７からの情報シンボルｍuが、乗算器２３１−７により“r”倍された値、レジスタ１３４−８の情報シンボルｍuが、乗算器２３１−１２により“s”倍された値、および、レジスタ１３４−１２からの情報シンボルｍuが、乗算器２３１−８により“t”倍された値が入力される。
【０１１０】
また、制御部１３１は、パリティ検査行列ＨQCIRA2の情報部２０１の各行に応じて、時刻ｔ１６乃至時刻ｔ２０において、スイッチ１３６をＡ１端子に設定し、加算器１３５−１からの演算結果を、乗算器２３２に供給させ、時刻ｔ２１乃至時刻ｔ２５において、スイッチ１３６をＡ２端子に設定し、加算器１３５−２からの演算結果を、乗算器２３２に供給させる。
【０１１１】
以上により、例えば、時刻ｔ１６において、パリティ検査行列ＨQCIRA2の情報部２０１の第１行目に対応する値（a・ｍ1，b・ｍ2，c・ｍ6，d・ｍ8，e・ｍ11，f・ｍ12，およびg・ｍ13）が、加算器１３５−１に入力され、加算器１３５−１は、入力されたパリティ検査行列ＨQCIRA2の情報部２０１の第１行目に対応する値のＦq上の和を演算する。このとき、スイッチ１３６がＡ１端子に設定されているので、加算器１３５−１により演算された演算結果である、パリティ検査行列ＨQCIRA2の情報部２０１の第１行目の非零元の位置に対応する値の和は、スイッチ１３６を介して、乗算器２３２に供給される。
【０１１２】
例えば、時刻ｔ１７において、パリティ検査行列ＨQCIRA2の情報部２０１の第２行目に対応する値（a・ｍ2，b・ｍ3，c・ｍ7，d・ｍ9，e・ｍ12，f・ｍ13，およびg・ｍ14）が加算器１３５−１に入力され、加算器１３５−１は、入力されたパリティ検査行列ＨQCIRA2の情報部２０１の第２行目に対応する値のＦq上の和を演算する。このとき、スイッチ１３６がＡ１端子に設定されているので、加算器１３５−１により演算された第２行目の演算結果は、スイッチ１３６を介して、乗算器２３２に供給される。
【０１１３】
時刻ｔ１８乃至時刻ｔ２０においても、時刻ｔ１６および時刻ｔ１７の場合と同様な処理が実行され、加算器１３５−１により、入力されたパリティ検査行列ＨQCIRA2の情報部２０１の対象行に対応する値のＦq上の和が演算され、演算された対象行の演算結果は、スイッチ１３６を介して、乗算器２３２に供給される。
【０１１４】
また、例えば、時刻ｔ２１のとき、パリティ検査行列ＨQCIRA2の情報部２０１の第６行目に対応する値（j・ｍ1，o・ｍ3，p・ｍ4，r・ｍ7，s・ｍ8，およびt・ｍ12）が加算器１３５−２に入力され、加算器１３５−２は、入力されたパリティ検査行列ＨQCIRA2の情報部２０１の第６行目に対応する値のＦq上の和を演算する。このとき、スイッチ１３６がＡ２端子に設定されているので、加算器１３５−２により演算された第６行目の演算結果は、スイッチ１３６を介して、乗算器２３２に供給される。
【０１１５】
例えば、時刻ｔ２２のとき、パリティ検査行列ＨQCIRA2の情報部２０１の第７行目に対応する値（j・ｍ2，o・ｍ4，p・ｍ5，r・ｍ8，s・ｍ9，およびt・ｍ13）が加算器１３５−２に入力され、加算器１３５−２は、入力されたパリティ検査行列ＨQCIRA2の情報部２０１の第７行目に対応する値のＦq上の和を演算する。このとき、スイッチ１３６がＡ２端子に設定されているので、加算器１３５−２により演算された第７行目の演算結果は、スイッチ１３６を介して、乗算器２３２に供給される。
【０１１６】
時刻ｔ２３乃至時刻ｔ２５においても、時刻ｔ２１および時刻ｔ２２の場合と同様な処理が実行され、加算器１３５−２により、入力されたパリティ検査行列ＨQCIRA2の情報部２０１の対象行に対応する値のＦq上の和が演算され、演算された対象行の演算結果は、スイッチ１３６を介して、乗算器２３２に供給される。
【０１１７】
以上のように、ステップＳ１２において、加算器１３５−１または１３５−２から、パリティ検査行列ＨQCIRA2の情報部２０１の対象行の非零元の位置に対応する値の和が乗算器２３２に供給され、処理は、ステップＳ３３に進む。
【０１１８】
乗算器２３２は、ステップＳ３３において、加算器１３５−１または１３５−２からの演算結果に、“−h-1”倍し、“−h-1”倍された値を、演算器１４１に供給し、ステップＳ３４に進む。ステップＳ３４において、レジスタ１４２は、後述するステップＳ３６において格納したパリティシンボルを、乗算器２４１により“i”倍させ、“i”倍されたパリティシンボルを、演算器１４１に供給し、ステップＳ３５に進む。
【０１１９】
ステップＳ３５において、演算器１４１は、乗算器２３２からの“−h-1”倍された対象行のパリティシンボルと、乗算器２４１により“i”倍されたパリティシンボルとのＦq上の和を演算することにより、新たなパリティシンボルを求め、求められたパリティシンボルを、レジスタ１４２に供給し、ステップＳ３６に進む。レジスタ１４２は、ステップＳ３６において、供給されたパリティシンボルを格納し、ステップＳ３７に進み、供給されたパリティシンボルを、Ｐ端子が選択されているスイッチ１３８を介して、符号シンボルｃuとして後段に出力し、ステップＳ３８に進む。
【０１２０】
ステップＳ３８において、制御部１３１は、内蔵するクロックに基づいて、時刻ｔ２５になり、すべての符号シンボルを出力したか否かを判断し、まだ、時刻ｔ２５になっておらず、すべての符号シンボルを出力していないと判断した場合、ステップＳ３２に戻り、それ以降の処理を繰り返す。ステップＳ３８において、制御部１３１は、時刻ｔ２５であり、すべての符号シンボルｃuを出力したと判断した場合、符号化処理を終了する。
【０１２１】
これにより、符号シンボルは、符号シンボルｃ16，ｃ17，ｃ18，ｃ19，ｃ20，ｃ21,ｃ22，ｃ23，ｃ24,ｃ25の順で後段に出力される。すなわち、符号化装置２２１においては、最終的に、１０シンボルのパリティが求められ、１５シンボルの情報シンボルと、１０シンボルのパリティシンボルとを合わせて、２５シンボルのＩＲＡ型準巡回符号が生成されることにより、パリティ検査行列ＨQCIRA2を用いて、情報をＩＲＡ型準巡回符号の符号化を行うことができる。
【０１２２】
以上のように、パリティ検査行列ＨQCIRA2の情報部２０１が準巡回行列で表され、シフトレジスタを用いて、パリティ検査行列ＨQCIRA2の情報部２０１の各行の非零元の位置に応じた値の和が簡単に求められるので、求められた各行の非零元に応じた値の和と、その直前に求められたパリティシンボルのみを用いて、Ｆq上の和（排他的論理和）を演算することにより、新たなパリティシンボルを求めることができる。
【０１２３】
したがって、従来のように高価なランダムインタリーバを用いることなく、符号化装置２２１のように、簡単なシフトレジスタを用いて、コストを上げることなく、簡単な構成の符号化装置を実現することができる。
【０１２４】
図１１は、本発明を適用したＩＲＡ型準巡回符号の符号化に用いられるパリティ検査行列ＨQCIRA3の例を示している。図１１のパリティ検査行列ＨQCIRA3は、図８のパリティ検査行列ＨQCIRA2の他の例であるため、その詳細な説明は繰り返しになるので、適宜省略する。
【０１２５】
図１１の例において、パリティ検査行列ＨQCIRA3は、情報長ｋ＝１５の情報を、符号長ｎ＝２５の、巡回正方行列のサイズｍ，符号長ｎ＝ｎ０×ｍ，情報長ｋ＝ｋ０×ｍ，ｌ：＝（符号長ｎ−情報長ｋ）／ｍ＝ｎ０−ｋ０（図１１の例の場合、ｎ＝２５，ｋ＝１５，ｍ＝５，ｎ０＝５，ｋ０＝３，ｌ＝２）で表されるＩＲＡ型準巡回符号に符号化するためのパリティ検査行列である。なお、パリティ検査行列ＨQCIRA3において、a，b，c，d，e，f，g，h，i，j，o，p，r，s，t，z∈Ｆqであり、hおよびzは、可逆元（h・h-1＝z・z-1＝０）であるとする。
【０１２６】
このパリティ検査行列ＨQCIRA3は、１０（行）×２５（列）の元で構成される。また、パリティ検査行列ＨQCIRA3は、情報長ｋ（１５）の元で構成される情報部３０１、および、符号長ｎ−情報長ｋ（１０）の元で構成されるパリティ部３０２により構成される。情報部３０１は、図８のパリティ検査行列ＨQCIRA2の情報部２０１と同様に構成される。すなわち、情報部３０１は、それぞれ５（行）×５（列）の巡回正方行列である行列ＨＩ11，行列ＨＩ12，行列ＨＩ13，行列ＨＩ21，行列ＨＩ22，および行列ＨＩ23（行列ＨＩxy（１≦ｘ≦２），（１≦ｙ≦３））を要素とする２（行）×３（列）の準巡回行列で構成される。
【０１２７】
したがって、情報部３０１の上ブロック（行列ＨＩ1y（１≦ｙ≦３））の各行は、７個の非零元と、８個の零元“０”で構成されており、各行列ＨＩ1yにおいて、各行は、直上の行における各値の位置を１つ右に移動（シフト）させて表される。情報部３０１の下ブロック（行列ＨＩ2y（１≦ｙ≦３））の各行は、６個の非零元と、９個の零元“０”で構成されており、行列ＨＩ2yにおいて、各行は、各直上の行における各値の位置を１つ右に移動（シフト）させて表される。すなわち、情報部３０１の各行列ＨＩxyの各行の値は、直上の行の値を次々に巡回するようにそれぞれ構成されている。
【０１２８】
一方、パリティ部３０２は、ＩＲＡ符号のパリティ検査行列の性質を維持させつつ、パリティ部３０２に巡回性を持たせるようにしたものであり、それぞれ５（行）×５（列）の元からなる行列ＨＰ11，行列ＨＰ12，行列ＨＰ21，および行列ＨＰ22を要素とする２（行）×２（列）の準巡回行列のような行列で構成される。なお、パリティ検査行列ＨQCIRA3は、パリティ部３０２において、h＝zとし、行や列の入れ替えを行うことにより、図８のパリティ検査行列ＨQCIRA2と同じ行列に変更することができる。すなわち、h＝zとした場合、パリティ検査行列ＨQCIRA3は、図８のパリティ検査行列ＨQCIRA2と同値となる。
【０１２９】
パリティ部３０２の行列ＨＰ11は、第１行目が「h0000」であり、第２行目が「0h000」であり、第３行目が「00h00」であり、第４行目が「000h0」であり、第５行目が「0000h」である５×５の巡回正方行列である。パリティ部３０２の行列ＨＰ12は、第１行目が「00000」であり、第２行目が「i0000」であり、第３行目が「0i000」であり、第４行目が「00i00」であり、第５行目が「000i0」である５×５の正方行列である。パリティ部３０２の行列ＨＰ21は、第１行目が「i0000」であり、第２行目が「0i000」であり、第３行目が「00i00」であり、第４行目が「000i0」であり、第５行目が「0000i」である５×５の巡回正方行列である。パリティ部３０２の行列ＨＰ22は、第１行目が「z0000」であり、第２行目が「0z000」であり、第３行目が「00z00」であり、第４行目が「000z0」であり、第５行目が「0000z」である５×５の巡回正方行列である。
【０１３０】
行列ＨＰ11，行列ＨＰ12，行列ＨＰ21，および行列ＨＰ22において、各行は、各直上の行における各値の位置を１つ右に移動（シフト）させて表される。すなわち、情パリティ部３０２の各行列ＨＰの各行の値も、直上の行の値を次々に巡回するようにそれぞれ構成されている。
【０１３１】
以上のように、ＩＲＡ型準巡回符号のパリティ検査行列ＨQCIRA3も、ＩＲＡ符号のパリティ検査行列のように、零元および非零元が任意に並んだ情報部３０１と、非零元が階段状に並び、残りを零元が埋めているパリティ部３０２を有しており、さらに、このパリティ検査行列ＨQCIRA3の情報部３０１は、準巡回符号のパリティ検査行列のように、巡回行列を要素として構成され、パリティ検査行列ＨQCIRA3のパリティ部３０２は、巡回性を有するように構成されている。
【０１３２】
図１２は、本発明を適用した符号化装置３２１の構成例を表す。なお、図１２の符号化装置３２１は、乗算器２３２が除かれている点、並びに、乗算器３３１−１および３３１−２が追加されている点を除いて、その他の構成は、上述した図９の符号化装置２２１と同様の構成であり、その詳細な説明は繰り返しになるので、適宜省略する。
【０１３３】
図１２の符号化装置３２１は、図１１のパリティ検査行列ＨQCIRA3に従って、入力されるデータ（情報シンボル）をＩＲＡ型準巡回符号化し、符号シンボルとして出力する処理を行う。パリティ検査行列ＨQCIRA3の情報部３０１のＨＩxyの第ｕ行（１≦ｕ≦１５）に対応する情報シンボルをｍuとし、符号化装置３２１から出力される符号シンボルをｃu（１≦ｕ≦２５）とする。符号化装置３２１には、時刻ｔ１乃至時刻ｔ１５で、情報シンボルｍ1，ｍ2，ｍ3，…，ｍ15が入力される。
【０１３４】
図１２の例においては、制御部１３１は、内蔵するクロックに基づいて、計時動作を行い、パリティ検査行列ＨQCIRA3に従って、スイッチ１３３，１３６および１３８を所定の端子に設定する（切り替える）制御を行う。具体的には、制御部１３１は、時刻ｔ１乃至時刻ｔ１５のとき、スイッチ１３３をＤ端子に設定し、入力される情報シンボルｍuを、各レジスタ１３４−１乃至１３４−１５に格納させるとともに、スイッチ１３８をＤ端子に設定し、入力される情報シンボルｍuを、そのまま符号シンボルｃuとして後段に出力させる。また、制御部１３１は、時刻ｔ１６乃至時刻ｔ２５で、スイッチ１３３をＰ端子に設定し、レジスタ１３４−１乃至１３４−１５に格納されている情報シンボルｍuを巡回させるとともに、スイッチ１３８をＰ端子に設定し、符号化装置３２１内で演算された結果であるパリティシンボルを、符号シンボルｃuとして後段に出力させる。
【０１３５】
さらに、制御部１３１は、時刻ｔ１６，ｔ１８，ｔ２０，ｔ２２，および時刻ｔ２４で、スイッチ１３６をＡ１端子に設定し、加算器１３５−１からの演算結果を演算器１４１に供給させ、時刻ｔ１７，ｔ１９，ｔ２１，ｔ２３，および時刻ｔ２５で、スイッチ１３６をＡ２端子に設定し、加算器１３５−２からの演算結果を演算器１４１に供給させる。これにより、符号シンボルｃ16，ｃ21，ｃ17，ｃ22，ｃ18，ｃ23,ｃ19，ｃ24，ｃ20,ｃ25の順で後段に出力される。
【０１３６】
セパレータ１３２は、シリアルに入力される情報シンボルｍuを、各情報シンボルｍuが対応するレジスタ１３４−１乃至１３４−１５に格納されるように、３本のパラレルに分配し、分配された情報シンボルｍuを、スイッチ１３３に供給する。
【０１３７】
スイッチ１３３−１乃至１３３−３は、制御部１３１の制御により、Ｄ端子に設定されると、セパレータ１３２からの情報シンボルｍuを、各レジスタ１３４−１乃至１３４−１５に格納し、Ｐ端子に設定されると、レジスタ１３４−１乃至１３４−１５に格納された情報シンボルｍuを、３個の各ループで巡回させる。レジスタ１３４−１乃至１３４−１５は、シフトレジスタにより構成され、入力される情報シンボルｍuを格納する。レジスタ１３４−１乃至１３４−１５は、３個のループが繰り返されるように、それぞれ５台ずつ、レジスタ１３４−１乃至１３４−５、レジスタ１３４−６乃至１３４−１０、およびレジスタ１３４−１１乃至１３４−１５として接続されて構成されている。
【０１３８】
加算器１３５−１および１３５−２は、パリティ検査行列ＨQCIRA3の情報部３０１の各行の非零元に応じた値が入力されるように、各レジスタ１３４−１乃至１３４−１５との接続と、その接続の間に設けられる乗算器２３１−１乃至２３１−１３が予め設定されている。なお、乗算器２３１−１乃至２３１−１３の数は、情報部３０１の上ブロックおよび下ブロックの非零元の数により求められる。
【０１３９】
加算器１３５−１および１３５−２は、各行の非零元に応じた値が入力されると、入力された値のＦq上の和を演算する。乗算器３３１−１は、加算器１３５−１とスイッチ１３６の間に設けられ、加算器１３５−１の演算結果を、“−h-1”倍する。乗算器３３１−２は、加算器１３５−２とスイッチ１３６の間に設けられ、加算器１３５−２の演算結果を、“−z-1”倍する。なお、以下、乗算器３３１−１および３３１−２は、特に区別する必要がない場合、単に、乗算器３３１と称する。
【０１４０】
スイッチ１３６は、乗算器３３１−１に接続されるＡ１端子、乗算器３３１−２に接続されるＡ２端子を有しており、制御部１３１の制御により、設定された端子に接続される乗算器３３１により所定倍された各行の演算結果を、アキュムレータ２３３に出力する。スイッチ１３６がＡ１端子に設定された場合、スイッチ１３６は、乗算器３３１−１により“−h-1”倍された各行の演算結果をアキュムレータ２３３に出力する。スイッチ１３６がＡ２端子に設定された場合、スイッチ１３６は、乗算器３３１−２により“−z-1”倍された各行の演算結果をアキュムレータ２３３に出力する。
【０１４１】
アキュムレータ２３３は、演算器１４１、レジスタ１４２、および乗算器２４１により構成される。演算器１４１は、スイッチ１３６からの所定倍された演算結果と、レジスタ１４２からのパリティに乗算器２４１により“i”倍された値とのＦq上の和を演算することにより、新たなパリティ（シンボル）を求め、求められたパリティシンボルを、レジスタ１４２に供給する。レジスタ１４２は、シフトレジスタなどにより構成され、演算器１４１からのパリティシンボルを格納し、格納されるパリティシンボルを、乗算器２４１を介して、演算器１４１に供給するともに、Ｐ端子を選択しているスイッチ１３８を介して、符号シンボルｃ16，ｃ21，ｃ17，ｃ22，ｃ18，ｃ23,ｃ19，ｃ24，ｃ20,ｃ25として後段に出力する。乗算器２４１は、レジスタ１４２からのパリティを、“i”倍し、“i”倍された値を、演算器１４１に供給する。
【０１４２】
次に、図１３のフローチャートを参照して、符号化装置５２１の符号化処理を詳しく説明する。なお、図１３のステップＳ５１，およびＳ５４乃至Ｓ５８は、図１１のステップＳ３１，およびＳ３４乃至Ｓ３８と同様の処理を行うため、その詳細な説明は、繰り返しになるので適宜省略する。
【０１４３】
パリティ検査行列ＨQCIRA3の情報部３０１のＨＩxyの第ｕ行（１≦ｕ≦１５）に対応する情報シンボルをｍuとし、符号化装置５２１から出力される符号シンボルをｃu（１≦ｕ≦２５）とする。セパレータ１３２には、時刻ｔ１乃至時刻ｔ１５で、情報シンボルｍ1，ｍ2，ｍ3，…，ｍ15が入力される。
【０１４４】
ステップＳ５１において、制御部１３１は、スイッチ１３３をＤ端子に設定し、入力される情報シンボルｍ1，ｍ2，ｍ3，…，ｍ15を、各レジスタ１３４−１乃至１３４−１５に格納させるとともに、スイッチ１３８をＤ端子に設定し、入力される情報シンボルｍ1，ｍ2，ｍ3，…，ｍ15を、符号シンボルｃ1＝ｍ1，ｃ2＝ｍ2，ｃ3＝ｍ3，…，ｃ15＝ｍ15として後段に出力させ、ステップＳ５２に進む。
【０１４５】
制御部１３１は、内蔵するクロックに基づいて、時刻ｔ１６になったと判定すると、ステップＳ５２において、スイッチ１３３および１３８をＰ端子に設定させ、ステップＳ５３に進み、スイッチ１３６を、パリティ検査行列ＨQCIRA3に応じた設定にさせ、ステップＳ５４に進む。これにより、ステップＳ５２においては、加算器１３５にパリティ検査行列ＨQCIRA3に応じた値が入力され、入力された値のＦq上の和が加算器１３５により演算され、その演算結果が、所定の乗算器３３１に供給される。そして、ステップＳ５３においては、乗算器３３１により加算器１３５からの演算結果が所定倍され、所定倍された演算結果が、演算器１４１に供給される。
【０１４６】
ステップＳ５２およびＳ５３処理を具体的に説明する。制御部１３１は、ステップＳ５２において、各レジスタ１３４−１乃至１３４−１５に格納された情報シンボルｍuの巡回を開始させる。スイッチ１３３−１がＰ端子に設定されると、レジスタ１３４−１乃至１３４−１５に格納された情報シンボルは、図７を参照して上述した３つのループでそれぞれ巡回し始める。
【０１４７】
加算器１３５−１および１３５−２は、図１１を参照して上述したように、パリティ検査行列ＨQCIRA3の情報部３０１の各行の非零元に応じた値が入力されるように、各レジスタ１３４−１乃至１３４−１５との接続と、その接続の間に設けられる乗算器２３１−１乃至２３１−１３が予め設定されている。したがって、各ループが巡回し始めると、加算器１３５−１には、パリティ検査行列ＨQCIRA3の情報部３０１の上ブロック（ＨＩ1y（１≦ｙ≦３））の各行の非零元に応じた値が入力される。加算器１３５−１は、入力された値のＦq上の和を演算し、各行に対応する演算結果を、乗算器３３１−１に供給する。乗算器３３１−１は、加算器１３５−１からの演算結果を、“−h-1”倍する。
【０１４８】
一方、加算器１３５−２には、パリティ検査行列ＨQCIRA1の情報部１０１の下ブロック（ＨＩ2b（１≦ｂ≦３））の各行の非零元に応じた値が入力される。加算器１３５−２は、入力された値のＦq上の和を演算し、各行に対応する演算結果を、乗算器３３１−２に供給する。乗算器３３１−２は、加算器１３５−２からの演算結果を、“−z-1”倍する。
【０１４９】
そして、制御部１３１は、時刻ｔ１６，ｔ１８，ｔ２０，ｔ２２，および時刻ｔ２４で、スイッチ１３６をＡ１端子に設定し、加算器１３５−１からの−h-1された演算結果を演算器１４１に供給させ、時刻ｔ１７，ｔ１９，ｔ２１，ｔ２３，および時刻ｔ２５で、スイッチ１３６をＡ２端子に設定し、加算器１３５−２からの−z-1された演算結果を演算器１４１に供給させる。
【０１５０】
以上により、例えば、時刻ｔ１６において、パリティ検査行列ＨQCIRA3の情報部３０１の第１行目に対応する値（a・ｍ1，b・ｍ2，c・ｍ6，d・ｍ8，e・ｍ11，f・ｍ12，およびg・ｍ13）が、加算器１３５−１に入力され、加算器１３５−１は、入力されたパリティ検査行列ＨQCIRA3の情報部３０１の第１行目に対応する値のＦq上の和を演算し、演算結果である、パリティ検査行列ＨQCIRA3の情報部３０１の第１行目に対応する値のＦq上の和を、乗算器３３１−１に供給する。乗算器３３１−１は、加算器１３５−１からの演算結果を、“−h-1”倍する。このとき、スイッチ１３６がＡ１端子に設定されているので、乗算器３３１−１により“−h-1”倍された情報部３０１の第１行目の演算結果は、スイッチ１３６を介して、演算器１４１に供給される。
【０１５１】
例えば、時刻ｔ１７において、パリティ検査行列ＨQCIRA3の情報部３０１の第６行目に対応する値（j・ｍ1，o・ｍ3，p・ｍ4，r・ｍ7，s・ｍ8，およびt・ｍ12）が加算器１３５−２に入力され、加算器１３５−２は、入力されたパリティ検査行列ＨQCIRA3の情報部３０１の第６行目に対応する値のＦq上の和を演算し、演算結果を、乗算器３３１−２に供給する。乗算器３３１−２は、加算器１３５−２からの演算結果を、“−z-1”倍する。このとき、スイッチ１３６がＡ２端子に設定されているので、乗算器３３１−２により“−z-1”倍された情報部３０１の第６行目の演算結果は、スイッチ１３６を介して、演算器１４１に供給される。
【０１５２】
例えば、時刻ｔ１８において、パリティ検査行列ＨQCIRA3の情報部３０１の第２行目に対応する値（a・ｍ2，b・ｍ3，c・ｍ7，d・ｍ9，e・ｍ12，f・ｍ13，およびg・ｍ14）が加算器１３５−１に入力され、加算器１３５−１は、入力されたパリティ検査行列ＨQCIRA3の情報部３０１の第２行目に対応する値のＦq上の和を演算し、演算結果を、乗算器３３１−１に供給する。乗算器３３１−１は、加算器１３５−１からの演算結果を、“−h-1”倍する。このとき、スイッチ１３６がＡ１端子に設定されているので、乗算器３３１−１により“−h-1”倍された情報部３０１の第２行目の演算結果は、スイッチ１３６を介して、演算器１４１に供給される。
【０１５３】
例えば、時刻ｔ１９において、パリティ検査行列ＨQCIRA3の情報部３０１の第７行目に対応する値（j・ｍ2，o・ｍ4，p・ｍ5，r・ｍ8，s・ｍ9，およびt・ｍ13）が加算器１３５−２に入力され、加算器１３５−２は、入力されたパリティ検査行列ＨQCIRA3の情報部３０１の第７行目に対応する値のＦq上の和を演算し、演算結果を、パリティ検査行列ＨQCIRA3の情報部３０１の第７行目の演算結果として、乗算器３３１−２に供給する。乗算器３３１−２は、加算器１３５−２からの演算結果を、“−z-1”倍する。このとき、スイッチ１３６がＡ２端子に設定されているので、乗算器３３１−２により“−z-1”倍された情報部３０１の第７行目の演算結果は、スイッチ１３６を介して、演算器１４１に供給される。
【０１５４】
以上のような処理と同様な処理が、時刻ｔ２０乃至時刻ｔ２５においても実行され、乗算器３３１−１により“−h-1”倍された情報部３０１の対象行の演算結果、または、乗算器３３１−２により“−z-1”倍された情報部３０１の対象行の演算結果は、スイッチ１３６を介して、演算器１４１に供給される。
【０１５５】
以上のように、ステップＳ５２およびＳ５３において、加算器１３５−１または１３５−２から、パリティ検査行列ＨQCIRA3の情報部３０１の対象行の演算結果が、乗算器３３１−１または３３１−２を介して、所定倍されて、演算器１４１に供給され、処理は、ステップＳ５４に進む。
【０１５６】
ステップＳ５４において、レジスタ１４２は、後述するステップＳ５６において格納したパリティシンボルを、乗算器２４１により“i”倍させ、“i”倍されたパリティシンボルを、演算器１４１に供給し、ステップＳ５５に進む。
【０１５７】
ステップＳ５５において、演算器１４１は、乗算器２３２からの所定倍された対象行の演算結果と、乗算器２４１により“i”倍されたパリティシンボルとのＦq上の和を演算することにより、新たなパリティシンボルを求め、求められたパリティシンボルを、レジスタ１４２に供給し、ステップＳ５６に進む。レジスタ１４２は、ステップＳ５６において、供給されたパリティシンボルを格納し、ステップＳ５７に進み、供給されたパリティシンボルを、Ｐ端子が選択されているスイッチ１３８を介して、符号シンボルｃuとして後段に出力し、ステップＳ５８に進む。
【０１５８】
ステップＳ５８において、制御部１３１は、内蔵するクロックに基づいて、時刻ｔ２５になり、すべての符号シンボルｃuを出力したか否かを判断し、まだ、時刻ｔ２５になっておらず、すべての符号シンボルｃuを出力していないと判断した場合、ステップＳ５２に戻り、それ以降の処理を繰り返す。ステップＳ３８において、制御部１３１は時刻ｔ２５になり、すべての符号シンボルｃuを出力したと判断した場合、符号化処理を終了する。
【０１５９】
これにより、符号シンボルは、符号シンボルｃ16，ｃ21，ｃ17，ｃ22，ｃ18，ｃ23,ｃ19，ｃ24，ｃ20,ｃ25の順で後段に出力される。すなわち、符号化装置２２１においては、最終的に、１０シンボルのパリティが求められ、１５シンボルの情報シンボルと、１０シンボルのパリティシンボルとを合わせて、２５シンボルのＩＲＡ型準巡回符号が生成される。以上のようにして、符号化装置３２１においては、パリティ検査行列ＨQCIRA3を用いて、情報がＩＲＡ型準巡回符号化される。
【０１６０】
以上のように、パリティ検査行列ＨQCIRA3の情報部３０１が準巡回行列で表され、シフトレジスタを用いて、パリティ検査行列ＨQCIRA3の情報部３０１の各行の非零元に応じた値の和が簡単に求められるので、求められた各行の非零元に応じた値の和と、その直前に求められたパリティシンボルのみを用いて、Ｆq上の和（排他的論理和）を演算することにより、新たなパリティシンボルを求めることができる。
【０１６１】
したがって、従来のように高価なランダムインタリーバを用いることなく、符号化装置３２１のように、簡単なシフトレジスタを用いて、コストを上げることなく、簡単な構成の符号化装置を実現することができる。
【０１６２】
図１５は、本発明を適用した符号化装置５２１の構成例を表す。なお、図１５の符号化装置５２１は、図６の符号化装置１２１、図９の符号化装置２２１、および図１２の符号化装置３２１の構成例をまとめて表した構成概念図であり、その詳細な説明は繰り返しになるので、適宜省略する。
【０１６３】
図１５の符号化装置５２１は、例えば、有限体Ｆq（ｑ＝ｐs，ｐ：素数，ｓ：自然数）上の任意のＩＲＡ型準巡回符号で、情報長ｋ，符号長ｎ，巡回正方行列のサイズｍ，符号長ｎ＝ｎ０×ｍ，情報長ｋ＝ｋ０×ｍ，ｌ：＝（符号長ｎ−情報長ｋ）／ｍ＝ｎ０−ｋ０で表されるＩＲＡ型準巡回符号の符号化装置であり、このＩＲＡ型準巡回符号するためのパリティ検査行列Ｈを用いて、入力されるデータ（情報長ｋの情報）をＩＲＡ型準巡回符号化し、符号（符号長ｎの符号）として出力する処理を行う。すなわち、符号化装置５２１には、情報長ｋの情報が入力され、符号長ｎの符号が出力される。
【０１６４】
図１５の例においては、制御部１３１は、内蔵するクロックに基づいて、計時動作を行い、パリティ検査行列Ｈに応じて、スイッチ１３３，１３６および１３８を所定の端子に設定する（切り替える）制御を行う。セパレータ１３２は、シリアルに入力される情報が対応するレジスタ１３４−１乃至１３４−ｋに格納されるように、ｋ０本のパラレルに分配し、分配された情報を、スイッチ１３３に供給する。
【０１６５】
スイッチ１３３−１乃至１３３−ｋ０は、制御部１３１の制御により、Ｄ端子に設定されると、セパレータ１３２からの情報を、各レジスタ１３４−１乃至１３４−ｋに格納し、Ｐ端子に設定されると、レジスタ１３４−１乃至１３４−ｋに格納された情報を、ｋ０個の各ループで巡回させる。
【０１６６】
レジスタ１３４−１乃至１３４−ｋは、情報長ｋと同数個のシフトレジスタにより構成され、入力される情報を格納する。レジスタ１３４−１乃至１３４−ｋは、ｋ０個のループが繰り返されるように、それぞれｍ個ずつ、レジスタ１３４−１乃至１３４−ｍ、レジスタ１３４−（ｍ＋１）乃至１３４−２ｍ、レジスタ１３４−（２ｍ＋１）乃至１３４−３ｍ、…として接続されて構成されている。
【０１６７】
加算器１３５−１および１３５−２は、ＩＲＡ型準巡回符号のパリティ検査行列Ｈの情報部の各行の非零元に応じた値が入力されるように、各レジスタ１３４−１乃至１３４−ｋとの接続と、その接続の間に設けられる乗算器５３１−１乃至５３１−ｌが予め設定されている。乗算器５３１−１乃至５３１−ｌは、パリティ検査行列Ｈの情報部の各行の非零元に応じた数設けられ、各レジスタ１３４−１乃至１３４−ｋからの情報を所定倍して、接続される加算器１３５−１乃至１３５−ｌに供給する。具体的には、パリティ検査行列Ｈの情報部を構成する要素（行列）のうち１番上の段（行）の要素の非零元に対応する“h11”倍，“h12”倍，…，“h1w1”倍を行うｗ１個の乗算器５３１−１、パリティ検査行列Ｈの情報部を構成する要素（行列）の上から２番目の段（行）の要素の非零元に対応する“h21”倍，“h22”倍，…，“h2w2”倍を行うｗ２個の乗算器５３１−２，そして、さらに、パリティ検査行列Ｈの情報部を構成する要素（行列）の上からｌ番目の段（行）の要素（行列）の非零元に対応する“hl1”倍，“hl2”倍，…，“hlwl”倍を行うｗｌ個の乗算器５３１―ｌが示されている（h11，h12，h1w1，h21，h22，h2w2，hl1，hl2，hlwl∈Ｆq）。なお、図１２の例の場合、乗算器５３１−１乃至５３１−ｌは、説明の便宜上、それぞれ、乗算器がｗ１，ｗ２，…，ｗｌ個ずつまとめて番号が付されている。
【０１６８】
加算器１３５−１乃至１３５−ｌは、例えば、情報部の各行列を要素とした場合、パリティ検査行列Ｈの情報部の行数（ｌ＝ｎ０−ｋ０個）設けられ、各行の非零元に応じた値が入力されると、入力された値のＦq上の和を演算する。乗算器５３２−１乃至５３２−ｌは、加算器１３５−１乃至１３５−ｌとスイッチ１３６の間に設けられ、加算器１３５−１の演算結果を、所定倍する。具体的には、乗算器５３２−１は、加算器１３５−１の演算結果を、“−p1-1”倍する。乗算器５３２−２は、加算器１３５−１の演算結果を、“−p2-1”倍する。乗算器５３２−ｌは、加算器１３５−ｌの演算結果を、“−pl-1”倍する（p1，p2，pl∈Ｆq）。
【０１６９】
スイッチ１３６は、乗算器５３２−１に接続されるＡ１端子、乗算器５３２−２に接続されるＡ２端子，…，乗算器５３２−ｌに接続されるＡｌ端子を有しており、制御部１３１の制御により、設定された端子に接続される乗算器３３１により所定倍された各行の演算結果を、アキュムレータ５３３に出力する。スイッチ１３６がＡ１端子に設定された場合、スイッチ１３６は、乗算器５３２−１により“−p1-1”倍された各行の演算結果をアキュムレータ５３３に出力する。スイッチ１３６がＡ２端子に設定された場合、スイッチ１３６は、乗算器５３２−２により“−p2-1”倍された各行の演算結果をアキュムレータ５３３に出力する。スイッチ１３６がＡｌ端子に設定された場合、スイッチ１３６は、乗算器５３２−ｌにより“−pl-1”倍された各行の演算結果をアキュムレータ５３３に出力する。
【０１７０】
アキュムレータ５３３は、図９のアキュムレータ２３３と同様の構成をしており、演算器１４１、レジスタ１４２、および乗算器５４１により構成される。演算器１４１は、スイッチ１３６からの所定倍された演算結果と、レジスタ１４２からのパリティに乗算器２４１により“i”が乗算された値とのＦq上の和を演算することにより、新たなパリティを求め、求められたパリティを、レジスタ１４２に供給する。レジスタ１４２は、シフトレジスタなどにより構成され、演算器１４１からのパリティを格納し、格納されるパリティを、乗算器５４１を介して、“q”倍して、演算器１４１に供給するともに、Ｐ端子を選択しているスイッチ１３８を介して、符号として後段に出力する。乗算器５４１は、レジスタ１４２からのパリティに、“q”倍し、“q”倍された値を、演算器１４１に供給する（q∈Ｆq）。
【０１７１】
なお、符号化装置５２１による符号化処理は、図７、図１１、および図１３を参照して上述した符号化処理のいずれかと同様の処理を行うため、繰り返しになるので、その説明を省略するが、符号化装置５２１においても、最終的に、１０のパリティが求められ、１５の情報と、１０のパリティとを合わせて、２５のＩＲＡ型準巡回符号が生成される。
【０１７２】
以上のように、本発明によれば、ＩＲＡ型準巡回符号のパリティ検査行列Ｈの情報部が準巡回行列で表され、シフトレジスタを用いて、パリティ検査行列の情報部のパリティが簡単に求められるので、求められたパリティと、その直前に求められたパリティのみを用いて、Ｆq上の和（排他的論理和）を演算することにより、新たなパリティを求めることができる。
【０１７３】
したがって、従来のように高価なランダムインタリーバを用いることなく、簡単なシフトレジスタを用いて、コストを上げることなく、簡単な構成の符号化装置を実現することができる。
【０１７４】
なお、上記説明において、加算器１３５に入力される値の数は、パリティ検査行列Ｈの情報部の各行の非零元に依存する。したがって、より低密度なパリティ検査行列を用いる場合（すなわち、符号がＬＤＰＣ(Low Density Parity Check)符号である場合）、入力される値の数が減り、より低いコストでの符号化を実現することができる。
【０１７５】
また、上記説明においては、符号の線形空間として有限体Ｆqを用いて説明したが、任意の環Ｒであっても、本発明を適用することができる。
【０１７６】
本明細書において、フローチャートに示されるステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【０１７７】
【図１】準巡回符号のパリティ検査行列の例を示す図である。
【図２】ＩＲＡ符号のパリティ検査行列の例を示す図である。
【図３】ＩＲＡ符号のパリティ検査行列のタナーグラフの例を示す図である。
【図４】ＩＲＡ符号の符号化装置の構成例を示すブロック図である。
【図５】本発明のＩＲＡ型準巡回符号のパリティ検査行列の例を示す図である。
【図６】本発明を適用したＩＲＡ型準巡回符号の符号化装置の構成例を示すブロック図である。
【図７】図６の符号化装置の符号化処理を説明するフローチャートである。
【図８】本発明のＩＲＡ型準巡回符号のパリティ検査行列の他の例を示す図である。
【図９】本発明を適用したＩＲＡ型準巡回符号の符号化装置の他の構成例を示すブロック図である。
【図１０】図９の符号化装置の符号化処理を説明するフローチャートである。
【図１１】本発明のＩＲＡ型準巡回符号のパリティ検査行列のさらに他の例を示す図である。
【図１２】本発明を適用したＩＲＡ型準巡回符号の符号化装置のさらに他の構成例を示すブロック図である。
【図１３】図１２の符号化装置の符号化処理を説明するフローチャートである。
【図１４】本発明を適用したＩＲＡ型準巡回符号の符号化装置の他の構成例を示すブロック図である。
【符号の説明】
【０１７８】
１０１  情報部，１０２  パリティ部，１２１  符号化装置，１３１  制御部，１３２  セパレータ，１３３，１３３−１乃至１３３−３  スイッチ，１３４−１乃至１３４−１５  レジスタ，１３５−１，１３５−２  加算器，１３６  スイッチ，１３７  アキュムレータ，１３８  スイッチ，１４１  演算器，１４２  レジスタ，２０１  情報部，２０２  パリティ部，２２１  符号化装置，２３１−１乃至２３１−１３，２３２  乗算器，２３３  アキュムレータ，２４１  乗算器，３０１  情報部，３０２  パリティ部，３２１  符号化装置，３３１−１，３３１−２  乗算器，５２１  符号化装置
【図１】
2005252820.tif 000003
【図２】
2005252820.tif 000004
【図３】
2005252820.tif 000005
【図４】
2005252820.tif 000006
【図５】
2005252820.tif 000007
【図６】
2005252820.tif 000008
【図７】
2005252820.tif 000009
【図８】
2005252820.tif 000010
【図９】
2005252820.tif 000011
【図１０】
2005252820.tif 000012
【図１１】
2005252820.tif 000013
【図１２】
2005252820.tif 000014
【図１３】
2005252820.tif 000015
【図１４】
2005252820.tif 000016