(57)【特許請求の範囲】
【請求項１】
デジタル衛星放送を受信するデジタル衛星放送受信装置において、
符号化／変調方式が割り当てられる最小のスロット単位である最小割当単位内に、有効スロットとともにダミースロットが含まれている場合には、そのダミースロットを有効割当単位の先頭に配置してフレームを再構成する再構成部と、
１つのスーパーフレーム分のデータを格納可能なインタリーブメモリと、
上記再構成部により再構成されたデータを上記インタリーブメモリに書き込み、上記インタリーブメモリに書き込まれているデータを所定のインタリーブ規則に従い読み出すメモリ制御部とを備え、
上記メモリ制御部は、
ｋ−１番目以前のスーパーフレームのｉ番目に配置されたデータが格納されていたアドレスに基づき、ｋ番目のインタリーブブロックのｉ番目に読み出されるデータのアドレスを算出し、算出したこのアドレスからｋ番目に出力されるスーパーフレームのｉ番目のデータを読み出すとともに、ｋ＋１番目に入力されるスーパーフレームのｉ番目のデータを算出した上記アドレスに書き込むことを特徴とするデジタル衛星放送受信装置。
【請求項２】
上記スーパーフレームは、ｍ×ｎ個のデータからなるインタリーブブロックから構成され、
上記インタリーブメモリには、０〜（ｍ×ｎ−１）までの論理アドレスが設定され、
上記メモリ制御部は、ｋ番目のインタリーブブロックのｉ番目に出力されるデータの論理アドレスを関数ｆｋ（ｉ）＝ｆ（ｆｋ−１（ｉ））に基づき算出し、この論理アドレスと同一のアドレスにｋ＋１番目のインタリーブブロックのｉ番目に入力されるデータを書き込むこと
を特徴とする請求項１記載のデジタル衛星放送受信装置。
ここで、ｆ（ｉ）＝ｎ×（ｉ％ｍ）＋（ｉ／ｍ）とし、このｆ（ｉ）に対してｆｋ（ｉ）は以下のような関係を有する。
ｆ２（ｉ）＝ｆ（ｆ（ｉ））
ｆ３（ｉ）＝ｆ（ｆ２（ｉ））
ｆ４（ｉ）＝ｆ（ｆ３（ｉ））
・
・
・
ｆｋ−１（ｉ）＝ｆ（ｆｋ−２（ｉ））
ｆｋ（ｉ）＝ｆ（ｆｋ−１（ｉ））
また、ｍ，ｎは、１以上の整数であり、（ｘ％ｙ）とはｘをｙで割った余りを表し、（ｘ／ｙ）とは、ｘをｙで割った商の整数部分を表す。
【請求項３】
上記メモリ制御部は、
ｆ（ｉ）を演算するｆ（ｉ）発生回路と、
０〜（ｍ×ｎ−１）までのテーブルアドレスが設定され、上記テーブルアドレス順に配列｛ｆｋ−１（ｉ）｝を格納する第１のテーブルと、
０〜（ｍ×ｎ−１）までのテーブルアドレスが設定され、上記テーブルアドレス順に配列｛ｆｋ（ｉ）｝を格納する第２のテーブルとを有し、
ｆｋ−１（ｆ（ｉ））を演算することにより、ｋ番目のインタリーブブロックのｉ番目に出力されるデータの論理アドレスであるｆｋ（ｉ）を算出すること
を特徴とする請求項２記載のデジタル衛星放送受信装置。
【請求項４】
上記メモリ制御部は、
ｆ（ｉ）を演算するｆ（ｉ）発生回路と、
０〜（ｍ×ｎ−１）までのテーブルアドレスが設定され、上記テーブルアドレス順に配列｛ｆｋ−１（ｉ）｝を格納する第３のテーブルとを有し、
ｆ（ｆｋ−１（ｉ））を演算することにより、ｋ番目のインタリーブブロックのｉ番目に出力されるデータの論理アドレスであるｆｋ（ｉ）を算出すること
を特徴とする請求項２記載のデジタル衛星放送受信装置。
【請求項５】
上記メモリ制御部は、
ｆ（ｉ）を演算するｆ（ｉ）発生回路と、
ｇ（ｉ）＝ｉ％（ｍ・ｎ）＋ｉ／（ｍ・ｎ）を算出するｇ（ｉ）発生回路と、
ｆｋ（ｉ−１）を格納する第１のレジスタと、
ｆｋ（１）を格納する第２のレジスタとを有し、
ｇ（ｆｋ（ｉ−１）＋ｆｋ（１））を演算することにより、ｋ番目のインタリーブブロックのｉ番目に出力されるデータの論理アドレスであるｆｋ（ｉ）を算出すること
を特徴とする請求項２記載のデジタル衛星放送受信装置。
【請求項６】
１番目のインタリーブブロックのｉ番目にインタリーブメモリに入力される論理アドレスの初期値を設定しておくこと
を特徴とする請求項２記載のデジタル衛星放送受信装置。
【請求項７】
１番目のインタリーブブロックのｉ番目にインタリーブメモリに入力される論理アドレスをｉとすること
を特徴とする請求項６記載のデジタル衛星放送受信装置。
【請求項８】
一定数のインタリーブブロック毎に、論理アドレスを上記初期値にリセットすること
を特徴とする請求項６記載のデジタル衛星放送受信装置。
【請求項９】
上記インタリーブメモリから出力されたデータに対して疑似ランダム信号を加算することによって、送信側でエネルギー拡散されたデータを復元するエネルギー拡散処理部を備え、
上記メモリ制御部は、
逆エネルギー拡散処理を行うかどうかを示すエネルギー拡散有効フラグを、上記インタリーブメモリから出力される各スロットに対して付け、
上記エネルギー拡散有効フラグは、当該フラグが付けられたスロットをフレーム内で時系列に選択していくと本来のスロット順序となるように各スロットに対して付けられており、
エネルギー拡散処理部は、エネルギー拡散有効フラグが付けられたスロットに対してのみ疑似ランダム信号を加算すること
を特徴とする請求項１記載のデジタル衛星放送受信装置。
【請求項１０】
上記エネルギー拡散処理部は、各フレームの最初に与えられる疑似ランダム信号の値を記憶しておき、
フレームが切り替わったときには、記憶してある疑似ランダム信号を読み出して、疑似ランダム信号を更新すること
を特徴とする請求項９記載のデジタル衛星放送受信装置。
【請求項１１】
上記エネルギー拡散処理部は、バイト単位の疑似ランダム信号を発生すること
を特徴とする請求項９記載のデジタル衛星放送受信装置。
【請求項１２】
上記エネルギー拡散処理部は、エネルギー拡散処理の停止命令に応じて、上記インタリーブメモリから出力されたデータに対して疑似ランダム信号の加算を停止する停止制御回路を有すること
を特徴とする請求項９記載のデジタル衛星放送受信装置。
【請求項１３】
デジタル衛星放送の受信データをデインタリーブする際のデインタリーブ方法であって、
符号化／変調方式が割り当てられる最小のスロット単位である最小割当単位内に、有効スロットとともにダミースロットが含まれている場合には、そのダミースロットを有効割当単位の先頭に配置してフレームを再構成し、
上記再構成されたデータをインタリーブメモリに書き込み、このインタリーブメモリに書き込まれているデータを所定のインタリーブ規則に従い読み出すときに、
ｋ−１番目以前のスーパーフレームのｉ番目に配置されたデータが格納されていたアドレスに基づき、ｋ番目のインタリーブブロックのｉ番目に読み出されるデータのアドレスを算出し、算出したこのアドレスからｋ番目に出力されるスーパーフレームのｉ番目のデータを読み出すとともに、ｋ＋１番目に入力されるスーパーフレームのｉ番目のデータを算出した上記アドレスに書き込むこと
を特徴とするデインタリーブ方法。
【請求項１４】
上記スーパーフレームは、ｍ×ｎ個のデータからなるインタリーブブロックから構成され、
上記インタリーブメモリには、０〜（ｍ×ｎ−１）までの論理アドレスが設定され、
上記再構成されたデータをインタリーブメモリに書き込み、このインタリーブメモリに書き込まれているデータを所定のインタリーブ規則に従い読み出すときに、
ｋ番目のインタリーブブロックのｉ番目に出力されるデータの論理アドレスを関数ｆｋ（ｉ）＝ｆ（ｆｋ−１（ｉ））に基づき算出し、この論理アドレスと同一のアドレスにｋ＋１番目のインタリーブブロックのｉ番目に入力されるデータを書き込むことを特徴とする請求項１３記載のデインタリーブ方法。
ここで、ｆ（ｉ）＝ｎ×（ｉ％ｍ）＋（ｉ／ｍ）とし、このｆ（ｉ）に対してｆｋ（ｉ）は以下のような関係を有する。
ｆ２（ｉ）＝ｆ（ｆ（ｉ））
ｆ３（ｉ）＝ｆ（ｆ２（ｉ））
ｆ４（ｉ）＝ｆ（ｆ３（ｉ））
・
・
・
ｆｋ−１（ｉ）＝ｆ（ｆｋ−２（ｉ））
ｆｋ（ｉ）＝ｆ（ｆｋ−１（ｉ））
また、ｍ，ｎは、１以上の整数であり、（ｘ％ｙ）とはｘをｙで割った余りを表し、（ｘ／ｙ）とは、ｘをｙで割った商の整数部分を表す。
【請求項１５】
ｆｋ−１（ｆ（ｉ））を演算することにより、ｋ番目のインタリーブブロックのｉ番目に出力されるデータの論理アドレスであるｆｋ（ｉ）を算出すること
を特徴とする請求項１４記載のデインタリーブ方法。
【請求項１６】
ｆ（ｆｋ−１（ｉ））を演算することにより、ｋ番目のインタリーブブロックのｉ番目に出力されるデータの論理アドレスであるｆｋ（ｉ）を算出すること
を特徴とする請求項１４記載のデインタリーブ方法。
【請求項１７】
ｇ（ｆｋ（ｉ−１）＋ｆｋ（１））を演算することにより、ｋ番目のインタリーブブロックのｉ番目に出力されるデータの論理アドレスであるｆｋ（ｉ）を算出すること
を特徴とする請求項１４記載のデインタリーブ方法。
【請求項１８】
１番目のインタリーブブロックのｉ番目にインタリーブメモリに入力されるデータ対する論理アドレスの初期値を設定しておくこと
を特徴とする請求項１４記載のデインタリーブ方法。
【請求項１９】
１番目のインタリーブブロックのｉ番目にインタリーブメモリに入力される論理アドレスをｉとすること
を特徴とする請求項１８記載のデインタリーブ方法。
【請求項２０】
一定数のインタリーブブロック毎に、論理アドレスを上記初期値にリセットすること
を特徴とする請求項１８記載のデインタリーブ方法。
【請求項２１】
デジタル衛星放送の受信データに対して疑似ランダム信号を加算して逆エネルギー拡散を行う逆エネルギー拡散処理方法であって、
符号化／変調方式が割り当てられる最小のスロット単位である最小割当単位内に、有効スロットとともにダミースロットが含まれている場合には、そのダミースロットを有効割当単位の先頭に配置してフレームを再構成し、
上記再構成されたデータをインタリーブメモリに書き込み、このインタリーブメモリに書き込まれているデータを所定のインタリーブ規則に従い読み出すときに、ｋ−１番目以前のスーパーフレームのｉ番目に配置されたデータが格納されていたアドレスに基づき、ｋ番目のインタリーブブロックのｉ番目に読み出されるデータのアドレスを算出し、算出したこのアドレスからｋ番目に出力されるスーパーフレームのｉ番目のデータを読み出すとともに、ｋ＋１番目に入力されるスーパーフレームのｉ番目のデータを算出した上記アドレスに書き込んでデインタリーブを行い、
逆エネルギー拡散処理を行うかどうかを示すエネルギー拡散有効フラグを、上記インタリーブメモリから出力される各スロットに対して付け、
エネルギー拡散有効フラグが付けられたスロットに対してのみ疑似ランダム信号を加算して逆エネルギー拡散処理を行うこと
を特徴とする逆エネルギー拡散処理方法。
【請求項２２】
上記エネルギー拡散有効フラグは、当該フラグが付けられたスロットをフレーム内で時系列に選択していくと本来のスロット順序となるように各スロットに対して付けられていること
を特徴とする請求項２１記載の逆エネルギー拡散処理方法。
【請求項２３】
フレームの最初に与えられる疑似ランダム信号の値を記憶しておき、フレームが切り替わったときには、記憶してある疑似ランダム信号を読み出して、疑似ランダム信号を更新すること
を特徴とする請求項２１記載の逆エネルギー拡散処理方法。
【請求項２４】
バイト単位の疑似ランダム信号を発生すること
を特徴とする請求項２１記載の逆エネルギー拡散処理方法。
【請求項２５】
エネルギー拡散処理の停止命令に応じて、上記インタリーブメモリから出力されたデータに対して疑似ランダム信号の加算を停止すること
を特徴とする請求項２１記載の逆エネルギー拡散処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、デジタル衛星放送を受信するデジタル衛星放送受信装置、デジタル衛星放送に用いるデインタリーブ方法及び逆エネルギー拡散処理方法に関するものである。
【０００２】
【従来の技術】
デジタル衛星放送のシステム構成
まず、ＢＳ（放送衛星）を用いたデジタル衛星放送の伝送系について説明をする。
【０００３】
図３５に、デジタル衛星放送の送信装置及び受信装置の構成を示す。
【０００４】
日本におけるデジタル衛星放送（以下、ＢＳデジタル放送という。）では、複数のＭＰＥＧ−２システムのトランスポートストリーム（ＴＳ）を多重化して、１つの搬送波に変調して送信することが規定されている。
【０００５】
ＢＳデジタル放送の送信装置１００１は、ＲＳ（Reed-Solomon）符号化部１００２と、フレーム構成部１００３と、エネルギー拡散部１００４と、インタリーバ１００５と、ダミースロット除去部１００６と、畳み込み符号化部１００７と、変調部１００８と、送信部１００９とを備えている。
【０００６】
ＲＳ符号化部１００２は、入力されたトランスポートストリームにＲＳ符号を付加する。フレーム構成部１００３は、ＲＳ符号が付加されたデータからスーパフレームを構成する。このスーパーフレームは、ＢＳデジタル放送規格で予め定められたデータの伝送単位である。エネルギー拡散部１００４は、フレーム構成されたデータに対して疑似ランダム信号を加算して、データのエネルギー拡散処理を行う。インタリーバ１００５は、エネルギー拡散された後のデータを、スーパーフレーム単位でブロックインタリーブを行う。ダミースロット除去部１００６は、インタリーブされたデータから、ダミーデータを除去する。畳み込み符号化部１００７は、ダミーデータが除去されたデータに対して、畳み込み符号化を行う。変調部１００８は、畳み込み符号化されたデータに対してスロット単位で変調処理を行う。送信部１００９は、変調された信号を所定の搬送波に周波数変換して、アンテナから衛星に向け電波を送信する。
【０００７】
また、ＢＳデジタル放送の受信装置１０１１は、受信部１０１２と、復調部１０１３と、ビタビ復号部１０１４と、デインタリーバ１０１５と、逆エネルギー拡散部１０１６と、ＲＳ（Reed-Solomon）復号部１０１７とを備えている。
【０００８】
受信部１０１２は、パラボラアンテナにより検出された電波を受信し、所定のＩＦ周波数に周波数変換をする。復調部１０１３は、ＩＦ信号を復調してデジタルデータに変換する。ビタビ復号部１０１４は、受信したデジタルデータに対してビタビ復号をして、誤り訂正を行う。デインタリーバ１０１５は、ビタビ復号されたデータに対して、送信側で行われたインタリーブと逆のインタリーブ規則により、スーパーフレーム単位でブロックインタリーブを行う。逆エネルギー拡散部１０１６は、送信側で行われたエネルギー拡散処理の逆処理を行う。ＲＳ復号部１０１７は、付加されているＲＳ符号に基づきデータの誤り訂正処理を行う。誤り訂正を行った結果ＭＰＥＧ−２システムのトランスポートストリームが出力される。
【０００９】
ＢＳデジタル放送の伝送データ構造
次に、ＢＳデジタル放送で定められている伝送データのデータ構造について説明する。
【００１０】
ＢＳデジタル放送では、スーパーフレームと呼ばれるデータ構造が定められている。
【００１１】
図３６に、スーパーフレームの構成を示す。
【００１２】
スーパーフレームは、８個のフレーム（フレーム＃０〜フレーム＃７）から構成されている。各フレームは、制御信号部（ＴＭＣＣ及び同期信号）と、主信号部とから構成されている。主信号部は、４８個のスロット（スロット＃０〜スロット＃４７）により構成されている。１スロットは、１８８バイトのＴＳパケットにＲＳパリティが付加し、同期バイトを除去した２０３バイトのデータ系列である。
【００１３】
また、ＢＳデジタル放送では、主信号の変調方式及び畳み込み符号の符号化方式をスロット単位で選択することが可能となっている。具体的には、図３７に示すように、主信号の変調方式としては、８ＰＳＫ（ＴＣ８ＰＳＫ）、ＱＰＳＫ、ＢＰＳＫのいずれかの変調方式を選択することができる。また、内符号の符号化方式としては、８ＰＳＫに対してトレリス符号化、ＱＰＳＫ及びＢＰＳＫ対して畳み込み符号化を選択することができる。トレリス符号化の符号化率は２／３を、ＱＰＳＫに対する畳み込み符号の符号化率は１／２，２／３，３／４，５／６，７／８（２／３〜７／８はパンクチャード符号）を、ＢＰＳＫに対する符号化率は１／２を選択することができる。
【００１４】
ここで、スロット単位で変調方式及び符号化方式（変調／符号化方式）を変更することができるとなると、異なる伝送レートが混在したスーパーフレームの構成となり、各スーパーフレーム毎のクロックを一定にすることができない。そこで、ＢＳデジタル放送では、ダミースロットという概念を用いてスーパーフレーム毎の時間関係が保持されている。
【００１５】
まず、ＢＳデジタル放送では、各変調／符号化方式毎に、最小割当単位というものが定められている。この最小割当単位は、ある変調／符号化方式を用いる場合、その変調／符号化方式に対して割り当てる最低のスロット数である。
【００１６】
具体的に各変調／符号化方式の最小割当単位のスロット数は、図３７に示すようになる。この図３７に示すように、トレリス符号化８ＰＳＫ（ＴＣ８ＰＳＫ）であれば最小割当単位は、１スロットとなる。ＱＰＳＫの符号化率７／８（ＱＰＳＫ７／８）の場合であれば最小割当単位は、８スロットとなる。ＱＰＳＫの符号化率５／６（ＱＰＳＫ５／６）の場合であれば最小割当単位は、６スロットとなる。ＱＰＳＫの符号化率３／４（ＱＰＳＫ３／４）の場合であれば最小割当単位は、４スロットとなる。ＱＰＳＫの符号化率２／３（ＱＰＳＫ２／３）の場合であれば最小割当単位は、３スロットとなる。ＱＰＳＫの符号化率１／２（ＱＰＳＫ１／２）の場合であれば最小割当単位は、２スロットとなる。ＢＰＳＫであれば最小割当単位は、４スロットとなる、といったように定められている。各変調／符号化方式を割り当てる場合には、これらの最小割当単位の倍数単位でスロットが割り当てていかなければならない。
【００１７】
さらに、各最小割当単位内における、実際のデータが含まれる有効スロット数、及び、ダミーデータが含まれるダミースロット数も、各変調方式／符号化方式毎に定められている。
【００１８】
例えば、ＴＣ８ＰＳＫであれば有効スロット数が１（ダミースロットが０）、ＱＰＳＫ７／８の場合であれば有効スロット数が７（ダミースロット数が１）、ＱＰＳＫ５／６の場合であれば有効スロット数が５（ダミースロット数が１）、ＱＰＳＫ３／４の場合であれば有効スロット数が３（ダミースロット数が１）、ＱＰＳＫ２／３の場合であれば有効スロット数が２（ダミースロット数が１）、ＱＰＳＫ１／２の場合であれば有効スロット数が１（ダミースロット数１）、ＢＰＳＫであれば有効スロット数が１（ダミースロット数が３）といったように定められている。
【００１９】
ダミースロットのデータは、送信時に削除され実際には伝送がされない。そのため、最小割当単位毎にみると結果的に同じ伝送レートとなる。
【００２０】
例えば、ＱＰＳＫ３／４はＴＣ８ＰＳＫに対して３／４倍の伝送速度であり、ＱＰＳＫ １／２はＴＣ８ＰＳＫに対して１／２倍の伝送速度である。ＱＰＳＫ３／４の最小割当単位４スロットのうち、３スロットが有効スロットで、１スロットがダミースロットである。そのため、ＴＣ８ＰＳＫの４スロット分の時間を使ってＱＰＳＫ３／４の３スロット分のデータを送ることになる。同様に，ＱＰＳＫ１／２の最小割当単位２スロットのうち、１スロットが有効スロットで、１スロットがダミースロットであるから、ＴＣ８ＰＳＫの２スロット分の時間を使ってＱＰＳＫ１／２の１スロット分のデータを送ることになる。この結果、最小割当単位ごとに一定の速度でデータを送信することができる。
【００２１】
このように各変調／符号化方式毎に最小割当単位を定め、有効スロット数及びダミースロット数をそれぞれ変えていくことによって、全てのフレームのクロックが一致するとももに、入力されるＭＰＥＧ−２のトランスポートストリーム（ＴＳ）と、伝送するスーパーフレームとの同期をとることができる。
【００２２】
また、ＢＳデジタル放送では、フレーム同期信号及びＴＭＣＣ（１９２シンボル）を、６４バイトのＴＭＣＣ情報を８バイトずつ分割して、符号化後の１２８シンボルとＴＭＣＣシンボルとは別の系列で生成される同期シンボルとを、フレームの先頭に配置して送信する。そして、複数の変調／符号化方式を各フレーム内に割り当てる場合には、ＴＣ８ＰＳＫ、ＱＰＳＫ、ＢＰＳＫというように位相数の多い変調方式順にフレームの先頭から配置して送信する。また、ＱＰＳＫで符号化率が異なるスロットを各フレーム内に割り当てる場合には、符号化率の高い順（７／８，５／６，３／４，２／３，１／２といった順）でフレームの先頭から配置して送信する。
【００２３】
また、ＢＳデジタル放送では、ダミースロットが割り当てられる変調／符号化方式（ＱＰＳＫ，ＢＰＳＫ）でデータを送信する場合には、図３８に示すように、最小割当単位内で、有効スロットをまず先頭に配置し、続いてダミースロットを配置するように割り付けを行うものとしている。
【００２４】
ＢＳデジタル放送では、以上のようなスロット配置やスーパーフレーム構成の情報をＴＭＣＣに記述して送信を行う。受信側では、このＴＭＣＣの情報を復号してスーパーフレームの構成を解析し、それぞれの変調方式、符号化方式に対応した復調及び復号を行う。
【００２５】
インタリーバ／デインタリーバ
（一般的なインタリーバ／デインタリーバ）
つぎに、インタリーバ及びデインタリーバについて説明をする。
【００２６】
まず、一般的なインタリーバ／デインタリーバについて説明をする。
【００２７】
デジタル信号を伝送する場合、Bit Error Rate(以下ＢＥＲ)特性を確保するため、通常、送信する信号に対して誤り訂正符号化処理がされる。このような誤り訂正処理の手法として、複数の誤り訂正符号を組み合わせて使う連接符号と呼ばれる手法が知られている。
【００２８】
この連接符号について説明するための概念図を、図３９に示す。
【００２９】
この連接符号は、送信側では、情報系列に対してある符号化方式Ａにより符号化し、さらにそれに対して別の符号化方式Ｂで符号化して送信する。そして受信側では、受信系列を、まず符号化方式Ｂに対応する復号方式で復号し、さらにそれに対して符号化方式Ａに対応する復号方式で復号することで情報系列を得るものである。このような連接符号を用いることにより、いずれか一つの誤り訂正方式を用いる場合よりも、優れたＢＥＲ特性を得ることができる。
【００３０】
例えば、ＢＳデジタル放送の場合、図４０に示すように、送信側では、情報系列に対して、まずReed-Solomon符号化器で符号化し、さらにそれに対して畳み込み符号化器で符号化する。そして受信側では、受信系列を、まず例えばビタビ復号器により畳み込み符号の復号を行い、されにそれに対してReed-Solomon復号器で復号することで情報系列を得る。
【００３１】
ところで、畳み込み符号に対してビタビ復号を行った場合、符号雑音比(以下ＣＮＲ)の低いデータ系列に連続的に誤訂正(以下バースト誤り)が発生しやすい。
【００３２】
そのため、ＢＳデジタル放送では、図４１に示すように、ＲＳ符号化器と畳み込み符号化器との間にインタリーバを設け、さらに、ビタビ復号器とＲＳ復号器との間にデインタリーバを設けている。
【００３３】
ここで、インタリーバとは入力系列をある規則に従って並べ換える装置であり、デインタリーバとはインタリーバとは逆の規則に従って入力系列を並べ換える装置である。このように、インタリーバ及びデインタリーバを設けることによって、図４２に示すように、ビタビ復号を行うことによって発生するバースト誤りを分散させて、誤り訂正能力を向上させている。
【００３４】
一般的なインタリーバ、デインタリーバの論理的な動作を説明する。なお、インタリーバとデインタリーバは、データの並び替えの規則が逆であるだけで、入力系列をある規則に従って並べ替えるという動作は同一であるため、ここでは、インタリーバの動作に関してのみ説明を行う。また、インタリーバは、データの並び替え規則によってブロックインタリーバと畳み込みインタリーバとの大きく２つの種類に分けられるが、ここでは、一定数のデータ群からなるブロックにデータストリームを分割し、そのブロック内でインタリーブ処理が完結されているブロックインタリーバについての動作に関してのみ説明を行う。また、以下、単にインタリーバと称した場合には、ブロックインタリーバのことを表すものとする。
【００３５】
インタリーバは、ｍ行×ｎ列で構成されるデータ配列を用い、このデータ配列に対するデータの書き込み順序と読み出し順序とを換えることによって、データの並べ替えを行うもの、と説明することができる。このｍ×ｎのデータ配列のことを、以下インタリーブブロック或いは単にブロックと呼ぶ。
【００３６】
インタリーバは、まず、図４３（ａ）に示すように、１次元のデータ入力系列を、行方向に順番に配列していき、ｍ×ｎの２次元のデータ配列をメモリ上に構成する。続いて、図４３（ｂ）に示すように、このデータ配列からデータを列方向に順番にメモリ上から読み出していき、１次元のデータ出力系列を送出する。
【００３７】
例えば、２×３のブロックを用いるインタリーバに対して、０，１，２，３，４，５・・・という入力系列を与えると、図４４（ａ）に示すように、行方向に各データがメモリ上に書き込まれる。これに対して、インタリーバは、読み出し時には、図４４（ｂ）に示すように、２×３で構成されるデータ配列から列方向にデータをメモリ上から読み出し、０，３，１，４，２，５・・・という出力系列を送出する。
【００３８】
以上がインタリーバの論理的な動作である。このようなインタリーバを用いることにより、ＢＳデジタル放送では、ビタビ復号等によって生じたバースト誤りを、ランダム誤りに変換することができる。
【００３９】
以上説明したインタリーバは、１ブロック分のデータの出力が全て完了した後に、次のブロックのデータの入力が行われており、ブロック毎に完結した動作を行っている。従って、このインタリーバに対して入出力されるデータは、ブロック単位で間欠的にメモリ上から入出力される。しかしながら、アプリケーションによっては、インタリーバに対して連続的にデータの入出力を行わなければならない場合がある。
【００４０】
このような要求に応えることができるインタリーバとして、いわゆるダブルバッファ方式を採用したインタリーバが知られている。ダブルバッファ方式のインタリーバの回路構成の概略を図４５に示す。
【００４１】
ダブルバッファ方式のインタリーバは、１ブロック分のデータ容量を有する２つのメモリと、これら２つのメモリに対する入出力信号（例えば、書き込みデータ、書き込みアドレス、読み出しデータ、読み出しアドレス、制御信号）を切り替える入力セレクタ及び出力セレクタとを備えて構成される。
【００４２】
入力セレクタ及び出力セレクタは、１ブロック処理するごとに選択するメモリを切り換える。また入力セレクタと出力セレクタは、常に互いに異なるメモリを選択する。例えば、インタリーバに入力された順序で第ｋ番目のブロックを処理する場合、入力セレクタがメモリＡを選択していれば、出力セレクタはメモリＢを選択する。また、第(ｋ＋１)番目のブロックを処理するときには、選択するメモリが切り換えられ、入力セレクタはメモリＢを選択し、出力セレクタはメモリＡを選択する。入力データは、入力セレクタによって選択されたメモリに書き込まれ、出力データは出力セレクタによって選択されたメモリから読み出される。このため、常にいずれか一方のメモリに対してデータが入力され、また、常に他方のメモリからデータが出力される。従って、このダブルバッファ方式のインタリーバでは、連続的にデータの入出力を行いながらインタリーブ処理をすることができる。
【００４３】
（ＢＳデジタル放送のインタリーバ／デインタリーバ）
ところで、ＢＳデジタル放送では、上述したスーパーフレーム単位でブロックインタリーブが行われる。ＢＳデジタル放送のインタリーブ／デインタリーブは、ＴＭＣＣや同期信号を除いた、主信号に対してのみ行われる。
【００４４】
ＢＳデジタル放送における具体的なインタリーバの動作（送信側）について説明をする。
【００４５】
まず、インタリーバは、図４６に示すように、スーパーフレーム内の先頭フレーム（第１フレーム：フレーム＃０）をメモリに書き込む。この先頭フレーム（フレーム＃０）は、スロット＃０、スロット＃１、スロット＃２・・・スロット＃４６、スロット＃４７といったように、スロット番号順にメモリに書き込まれる。続いて、インタリーバは、次のフレーム（フレーム＃１）をメモリに書き込む。この次のフレーム（フレーム＃１）も、同様にスロット＃０からスロット＃４７までメモリに書き込む。インタリーバは、以上の処理を最終フレーム（第８フレーム：フレーム＃７）まで行う。
【００４６】
続いて、インタリーバは、このように書き込んだスーパーフレームに対して、全フレームのｉ番目（スロット＃０〜スロット＃４７）のスロット面を順番に切り出し、各スロット面をインタリーブブロックとしデータをフレーム方向に読み出していく。
【００４７】
まず、インタリーバは、図４７に示すように、第１スロット面（スロット＃０）に対する読み出しを行う。第１スロット面（スロット＃０）に対する読み出しは、第１フレーム（フレーム＃０）の先頭バイトから行われ、続いて、第２フレーム（フレーム＃１）の先頭バイト、第３フレーム（フレーム＃２）の先頭バイト・・・といった順にフレーム方向に１バイトずつ読み出されていき、第８フレーム（フレーム＃７）まで読み出すと第１フレーム（フレーム＃０）に戻り、この第１フレームの２バイト目からフレーム方向に読み出しが繰り返されていく。そして、インタリーバは、この第１スロット面（スロット＃０）に対して、１スロット分のデータ（２０３バイト：図４７中Ａ点）を読み出すと、一旦第１スロット面（スロット＃０）に対する読み出しを停止する。
【００４８】
続いて、インタリーバは、第２スロット面（スロット＃１）に対する読み出しを行う。この第２スロット面（スロット＃１）に対する読み出しも、第１スロット面（スロット＃０）と同様に、フレーム方向に１バイトずつ読み出しを行う。そして、インタリーバは、この第２スロット面（スロット＃１）に対して、１スロット分のデータ（２０３バイト）を読み出すと、一旦第２スロット面（スロット＃１）に対する読み出しを一旦停止する。
【００４９】
インタリーバは、以後、同様に第３スロット面（スロット＃２）から第４８スロット面（スロット＃４７）まで、フレーム方向に１バイトずつ１スロット分のデータ（２０３バイト）の読み出しを行う。
【００５０】
続いて、インタリーバは、第１スロット面（スロット＃０）に戻り、第１スロット面の２０４バイト目（図４７中Ａ点）から、フレーム方向に１バイトずつデータの読み出しを行う。やはり、この場合も、１スロット分のデータ（２０３バイト）を読み出すと、一旦第１スロット面に対する読み出しを停止して、第２スロット面（スロット＃１）に移る。そして、インタリーバは、以後、同様に第３スロット面（スロット＃２）から第４８スロット面（スロット＃４７）まで、フレーム方向に１バイトずつ１スロット分のデータの読み出しを行う。
【００５１】
インタリーバは、以上のように、各スロット面に対してフレーム方向にデータを１バイトずつ読み出していき、１スロット分のデータを読み出すと、次のスロット面に移るといったように処理を繰り返し、最終的に、第８フレーム（フレーム＃７）の最終バイトまでの読み出しを行い、インタリーブ処理を終了する。
【００５２】
すなわち、ＢＳデジタル放送のインタリーバは、各フレームの第ｉスロット（スロット＃（ｉ−１））を切り出して形成されるスロット面を１つのインタリーブブロックとし、このインタリーブブロックを４８個並列に用いたブロックインタリーブを行っている。各インタリーブブロックは、ｍ＝８、ｎ＝２０３のデータ配列となる。
【００５３】
なお、ＢＳデジタル放送では、スーパーフレームにダミースロットが含まれている場合には、このダミースロットも有効スロットと同様に、インタリーブ／デインタリーブが行われる。
【００５４】
【発明が解決しようとする課題】
ところで、ＢＳデジタル放送に、上述したようにダブルバッファ方式のインタリーバを適用すると、１つのインタリーブブロックが１スーパーフレームに対応するため、インタリーブ用のメモリ容量が非常に大きくなる。そのため、インタリーバを集積化した場合、インタリーブ用のメモリにかかるコストが非常に大きくなってしまっていた。
【００５５】
本発明は、このような実情を鑑みてなされたものであり、デインタリーブのために用いられるメモリの容量を削減したデジタル衛星放送受信装置、デインタリーブ方法及び逆エネルギー拡散処理方法を提供することを目的とする。
【００５６】
【課題を解決するための手段】
本発明にかかるデジタル衛星放送受信装置は、符号化／変調方式が割り当てられる最小のスロット単位である最小割当単位内に、有効スロットとともにダミースロットが含まれている場合には、そのダミースロットを有効割当単位の先頭に配置してフレームを再構成する再構成部と、１つのスーパーフレーム分のデータを格納可能なインタリーブメモリと、上記再構成部により再構成されたデータを上記インタリーブメモリに書き込み、上記インタリーブメモリに書き込まれているデータを所定のインタリーブ規則に従い読み出すメモリ制御部とを備え、上記メモリ制御部は、ｋ−１番目以前のスーパーフレームのｉ番目に配置されたデータが格納されていたアドレスに基づき、ｋ番目のインタリーブブロックのｉ番目に読み出されるデータのアドレスを算出し、算出したこのアドレスからｋ番目に出力されるスーパーフレームのｉ番目のデータを読み出すとともに、ｋ＋１番目に入力されるスーパーフレームのｉ番目のデータを算出した上記アドレスに書き込むことを特徴とする。
【００５７】
また、本発明にかかるデジタル衛星放送受信装置は、上記スーパーフレームは、ｍ×ｎ個のデータからなるインタリーブブロックから構成され、上記インタリーブメモリには、０〜（ｍ×ｎ−１）までの論理アドレスが設定され、上記メモリ制御部は、ｋ番目のインタリーブブロックのｉ番目に出力されるデータの論理アドレスを関数ｆk（ｉ）＝ｆ（ｆk-1（i））に基づき算出し、この論理アドレスと同一のアドレスにｋ＋１番目のインタリーブブロックのｉ番目に入力されるデータを書き込むことを特徴とする。
【００５８】
ここで、ｆ（ｉ）＝ｎ×（ｉ％ｍ）＋（ｉ／ｍ）とし、このｆ（ｉ）に対してｆk（ｉ）は以下のような関係を有する。
ｆ2（ｉ）＝ｆ（ｆ（ｉ））
ｆ3（ｉ）＝ｆ（ｆ2（ｉ））
ｆ4（ｉ）＝ｆ（ｆ3（ｉ））
・
・
・
ｆk-1（ｉ）＝ｆ（ｆk-2（ｉ））
ｆk（ｉ）＝ｆ（ｆk-1（i））
また、ｍ，ｎは、１以上の整数であり、（ｘ％ｙ）とはｘをｙで割った余りを表し、（ｘ／ｙ）とは、ｘをｙで割った商の整数部分を表す。
【００５９】
また、本発明にかかるデジタル衛星放送受信装置は、上記インタリーブメモリから出力されたデータに対して疑似ランダム信号を加算することによって、送信側でエネルギー拡散されたデータを復元するエネルギー拡散処理部を備え、上記メモリ制御部は、逆エネルギー拡散処理を行うかどうかを示すエネルギー拡散有効フラグを、上記インタリーブメモリから出力される各スロットに対して付け、上記エネルギー拡散有効フラグは、当該フラグが付けられたスロットをフレーム内で時系列に選択していくと本来のスロット順序となるように各スロットに対して付けられており、エネルギー拡散処理部は、エネルギー拡散有効フラグが付けられたスロットに対してのみ疑似ランダム信号を加算することを特徴とする。
【００６０】
本発明にかかるデインタリーブ方法は、デジタル衛星放送の受信データをデインタリーブする際のデインタリーブ方法であって、符号化／変調方式が割り当てられる最小のスロット単位である最小割当単位内に、有効スロットとともにダミースロットが含まれている場合には、そのダミースロットを有効割当単位の先頭に配置してフレームを再構成し、上記再構成されたデータをインタリーブメモリに書き込み、このインタリーブメモリに書き込まれているデータを所定のインタリーブ規則に従い読み出すときに、ｋ−１番目以前のスーパーフレームのｉ番目に配置されたデータが格納されていたアドレスに基づき、ｋ番目のインタリーブブロックのｉ番目に読み出されるデータのアドレスを算出し、算出したこのアドレスからｋ番目に出力されるスーパーフレームのｉ番目のデータを読み出すとともに、ｋ＋１番目に入力されるスーパーフレームのｉ番目のデータを算出した上記アドレスに書き込むことを特徴とする。
【００６１】
また、本発明にかかるデインタリーブ方法は、上記スーパーフレームは、ｍ×ｎ個のデータからなるインタリーブブロックから構成され、上記インタリーブメモリには、０〜（ｍ×ｎ−１）までの論理アドレスが設定され、上記再構成されたデータをインタリーブメモリに書き込み、このインタリーブメモリに書き込まれているデータを所定のインタリーブ規則に従い読み出すときに、ｋ番目のインタリーブブロックのｉ番目に出力されるデータの論理アドレスを関数ｆk（ｉ）＝ｆ（ｆk-1（i））に基づき算出し、この論理アドレスと同一のアドレスにｋ＋１番目のインタリーブブロックのｉ番目に入力されるデータを書き込むことを特徴とする。
【００６２】
ここで、ｆ（ｉ）＝ｎ×（ｉ％ｍ）＋（ｉ／ｍ）とし、このｆ（ｉ）に対してｆk（ｉ）は以下のような関係を有する。
ｆ2（ｉ）＝ｆ（ｆ（ｉ））
ｆ3（ｉ）＝ｆ（ｆ2（ｉ））
ｆ4（ｉ）＝ｆ（ｆ3（ｉ））
・
・
・
ｆk-1（ｉ）＝ｆ（ｆk-2（ｉ））
ｆk（ｉ）＝ｆ（ｆk-1（i））
また、ｍ，ｎは、１以上の整数であり、（ｘ％ｙ）とはｘをｙで割った余りを表し、（ｘ／ｙ）とは、ｘをｙで割った商の整数部分を表す。
【００６３】
本発明にかかる逆エネルギー拡散処理方法は、デジタル衛星放送の受信データに対して疑似ランダム信号を加算して逆エネルギー拡散を行う逆エネルギー拡散処理方法であって、符号化／変調方式が割り当てられる最小のスロット単位である最小割当単位内に、有効スロットとともにダミースロットが含まれている場合には、そのダミースロットを有効割当単位の先頭に配置してフレームを再構成し、上記再構成されたデータをインタリーブメモリに書き込み、このインタリーブメモリに書き込まれているデータを所定のインタリーブ規則に従い読み出すときに、ｋ−１番目以前のスーパーフレームのｉ番目に配置されたデータが格納されていたアドレスに基づき、ｋ番目のインタリーブブロックのｉ番目に読み出されるデータのアドレスを算出し、算出したこのアドレスからｋ番目に出力されるスーパーフレームのｉ番目のデータを読み出すとともに、ｋ＋１番目に入力されるスーパーフレームのｉ番目のデータを算出した上記アドレスに書き込んでデインタリーブを行い、逆エネルギー拡散処理を行うかどうかを示すエネルギー拡散有効フラグを、上記インタリーブメモリから出力される各スロットに対して付け、エネルギー拡散有効フラグが付けられたスロットに対してのみ疑似ランダム信号を加算して逆エネルギー拡散処理を行うことを特徴とする。
【００６４】
【発明の実施の形態】
以下、本発明の実施の形態として、本発明を適用したデジタル衛星放送（ＢＳデジタル放送）の受信装置について説明を行う。
【００６５】
デインタリーバの動作原理
まず最初に、具体的なＢＳデジタル放送の受信装置（ＢＳ受信装置）の具体例を説明する前に、この受信装置に用いられるデインタリーバの動作原理を、ｍ×ｎのインタリーブブロックに対するインタリーバの動作に対応させて、一般的に説明をする。
【００６６】
まず、ｍ×ｎのブロックインタリーバに対する入力ブロックと出力ブロックとの間にある規則を一般化する。入力ブロックを｛ＤＩ0，ＤＩ1，ＤＩ2，・・・ＤＩi，・・・ＤＩmn-2，ＤＩmn-1｝とし、出力ブロックを｛ＤＯ0，ＤＯ1，ＤＯ2，・・・ＤＯi，・・・ＤＯmn-2，ＤＯmn-1｝とすると、入力ブロックと出力ブロックとの間の規則は、図１に示すように、ＤＯi＝ＤＩf(i)で表される。
【００６７】
ここで、ｉは、任意のデータのブロック内における位置を示す。このｉは、０≦ｉ≦（ｍ×ｎ−１）の範囲の整数値である。なお、ブロック内におけるデータ位置のことを、以下インデックスと呼ぶ。また、ｆ（ｉ）＝ｎ×（ｉ％ｍ）＋（ｉ／ｍ）  である。ｍ，ｎは、それぞれ自然数を示す。ｍは、インタリーブの深さを示す。ａ％ｂは、ａをｂで割った余りを示す。ａ／ｂは、ａをｂで割った商（整数部分）を示す。
【００６８】
本発明の実施の形態のＢＳ受信装置に用いられるデインタリーバは、このように示される入力ブロックと出力ブロックとの関係（すなわち、インタリーブ規則）に基づき以下のような動作を行う。
【００６９】
デインタリーバは、図２に示すような、ｍ×ｎ個のデータが格納可能なインタリーブメモリを有する。インタリーブメモリには、各セルに対して、＃０〜＃（ｎ×ｍ−１）の論理アドレスが付けられている。
【００７０】
このようなデインタリーバには、インデックス順にデータが連続的に入力される。インタリーバは、その入力されたデータをメモリに連続的に格納し、上述したインタリーブ規則に従ってデータを入れ替えながらデータをメモリから連続的に出力していく。
【００７１】
ここで、デインタリーバは、ある任意のデータを読み出す際に、一つの論理アドレスを指定し、指定した論理アドレスからそのデータを読み出す。そのとき、デインタリーバは、読み出した論理アドレスに、同時に、次のデータの書き込みも行う。すなわち、デインタリーバは、同一アドレスを指定することによって、読み出し及び書き込みを同時に行う。そして、このとき書き込まれるデータは、読み出しているブロックの次のブロックのデータであって、読み出しているデータのインデックスと同一のインデックスのデータである。
【００７２】
具体的には、デインタリーバは、図３に示すように、論理アドレスｘに対して、ｋ番目のインタリーブブロックのインデックスｉのデータを読み出すとともに、ｋ＋１番目のインタリーブブロックのインデックスｉのデータを書き込むようにする。ここで、ｋは、自然数であり、インタリーバに入力された（或いは出力される）ブロックの入力番号（或いは出力順番）を示している。
【００７３】
そして、任意のインタリーブブロックの任意のインデックスｉのデータに対する論理アドレスは、以下の式に基づき算出される。
ｆk（ｉ）＝ｆ（ｆk-1（ｉ））
ここで、ｆ（ｉ）は、ｎ×（ｉ％ｍ）＋（ｉ／ｍ）  となる。このｆ（ｉ）は、上述したブロックインタリーバの入出力ブロックの関係を示す際に用いた関数である。また、ｆk（ｉ）は、このｆ（ｉ）に対して以下のような関係を有する。
ｆ2（ｉ）＝ｆ（ｆ（ｉ））
ｆ3（ｉ）＝ｆ（ｆ2（ｉ））
ｆ4（ｉ）＝ｆ（ｆ3（ｉ））
・
・
・
ｆk-1（ｉ）＝ｆ（ｆk-2（ｉ））
ｆk（ｉ）＝ｆ（ｆk-1（i））
【００７４】
以上のように本発明を適用したＢＳ受信装置に用いられるデインタリーバは、入出力ブロックのインタリーブ規則を表す関数ｆ（ｉ）と、過去に求めたインタリーブメモリに対する論理アドレスとに基づき、ｋ番目のブロックのｉ番目に出力すべきデータが格納されている論理アドレスを求める。そして、このデインタリーバは、この論理アドレスに対してアクセスを行い、格納されているｋ番目のブロックのｉ番目に出力すべきデータを読み出すとともに、ｋ＋１番目のブロックのｉ番目に入力されるデータを格納する。
【００７５】
このようなデインタリーバの動作をブロック順に具体的に説明をしていくと以下のようになる。
【００７６】
インタリーブメモリには論理アドレスが＃０〜＃（ｍｎ−１）まで付けられており、初期状態では、各アドレスに有効なデータは存在していないものとする。また、インタリーブブロックのデータ数は、ｍ×ｎである。
【００７７】
最初の１ブロック分のデータはインデックス順に入力される。デインタリーバは、インデックス順に入力されたデータを、インタリーブメモリの論理アドレス順に書き込んでいく。すなわち，ｉ番目の入力データは、論理アドレス＃ｉに書き込まれる。
【００７８】
続いて、デインタリーバは、最初のブロックのデータを読み出しながら、２ブロック目のデータをインタリーブメモリに書き込む動作を行う。最初のブロックのｉ番目に出力すべきデータは、ｆ（ｉ）＝ｎ×（ｉ％ｍ）＋（ｉ／ｍ）番目に入力されたデータである。最初のブロックのｆ（ｉ）＝ｎ×（ｉ％ｍ）＋（ｉ／ｍ）番目に入力されたデータは、論理アドレス＃ｆ（ｉ）に書き込まれている。従って、デインタリーバは、最初のブロックのインデックスｉのデータを論理アドレス＃ｆ（ｉ）から読み出す。また、デインタリーバは、これと同時に２ブロック目のｉ番目に入力されたデータをこの論理アドレス＃ｆ（ｉ）に書き込む。
【００７９】
次に、デインタリーバは、２ブロック目のデータを読み出しながら、３ブロック目のデータをインタリーブメモリに書き込む動作を行う。前の場合と同様に２ブロック目のｉ番目に出力すべきデータは、ｆ（ｉ）＝ｎ×（ｉ％ｍ）＋（ｉ／ｍ）番目に入力されたデータである。ここで、２ブロック目でｉ番目に入力されたデータは、前の動作で論理アドレス＃ｆ（ｉ）に書き込まれている。従って、デインタリーバは、２ブロック目のインデックスｉのデータを論理アドレス＃ｆ（ｆ（ｉ））から読み出す。また、デインタリーバは、これと同時に３ブロック目のｉ番目に入力されたデータをこの論理アドレス＃ｆ（ｆ（ｉ））に書き込む。なお、このｆ（ｆ（ｉ））は、以下ｆ2（ｉ）と表記する。
【００８０】
以下同様に、デインタリーバは、３ブロック目のデータを読み出しながら、４ブロック目のデータをインタリーブメモリに書き込む場合には、３ブロック目のインデックスｉのデータを論理アドレス＃ｆ（ｆ（ｆ（ｉ）））から読み出し、これと同時に４ブロック目のｉ番目に入力されたデータをこの論理アドレス＃ｆ（ｆ（ｆ（ｉ）））に書き込む。なお、このｆ（ｆ（ｆ（ｉ）））は、以下ｆ3（ｉ）と表記する。
【００８１】
そして、一般化して、ｋブロック目のデータを読み出しながら、（ｋ＋１）ブロック目のデータをメモリに書き込む場合には、ｋブロック目のインデックスｉのデータを論理アドレス＃ｆk（ｉ）から読み出し、これと同時に（ｋ＋１）ブロック目のｉ番目に入力されたデータをこの論理アドレス＃ｆk（ｉ）に書き込む。
【００８２】
さらに具体的に、２×３のブロックインタリーブを行うデインタリーバに、０，１，２，３，４，５，６，７，・・・といったデータを入力する場合について図４を用いて説明をする。
【００８３】
インタリーブメモリには、図４（ａ）に示すように、＃０から＃５までの論理アドレスが付けられているものとする。
【００８４】
まず、デインタリーバは、図４（ｂ）に示すように、第１ブロック（０，１，２，３，４，５）を、論理アドレス順に書き込んでいく。
【００８５】
続いて、デインタリーバは、図４（ｃ）に示すように、第１ブロックの読み出し、及び、第２ブロック（６，７，８，９，１０，１１）の書き込みを行う。このとき第１ブロックの読み出し順序は、ｆ（ｉ）＝３×（ｉ％２）＋（ｉ／２）に従うので、インタリーブメモリに対するアクセス順序は、図中点線で示すように、＃０→＃３→＃１→＃４→＃２→＃５といった順序になる。従って、アドレス＃０のデータ１が読み出されるとこのアドレス＃０に対してデータ６が書き込まれ、アドレス＃３のデータ３が読み出されるとこのアドレス＃３に対してデータ７が書き込まれ、アドレス＃１のデータ１が読み出されるとこのアドレス＃１に対してデータ８が書き込まれ、アドレス＃４のデータ４が読み出されるとこのアドレス＃４に対してデータ９が書き込まれ、アドレス＃２のデータ２が読み出されるとこのアドレス＃２に対してデータ１０が書き込まれ、アドレス＃６のデータ５が読み出されるとこのアドレス＃６に対してデータ１１が書き込まれる。
【００８６】
続いて、デインタリーバは、図４（ｄ）に示すように、第２ブロックの読み出し、及び、第３ブロック（１２，１３，１４，１５，１６，１７）の書き込みを行う。このとき第２ブロックの読み出し順序は、ｆ2（ｉ）に従うので、インタリーブメモリに対するアクセス順序は、図中点線で示すように、＃０→＃４→＃３→＃２→＃１→＃５といった順序になる。従って、アドレス＃０のデータ６が読み出されるとこのアドレス＃０に対してデータ１２が書き込まれ、アドレス＃４のデータ９が読み出されるとこのアドレス＃４に対してデータ１３が書き込まれ、アドレス＃３のデータ７が読み出されるとこのアドレス＃３に対してデータ１４が書き込まれ、アドレス＃２のデータ１０が読み出されるとこのアドレス＃２に対してデータ１５が書き込まれ、アドレス＃１のデータ８が読み出されるとこのアドレス＃１に対してデータ１６が書き込まれ、アドレス＃６のデータ１１が読み出されるとこのアドレス＃６に対してデータ１７書き込まれる。
【００８７】
なお、以上用いたｆ（ｉ）及びｆ2（ｉ）の具体的な値を、図５に示す。
【００８８】
以上のように、本発明の実施の形態のＢＳ受信装置に適用されるデインタリーバでは、ｋブロック目のｉ番目のデータの読み出しを行う際に、その読み出しアドレスをｆk（ｉ）に基づき算出するので、１インタリーブブロック分のデータ容量を有するメモリにより、連続的にデータの入出力をしながらデインタリーブを行うことができる。
【００８９】
ＢＳデジタル放送の受信装置でのフレーム構成
また、以上のような１インタリーブブロック分のデータ容量のインタリーブメモリを用いてインタリーブを実現するデインタリーバをＢＳ受信装置にそのまま適用した場合、以下のような問題が生じる。
【００９０】
ＢＳデジタル放送では、ＱＰＳＫやＢＰＳＫといったダミースロットが割り当てられる変調方式を用いる場合には、図３８に示したように、最小割当単位内で、有効スロットをまず先頭に配置し、続いてダミースロットを配置するように割り付けを行うものとしている。しかしながら、このダミースロットはフレームクロックを一定にするために擬似的に挿入しているデータであり実際には伝送されない。そのため、低速の転送レートのスロットが含まれるスーパーフレームから、高速の転送レートのみのスロットから構成されるスーパーフレームへ切り替わった場合などでは、最小割当単位の先頭に有効スロットを配置し、続いてダミースロットを配置するような構成では、上述したような読み出されたアドレスに次のデータの書き込みを行うようなインタリーブ処理に破綻が生じてしまう。例えば、４８スロット全てＱＰＳＫ１／２で構成されるスーパーフレームから４８スロット全てＴＣ８ＰＳＫで構成されるスーパーフレームに切り換わった場合は、有効データのデータ数が２倍となる。そのため、同一のアドレスに読み出しと書き込みを行うようにする上述したデインタリーバでは、ＴＣ８ＰＳＫのみで構成されるスーパーフレームの書き込みが半分しかできなくなってしまう。
【００９１】
従って、本発明の実施の形態のＢＳ受信装置に用いられるデインタリーバでは、受信側において、図６に示すように、最小割当単位毎に、ダミースロットを先に配置して有効スロットを後に配置するようにフレームを再構成したのち、デインタリーブ処理を行っている。
【００９２】
また、ＢＳデジタル放送の受信装置の構成は、デインタリーブ処理を行った後に、逆エネルギー拡散処理が行われる。しかしながら、本発明の実施の形態のデインタリーバによりフレーム構造を再構成しているので、デインタリーバからの出力をそのまま逆エネルギー拡散部に供給すると、出力値が誤ってしまう。
【００９３】
従って、本発明の実施の形態のＢＳ受信装置に用いられるデインタリーバでは、出力する各スロットに対して、エネルギー拡散有効フラグを付けて出力している。このエネルギー拡散有効フラグは、当該フラグが付けられたスロットをフレーム内で時系列に選択していくと本来のスロット順序となるように各スロットに対して付けられている。そして、デインタリーバの後段に設けられた逆エネルギー拡散部が、このフラグが付けられたスロットに対してのみ逆エネルギー拡散をするように処理を行っていく。このことにより、正しい逆エネルギー拡散処理を行うことができるようになる。
【００９４】
具体的な実施の形態
つぎに、本発明の実施の形態のＢＳ受信装置について説明をする。
【００９５】
（受信装置の全体構成）
まず、ＢＳ受信装置の全体構成について、図７を用いて説明する。
【００９６】
ＢＳ受信装置１は、受信部２と、復調部３と、ビタビ復号部４と、デインタリーバ５と、逆エネルギー拡散部６と、ＲＳ（Reed-Solomon）復号部７とを備えている。
【００９７】
受信部２は、パラボラアンテナにより検出された電波を受信し、所定のＩＦ周波数に周波数変換をする。復調部３は、ＩＦ信号を復調してデジタルデータに変換する。ビタビ復号部４は、受信したデジタルデータに対してビタビ復号をして、誤り訂正を行う。デインタリーバ５は、ビタビ復号されたデータに対して、送信側で行われたインタリーブと逆のインタリーブ規則により、スーパーフレーム単位でブロックインタリーブを行う。逆エネルギー拡散部６は、送信側で行われたエネルギー拡散処理の逆処理を行う。ＲＳ復号部７は、付加されているＲＳ符号に基づきデータの誤り訂正処理を行う。誤り訂正を行った結果ＭＰＥＧ−２システムのトランスポートストリームが出力される。
【００９８】
（デインタリーバの構成及び動作）
つぎに、ＢＳ受信装置１に用いられるデインタリーバ５の具体的な構成について説明する。
【００９９】
デインタリーバ５は、図８に示すように、アドレス生成回路１１と、入力バッファ１２と、ダミーデータセレクタ１３と、インタリーブメモリ１４と、ＯＲ回路１５とから構成される。
【０１００】
アドレス生成回路１１は、インタリーブメモリ１４に対する読み書き用アドレス（実アドレス）を発生する。このアドレス生成回路１１では、上述したインタリーブブロックに対するインタリーブ規則を表す関数ｆ（ｉ）と、過去に求めたインタリーブメモリに対する論理アドレスとに基づき、ｋ番目のブロックのｉ番目に出力すべきデータが格納されている読み書き用アドレスを算出している。
【０１０１】
ここで、このデインタリーバ５では、第ｉスロット（スロット＃（ｉ−１））を切り出して形成される８×２０３のブロックを１つのインタリーブブロックとして、送信側で行われたインタリーブ処理と逆のインタリーブ処理を行う。そのため、このデインタリーバ５は、４８個のインタリーブブロックに対して、並列にブロックインタリーブを行うことになる。
【０１０２】
そのため、アドレス生成回路１１では、まず、２組の変数（ｒ，ｓ）で表した２次元のアドレスを算出し、その論理アドレスをインタリーブメモリ１４に対して実際にアクセスするための一次元のアドレスに変換している。ｒは、１つのインタリーブブロック内に連続的に付けられた論理アドレス（０≦ｒ≦２０３−１：整数）であり、ｓは、スロット番号（０≦ｓ≦７）である。以下ｒを、ブロックアドレスと呼び、ｓをスロットアドレスと呼ぶ。また、（ｒ，ｓ）を論理アドレスと呼ぶ。また、２次元の論理アドレスを１次元のアドレス空間に変換する場合には、例えばｒ＋ｓ×４８といったような演算を行えばよい。インタリーブメモリ１４に実際のアクセスを行うための１次元のアドレス（読み書きアドレス）を実アドレスとも呼ぶ。
【０１０３】
また、アドレス生成回路１１は、入力バッファ１２に対して、ＴＭＣＣ読み出し要求及び主信号読み出し要求を発生する。
【０１０４】
入力バッファ１２には、ビタビ復号部４からの入力データが入力される。入力バッファ１２は、入力データを主信号部とＴＭＣＣとを分離し、分離した状態で入力データを一時的に格納する。そして、入力バッファ１２は、アドレス生成回路１１からＴＭＣＣ読み出し要求があると、一時的に格納しているＴＭＣＣをセレクタ１３を介してインタリーブメモリ１４に供給する。また、入力バッファ１２は、アドレス生成回路１１から主信号読み出し要求があると、一時的に格納している主信号をセレクタ１３を介してインタリーブメモリ１４に供給する。入力バッファ１２は、要求されたデータをインタリーブメモリ１４に転送すると、ＡＣＫ信号をアドレス生成回路１１に返信する。
【０１０５】
ダミーデータセレクタ１３は、アドレス生成回路１１からＴＭＣＣ読み出し要求及び主信号読み出し要求のいずれの要求も発生されていないときには、０データをインタリーブメモリ１４に供給し、アドレス生成回路１１からＴＭＣＣ読み出し要求及び主信号読み出し要求のいずれかが発生されているときには、入力バッファ１２から出力されるデータをインタリーブメモリ１３に転送する。
【０１０６】
インタリーブメモリ１４は、アドレス生成回路１１から発生された読み書き用アドレスにより指定されたアドレスに格納されているデータを出力データとして出力するとともに、この読み書きアドレスに指定されたアドレスにセレクタ１３から出力されたデータを格納する。
【０１０７】
ＯＲ回路１５は、ＴＭＣＣ読み出し要求と主信号読み出し要求とのＯＲを取って、セレクタ１３の切り換え動作を制御する。
【０１０８】
このような構成のデインタリーバ５の全体動作を説明する。
【０１０９】
デインタリーバ５は、アドレス生成回路１１の内部で生成するタイミングパルスに基づき動作する。アドレス生成回路１１は、内部で生成したタイミング毎にインタリーブメモリ１４をアクセスするための読み書き用アドレスを生成する。
【０１１０】
それと同時に、アドレス生成回路１１は、ＴＭＣＣ信号をインタリーブメモリ１４に書き込むならば、ＴＭＣＣ読み出し要求を発行し、セレクタ１３を入力バッファ１２の出力をセレクトするように制御する。或いは、主信号(有効スロット)をインタリーブメモリ１４に書き込むならば、主信号読み出し要求を発行し、セレクタ１３が入力バッファ１２の出力をセレクトするように制御する。また、或いは、主信号（有効スロット）及びＴＭＣＣ信号ともに書き込まないならば、すなわち、ダミースロットを書き込むならば、入力バッファ１２には読み出し要求を発行せず、セレクタ１３が０を出力するように制御する。
【０１１１】
また、入力バッファ１２は、読み出し要求を受けると、バッファ内に要求されたデータが存在すれば、ＡＣＫ信号をアドレス生成回路１１にアサートし、アドレス生成回路１１から要求されたデータを出力する。入力バッファ１２は、要求されたデータがバッファ内に存在しなければ、ＡＣＫ信号をアサートせず、データも出力しない。
【０１１２】
アドレス生成回路１１は、読み出し要求を発行して、ＡＣＫ信号がアサートされない場合、そのタイミングではインタリーブメモリ１４から何も出力させないように制御する。そして、アドレス生成回路１１は、次のタイミングで再び同じ動作をする( 同じアドレスを出力し、同じ読み出し要求を発行する。)。
【０１１３】
インタリーブメモリ１４は、ダミースロットを処理している場合又は入力バッファ１２が読み出し要求に対してＡＣＫ信号をアサートした場合には、読み書き用アドレスにより指定されたアドレスに格納されているデータを読み出して出力し、それと同時に出力イネーブル信号を発生する。また、インタリーブメモリ１４は、この読み書きアドレスにより指定されたアドレスに対して、セレクタ１３から出力されたデータを書き込むようにする。
【０１１４】
（アドレス生成回路の構成及び動作）
つぎに、アドレス生成回路１１について、さらに詳細に説明をする。
【０１１５】
アドレス生成回路１１では、インタリーブメモリ１４に対する論理アドレスであるｆk（ｉ）の算出を、ｆk（ｉ）＝ｆk-1（ｆ（ｉ））という関係を利用して行っている。
【０１１６】
具体的には、配列Ａ｛ｆk（ｉ）｛０≦ｉ＜ｍ×ｎ｝｝を記憶するメモリテーブルと、配列Ｂ｛ｆk-1（ｉ）｝を記憶するメモリテーブルと、ｆ（ｉ）を演算する演算回路とを用いて、ｆk（ｉ）を算出する。この２つのメモリテーブルは、０〜（ｍ×ｎ−１）までのアドレスが設定されている。このアドレスは、配列内を構成する各データの配置順序を指定するものである。配列Ａ及び配列Ｂを構成するデータ群は、ｉ｛０≦ｉ＜ｍ×ｎ｝で初期化されている。
【０１１７】
（ｋ）ブロック目のｉ番目のデータに対する論理アドレスを出力する場合、まず、ｆ（ｉ）が算出され、このｆ（ｉ）が配列Ｂを記憶するメモリテーブルのアドレスとして供給され、この配列Ｂから値が読み出される。そして、この配列Ｂから読み出された値が、配列Ａを記憶するメモリテーブルのアドレスｉに書き込まれる。そして、この配列Ａのアドレスｉに格納される値が（ｋ）ブロック目のｉ番目の論理アドレスとなる。続いて、次のブロックに対する処理を行う場合には、配列Ａの値を配列Ｂにそのまま代入して更新すればよい。例えば、配列Ｂを記憶するメモリテーブルと、配列Ａを記憶するメモリテーブルと１ブロック毎に交代すればよい。
【０１１８】
なお、配列Ｂに対するアクセス順序をインデックス順序に従う方が回路規模が簡単になるという観点から、配列Ａの値を配列Ｂにそのまま代入して更新するのではなく、配列Ａ｛ｆk（ｆ-1（ｉ））｝を配列Ｂに代入して更新するようにしてもよい。ｆ-1（ｉ）は、ｆ（ｉ）の逆関数である。
【０１１９】
具体的に、このような演算を行うことができるアドレス生成回路１１の回路構成を図９に示す。
【０１２０】
アドレス生成回路１１は、この図９に示すように、制御部２１と、フラグＤ発生回路２２と、フラグＥ発生回路２３と、インデックスカウンタ２４と、第１のアドレス用テーブル２５と、第２のアドレス用テーブル２６と、ｆ′（ｉ）発生回路２７と、第１のセレクタ２８と、第２のセレクタ２９と、第３のセレクタ３０と、第４のセレクタ３１と、第５のセレクタ３２と、比較回路３３と、論理アドレス／実アドレス変換回路３４とを有している。
【０１２１】
制御部２１は、内部に、タイミング生成回路２１ａと、バイトカウンタ２１ｂと、スロットカウンタ２１ｃと、フレームカウンタ２１ｄと、ＴＭＣＣデコーダ２１ｅと、制御信号発生回路２１ｆとを有している。
【０１２２】
タイミング生成回路２１ａは、アドレス生成回路１１全体の動作クロックとなるタイミングパルスを生成する。
【０１２３】
このタイミングパルスの１周期は、「１スーパフレーム分の時間内でＴＭＣＣ信号と主信号との両者をインタリーブメモリ１４から出力することができる周期」に設定される。例えば、シンボルクロックを４分周したもの等を用いてもよいし、それよりも速いものでも使用可能である。さらに、バースト信号を考慮して、より遅くしたり、ＴＭＣＣ信号と主信号との出力ポートを別にするなどしてさらに遅いタイミングで動作させてもよい。
【０１２４】
バイトカウンタ２１ｂは、タイミング生成回路２１ａにより生成されたタイミングパルスを、１スロット周期（２０３バイト周期）分カウントするカウンタ回路である。このバイトカウンタ２１ｂは、１スロット分（２０３バイト）分のカウントが完了すると、スロットの先頭を示すパルスを発生する。このバイトカウンタ２１ｂは、インタリーブメモリ１４に対して有効スロットの書き込みを行っている場合と、インタリーブメモリ１４に対してダミースロットの書き込みを行っている場合とで、そのカウント動作が異なる。有効スロットの書き込みを行っている場合には、入力バッファ１２からＡＣＫ信号がアサートされればカウンタ値をインクリメントし、ＡＣＫ信号がアサートされなければカウンタ値をインクリメントしないように動作をする。また、ダミースロットの書き込みを行っている場合には、ＡＣＫ信号がアサートされるかされないかに関わらず、カウンタ値をインクリメントするように動作をする。このように動作することにより、バイトカウンタ２１ｂは、１スロット分（２０３バイト）のアドレス発生処理が、確実に完了する毎に発生するパルスを出力することができる。
【０１２５】
スロットカウンタ２１ｃは、バイトカウンタ２１ｂから発生されたパルスを、１フレーム周期（４８スロット）分カウントしするカウンタ回路である。このスロットカウンタ２１ｃによりカウントされたカウント値は、スロット番号を示すこととなる。スロットカウンタ２１は、カウント値をスロットアドレスｓとして論理アドレス／実アドレス変換回路３４に供給する。また、これとともにスロットカウンタ２１ｃは、１フレーム分（４８スロット）のカウントが完了する毎に、フレームの開始位置を示すパルスを発生する。
【０１２６】
フレームカウンタ２１ｄは、スロットカウンタ２１ｃから発生されたパルスを、１スーパーフレーム周期（８フレーム周期）分カウントするカウンタ回路である。このフレームカウンタ２１ｄは、１スーパーフレーム分（８フレーム）のカウントが完了すると、スーパーフレームの開始位置を示すパルスを発生する。
【０１２７】
ＴＭＣＣデコーダ２１ｅは、Reed-Solomon復号されたのちのＴＭＣＣ信号が供給され、現在処理中のスロットが有効スロットであるか、或いは、ダミースロットであるか、或いは、そのスロットの変調／符号化率は何か等のデコード情報を算出する。
【０１２８】
制御信号生成回路２１ｆは、ＴＭＣＣデコーダ２１ｅのデコード情報やシンクコード等に基づき、現在処理中のデータが有効スロットであるか或いはＴＭＣＣ信号であるかを判断し、有効スロットであれば主信号読みだし要求を出力し、ＴＭＣＣ信号であればＴＭＣＣ読み出し要求を出力する。ダミースロットであれば、いずれの要求も出力しない。
【０１２９】
また、制御信号生成回路２１ｆは、ＴＭＣＣデコーダ２１ｅのデコード情報等に基づき、現在出力しているスロットに対するエネルギー拡散有効フラグ（ＥＤＥＮフラグ）を発生する。なお、このＥＤＥＮフラグの発生アルゴリズムは、その詳細を後述する。
【０１３０】
フラグＤ発生回路２２は、０又は１を示すフラグであるフラグＤを発生する回路である。フラグＤ発生回路２２には、スタート信号が供給される。スタート信号は、アドレス生成回路１１に対する動作開始或いはアドレス生成回路１１を再起動する場合に発行される命令であり、外部のシステムコントローラ等から発行される。フラグＤ発生回路２２は、このスタート信号によりフラグＤが０に初期化され、リセット後の最初の１スーパーフレーム分のデータの処理が完了した時点（すなわち、リセット信号の後、フレームカウンタ２１ｄからのスーパーフレームの開始位置を示すパルスを２回受けた時点）で、フラグＤが１にセットされる。そして、以後、処理が停止するまで、このフラグＤを１に保持したままにしておく。
【０１３１】
フラグＥ発生回路２３は、０又は１を示すフラグであるフラグＥを発生する回路である。フラグＥ発生回路２３には、スタート信号が供給される。フラグＥ発生回路２６は、このスタート信号によりフラグＥが０に初期化される。また、フラグＥ発生回路２６は、フレームカウンタ２１ｄからのスーパーフレームの開始位置を示すパルスを受け取る毎に、フラグＥの値を反転させる。
【０１３２】
インデックスカウンタ２４は、インデックス値ｉを発生するインクリメントカウンタ２４ａと、インデックス値ｉを一時的に記憶するラッチ２４ｂとを備えている。このインデックスカウンタ２４は、以下の（１）〜（５）の規則に従い動作する。
【０１３３】
（１）スタート信号が与えられるとインクリメントカウンタ２４ａ及びラッチ２４ｂがともに０にリセットされる。（２）フレームカウンタ２１ｄからのスーパーフレームの開始位置を示すパルスの発生タイミングで、インクリメントカウンタ２４ａ及びラッチ２４ｂがともに０にリセットされる。（３）フレームカウンタ２１ｄからパルスが発生されずスロットカウンタ２１ｃからパルスが発生されたタイミング（スーパーフレーム開始位置ではないフレーム開始位置）で、インクリメントカウンタ２４ａが保持しているインデックス値ｉを、ラッチ２４ｂにセットする。（４）スロットカウンタ２１ｃからパルスが発生されずバイトカウンタ２１ｂからパルスが発生されたタイミング（フレーム開始位置ではないスロットの先頭）で、ラッチ２４ｂに格納されているインデックス値ｉを、インクリメントカウンタ２４ａにセットする。（５）フレームの開始位置ではなく且つスロットの先頭ではなければ、バイトカウンタ２１ａによるカウントタイミングに応じて、インクリメントカウンタ２４ａが保持しているインデックス値ｉを１インクリメントする。
【０１３４】
インデックスカウンタ２４は、このような動作を行うことによって、８×２０３のインタリーブブロックが４８スロット分あるＢＳデジタル放送のデインタリーブ処理に対応したインデックス値ｉを、ｆ′（ｉ）発生回路２７及び第１及び第２のアドレス用テーブル２５、２６に供給することができる。
【０１３５】
第１のアドレス用テーブル２５及び第２のアドレス用テーブル２６は、１インタリーブブロック分のブロックアドレスのデータを格納することができるテーブルである。第１のアドレス用テーブル２５及び第２のアドレス用テーブル２６には、内部セルに、それぞれ＃０から＃（８×２０３−１）までのテーブルアドレスが設定されている。第１のアドレス用テーブル２５及び第２のアドレス用テーブル２６に対して、このアドレスを指定することにより、そのテーブルアドレスに対してのデータの書き込み及び読み出しをすることができる。また、第１のアドレス用テーブル２５及び第２のアドレス用テーブル２６には、アウトプット端子ＯＤＴ、インプット端子ＩＤＴ、アドレス端子ＡＤＲ、ライトイネーブル端子ＷＥが設けられている。ライトイネーブル端子ＷＥは、書き込みを許可する端子である。
【０１３６】
ｆ′（ｉ）発生回路２７は、インデックスカウンタ２４から出力されたインデックス値ｉが入力される。ｆ′（ｉ）は、入力されたインデックスｉに対して、上述したｆ′（ｉ）を演算する回路である。具体的な回路構成は、図１０に示すように、入力されたインデックスｉに対するｍの剰余を演算する剰余回路４１と、剰余回路４１の出力にｎを乗算する乗算回路４２と、入力されたインデックスｉをｍで割ったときの商（整数値）を演算する除算回路４３と、乗算回路４２の出力と除算回路４３の出力とを加算する加算回路４４とから構成される。なお、ここで、ｍは８、ｎは２０３である。
【０１３７】
第１のセレクタ２８は、フラグＥに応じて、第１のアドレス用テーブル２５からの出力と第２のアドレス用テーブル２６からの出力とを切り換えて、いずれか一方の出力データを選択して第２のセレクタ２９に出力する。第１のセレクタ２８は、フラグＥが０であれば第１のアドレス用テーブル２５を選択し、フラグＥが１であれば第２のアドレス用テーブル２６を選択する。
【０１３８】
第２のセレクタ２９は、フラグＤに応じて、インデックスカウンタ２４からの出力と第１のセレクタ２８からの出力とを切り換えて、いずれか一方の出力データを選択して論理アドレス／実アドレス変換回路３４に出力する。第２のセレクタ２９は、フラグＤが０であればインデックスカウンタ２４を選択し、フラグＤが１であれば第１のセレクタ２８を選択する。
【０１３９】
第３のセレクタ３０は、フラグＥに応じて、ｆ′（ｉ）発生回路２７の出力とインクリメントカウンタ２３の出力とを切り換えて、いずれか一方からの出力データを選択して、第１のアドレス用テーブル２５のアドレス端子に出力する。第３のセレクタ３０は、フラグＥが０であればインデックスカウンタ２４を選択し、フラグＥが１であればｆ′（ｉ）発生回路２７を選択する。
【０１４０】
第４のセレクタ３１は、フラグＥに応じて、ｆ′（ｉ）発生回路２７の出力とインクリメントカウンタ２３の出力とを切り換えて、いずれか一方からの出力データを選択して、第２のアドレス用テーブル２６のアドレス端子に出力する。第４のセレクタ３１は、フラグＥが０であればｆ′（ｉ）発生回路２７を選択し、フラグＥが１であればインデックスカウンタ２４を選択する。
【０１４１】
第５のセレクタ３２は、フラグＥに応じて、第１のアドレス用テーブル２５又は第２のアドレス用テーブル２６を切り換えて、いずれか一方のインプット端子ＩＤＴに、第２のセレクタ２９からの出力を入力する。第５のセレクタ３２は、フラグＥが０の場合には第２のアドレス用テーブル２６を選択し、フラグＥが１の場合には第１のアドレス用テーブル２５を選択する。
【０１４２】
比較回路３３は、スロットカウンタ２１ｃの値を参照し、このスロットカウンタ２１ｃの値が４７となったときにライトイネーブル信号を第１のアドレス用テーブル２５及び第２のアドレス用テーブル２６に供給する。すなわち、比較回路３３は、最終スロットとなったときに、第１のアドレス用テーブル２５及び第２のアドレス用テーブル２６に対する書き込みを許可する回路である。
【０１４３】
論理アドレス／実アドレス変換回路３４は、スロットカウンタ２１ｅの値をスロットアドレスｓとし、第２のセレクタ２９から出力される値をブロックアドレスｒとしたときの論理アドレス（ｒ，ｓ）を、インタリーブメモリ１４に供給する１次元の実アドレスに変換する。
【０１４４】
次に、このような構成のアドレス生成回路１１のブロックアドレスの出力動作及びアドレス用テーブルの更新動作について説明をする。
【０１４５】
フラグＤが０の場合（最初のスーパーフレームに対する処理の場合）、第２のセレクタ２９がインデックスカウンタ２４を選択し、インデックスカウンタ２４から出力されるインデックス値ｉがそのままブロックアドレスとして出力される。
【０１４６】
フラグＤが１で且つフラグＥが０の場合（２番目以降のスーパーフレームに対する処理の場合）、第３のセレクタ３０がインデックスカウンタ２４を選択して、インデックスカウンタ２４から出力されるインデックス値ｉが第１のアドレス用テーブル２５のテーブルアドレスとして与えられる。そして、第１のセレクタ２８が第１のアドレス用テーブル２５を選択し、インデックスカウンタ２４から与えられたテーブルアドレス（インデックス値ｉ）により指定されたアドレスに格納されているデータが、ブロックアドレスとして出力される。
【０１４７】
フラグＤが１で且つフラグＥが１の場合（２番目以降のスーパーフレームに対する処理の場合）、第４のセレクタ３１がインデックスカウンタ２４を選択して、インデックスカウンタ２４から出力されるインデックス値ｉが第２のアドレス用テーブル２６のテーブルアドレスとして与えられる。そして、第１のセレクタ２８が第２のアドレス用テーブル２６を選択し、インデックスカウンタ２４から与えられたテーブルアドレス（インデックス値ｉ）により指定されたアドレスに格納されているデータが、ブロックアドレスとして出力される。
【０１４８】
また、フラグＥが０の場合、第５のセレクタ３２が第２のアドレス用テーブル２６を選択し、第２のセレクタ２９から出力されるブロックアドレスが第２のアドレス用テーブル２６に格納される。すなわち、第１のアドレス用テーブル２５から出力されたブロックアドレス値が、第２のアドレス用テーブル２６に格納される。このとき、入力データされるデータの格納アドレスは、第４のセレクタ３１がｆ′（ｉ）発生回路２７を選択することから、このｆ′（ｉ）発生回路２７から出力される値により指定される。
【０１４９】
フラグＥが１の場合、第５のセレクタ３２が第１のアドレス用テーブル２５を選択し、第２のセレクタ２９から出力されるブロックアドレスが第１のアドレス用テーブル２５に格納される。すなわち、第２のアドレス用テーブル２６から出力されたブロックアドレス値が、第１のアドレス用テーブル２５に格納される。このとき、入力データされるデータの格納アドレスは、第３のセレクタ３０がｆ′（ｉ）発生回路２７を選択することから、このｆ′（ｉ）発生回路２７から出力される値により指定される。
【０１５０】
なお、第１のアドレス用テーブル２５及び第２のアドレス用テーブル２６に対する書き込みは、比較回路３３から出力されるライトイネーブル信号により制御される。ライトイネーブル信号は、スロットカウンタ２１ｃのカウント値が４７となったときに与えられ、このときに各アドレス用テーブルに対する書き込みが許可される。すなわち、スロット＃０〜スロット＃４６に対する処理を行っている場合には、第１のアドレス用テーブル２５及び第２のアドレス用テーブル２６に格納されているデータの更新がされず、スロット＃４７に対する処理を行っている場合のみに、第１のアドレス用テーブル２５及び第２のアドレス用テーブル２６に格納されているデータの更新がされる。
【０１５１】
このような動作が行われることによりアドレス生成回路１１では、配列Ａ｛ｆk（ｉ）｛０≦ｉ＜ｍ×ｎ｝｝を記憶するアドレス用テーブルと、配列Ｂ｛ｆk-1（ｉ）｝を記憶するアドレス用テーブルと、関数ｆ′（ｉ）を発生する演算回路を用意して、ｆk-1（ｆ（ｉ））を演算し、ｋ番目のインタリーブブロックのｉ番目に出力されるデータの論理アドレスであるｆk（ｉ）を算出することができる。
【０１５２】
つぎに、アドレス生成回路１１の動作を図１１及び図１２のタイミングチャートを用いて説明をする。
【０１５３】
図１１は、バイトカウンタ２１ｂ及びスロットカウンタ２１ｃのカウント値の変遷について説明するためのタイミングチャートである。
【０１５４】
図１１中、（ａ）はスタート信号、（ｂ）はタイミング生成回路２１ａから出力されるタイミングパルス、（ｃ）は主信号読み出し要求、（ｄ）はＡＣＫ信号、（ｅ）はバイトカウンタのカウント値、（ｆ）はスロットカウンタのカウント値をそれぞれ示している。
【０１５５】
アドレス生成回路１１は、スタート信号によって動作を開始し、タイミングパルスを基準に処理を行っていく。タイミングパルスが１つ発生すると、制御信号生成回路２１ｆは、現在処理中のデータがＴＭＣＣデータか主信号かダミーデータかを調べ、主信号を処理中ならば、入力バッファ１２に対して主信号読み出し要求を発行する。すると、入力バッファ１２は、有効データを格納しているかどうかに応じてＡＣＫ信号を返信する。入力バッファ１２がＡＣＫ信号を返信してきた場合には、バイトカウンタ２１ｂは、カウンタ値をインクリメントし、ＡＣＫ信号が返信されてこなかった場合にはバイトカウンタ２１ｂは、カウンタ値をインクリメントしない。
【０１５６】
一方、ダミースロットを処理中ならば、バイトカウンタ２１ｂは、入力バッファ１２に対して読み出し要求が返信されてこなくても、タイミングパルスに従ってカウンタ値をインクリメントしていく。
【０１５７】
図１２は、インデックスカウンタ２４のインデックス値の更新タイミング及びアドレス用テーブルの更新タイミングについて説明するためのタイミングチャートである。
【０１５８】
図１２中、（ａ）はバイトカウンタ２１ｂのカウント値、（ｂ）はスロットカウンタ２１ｃのカウント値、（ｃ）はフレームカウンタ２１ｄのカウント値、（ｄ）はインデックスカウンタ２４のインクリメントカウンタ２４ａから出力されるインデックス値、（ｅ）はインデックスカウンタ２４のラッチ２４ｂに格納されているレジスタ値、（ｆ）はアドレス用テーブルに対するライトイネーブル信号、（ｇ）は出力されるブロックアドレスをそれぞれ示している。なお、この図１２では簡単のため全てＡＣＫ信号が返信され、バイトカウンタ２１ｂのカウント値が一定タイミングでインクリメントされている場合について示しているが、ＡＣＫ信号が返信がされない場合も、信号の変化間隔が均等にならないだけで、動作は本質的に変わらない。
【０１５９】
インデックスカウンタ２４は、スロットカウンタ２１ｃのカウント値が変化するタイミングで、ラッチ２４ｂに格納されているレジスタ値を、インクリメントカウンタ２４ａに取り込み、インデックス値を更新する。また、インデックスカウンタ２４は、バイトカウンタ２１ｂのカウント値が変化するタイミングで、インデックス値をインクリメントする。また、インデックスカウンタ２４は、フレームカウンタ２１ｄのカウント値が変化するタイミングで、インデックス値をラッチ２４ｂにコピーする。
【０１６０】
このようなタイミングで動作させることで、１フレーム（４８スロット）に対して全て同じパターンでアクセスできる。
【０１６１】
また、アドレス用テーブル２５，２６の書き換えは、スロット＃４７の処理中に行なう。この書き換えは、これはライトイネーブル信号が発行されているタイミングに、ブロックアドレスがアドレス用テーブル２５，２６に入力されることにより、更新される。
【０１６２】
（入力バッファの構成及び動作）
つぎに、入力バッファ１２について、図１３を用いてさらに詳細に説明をする。
【０１６３】
入力バッファ１２は、制御回路５１と、主信号用バッファ５２と、ＴＭＣＣ用バッファ５３と、入力セレクタ５４と、出力セレクタ５５とを有している。
【０１６４】
制御回路５１には、入力データが有効なデータであるかを示す入力データ有効ビットと、主信号読み出し要求と、ＴＭＣＣ読み出し要求が入力される。制御回路５１は、入力セレクタ５４及び出力セレクタ５５の切り換え制御を行う。
【０１６５】
主信号用バッファ５２は、ＦＩＦＯ（ファーストインファーストアウト）メモリからなり、主信号を格納するメモリである。
【０１６６】
ＴＭＣＣ用バッファ５３は、ＦＩＦＯ（ファーストインファーストアウト）メモリからなり、ＴＭＣＣ信号を格納するメモリである。
【０１６７】
入力セレクタ５４は、制御回路５１の制御に応じて主信号用バッファ５２とＴＭＣＣ用バッファ５３とを切り換えて、いずれか一方のバッファに入力データを書き込む。
【０１６８】
出力セレクタ５５は、制御回路５１の制御に応じて主信号用バッファ５２とＴＭＣＣ用バッファ５３とを切り換えて、いずれか一方のバッファから出力データを読み出す。
【０１６９】
制御回路５１は、入力されたデータが主信号であるかＴＭＣＣ信号であるかを、例えばＳｙｎｃ信号等を参照して判断する。制御回路５１は、入力データが主信号であれば入力セレクタ５４に０を与え、主信号用バッファ５２に格納する。制御回路５１は、入力データがＴＭＣＣ信号であれば入力セレクタ５４に１を与え、ＴＭＣＣ信号をＴＭＣＣバッファ５３に格納する。また、制御回路５１は、入力データ有効ビットを参照して、入力データが例えばバースト信号といった必要のないデータであれば、入力セレクタ５４を機能させず、入力データをいずれのバッファにも格納しない。
【０１７０】
また、制御回路５１は、主信号読み出し要求があると、出力セレクタ５５に０を与え、主信号用バッファ５２に格納されている主信号を出力する。制御回路５１は、ＴＭＣＣ読み出し要求があると、出力セレクタ５５に１を与え、ＴＭＣＣ用バッファ５３に格納されているＴＭＣＣ信号を出力する。また、制御回路５１は、主信号読み出し要求及びＴＭＣＣ信号読み出し要求のいずれの要求もない場合には、出力セレクタ５５を機能させず、データの出力をしない。なお、ＴＭＣＣ読み出し要求及び主信号読み出し要求のいずれの要求も発生されていないときには、後段のダミーデータセレクタ１３が、０データをインタリーブメモリ１４に供給している。
【０１７１】
ここで、このような入力バッファ１２に与えられる主信号読み出し要求の発生タイミングは、図６に示したように、最小割当単位内にダミースロットが含まれている場合には、最小割当単位内の初めにダミースロットを配置し、後ろ部分に有効スロットを配置するように与えられる。この入力バッファ２１は、このように有効スロットをインタリーブメモリ１３に供給するタイミングを遅らせ、本デインタリーバ５の処理に適するようにフレームを再構成している。
【０１７２】
具体的に、ＱＰＳＫ７／８の場合には、図１４に示すように、最小割当単位の最初の１つのスロットにダミースロット配置し、続く７つのスロットに有効スロットを配置させる。ＱＰＳＫ５／６の場合には、図１５に示すように、最小割当単位の最初の１つのスロットにダミースロット配置し、続く５つのスロットに有効スロットを配置させる。ＱＰＳＫ３／４の場合には、図１６に示すように、最小割当単位の最初の１つのスロットにダミースロット配置し、続く３つのスロットに有効スロットを配置させる。ＱＰＳＫ２／３の場合には、図１７に示すように、最小割当単位の最初の１つのスロットにダミースロット配置し、続く２つのスロットに有効スロットを配置させる。ＱＰＳＫ１／２の場合には、図１８に示すように、最小割当単位の最初の１つのスロットにダミースロット配置し、続く１つのスロットに有効スロットを配置させる。ＢＰＳＫ１／２の場合には、図１９に示すように、最小割当単位の最初の３つのスロットにダミースロット配置し、続く１つのスロットに有効スロットを配置させる。
【０１７３】
なお、このように主信号を遅延させるため、主信号用バッファ５２は、ＱＰＳＫ７／８の有効スロットを７／８スロット分遅延させる必要があるため、最低７／８スロット分の容量が必要となる。
【０１７４】
以上のように入力バッファ１２では、最小割当単位毎に、ダミースロットを先に配置して有効スロットを後に配置するようにフレームを再構成しているので、読み出されたアドレスに次のデータの書き込みを行うようなインタリーブ処理を行っても破綻を生じさせないようにすることができる。
【０１７５】
（逆エネルギー拡散部）
つぎに、本発明の実施の形態のＢＳ受信装置に用いられる逆エネルギー拡散部６の具体的な構成について説明する。
【０１７６】
ＢＳデジタル放送では、連続する同一符号の期間が長くならないように、伝送データに対してエネルギー拡散処理が行われる。このエネルギー拡散処理は、１５次Ｍ系列（Ｘ15＋Ｘ14＋１）の疑似ランダム信号を加算することにより行われている。この１５次Ｍ系列の疑似ランダム信号は、スーパーフレームの先頭で初期化される。その初期値は、低次から「１００１０１０１０００００００」となっている。この疑似ランダム信号は、ダミースロットを含んだスーパーフレーム構成の各データに対して、１ビットずつ加算されていく。そのため、受信側では、逆エネルギー拡散部を設け、エネルギー拡散がされた伝送データに対して、送信側で加算した疑似ランダム信号と同一の信号を各ビットに加算して、元の伝送データを復号している。
【０１７７】
ところが、本発明の実施の形態のＢＳ受信装置では、この逆エネルギー拡散処理を行う前のデインタリーブ処理時において、最小割当単位毎に、ダミースロットが有効スロットの前に配置されるように、フレームを再構成している。再構成されたままのフレーム構成の状態で逆エネルギー拡散部にデータを入力すると、有効スロットが本来のスロット位置と異なる位置に配置されていることから、そのスロットに加算される疑似ランダム信号の値が送信時と異なってしまう。
【０１７８】
そのため、本発明の実施の形態のＢＳ受信装置に適用されるデインタリーバ５では、出力する各スロットに対して、逆エネルギー拡散処理を行うかどうかを示すエネルギー拡散有効フラグを付けている。このエネルギー拡散有効フラグは、当該フラグが付けられたスロットをフレーム内で時系列に選択していくと本来のスロット順序となるように付けられている。そして、逆エネルギー拡散部６は、エネルギー拡散有効フラグが付けられていないスロットが入力された場合には、疑似ランダム信号の更新を停止し、エネルギー拡散有効フラグが付けられているスロットに対してのみ疑似ランダム信号を加算するようにしている。
【０１７９】
このことにより、送信時に加算された値と同一の値を、有効スロットに対して加算することができ、デインタリーバ５でフレームを再構成していても、正しくデータの復元をすることができる。
【０１８０】
以上のような処理を行うことができる逆エネルギー拡散部６の構成例を図２０に示す。
【０１８１】
逆エネルギー拡散部６は、１５段シフトレジスタ６１と、第１の加算器６２と、ＮＯＲ回路６３と、ＡＮＤ回路６４と、第２の加算器６５と、カウンタ６６と、初期値テーブル６７とを有している。
【０１８２】
１５段シフトレジスタ６１は、１ビットのデータを格納するレジスタが１５段シリアルに接続された構成となっている。この１５段シフトレジスト６１は、入力データ１ビット分に対応したクロックが入力され、１クロックサイクル毎に、下位ビットから上位ビットにデータを１ビットずつ転送していく。最下位ビットのレジスタには、第１の加算器６２の出力がフィードバックして入力される。
【０１８３】
また、１５段シフトレジスタ６１の各レジスタには、イネーブル端子が設けられている。このイネーブル端子には、上述したデインタリーバ５から発行されるエネルギー拡散有効フラグ（ＥＤＥＮフラグ）が入力される。各レジスタは、このＥＤＥＮフラグがｈｉｇｈとされているときには、データ転送動作を行う。一方、このエネルギー拡散フラグがｌｏｗとされているときには、クロックが入力されても、データ転送動作を行わず、現在のデータをホールドしたままとしている。
【０１８４】
また、１５段シフトレジスタ６１は、１５ビットの初期値データが初期値テーブル６７から供給されると、現在保持している値をクリアして、供給された初期値データを新たに各レジスタにロードする。初期値データは、フレームの開始タイミングを示すフレームスタート信号のタイミングでロードされる。
【０１８５】
第１の加算器６２は、１５段シフトレジスタの１４ビット目及び１５ビット目のデータを加算して、加算結果の下位１ビットを出力する。この第１の加算器６２から出力される信号が、１５次Ｍ系列（Ｘ15＋Ｘ14＋１）の疑似ランダム信号となる。
【０１８６】
ＮＯＲ回路６３には、入力データがＴＭＣＣ信号であることを示すＴＭＣＣ識別信号と、入力データがＢＳデジタル放送の信号ではなく例えばデジタル衛星通信用の信号であることを示すＣＳ信号が入力される。ＮＯＲ回路６３は、ＴＭＣＣ識別信号或いはＣＳ信号が入力されるとｌｏｗとなり、いずれの信号も入力されていないとｈｉｇｈとなるイネーブル信号を出力する。
【０１８７】
ＡＮＤ回路６４は、ＮＯＲ回路６３からのイネーブル信号がｈｉｇｈのときに、疑似ランダム信号を第２の加算器６５に供給し、ＮＯＲ回路６３からのイネーブル信号がｌｏｗのときに、疑似ランダム信号の供給を停止してｌｏｗを第２の加算器６５に供給する。
【０１８８】
第２の加算器６５は、ＡＮＤ回路６４から出力された疑似ランダム信号と入力データとを１ビット毎に加算し、加算結果の下位１ビットを出力する。また、ＴＭＣＣ識別信号或いはＣＳ信号が入力されているときには、ＡＮＤ回路６４からはｌｏｗデータが出力され続けるので、入力データをそのまま出力する。
【０１８９】
カウンタ６６は、フレームスタート信号が供給されると、内部レジスタに格納している値を１インクリメントするものである。また、このカウンタ６６は、スーパーフレームスタート信号が供給されると、内部レジスタの値を０にリセットする。このため、このカウンタ６６から出力される値は、入力データのフレーム番号と対応することとなる。このカウンタ６６からの出力は、初期値テーブル６７にアドレスとして供給される。
【０１９０】
初期値テーブル６７は、各フレームの先頭における疑似ランダム信号の初期値データ（１５ビット）を格納している。スーパーフレーム内にはフレーム数は８個あるため、初期値テーブル６７は、８個の初期値データを格納している。初期値テーブル６７は、０〜７までのフレーム番号をアドレスとして、各フレームの初期値データを格納している。カウンタ６６からアドレスが与えられると、そのアドレスで格納されている初期値データを１５段シフトレジスタ６１に出力する。
【０１９１】
つぎに、ＥＤＥＮフラグの発生アルゴリズムについて説明する。
【０１９２】
このＥＤＥＮフラグは、前段のデインタリーバ５から出力される。デインタリーバ５は、出力するスロットに割り当てられた変調／符号化方式を判断しながら図２１に示すステートマシーンに従い、ＥＤＥＮフラグを発行していく。
【０１９３】
このステートマシーンは、フレームスタートタイミングで状態Ｓ０からの動作を開始し、１スロット進む毎に１つずつ状態が遷移していくものである。
【０１９４】
まず、状態Ｓ０では、出力するスロットの変調方式に８ＰＳＫが割り当てられているかどうかを判断し、フレームの最初のスロットが８ＰＳＫであれば状態Ｓ１に遷移し、８ＰＳＫでなければ状態Ｓ２に遷移する。
【０１９５】
状態Ｓ１では、エネルギー拡散フラグを発行し、次のスロットに８ＰＳＫが割り当てられているかどうかを判断する。次のスロットに８ＰＳＫが割り当てられていれば、再度この状態Ｓ１を繰り返す。次のスロットに８ＰＳＫが割り当てられていなければ、状態Ｓ２に遷移する。
【０１９６】
状態Ｓ２では、次のスロットにＱＰＳＫが割り当てられているか、ＢＰＳＫが割り当てられているかを判断する。次のスロットにＱＰＳＫが割れ当てられいれば、状態Ｓ３に遷移する。次のスロットにＢＰＳＫが割り当てられていれば、状態Ｓ４に遷移する。
【０１９７】
状態Ｓ３では、エネルギー拡散フラグを発行し、次のスロットにＱＰＳＫが割り当てられいるか或いはＢＰＳＫが割り当てられているかを判断する。次のスロットにＱＰＳＫが割り当てられていれば、状態Ｓ３を繰り返し、次のスロットにＢＰＳＫが割り当てられていれば状態Ｓ４に進む。
【０１９８】
状態Ｓ４では、何ら処理を行わず、状態Ｓ５に遷移する。
【０１９９】
状態Ｓ５では、何ら処理を行わず、状態Ｓ６に遷移する。
【０２００】
状態Ｓ６では、ＥＤＥＮフラグを発行し、状態Ｓ６を繰り返す。
【０２０１】
そして、このようなステートマシーンでは、フレームスタート信号が与えられると必ず状態Ｓ０に戻ることとなる。
【０２０２】
以上のようなステートマシーンに従いＥＤＥＮフラグを発行することによって、デインタリーバ５では、例えば図２に示すように、当該フラグが付けられたスロットをフレーム内で時系列に選択していくと本来のスロット順序となるようにフラグを付けていくことができる。
【０２０３】
次に、逆エネルギー拡散部６の動作について説明する。
【０２０４】
例えば、図２２（ａ）に示すようなフレームが逆エネルギー拡散部６に入力されてくるとする。この場合、まず、第１スロットの先頭ビットがフレームスタートのタイミングであるので、１５段シフトレジスタ６１に、第１スロット（＃０）の先頭ビットが入力されたタイミングで、フレーム初期値がロードされる。続いて、変調／符号化方式がＴＣ８ＰＳＫである第１スロット（＃０）から第４６スロット（＃４５）までは、ＥＤＥＮフラグがｈｉｇｈとされており、上記初期値を１ビットずつ更新しながら連続して疑似ランダム信号を生成していく。続く第４７スロット（＃４６）では、ＥＤＥＮフラグがｌｏｗとされている。そのため、１５段シフトレジスタ６１は、疑似ランダム信号の更新を停止して、値をホールドする。続いて第４８スロット（＃４７）では、ＥＤＥＮフラグがｈｉｇｈとされている。そのため、１５段シフトレジスタ６１は、疑似ランダム信号の更新を再開して、ホールドしていた値から１ビットずつ更新しながら、フレームの最後まで疑似ランダム信号を発生する。そして、この第４８スロット（＃４７）に対する疑似ランダム信号の発生を終えると、次のフレームに対する処理が開始するため、新たな初期値が１５段シフトレジスタ６１にロードされることとなる。
【０２０５】
この図２２（ａ）に示したフレームは、第４７スロット（＃４６）のダミースロットに対しての疑似ランダム信号の更新がされないことにより、再構成されることによって第４８スロット（＃４７）に配置されたＱＰＳＫ１／２のデータが、スロット順序で４７番目に与えられるはずの値とされた疑似ランダム信号が加算されることとなる。従って、この再構成されることによって、第４８スロット（＃４７）に配置されたＱＰＳＫ１／２のデータは、正しく逆エネルギー拡散処理がされることとなる。
【０２０６】
同様に、図２２（ｂ）に示すようなフレーム場合は、第３９スロット（＃３８）のダミースロットで疑似ランダム信号の更新がされないことにより、再構成されることによって第４０スロット（＃３９）以降の配置された全ての有効スロットに対して、本来の値の疑似ランダム信号が加算され、正しく逆エネルギー拡散処理がされることとなる。
【０２０７】
また、同様に、図２２（ｃ）に示すようなフレームの場合は、第３６スロット（＃３５），第４１スロット（＃４０），第４２スロット（＃４１）の各ダミースロットで疑似ランダム信号の更新がされないことにより、再構成されることによって第３７スロット（＃３６）以降の配置された全ての有効スロットに対して、本来の値の疑似ランダム信号が加算され、正しく逆エネルギー拡散処理がされることとなる。
【０２０８】
なお、最終スロットに対する処理を終えた後は、初期値データが新たに１５段シフトレジスタ６１にロードされるので、次のフレームに対しても正しい値の疑似ランダム信号が与えられ、正しく逆エネルギー拡散処理がされることとなる。また、ダミースロットに対しては、正しい疑似ランダム信号が加算されているわけではないが、結局後段のＲＳ復号部でダミースロットが除去されるデータであるので、どのような値となっていても、出力されるＭＰＥＧ−ＴＳに影響は与えない。
【０２０９】
以上のように逆エネルギー拡散部６では、デインタリーブ処理時において、最小割当単位毎に、ダミースロットが有効スロットの前に配置されるように、フレームを再構成していたとしても、各スロットに与える疑似ランダム信号の値を送信時と同一とすることができ、正しく逆エネルギー拡散処理を行うことができる。
【０２１０】
（バイト単位で演算を行う逆エネルギー拡散部）
また、逆エネルギー拡散部６では、以上のような図２０に示した回路構成に代えて、図２３に示すような入力データ１バイト（８ビット）分のデータタイミングを示すクロックに基づき動作する回路を用いることができる。
【０２１１】
この図２３に示す逆エネルギー拡散部６は、８ビット単位の疑似ランダム信号｛ｒ［０］〜ｒ［７］｝を発生する演算回路７１と、８ビットの各入力データ線に設けられた加算器７２ａ〜７２ｈとを有している。この逆エネルギー拡散部６では、入力データ｛ＤＴ［０］〜ＤＴ［７］｝が、１バイト（８ビット）単位で入力される。そして、この１バイト単位の疑似ランダム信号｛ｒ［０］〜ｒ［７］｝が、８値同時に入力データに加算される。カウンタ６６及び初期値テーブル６７の機能は、図２０に示した回路と同様である。
【０２１２】
疑似ランダム信号を演算する演算回路７１の構成は、図２４に示すようになる。
【０２１３】
演算回路７１は、第１〜第１５のレジスタ７３ａ〜７３ｏと、第１〜第８の加算回路７４ａ〜７４ｈとから構成される。
【０２１４】
各レジスタ７３ａ〜７３ｏには、第１のレジスタ７３ａ側に１５次Ｍ系列（Ｘ15＋Ｘ14＋１）の低次のビットが格納され、第１５のレジスタ７３ｏ側に１５次Ｍ系列の高次のビットが格納される。各レジスタ７３ａ〜７３ｏは、１バイトのデータタイミングを示すクロックに基づき動作をする。また、各レジスタ７３ａ〜７３ｏには、イネーブル端子にＥＤＥＮフラグが入力される。各レジスタは、ＥＤＥＮフラグがｈｉｇｈとされているときには、データ転送動作を行う。一方、このエネルギー拡散フラグがｌｏｗとされているときには、クロックが入力されても、データ転送動作を行わず、現在のデータをホールドしたままとしている。
【０２１５】
第１の加算回路７４ａは、第１４のレジスタ７３ｎ及び第１５のレジスタ７３ｏの出力を加算する。第１の加算回路７４ａにより加算されたデータは、その演算結果の下位１ビットが第８のレジスタ７３ｈに格納される。
【０２１６】
第２の加算回路７４ｂは、第１３のレジスタ７３ｍ及び第１４のレジスタ７３ｎの出力を加算する。第２の加算回路７４ｂにより加算されたデータは、その演算結果の下位１ビットが第７のレジスタ７４ｇに格納される。
【０２１７】
第３の加算回路７４ｃは、第１２のレジスタ７３ｌ及び第１３のレジスタ７３ｍの出力を加算する。第３の加算回路７４ｃにより加算されたデータは、その演算結果の下位１ビットが第６のレジスタ７４ｆに格納される。
【０２１８】
第４の加算回路７４ｄは、第１１のレジスタ７３ｋ及び第１２のレジスタ７３ｌの出力を加算する。第４の加算回路７４ｄにより加算されたデータは、その演算結果の下位１ビットが第５のレジスタ７４ｅに格納される。
【０２１９】
第５の加算回路７４ｅは、第１０のレジスタ７３ｊ及び第１１のレジスタ７３ｋの出力を加算する。第５の加算回路７４ｅにより加算されたデータは、その演算結果の下位１ビットが第４のレジスタ７３ｄに格納される。
【０２２０】
第６の加算回路７４ｆは、第９のレジスタ７３ｉ及び第１０のレジスタ７３ｊの出力を加算する。第６の加算回路７４ｆにより加算されたデータは、その演算結果の下位１ビットが第３のレジスタ７４ｃに格納される。
【０２２１】
第７の加算回路７４ｇは、第８のレジスタ７３ｈ及び第９のレジスタ７３ｉの出力を加算する。第７の加算回路７４ｇにより加算されたデータは、その演算結果の下位１ビットが第２のレジスタ７４ｂに格納される。
【０２２２】
第８の加算回路７４ｈは、第７のレジスタ７３ｇ及び第８のレジスタ７３ｈの出力を加算する。第８の加算回路７４ｈにより加算されたデータは、その演算結果の下位１ビットが第１のレジスタ７４ａに格納される。
【０２２３】
さらに、第１の加算回路７４ａは、入力データの最下位ビット（ＬＳＢ）のＤＴ［０］に加算される疑似ランダム信号ｒ［０］を出力する。このｒ［０］は、第８のレジスタ７３ｈに格納される。
【０２２４】
第１のレジスタ７３ａは、入力データの最下位から２ビット目のＤＴ［１］に加算される疑似ランダム信号ｒ［１］を出力する。そして、このｒ［１］は、第９のレジスタ７３ｉに格納される。
【０２２５】
第２のレジスタ７３ｂは、入力データの最下位から３ビット目のＤＴ［２］に加算される疑似ランダム信号ｒ［２］を出力する。そして、このｒ［２］は、第１０のレジスタ７３ｊに格納される。
【０２２６】
第３のレジスタ７３ｃは、入力データの最下位から４ビット目のＤＴ［３］に加算される疑似ランダム信号ｒ［３］を出力する。そして、このｒ［３］は、第１１のレジスタ７３ｋに格納される。
【０２２７】
第４のレジスタ７３ｄは、入力データの最下位から５ビット目のＤＴ［４］に加算される疑似ランダム信号ｒ［４］を出力する。そして、このｒ［４］は、第１２のレジスタ７３ｌに格納される。
【０２２８】
第５のレジスタ７３ｅは、入力データの最下位から６ビット目のＤＴ［５］に加算される疑似ランダム信号ｒ［５］を出力する。そして、このｒ［５］は、第１３のレジスタ７３ｍに格納される。
【０２２９】
第６のレジスタ７３ｆは、入力データの最下位から７ビット目のＤＴ［６］に加算される疑似ランダム信号ｒ［６］を出力する。そして、このｒ［６］は、第１４のレジスタ７３ｎに格納される。
【０２３０】
第７のレジスタ７３ｇは、入力データの最上位ビット（ＭＳＢ）のＤＴ［７］に加算される疑似ランダム信号ｒ［７］を出力する。そして、このｒ［７］は、第１５のレジスタ７３ｏに格納される。
【０２３１】
以上のような構成により、演算回路７１は、バイト単位で動作をすることができる。
【０２３２】
なお、このようなバイト単位で演算を行う逆エネルギー拡散部では、８値同時に疑似ランダム信号を演算するため、各フレームの先頭でロードされる初期値が、１バイト（８ビット）分更新された値とされている。具体的にその値は、図２５に示すような値となる。
【０２３３】
このようなバイト単位で動作を行う逆エネルギー拡散部によれば、動作クロックの周波数を１／８にすることができ、そのため応答速度が遅い素子を用いて回路を構成することができ、コストを安くすることができる。
【０２３４】
アドレス生成回路の変形例
つぎに、上述したデインタリーバ５内のアドレス生成回路１１の変形例について説明する。なお、以下の説明する第１から第３の変形例の説明において、図９に示したアドレス生成回路１１に用いられている同一の構成要素には、図面に同一の符号を付け、その詳細な説明を省略する。
【０２３５】
（第１の変形例）
第１の変形例では、インタリーブメモリ１４に対する論理アドレスであるｆk（ｉ）の算出を、ｆk（ｉ）＝ｆ（ｆk-1（ｉ））という関係を利用して行っている。
【０２３６】
具体的には、配列Ｃ｛ｆk-1（ｉ）  ｛０≦ｉ＜ｍ×ｎ｝｝を記憶するメモリテーブルと、ｆ（ｉ）を演算する演算回路とを用いて、ｆk（ｉ）を算出する。このメモリテーブルは、０〜（ｍ×ｎ−１）までのアドレスが設定されている。このアドレスは、配列内を構成する各データの配置順序を指定するものである。配列Ａ及び配列Ｂを構成するデータ群は、ｉ｛０≦ｉ＜ｍ×ｎ｝で初期化されている。
【０２３７】
ｋブロック目のｉ番目のデータに対する論理アドレスを出力する場合、インデックスｉが配列Ｃを記憶するメモリテーブルのアドレスとして供給され、この配列Ｃから値が読み出される。そして、読み出された値が演算回路に供給されｆ（ｆk-1（ｉ））が算出される。この演算回路により算出された値が論理アドレスとして出力される。そして、この演算回路により算出された値が、メモリテーブルのアドレスｉに格納され、次のブロックの処理に用いられる。
【０２３８】
このような演算を行うことができる第１の変形例のアドレス生成回路８０を図２６に示す。
【０２３９】
アドレス生成回路８０は、この図２６に示すように、制御部２１と、フラグＤ発生回路２２と、インデックスカウンタ２４と、アドレス用テーブル８１と、ｆ（ｉ）発生回路８２と、第２のセレクタ２９と、比較回路３３と、論理アドレス／実アドレス変換回路３４とを有している。
【０２４０】
制御部２１は、内部に、タイミング生成回路２１ａと、バイトカウンタ２１ｂと、スロットカウンタ２１ｃと、フレームカウンタ２１ｄと、ＴＭＣＣデコーダ２１ｅと、制御信号発生回路２１ｆとを有している。
【０２４１】
アドレス用テーブル８１は、１インタリーブブロック分のブロックアドレスのデータを格納することができるテーブルである。アドレス用テーブル８１には、内部セルに、それぞれ＃０から＃（８×２０３−１）までのテーブルアドレスが設定されており、このアドレスを指定することにより、所定のテーブルアドレスに対してのデータの書き込み及び読み出しをすることができる。また、アドレス用テーブル８１には、アウトプット端子ＯＤＴ、インプット端子ＩＤＴ、アドレス端子ＡＤＲ、ライトイネーブル端子ＷＥが設けられている。インプット端子ＩＤＴには、インデックスカウンタ２４からのインデックス値ｉが入力される。インプット端子ＩＤＴには、ｆ（ｉ）発生回路８２から出力される値が入力される。アウトプット端子ＯＤＴは、第２のセレクタ２９に接続される。
【０２４２】
ｆ（ｉ）発生回路８２は、インデックスカウンタ２４から出力されたインデックス値ｉに対して、上述したｆ（ｉ）を演算する回路である。具体的な回路構成は、図２７に示すように、入力されたインデックスｉに対するｎの剰余を演算する剰余回路８３と、剰余回路８３の出力にｍを乗算する乗算回路８４と、入力されたインデックスｉをｍで割ったときの商（整数値）を演算する除算回路８５と、乗算回路８４の出力と除算回路８５の出力とを加算する加算回路８６とから構成される。なお、ここで、ｍは８、ｎは２０３である。
【０２４３】
第２のセレクタ２９は、フラグＤに応じて、インデックスカウンタ２４からの出力とアドレス用テーブル８１からの出力とを切り換えて、いずれか一方の出力データを選択して論理アドレス／実アドレス変換回路３４に出力する。第２のセレクタ２９は、フラグＤが０であればインデックスカウンタ２４を選択し、フラグＤが１であればアドレス用テーブル８１を選択する。
【０２４４】
比較回路３３は、スロットカウンタ２１ｃの値を参照し、このスロットカウンタ２１ｃの値が４７となったときにライトイネーブル信号をアドレス用テーブル８１に供給する。すなわち、比較回路３３は、最終スロットとなったときに、アドレス用テーブル８１に対する書き込みを許可する回路である。
【０２４５】
次に、このような構成の第１の変形例のアドレス生成回路８０のブロックアドレスの出力動作及びアドレス用テーブルの更新動作について説明をする。
【０２４６】
フラグＤが０の場合（最初のスーパーフレームに対する処理の場合）、第２のセレクタ２９がインデックスカウンタ２４を選択し、インデックスカウンタ２４から出力されるインデックス値ｉがそのままブロックアドレスとして出力される。インデックスカウンタ２４から与えられたテーブルアドレス（インデックス値ｉ）により指定されたアドレスに、ｆ（ｉ）発生回路８２から出力される値が格納されていく。
【０２４７】
また、フラグＤが０の場合（２番目以降のスーパーフレームに対する処理の場合）、第２のセレクタ２９がアドレス用テーブル８１を選択する。そして、インデックスカウンタ２４から与えられたテーブルアドレス（インデックス値ｉ）により指定されたアドレスに格納されているデータが、ブロックアドレスとして出力される。それとともに、データが出力されるテーブルアドレスにｆ（ｉ）発生回路８２から出力される値が格納されていく。
【０２４８】
なお、アドレス用テーブル８１に対する書き込みは、比較回路３３から出力されるライトイネーブル信号により制御される。ライトイネーブル信号は、スロットカウンタ２１ｃのカウント値が４７となったときに与えられ、このときに各アドレス用テーブルに対する書き込みが許可される。すなわち、スロット＃０〜スロット＃４６に対する処理を行っている場合には、第１のアドレス用テーブル２５及び第２のアドレス用テーブル２６に格納されているデータの更新がされず、スロット＃４７に対する処理を行っている場合のみに、第１のアドレス用テーブル２５及び第２のアドレス用テーブル２６に格納されているデータの更新がされる。
【０２４９】
以上のような動作が行われることにより第１の変形例のアドレス生成回路８０では、メモリ用テーブル８１に配列Ｃ｛ｆk-1（ｉ）｝を記憶させ、ｋブロック目のｉ番目のデータの処理をする場合、この配列Ｃを論理アドレスとして出力していくとともに、この配列Ｃをｆ（Ｃ｛ｆk-1（ｉ）｝）で更新していくようにすることができる。
【０２５０】
つぎに、第１の変形例のアドレス生成回路８０の動作を図２８のタイミングチャートを用いて説明をする。
【０２５１】
図２８は、インデックスカウンタ２４のインデックス値の更新タイミング及びアドレス用テーブルの更新タイミングについて説明するためのタイミングチャートである。
【０２５２】
図２８中、（ａ）はバイトカウンタ２１ｂのカウント値、（ｂ）はスロットカウンタ２１ｃのカウント値、（ｃ）はフレームカウンタ２１ｄのカウント値、（ｄ）はインデックスカウンタ２４のインクリメントカウンタ２４ａから出力されるインデックス値、（ｅ）はインデックスカウンタ２４のラッチ２４ｂに格納されているレジスタ値、（ｆ）はアドレス用テーブルに対するライトイネーブル信号、（ｇ）は出力されるブロックアドレスをそれぞれ示している。
【０２５３】
インデックスカウンタ２４は、スロットカウンタ２１ｃのカウント値が変化するタイミングで、ラッチ２４ｂに格納されているレジスタ値を、インクリメントカウンタ２４ａに取り込み、インデックス値を更新する。また、インデックスカウンタ２４は、バイトカウンタ２１ｂのカウント値が変化するタイミングで、インデックス値をインクリメントする。また、インデックスカウンタ２４は、フレームカウンタ２１ｄのカウント値が変化するタイミングで、インデックス値をラッチ２４ｂにコピーする。
【０２５４】
このようなタイミングで動作させることで、１フレーム（４８スロット）に対して全て同じパターンでアクセスできる。
【０２５５】
また、アドレス用テーブル８１の書き換えは、スロット＃４７の処理中に行う。この書き換えは、これはライトイネーブル信号が発行されているタイミングに、ブロックアドレスがアドレス用テーブル８１に入力されることにより、更新される。
【０２５６】
（第２の変形例）
第２の変形例では、ｆk（ｉ）とｆk（ｉ−１）との間にある“ｆk（ｉ）＝ｇ（ｆk（ｉ−１）＋ｆk（１）”という関係を利用して、インタリーブメモリ１４に対する論理アドレスであるｆk（ｉ）の算出を行っている。ここで、ｇ（ｉ）＝ｉ％（ｍ・ｎ）＋ｉ（ｍ・ｎ）  である。また、ｆk（０）＝０である。
【０２５７】
具体的には、ｆk（ｉ−１）の値を格納するアドレスレジスタ（ｃｕｒ）と、ｆk（１）を格納するオフセットレジスタ（ｏｆｆｓｅｔ）と、ｇ（ｉ）を演算する回路と、ｆ（ｉ）を演算する回路とを用いて、ｆk（ｉ）の算出を行う。その動作アルゴリズムは、以下のようになる。
【０２５８】
ｉｆ（初期状態）  ｔｈｅｎ
ｃｕｒ←０；
ｏｆｆｓｅｔ←１
ｅｌｓｅ  ｉｆ（ブロックの先頭）  ｔｈｅｎ
ｃｕｒ←０；
ｏｆｆｓｅｔ←ｆ（ｏｆｆｓｅｔ）
ｅｌｓｅ  ｉｆ（データが入力）  ｔｈｅｎ
ｃｕｒ←ｇ（ｃｕｒ＋ｏｆｆｓｅｔ）
なお、Ｙ←Ｘは、Ｙレジスタに、Ｘレジスタの値を代入することを示している。
【０２５９】
さらに、ＢＳデジタル放送では、第ｉスロット（スロット＃（ｉ−１））を切り出して形成される８×２０３のブロックを１つのインタリーブブロックとし、４８個のインタリーブブロックに対して、並列にブロックインタリーブを行うことになる。そのため、ＢＳデジタル受信装置に適用されるデインタリーバでは、同じパターンをブロックアドレスとして繰り返し利用するので、このことに対処するため、さらにベースレジスタ（ｂａｓｅ）を用意して、論理アドレスの演算を行っている。このようなベースレジスタを用いたＢＳデジタル受信装置に適用される場合の動作アルゴリズムは、以下のようになる。
【０２６０】
ｉｆ（リセット）ｔｈｅｎ
ｏｆｆｓｅｔ←２０３；
ｃｕｒ←０；
ｂａｓｅ←０；
ｅｌｓｅ  ｉｆ（スーパーフレームの先頭）ｔｈｅｎ
ｏｆｆｓｅｔ←ｆ（ｏｆｆｓｅｔ）；
ｃｕｒ←０；
ｂａｓｅ←０；
ｅｌｓｅ  ｉｆ（フレームの先頭）ｔｈｅｎ
ｂａｓｅ←ｇ（ｃｕｒ＋ｏｆｆｓｅｔ）；
ｃｕｒ←ｇ（ｃｕｒ＋ｏｆｆｓｅｔ）；
ｅｌｓｅ  ｉｆ（スロットの先頭）ｔｈｅｎ
ｃｕｒ←ｂａｓｅ；
ｅｌｓｅ  ｉｆ（有効なデータが入力）ｔｈｅｎ
ｃｕｒ←ｇ（ｃｕｒ＋ｏｆｆｓｅｔ）；
なお、リセット時においてｏｆｆｓｅｔレジスタの値を２０３としているのは、リセットの最初のスーパーフレームの処理時にｏｆｆｓｅｔレジスタの値を１とするためである。すなわち、１＝ｆ（２０３）であるため、２０３に設定している。
【０２６１】
具体的に、このようなアルゴリズムを実現できる第２の変形例のアドレス生成回路９０を図２９に示す。
【０２６２】
アドレス生成回路９０は、この図２９に示すように、制御部２１と、ベースレジスタ９１と、アドレスレジスタ９２と、オフセットレジスタ９３と、加算回路９４と、ｇ（ｉ）発生回路９５と、ｆ（ｉ）発生回路９６と、第１のセレクタ９７と、第２のセレクタ９８と、第３のセレクタ９９と、論理アドレス／実アドレス変換回路３４とを有している。
【０２６３】
ベースレジスタ９１には、入力端子Ｄ、出力端子Ｑ、イネーブル端子ＥＮ、リセット端子ＲＳＴが設けられている。ベースレジスタ９１は、入力端子Ｄに入力されたデータを保持して、その保持しているデータを出力端子Ｑから出力する。入力データは、第１のセレクタ９７から供給される。出力データは、第２のセレクタ９８に供給される。また、ベースレジスタ９１は、制御部２１からイネーブル信号が供給されているときに、入力データを受け付けて内部メモリに格納する。
【０２６４】
アドレスレジスタ９２には、入力端子Ｄ、出力端子Ｑ、イネーブル端子ＥＮ、リセット端子ＲＳＴが設けられている。アドレスレジスタ９２は、タイミング生成回路２１ｅにより生成されたタイミングクロックに基づき動作をし、入力端子Ｄに入力されたデータを１クロック分保持して、その保持しているデータを出力端子Ｑから出力する。入力データは、第２のセレクタ９８から供給される。出力データは、ブロックアドレスとして論理アドレス／実アドレス変換回路３４及び加算回路９４に供給される。また、アドレスレジスタ９２は、制御部２１からイネーブル信号が供給されているときに、入力データを受け付けて内部メモリに格納する。
【０２６５】
オフセットレジスタ９３には、入力端子Ｄ、出力端子Ｑ、イネーブル端子ＥＮ、リセット端子ＲＳＴが設けられている。オフセットレジスタ９３は、タイミング生成回路２１ｅにより生成されたタイミングクロックに基づき動作をし、入力端子Ｄに入力されたデータを１クロック分保持して、その保持しているデータを出力端子Ｑから出力する。入力データは、第３のセレクタ９９から供給される。出力データは、加算回路９４及びｆ（ｉ）発生回路９６に供給される。また、オフセットレジスタ９３は、制御部２１からイネーブル信号が供給されているときに、入力データを受け付けて内部メモリに格納する。
【０２６６】
加算回路９４は、アドレスレジスタ９２の出力とオフセットレジスタ９３の出力とを加算する。
【０２６７】
ｇ（ｉ）発生回路９５は、加算回路９４の加算結果ｉに対して、上述したｇ（ｉ）＝ｉ％（ｍ・ｎ）＋ｉ（ｍ・ｎ）を演算する回路である。具体的な回路構成は、図３０に示すように、入力された加算値ｉに対する（ｍ・ｍ）の剰余を演算する剰余回路１０１と、入力された加算値ｉを（ｎ・ｍ）で割ったときの商（整数値）を演算する除算回路１０２と、剰余回路１０１の出力と除算回路１０２の出力とを加算する加算回路１０３とから構成される。なお、ここで、ｍは８、ｎは２０３であり、（ｍ・ｎ）は１６２４である。このｇ（ｉ）発生回路９５により演算された値は、第１のセレクタ９１及び第２のセレクタ９８に供給される。
【０２６８】
ｆ（ｉ）発生回路９６は、オフセットカウンタ９３から出力された値ｉに対して、上述したｆ（ｉ）を演算する回路である。具体的な回路構成は、図２７に示した回路構成と同一である。このｆ（ｉ）発生回路９６により演算された値は、第３のセレクタ９９に供給される。
【０２６９】
第１のセレクタ９７には、値０と、ｇ（ｉ）発生回路９４からの出力値とが入力される。第１のセレクタ９７は、制御部２１の制御に応じて、値０又はｇ（ｉ）発生回路９５からの出力値のいずれか一方を、ベースレジスタ９１に対する入力データとして供給する。
【０２７０】
第２のセレクタ９８には、ベースセレクタ９１の出力値と、値０と、ｇ（ｉ）発生回路９５からの出力値とが入力される。第２のセレクタ９８は、制御部２１の制御に応じて、ベースセレクタ９１の出力値、値０、又はｇ（ｉ）発生回路９５からの出力値のいずれか一つを、アドレスレジスタ９２の入力データとして供給する。
【０２７１】
第３のセレクタ９９には、値１と、ｆ（ｉ）発生回路９６の出力値とが入力される。第３のセレクタ９９は、制御部２１の制御に応じて、値１又はｆ（ｉ）発生回路９６の出力値のいずれか一方を、オフセットレジスタ９３の入力データとして供給する。
【０２７２】
以下、各レジスタの動作について説明をする。
【０２７３】
ベースレジスタ９１は、以下のように動作を行う。
（１）リセット信号が供給されると、内部に格納している値を必ず０にクリア
（２）スーパーフレームの先頭タイミングで、内部に格納している値を０にクリア
（３）スーパーフレームの先頭以外のフレームの先頭のタイミングで、ｇ（ｉ）発生回路９４からの出力値が入力され、内部に格納している値を更新
（４）上記以外の場合は、データを保持し続ける
【０２７４】
アドレスレジスタ９２は、以下のように動作をする。
（１）リセット信号が供給されると、内部に格納している値を必ず０にクリア
（２）スーパーフレームの先頭タイミングで、内部に格納している値を０にクリア
（３）スーパーフレームの先頭以外のフレームの先頭のタイミングで、ｇ（ｉ）発生回路９４からの出力値が入力され、内部に格納している値を更新
（４）フレームの先頭以外のスロットの先頭のタイミングで、ベースレジスタ９１の出力値が入力され、内部に格納されている値を更新
（５）バイトカウンタ２１ｂがカウントされたタイミング（有効なデータがインタリーブメモリ１４に対して入力されたタイミング）で、ｇ（ｉ）発生回路９４からの出力値が入力され、内部に格納している値を更新
オフセットレジスタ９３は、以下のように動作をする。
（１）リセット信号が供給されると、内部に格納している値を１にセットする
（２）スーパーフレームの先頭タイミングで、ｆ（ｉ）発生回路９６からの出力値が入力され、内部に格納している値を更新
【０２７５】
図３１に、この第２の変形例のアドレス生成回路９０の動作を示すタイミングチャートを示す。
【０２７６】
（ａ）はリセット信号を示している。（ｂ）はスーパーフレームの開始パルスを示している。（ｃ）はフレームの開始パルスを示している。（ｄ）はスロットの先頭位置のパルスを示している。（ｅ）はインタリーブメモリ１４に対して有効なデータが入力されたタイミングを示すフラグを示している。（ｆ）はアドレスカウンタ９２のカウント値を示している。（ｇ）はベースカウンタのカウント値を示している。（ｈ）はオフセットカウンタのカウント値を示している。
【０２７７】
以上のような動作を行うことによって第２の変形例のアドレス生成回路９０では、ｆk（ｉ−１）の値を格納するアドレスレジスタ（ｃｕｒ）と、ｆk（１）を格納するオフセットレジスタ（ｏｆｆｓｅｔ）と、ｇ（ｉ）を演算する回路と、ｆ（ｉ）を演算する回路と用いて、インタリーブメモリ１４に対する論理アドレスｆk（ｉ）の算出を行うことができる。
【０２７８】
（第３の変形例）
第３の変形例は、発生する論理アドレスの値を、一定のブロック周期毎にリセットするリセット機能を設けたアドレス生成回路である。
【０２７９】
図９に示したアドレス生成回路１１、図２６に示した第１の変形例のアドレス生成回路８０、及び、図３１に示した第２の変形例のアドレス生成回路９０では、動作開始時後の最初のインタリーブロック（最初のスーパーフレーム）をインタリーブメモリ１４に書き込む場合、インデックスｉをそのまま論理アドレスとして出力している。すなわち、論理アドレスの初期値としてｉを与えている。ここで、各アドレス生成回路は、ｋ番目のインタリーブブロックに対する論理アドレスとして、ｆk（ｉ）を出力するが、このｆk（ｉ）は、一定の周期性を有している。すなわち、ｆk（ｉ）＝ｉとなる場合が周期的に現れる。この第３の変形例は、処理を行ったインタリーブブロック（スーパーフレーム）の数をカウントし、そのカウント値が一定の値となったときに、強制的に論理アドレスを初期値にリセットする。このように一定の周期毎に強制的に発生する論理アドレスを初期値にリセットすることによって、例えば、信号処理を行っている最中に何らかの原因でエラーが発生し、正確な論理アドレスが算出できなくなった場合であっても、そのエラー伝搬がその周期以上は続かないようにすることができる。
【０２８０】
関数ｆk（ｉ）が周期性を持つことの証明の概要を示す。
【０２８１】
まず、関数ｆk（ｉ）は、次の２つの性質を持つ。
（１）ｆk（ｉ）＝ｆk（ｊ）  (ｉ≠ｊ)となるｉ、ｊ、ｋは存在しない。
【０２８２】
存在するとインタリーブ処理においてデータを書き潰してしまうことから明らかである。
（２）ｆk（ｉ）＝ｆl（ｉ）となるｋ、ｌ、ｉが存在する。
ｆｋ、ｆｌの定義域、値域は有限のため、必ずｆk（ｉ）＝ｆl（ｉ）となるｋ、ｌ、ｉが存在する。
【０２８３】
（１）により０≦ｉ，ｊ＜ｍ×ｎをnodeとして、ｊ←ｉ（ｊ＝ｆk（ｉ）が成立するとき ）を有向branchとする有向graphにおいて、合流するpathが存在しないことが言える。
また（２）により先の有向graphにおける有向branchは必ず有限個の閉loopを形成することが分かる。
【０２８４】
以上によりｆk（ｉ）は、各々の閉loopの要素数の最小公倍数を周期とする周期性を持つことが言える。
【０２８５】
次に、周期ｐを求めるためのアルゴリズム例を示す。
（ステップＳ１）サイズｍ×ｎのテーブルＴを用意し、Ｔ［ｉ］＝ｉとなるようにリセットする。
（ステップＳ２）ｋ← １
（ステップＳ３）ｆｏｒ（ｉ＝０；ｉ＜ｍ；ｉ＋＋）Ｔ［ｉ］＝f（Ｔ［ｉ］）；
（ステップＳ４）全てのｉについてＴ［ｉ］＝ｉならばｋが求める周期ｐになっていなければ、ｋ←ｋ＋１をして、（ステップＳ３）に戻る。
【０２８６】
以上のようなステップＳ１〜ステップＳ４までの処理を行うことによって周期ｐが求められる。また、周期ｐを求めるための他のアルゴリズム例を示す。
（ステップＳ１１）サイズｍ×ｎのテーブルＴを用意し、全てのエントリを０にリセットする。
（ステップＳ１２）サイズｍ×ｎテーブルＬを用意し、全てのエントリを１にリセットする。
（ステップＳ１３）ｋ←０；
（ステップＳ１４）Ｔ［ｉ］＝＝０となる最小のｉ（０≦ｉ＜ｍ×ｎ）に対して、以下の処理を行う。
（ステップＳ１５）Ｔ［ｉ］←１
（ステップＳ１６）ｉ←ｆ（ｉ）
（ステップＳ１７）ｋ＋＋
（ステップＳ１８）Ｔ［ｉ］＝＝０ならばステップＳ１５へ戻り、Ｔ［ｉ］＝＝１ならばＬ［ｉ］＝＝ｋとしてステップＳ１３に戻る。
（ステップＳ１９）全てのｉ（０≦ｉ＜ｍ×ｎ）に対してＴ［ｉ］＝＝１となったときのＬ［ｉ］最小公倍数を求める。この最小公倍数が周期ｐとなる。
【０２８７】
以上のアルゴリズムによりＢＳデジタル放送のインタリーブの周期を算出すると、１８０スーパーフレームとなる。
【０２８８】
このようなリセット機能を具体的に適用した回路構成例を図３２〜図３４に示す。
【０２８９】
図３２は、図９に示したアドレス生成回路１１にリセット機能を設けた回路例である
この場合、制御部２１内に、フレームカウンタ２１ｄから出力されるパルス（スーパーフレームの開始位置を示すパルス）を１８０カウントする周期カウンタ２１ｇを設ける。そして、この周期カウンタ２１ｇから出力されるパルスを、フラグＤ生成回路２２に供給する。フラグＤ生成回路２２は、周期カウンタ２１ｇからパルスが供給されると、フラグＤを１とする。このように動作することにって、１８０スーパーフレーム周期毎に、第２のセレクタ２９がインデックスカウンタ２４から出力されたインデックス値ｉがそのまま論理アドレスとして出力される。インデックス値ｉがそのまま論理アドレスとして出力されることによって、各回路に以後起動時と同様の動作を行わせることができる。
【０２９０】
図３３は、図２６に示した第１の変形例のアドレス生成回路８０にリセット機能を設けた回路例である。
【０２９１】
この場合も同様に、制御部２１内に、フレームカウンタ２１ｄから出力されるパルス（スーパーフレームの開始位置を示すパルス）を１８０カウントする周期カウンタ２１ｇを設ける。そして、この周期カウンタ２１ｇから出力されるパルスを、フラグＤ生成回路２２に供給する。フラグＤ生成回路２２は、周期カウンタ２１ｇからパルスが供給されると、フラグＤを１とする。このようにすることによって、１８０スーパーフレーム周期毎に、第２のセレクタ２９がインデックスカウンタ２４から出力されたインデックス値ｉがそのまま論理アドレスとして出力される。インデックス値ｉがそのまま論理アドレスとして出力されることによって、各回路に以後起動時と同様の動作を行わせることができる。
【０２９２】
図３４は、図２９に示した第２の変形例のアドレス生成回路９０にリセット機能を設けた回路例である。
【０２９３】
この場合、制御部２１内に、フレームカウンタ２１ｄから出力されるパルス（スーパーフレームの開始位置を示すパルス）を１８０カウントする周期カウンタ２１ｇを設ける。そして、この周期カウンタ２１ｇからパルスが出力されたタイミングで、ベースレジスタ９１、アドレスレジスタ９２及びオフセットレジスタ９３を以下のように制御する。
【０２９４】
ｉｆ（１８０スーパーフレーム）ｔｈｅｎ
ｏｆｆｓｅｔ←２０３；
ｃｕｒ←０；
ｂａｓｅ←０；
このようにすることによって、１８０スーパーフレーム周期毎に、第２のセレクタ２９がインデックスカウンタ２４から出力されたインデックス値ｉがそのまま論理アドレスとして出力される。インデックス値ｉがそのまま論理アドレスとして出力されることによって、各回路に以後起動時と同様の動作を行わせることができる。
【０２９５】
【発明の効果】
本発明にかかるデジタル衛星放送受信装置では、ダミースロットを有効割当単位の先頭に配置してフレームを再構成し、ｋ−１番目以前のスーパーフレームのｉ番目に配置されたデータが格納されていたアドレスに基づき、ｋ番目のインタリーブブロックのｉ番目に読み出されるデータのアドレスを算出し、算出したこのアドレスからｋ番目に出力されるスーパーフレームのｉ番目のデータを読み出すとともに、ｋ＋１番目に入力されるスーパーフレームのｉ番目のデータを算出した上記アドレスに書き込む。
【０２９６】
このことにより、本発明にかかるデジタル衛星放送受信装置では、デインタリーブを行う際に用いられるインタリーブメモリを削減することができる。
【０２９７】
また、本発明にかかるデジタル衛星放送受信装置では、逆エネルギー拡散処理を行うかどうかを示すエネルギー拡散有効フラグを、上記インタリーブメモリから出力される各スロットに対して付ける。
【０２９８】
このことにより、本発明にかかるデジタル衛星放送受信装置では、フレームを再構成してインタリーブを行っても、正しい疑似ランダム信号をデータに加算することができる。
【０２９９】
本発明にかかるインタリーブ方法では、ダミースロットを有効割当単位の先頭に配置してフレームを再構成し、ｋ−１番目以前のスーパーフレームのｉ番目に配置されたデータが格納されていたアドレスに基づき、ｋ番目のインタリーブブロックのｉ番目に読み出されるデータのアドレスを算出し、算出したこのアドレスからｋ番目に出力されるスーパーフレームのｉ番目のデータを読み出すとともに、ｋ＋１番目に入力されるスーパーフレームのｉ番目のデータを算出した上記アドレスに書き込む。
【０３００】
このことにより、本発明にかかるデインタリーブ方法では、デインタリーブを行う際に用いられるインタリーブメモリを削減することができる。
【０３０１】
また、本発明にかかる逆エネルギー拡散処理方法では、逆エネルギー拡散処理を行うかどうかを示すエネルギー拡散有効フラグを、上記インタリーブメモリから出力される各スロットに対して付ける。
【０３０２】
このことにより、本発明にかかる逆エネルギー拡散処理方法では、フレームを再構成してインタリーブを行っても、正しい疑似ランダム信号をデータに加算することができる。
【図面の簡単な説明】
【図１】ブロックインタリーバにおけるインタリーブ規則について説明をする図である。
【図２】ｍ×ｎ個のデータが格納可能なインタリーブメモリに付けられた論理アドレスについて説明をするための図である
【図３】１つの論理アドレスに対して、データの読み出し及び書き込みを同時に行うことを説明するための図である。
【図４】２×３のブロックインタリーブを行うデインタリーバの動作を説明するための図である
【図５】上記２×３のブロックインタリーブを行ったときに用いられるアドレスを示す図である。
【図６】最小割当単位毎に、ダミースロットを先に配置して有効スロットを後に配置するように再構成したフレームを示す図である。
【図７】本発明の実施の形態のデジタル衛星放送の受信装置の構成図である。
【図８】デインタリーバの構成図である。
【図９】アドレス生成回路の構成図である。
【図１０】ｆ-1（ｉ）発生回路の構成図である。
【図１１】バイトカウンタ及びスロットカウンタのカウント値の変遷等を示すタイミングチャートである。
【図１２】インデックスカウンタのインデックス値の更新タイミング及びアドレス用テーブルの更新タイミングについて説明するためのタイミングチャートである。
【図１３】入力バッファの構成図である。
【図１４】ＱＰＳＫ７／８のスロットを再構成したフレームを示す図である。
【図１５】ＱＰＳＫ５／６のスロットを再構成したフレームを示す図である。
【図１６】ＱＰＳＫ３／４のスロットを再構成したフレームを示す図である。
【図１７】ＱＰＳＫ２／３のスロットを再構成したフレームを示す図である。
【図１８】ＱＰＳＫ１／２のスロットを再構成したフレームを示す図である。
【図１９】ＢＰＳＫ１／２のスロットを再構成したフレームを示す図である。
【図２０】逆エネルギー拡散部の構成図である。
【図２１】エネルギー拡散有効フラグを発生するステートマシーンを示す図である。
【図２２】エネルギー拡散有効フラグが付けられるスロットについて説明をする図である。
【図２３】バイト単位で演算を行う逆エネルギー拡散部の構成図である。
【図２４】１バイト単位で疑似ランダム信号を発生する演算回路の構成図である。
【図２５】バイト単位で演算を行う演算回路にロードされる疑似ランダム信号の初期値を示す図である。
【図２６】第１の変形例のアドレス生成回路の構成図である。
【図２７】ｆ（ｉ）発生回路の構成図である。
【図２８】上記第１の変形例のアドレス生成回路の動作を示すタイミングチャートである。
【図２９】第２の変形例のアドレス生成回路の構成図である。
【図３０】ｇ（ｉ）発生回路の構成図である。
【図３１】上記第２の変形例のアドレス生成回路の動作を示すタイミングチャートである。
【図３２】図９で示したアドレス生成回路にリセット機能を設けた第３の変形例のアドレス生成回路の構成図である。
【図３３】図２６で示した第１の変形例のアドレス生成回路にリセット機能を設けた第３の変形例のアドレス生成回路の構成図である。
【図３４】図２９で示した第２の変形例のアドレス生成回路にリセット機能を設けた第３の変形例のアドレス生成回路の構成図である。
【図３５】デジタル衛星放送の送信装置及び受信装置の構成図である
【図３６】スーパーフレームのデータ構成を示す図である。
【図３７】各変調／符号化方式の最小割当単位、有効スロット数、ダミースロット数を示す図である
【図３８】フレーム内の有効スロットとダミースロットの配置を説明するための図である。
【図３９】連接符号について説明するための概念図である。
【図４０】デジタル衛星放送で用いられるエラー訂正処理を説明するための図である。
【図４１】デジタル衛星放送で用いられるインタリーバについて説明するための図である。
【図４２】インタリーバによるバースエラーの分散について説明するための図である。
【図４３】インタリーブメモリに対するアクセス順序について説明をするための図である。
【図４４】２×３のブロックを用いるインタリーバのインタリーブメモリに対するアクセス順序について説明をするための図である。
【図４５】ダブルバッファ方式のインタリーバの構成図である。
【図４６】ＢＳデジタル放送におけるインタリーバの動作（書き込み時）を説明するための図である
【図４７】ＢＳデジタル放送におけるインタリーバの動作（読み出し時）を説明するための図である。
【符号の説明】
１  受信装置、５  デインタリーバ、６  逆エネルギー拡散部、１１，８０，９０  アドレス生成回路、１２  入力バッファ、１３  ダミーデータセレクタ、１４  インタリーブメモリ
【図１】
0004487385.tif 000002
【図２】
0004487385.tif 000003
【図３】
0004487385.tif 000004
【図４】
0004487385.tif 000005
【図５】
0004487385.tif 000006
【図６】
0004487385.tif 000007
【図７】
0004487385.tif 000008
【図８】
0004487385.tif 000009
【図９】
0004487385.tif 000010
【図１０】
0004487385.tif 000011
【図１１】
0004487385.tif 000012
【図１２】
0004487385.tif 000013
【図１３】
0004487385.tif 000014
【図１４】
0004487385.tif 000015
【図１５】
0004487385.tif 000016
【図１６】
0004487385.tif 000017
【図１７】
0004487385.tif 000018
【図１８】
0004487385.tif 000019
【図１９】
0004487385.tif 000020
【図２０】
0004487385.tif 000021
【図２１】
0004487385.tif 000022
【図２２】
0004487385.tif 000023
【図２３】
0004487385.tif 000024
【図２４】
0004487385.tif 000025
【図２５】
0004487385.tif 000026
【図２６】
0004487385.tif 000027
【図２７】
0004487385.tif 000028
【図２８】
0004487385.tif 000029
【図２９】
0004487385.tif 000030
【図３０】
0004487385.tif 000031
【図３１】
0004487385.tif 000032
【図３２】
0004487385.tif 000033
【図３３】
0004487385.tif 000034
【図３４】
0004487385.tif 000035
【図３５】
0004487385.tif 000036
【図３６】
0004487385.tif 000037
【図３７】
0004487385.tif 000038
【図３８】
0004487385.tif 000039
【図３９】
0004487385.tif 000040
【図４０】
0004487385.tif 000041
【図４１】
0004487385.tif 000042
【図４２】
0004487385.tif 000043
【図４３】
0004487385.tif 000044
【図４４】
0004487385.tif 000045
【図４５】
0004487385.tif 000046
【図４６】
0004487385.tif 000047
【図４７】
0004487385.tif 000048