(57)【要約】【課題】２＾ｎ値（ｎは２以上の整数）の多値変調を用いる通信方式においてランレングスを一定値以下に抑え、ＤＣバランスを保証する送信装置を提供することを目的とする。【解決手段】２＾ｎ値の振幅変調が施されたデータを送信する送信装置は、送信対象のデータをｎ個のデータ列に分離し、前記ｎ個のデータ列のうち一のデータ列にランレングスを保証する符号化処理を施して変換データ列を生成し、候補データに基づいて今回用いられるべき出力電圧がＤＣバランスを保証するよう一の特定データ列に対して反転する又は反転しないよう制御して中間データ列を生成し、前記中間データ列を構成する構成ビットそれぞれを最上位ビットとし、前記特定データ列が除かれた他のデータ列それぞれにおける各ビットが後続ビットとして付加されたｎビット長のシンボルそれぞれに対して、２＾ｎ値の振幅変調を施す。【選択図】図３
2010213263.tif 000002
【特許請求の範囲】
【請求項１】
２＾ｎ値（ｎは２以上の整数）の振幅変調が施されたデータを送信する送信装置であって、
送信対象のデータをｎ個のデータ列に分離する分離手段と、
前記ｎ個のデータ列のうち一のデータ列に同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換する変換手段と、
送信された１つ以上のデータそれぞれの出力振幅のディスパリティを現時点まで累積した累積値と、前記変換データ列及び残りｎ−１個のデータ列を含むｎビット長の複数のシンボル分の候補データのディスパリティの総計とから算出される新たな累積値が基準値に近づいているか否かを判定し、当該判定の結果が否定的な場合は前記変換データ列と残りｎ−１個のデータ列とのうち各シンボルの最上位ビットを構成する一の特定データ列を反転させ、肯定的な場合は当該特定データ列は反転させないことで、当該特定データ列から中間データ列を得る反転制御手段と、
前記中間データ列を構成する構成ビットそれぞれを最上位ビットとし、前記変換データ列と残りｎ−１個のデータ列とのうち前記特定データ列を除く他のデータ列それぞれにおける対応する各ビットが後続ビットとして付加されたｎビット長のシンボルそれぞれに対して、２＾ｎ値の振幅変調を施す変調手段と
を備えることを特徴とする送信装置。
【請求項２】
前記送信装置は、さらに、
処理が施されていないｎ−１個のデータ列のうち一のデータ列に、前記変換データ列の非反転を示す第１の制御データ列を付加して第１の付加データ列を、反転を示す第２の制御データ列を付加して第２の付加データ列それぞれを生成する付加手段を備え、
前記特定データ列は、前記変換データ列であり、
前記反転制御手段は、
前記第１の付加データ列、何ら処理が施されていないｎ−２個の未処理データ列、及び前記変換データ列を含む前記候補データと、前記第２の付加データ列、前記ｎ−２個の未処理データ列、及び前記変換データ列が反転した反転データ列を含む前記候補データとは別の候補データとを生成し、
前記候補データのディパリティの総計と前記累積値とから第１の新たな累積値を、前記別の候補データのディスパリティの総計と前記累積値とから第２の新たな累積値をそれぞれ算出し、
前記第１の新たな累積値と前記第２の新たな累積値とを比較し、第１の新たな累積値が前記基準値に近づくか否かを判定し、当該判定が否定的な場合は前記変換データ列を反転させ、肯定的な場合は前記変換データ列を反転しないよう制御して、前記中間データ列を取得し、
前記変調手段は、
前記中間データ列を構成する構成ビットそれぞれに、前記変換データ列の反転・非反転に応じた付加データ列と、ｎ−２個の未処理データ列とのそれぞれの対応する各ビットが付加されたｎビット長のシンボルそれぞれに対して、２＾ｎ値の振幅変調を施す
ことを特徴とする請求項１に記載の送信装置。
【請求項３】
ｎの値は２であり、
前記分離手段は、送信対象のデータを第１のデータ列と第２のデータ列とに分離し、
前記変換手段は、前記第１のデータ列に対して、前記符号化処理を施して、前記変換データ列を生成し、
前記付加手段は、前記第２のデータ列を用いて前記第１及び前記第２の付加データ列それぞれを生成し、
前記反転制御手段は、前記変換データ列と前記第１の付加データ列とを含む前記候補データ、及び前記反転データ列と前記第２の付加データ列とを含む前記別の候補データを生成し、
前記変調手段は、前記第１の新たな累積値が前記基準値に近づくと判断される場合には第１の付加データ列と前記中間データ列とにおいて、前記第１の新たな累積値が前記基準値に近づかないと判断される場合には第２の付加データ列と前記中間データ列とにおいて、出現位置が同一である前記中間データ列を構成する構成ビットと前記付加データ列に含まれるビットとからなる１個以上の２ビット長のシンボルそれぞれに対して、２＾２値の振幅変調を施す
ことを特徴とする請求項２に記載の送信装置。
【請求項４】
前記符号化処理は、８Ｂ／１０Ｂを用いた符号化であり、
前記送信対象のデータは、１６ビット長からなり、
前記第１及び前記第２のデータ列それぞれは、８ビット長からなり、
前記第１及び前記第２の制御データ列は、２ビット長からなる
ことを特徴とする請求項３に記載の送信装置。
【請求項５】
前記反転制御手段は、
前記変換データ列に含まれる変換ビットそれぞれに対して、前記第１の付加データ列に含まれ、当該変換ビットの出現位置に応じたビットが付加された２ビット長のシンボル１０個からなる前記候補データ、及び前記反転データ列に含まれる反転ビットそれぞれに対して、前記第２の付加データ列に含まれ、当該反転ビットの出現位置に応じたビットが付加された２ビット長のシンボル１０個からなる前記別の候補データを生成し、
前記候補データにおける１０個のシンボルそれぞれのディスパリティからその合計を示す第１の合計ディスパリティ、及び前記別の候補データにおける１０個のシンボルそれぞれのディスパリティからその合計を示す第２の合計ディスパリティをそれぞれ算出し、
前記累積値と前記第１の合計ディスパリティとから前記第１の新たな累積値、及び前記累積値と前記第２の合計ディスパリティとから前記第２の新たな累積値をそれぞれ算出し、
前記第１の新たな累積値の絶対値が前記第２の新たな累積値の絶対値よりも小さい場合は前記第１の新たな累積値が前記基準値に近づくと判定し、それ以外の場合は前記第１の新たな累積値が前記基準値に近づかないと判定する
ことを特徴とする請求項４に記載の送信装置。
【請求項６】
前記送信装置は、さらに、
前記第１の新たな累積値が前記基準値に近づくと判断される場合には第１の付加データ列と前記中間データ列とにおいて、前記第１の新たな累積値が前記基準値に近づかないと判断される場合には第２の付加データ列と前記中間データ列とにおいて、出現位置が同一である前記中間データ列に含まれる構成ビットと前記付加データ列に含まれるビットとからなる１０個の２ビット長のシンボルそれぞれを、前記構成ビットの出現順に、連結させて変調対象のデータを生成する生成手段を備え、
前記変調手段は、
前記変調対象のデータを先頭位置から２ビット毎に区切って、前記２ビット長のシンボルを順次取得し、取得した前記シンボルに対して、２＾２値の振幅変調を順次施す
ことを特徴とする請求項５に記載の送信装置。
【請求項７】
前記候補データにおける２ビット長のシンボルには、
上位ビットには前記変換データ列に含まれるビットが、下位ビットには前記第１の付加データ列に含まれるビットが配されて構成され、
前記別の候補データにおける２ビット長のシンボルには、
上位ビットには反転された前記変換データ列に含まれるビットが、下位ビットには前記第２の付加データ列に含まれるビットが配されて構成され、
前記変調対象のデータにおける２ビット長のシンボルには、
上位ビットには前記構成ビットが配され、下位ビットには前記反転制御手段での反転・非反転に応じた付加ビット列に含まれるビットが配されて構成され、
前記変調手段は、
前記上位ビットに値１が配されている場合には前記下位ビットにおける値に応じた量だけ振幅が前記基準値より上回るよう制御し、前記上位ビットに値０が配されている場合には前記下位ビットにおける値に応じた量だけ振幅が前記基準値より下回るよう制御する
ことを特徴とする請求項６に記載の送信装置。
【請求項８】
前記反転制御手段は、
前記累積値を記憶しており、
前記変換データ列を反転しないよう制御した場合には、前記第１の合計ディスパリティを、前記累積値に加算することで、前記累積値を更新し、
前記変換データ列を反転した場合には、前記第２の合計ディスパリティを、前記累積値に加算することで、前記累積値を更新する
ことを特徴とする請求項６に記載の送信装置。
【請求項９】
前記送信装置は、さらに、
前記変換手段の処理が施されていないｎ−１個のデータ列のうち一のデータ列に対して、前記変換データ列が非反転であることを示す制御データ列を付加して、付加データ列を生成する付加手段を備え、
前記特定データ列は、前記付加データ列であり、
前記反転制御手段は、
前記変換データ列、前記付加データ列及び何ら処理が施されていないｎ−２個の未処理データ列とを含む前記候補データのディスパリティの総計と前記累積値とから算出される前記新たな累積値が前記基準値に近づくと判定する場合は前記付加データ列を反転しない、それ以外の場合には前記付加データ列を反転するよう制御して、前記中間データ列を取得し、
前記変調手段は、
前記中間データ列を構成する構成ビットそれぞれに、前記変換データ列と、ｎ−２個の未処理データ列とのそれぞれにおける各ビットが付加されたｎビット長のシンボルに対して、２＾ｎ値の振幅変調を施す
ことを特徴とする請求項１に記載の送信装置。
【請求項１０】
ｎの値は２であり、
前記分離手段は、送信対象のデータを第１のデータ列と第２のデータ列とに分離し、
前記変換手段は、前記第１のデータ列に対して、前記符号化処理を施して、前記変換データ列を生成し、
前記付加手段は、前記第２のデータ列に対して、前記制御データ列を付加して、付加データ列を生成し、
前記変調手段は、前記中間データ列と前記変換データ列との双方において、出現位置が同一である前記中間データ列に含まれる構成ビットと前記変換データ列に含まれるビットとからなる１個以上の２ビット長のシンボルそれぞれに対して、２＾２値の振幅変調を施す
ことを特徴とする請求項９に記載の送信装置。
【請求項１１】
前記符号化処理は、８Ｂ／１０Ｂを用いた符号化であり、
前記送信対象のデータは、１６ビット長からなり、
前記第１及び前記第２のデータ列それぞれは、８ビット長からなり、
前記制御データ列は、２ビット長からなる
ことを特徴とする請求項１０に記載の送信装置。
【請求項１２】
前記反転制御手段は、
前記変換データ列に含まれる変換ビットそれぞれに対して、前記付加データ列において当該変換ビットの出現位置に応じたビットが付加された２ビット長のシンボル１０個からなる前記候補データを生成し、
生成した前記候補データにおける１０個のシンボルそれぞれのディスパリティからその合計を示す合計ディスパリティを算出し、
前記累積値と前記合計ディスパリティとの乗算結果を示す候補累積値を算出し、
前記候補累積値が値０より大きい場合には前記新たな累計値は前記基準値に近づかないと判定し、それ以外の場合には前記新たな累計値は前記基準値に近づくと判定する
ことを特徴とする請求項１１に記載の送信装置。
【請求項１３】
前記送信装置は、さらに、
前記中間データ列と前記変換データ列との双方において、出現位置が同一である前記中間データ列に含まれる構成ビットと前記変換データ列に含まれるビットとからなる１０個の２ビット長のシンボルそれぞれを、前記構成ビットの出現順に、連結させて変調対象のデータを生成する生成手段を備え、
前記変調手段は、
前記変調対象のデータを先頭位置から２ビット毎に区切って、前記２ビット長のシンボルを順次取得し、取得した前記シンボルに対して、２＾２値の振幅変調を順次施す
ことを特徴とする請求項１２に記載の送信装置。
【請求項１４】
前記反転制御手段は、
前記累積値を記憶しており、
前記付加データ列を反転した場合には、前記合計ディスパリティを前記累積値から減算することで、前記累積値を更新し、
前記付加データ列を反転しないよう制御した場合には、前記合計ディスパリティを前記累積値に加算することで、前記累積値を更新する
ことを特徴とする請求項１３に記載の送信装置。
【請求項１５】
前記送信装置は、さらに、
前記変換データ列に、当該変換データ列が非反転であることを示す制御データ列を付加して、付加データ列を生成する付加手段を備え、
前記特定データ列は、前記付加データ列であり、
前記反転制御手段は、
前記付加データ列、及び何ら処理が施されていないｎ−１個の未処理データ列を含む前記候補データのディスパリティの総計と前記累積値とから算出される前記新たな累積値が前記基準値に近づくと判定する場合は前記付加データ列を反転しない、それ以外の場合には前記付加データ列を反転するよう制御して、前記中間データ列を取得し、
前記変調手段は、
前記中間データ列を構成する構成ビットそれぞれに、ｎ−１個の未処理データ列それぞれにおける対応する各ビットが付加されたｎビット長のシンボルに対して、２＾ｎ値の振幅変調を施す
ことを特徴とする請求項１に記載の送信装置。
【請求項１６】
ｎの値は２であり、
前記分離手段は、送信対象のデータを第１のデータ列と第２のデータ列とに分離し、
前記変換手段は、前記第１のデータ列に対して、前記符号化処理を施して、前記変換データ列を生成し、
前記変調手段は、前記中間データ列と前記第２のデータ列との双方において、出現位置が同一である前記中間データ列を構成する構成ビットと前記第２のデータ列に含まれるビットとからなる１個以上の２ビット長のシンボルそれぞれに対して、２＾２値の振幅変調を施す
ことを特徴とする請求項１５に記載の送信装置。
【請求項１７】
前記符号化処理は、８Ｂ／１０Ｂを用いた符号化であり、
前記送信対象のデータは、２０ビット長からなり、
前記第１のデータ列は、８ビット長からなり、
前記第２のデータ列は、１２ビット長からなり、
前記制御データ列は、２ビット長からなる
ことを特徴とする請求項１６に記載の送信装置。
【請求項１８】
前記反転制御手段は、
前記付加データ列に含まれるビットそれぞれに対して、前記第２のデータ列において当該付加データ列に含まれるビットの出現位置に応じたビットが付加された２ビット長のシンボル１２個からなる前記候補データを生成し、
生成した前記候補データにおける１２個のシンボルそれぞれのディスパリティからその合計を示す合計ディスパリティを算出し、
前記累積値と前記合計ディスパリティとの乗算結果を示す候補累積値を算出し、
前記候補累積値が値０より大きい場合には前記新たな累計値は前記基準値に近づかないと判定し、それ以外の場合には前記新たな累計値は前記基準値に近づくと判定する
ことを特徴とする請求項１７に記載の送信装置。
【請求項１９】
前記送信装置は、さらに、
前記中間データ列と前記第２のデータ列との双方において、出現位置が同一である前記中間データ列を構成する構成ビットと前記第２のデータ列に含まれるビットとからなる１２個の２ビット長のシンボルそれぞれを、前記構成ビットの出現順に、連結させて変調対象のデータを生成する生成手段を備え、
前記変調手段は、
前記変調対象のデータを先頭位置から２ビット毎に区切って、前記２ビット長のシンボルを順次取得し、取得した前記シンボルに対して、２＾２値の振幅変調を順次施す
ことを特徴とする請求項１８に記載の送信装置。
【請求項２０】
２＾ｎ値（ｎは２以上の整数）の振幅変調が施されたデータを送信する送信装置で用いられる送信方法であって、
送信対象のデータをｎ個のデータ列に分離する分離ステップと、
前記ｎ個のデータ列のうち一のデータ列に同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換する変換ステップと、
送信された１つ以上のデータそれぞれの出力振幅のディスパリティを現時点まで累積した累積値と、前記変換データ列及び残りｎ−１個のデータ列を含むｎビット長の複数のシンボル分の候補データのディスパリティの総計とから算出される新たな累積値が基準値に近づいているか否かを判定し、当該判定の結果が否定的な場合は前記変換データ列と残りｎ−１個のデータ列とのうち各シンボルの最上位ビットを構成する一の特定データ列を反転させ、肯定的な場合は当該特定データ列は反転させないことで、当該特定データ列から中間データ列を得る反転制御ステップと、
前記中間データ列を構成する構成ビットそれぞれを最上位ビットとし、前記変換データ列と残りｎ−１個のデータ列とのうち前記特定データ列を除く他のデータ列それぞれにおける対応する各ビットが後続ビットとして付加されたｎビット長のシンボルそれぞれに対して、２＾ｎ値の振幅変調を施す変調ステップと
を含むことを特徴とする送信方法。
【請求項２１】
２＾ｎ値（ｎは２以上の整数）の振幅変調が施されたデータを送信する送信装置で用いられる集積回路であって、
送信対象のデータをｎ個のデータ列に分離する分離手段と、
前記ｎ個のデータ列のうち一のデータ列に同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換する変換手段と、
送信された１つ以上のデータそれぞれの出力振幅のディスパリティを現時点まで累積した累積値と、前記変換データ列及び残りｎ−１個のデータ列を含むｎビット長の複数のシンボル分の候補データのディスパリティの総計とから算出される新たな累積値が基準値に近づいているか否かを判定し、当該判定の結果が否定的な場合は前記変換データ列と残りｎ−１個のデータ列とのうち各シンボルの最上位ビットを構成する一の特定データ列を反転させ、肯定的な場合は当該特定データ列は反転させないことで、当該特定データ列から中間データ列を得る反転制御手段と、
前記中間データ列を構成する構成ビットそれぞれを最上位ビットとし、前記変換データ列と残りｎ−１個のデータ列とのうち前記特定データ列を除く他のデータ列それぞれにおける対応する各ビットが後続ビットとして付加されたｎビット長のシンボルそれぞれに対して、２＾ｎ値の振幅変調を施す変調手段と
を備えることを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、有線または無線の伝送路を介してデータを送信及び受信するために、多値変調方式を利用する送信装置及び送信方法に関するものである。
【背景技術】
【０００２】
２値変調方式を利用する送信装置において用いられる符号化装置として、特許文献１に記載の８Ｂ／１０Ｂ符号化装置がある。８Ｂ／１０Ｂ符号化装置は８ビットの入力ビット列に対して、同じ値が連続する数の最大値を一定値以下に抑え（以下、ランレングスを保証）、所定の期間内において２つの変調状態の発生数の差を一定値以下に抑えた（以下、ＤＣバランスを保証）１０ビットの符号化ビット列を出力する符号化装置である。この８Ｂ／１０Ｂ符号化装置は、Ｅｔｈｅｒｎｅｔ（登録商標）をはじめとする通信方式で採用されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭５９−１００５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記８Ｂ／１０Ｂ符号化方式は、２値よりも多い変調状態を有する多値変調、例えば４値変調に用いた場合に、ランレングス及びＤＣバランスが保証されない。例えば、２値変調の場合であればランレングス及びＤＣバランスが保証される“０１０１０１０１０１”という符号化ビット列は、４値変調の場合、２ビット毎に１つの変調状態が割り当てられるため、“０１”という値が５回連続すると解釈され、ランレングス及びＤＣバランスのいずれについても保証することができない。
【０００５】
ランレングスが保証されない場合、振幅変化が起きないため受信回路でクロック再生をすることが出来ず、受信装置において正しく復調することができなくなるという問題が発生する。また、ＤＣバランスが保証されない場合、受信回路でＤＣオフセットにより識別レベルが変動し正しくデータ判定が出来なくなるため受信装置において正しく復調することができないという問題と、受信装置でＤＣオフセットを補償する回路が必要になるため回路規模が増大するという問題が発生する。
【０００６】
本発明は、２＾ｎ値（ｎは２以上の整数）の多値変調を用いる通信方式においてランレングスを一定値以下に抑え、ＤＣバランスを保証する送信装置、送信方法、及び集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明は、２＾ｎ値（ｎは２以上の整数）の振幅変調が施されたデータを送信する送信装置であって、送信対象のデータをｎ個のデータ列に分離する分離手段と、前記ｎ個のデータ列のうち一のデータ列に同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換する変換手段と、送信された１つ以上のデータそれぞれの出力振幅のディスパリティを現時点まで累積した累積値と、前記変換データ列及び残りｎ−１個のデータ列を含むｎビット長の複数のシンボル分の候補データのディスパリティの総計とから算出される新たな累積値が基準値に近づいているか否かを判定し、当該判定の結果が否定的な場合は前記変換データ列と残りｎ−１個のデータ列とのうち各シンボルの最上位ビットを構成する一の特定データ列を反転させ、肯定的な場合は当該特定データ列は反転させないことで、当該特定データ列から中間データ列を得る反転制御手段と、前記中間データ列を構成する構成ビットそれぞれを最上位ビットとし、前記変換データ列と残りｎ−１個のデータ列とのうち前記特定データ列を除く他のデータ列それぞれにおける対応する各ビットが後続ビットとして付加されたｎビット長のシンボルそれぞれに対して、２＾ｎ値の振幅変調を施す変調手段とを備えることを特徴とする。
【発明の効果】
【０００８】
この構成によると、送信装置は、ｎ個のデータ列のうち一のデータ列に対して、同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換し、新たな累積値が基準値に近づくか否かの判定に応じて特定データ列に対して反転・非反転の何れかを行っている。そして、振幅変調の対象となるｎビット長のシンボルには、特定データ列に含まれる一のビットを最上位ビットに含み、変換データ列に含まれるビットが必ず含まれているので、振幅対象である各シンボルに対してランレングスは保証されている。また、新たな累積値が基準値に近づくか否かの判定に応じて特定データ列に対して反転・非反転の何れかを行うことで、出力振幅が基準値に近づくこととなり、これは、出力振幅がある値に偏らないことを意味している。つまり、振幅対象である各シンボルに対してＤＣバランスも保証されることとなる。従って、送信装置は、２＾ｎ値の振幅変調においてもラングレンス及びＤＣバランスを保証することができる。
【図面の簡単な説明】
【０００９】
【図１】送受信システム１における送信装置１００及び受信装置１１０の構成を示すブロック図である。
【図２】４値の振幅変調を行う場合における信号マッピングの一例を示した図である。
【図３】符号化部１０１の構成を示すブロック図である。
【図４】ディスパリティ制御部３０５の構成を示すブロック図である。
【図５】送信装置１００におけるデータ送信の処理を示すフローチャートである。
【図６】判定処理の流れを示すフローチャートである。
【図７】反転処理の流れを示すフローチャートである。
【図８】符号化部１０１へ入力されるデータ列の一例を示す図である。
【図９】第１の実施の形態における符号化処理の手順の具体例を示す図である。
【図１０】図９の処理における符号語ディスパリティおよび累積ディスパリティを示した図である。
【図１１】送受信システム１ａにおける送信装置１００ａ及び受信装置１１０ａの構成を示すブロック図である。
【図１２】符号化部１０１ａの構成を示すブロック図である。
【図１３】ディスパリティ制御部３０５ａの構成を示すブロック図である。
【図１４】送信装置１００ａにおけるデータ送信の処理を示すフローチャートである。
【図１５】判定処理の流れを示すフローチャートである。
【図１６】反転処理の流れを示すフローチャートである。
【図１７】選択処理の流れを示すフローチャートである。
【図１８】第２の実施の形態における符号化処理の手順の具体例を示す図である。
【図１９】図１８の処理における符号語ディスパリティおよび累積ディスパリティを示した図である。
【図２０】符号化部１０１ｃの構成を示すブロック図である。
【図２１】符号化部１０１ｄの構成を示すブロック図である。
【図２２】ディスパリティ制御部３０５ｄの構成を示すブロック図である。
【図２３】符号化部１０１ｅの構成を示すブロック図である。
【図２４】ディスパリティ制御部３０５ｅの構成を示すブロック図である。
【図２５】符号化部１０１ｇの構成を示すブロック図である。
【発明を実施するための形態】
【００１０】
本発明の一実施態様である、第１の送信装置は、２＾ｎ値（ｎは２以上の整数）の振幅変調が施されたデータを送信する送信装置であって、送信対象のデータをｎ個のデータ列に分離する分離手段と、前記ｎ個のデータ列のうち一のデータ列に同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換する変換手段と、送信された１つ以上のデータそれぞれの出力振幅のディスパリティを現時点まで累積した累積値と、前記変換データ列及び残りｎ−１個のデータ列を含むｎビット長の複数のシンボル分の候補データのディスパリティの総計とから算出される新たな累積値が基準値に近づいているか否かを判定し、当該判定の結果が否定的な場合は前記変換データ列と残りｎ−１個のデータ列とのうち各シンボルの最上位ビットを構成する一の特定データ列を反転させ、肯定的な場合は当該特定データ列は反転させないことで、当該特定データ列から中間データ列を得る反転制御手段と、前記中間データ列を構成する構成ビットそれぞれを最上位ビットとし、前記変換データ列と残りｎ−１個のデータ列とのうち前記特定データ列を除く他のデータ列それぞれにおける対応する各ビットが後続ビットとして付加されたｎビット長のシンボルそれぞれに対して、２＾ｎ値の振幅変調を施す変調手段とを備えることを特徴とする。
【００１１】
この構成によると、第１の送信装置は、ｎ個のデータ列のうち一のデータ列に対して、同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換し、新たな累積値が基準値に近づくか否かの判定に応じて特定データ列に対して反転・非反転の何れかを行っている。そして、振幅変調の対象となるｎビット長のシンボルには、特定データ列に含まれる一のビットを最上位ビットに含み、変換データ列に含まれるビットが必ず含まれているので、振幅対象である各シンボルに対してランレングスは保証されている。また、新たな累積値が基準値に近づくか否かの判定に応じて特定データ列に対して反転・非反転の何れかを行うことで、出力振幅が基準値に近づくこととなり、これは、出力振幅がある値に偏らないことを意味している。つまり、振幅対象である各シンボルに対してＤＣバランスも保証されることとなる。従って、第１の送信装置は、２＾ｎ値の振幅変調においてもラングレンス及びＤＣバランスを保証することができる。
【００１２】
本発明の一実施態様である、第２の送信装置は、第１の送信装置において、さらに、処理が施されていないｎ−１個のデータ列のうち一のデータ列に、前記変換データ列の非反転を示す第１の制御データ列を付加して第１の付加データ列を、反転を示す第２の制御データ列を付加して第２の付加データ列それぞれを生成する付加手段を備え、前記特定データ列は、前記変換データ列であり、前記反転制御手段は、前記第１の付加データ列、何ら処理が施されていないｎ−２個の未処理データ列、及び前記変換データ列を含む前記候補データと、前記第２の付加データ列、前記ｎ−２個の未処理データ列、及び前記変換データ列が反転した反転データ列を含む前記候補データとは別の候補データとを生成し、前記候補データのディパリティの総計と前記累積値とから第１の新たな累積値を、前記別の候補データのディスパリティの総計と前記累積値とから第２の新たな累積値をそれぞれ算出し、前記第１の新たな累積値と前記第２の新たな累積値とを比較し、第１の新たな累積値が前記基準値に近づくか否かを判定し、当該判定が否定的な場合は前記変換データ列を反転させ、肯定的な場合は前記変換データ列を反転しないよう制御して、前記中間データ列を取得し、前記変調手段は、前記中間データ列を構成する構成ビットそれぞれに、前記変換データ列の反転・非反転に応じた付加データ列と、ｎ−２個の未処理データ列とのそれぞれの対応する各ビットが付加されたｎビット長のシンボルそれぞれに対して、２＾ｎ値の振幅変調を施すことを特徴とする。
【００１３】
この構成によると、第２の送信装置は、第１及び第２の新たな累積値のうち基準値に近づく新たな累積値を判定することで、変換データ列に対して反転・非反転の何れかの制御を施している。これにより、反転・非反転の何れかの制御された後のデータ列に対しても同じ値が連続する長さが所定値以下となっていることが保証されている。従って、第２の送信装置は、２＾ｎ値の振幅変調においてもラングレンス及びＤＣバランスを保証することができる。
【００１４】
本発明の一実施態様である、第３の送信装置は、第２の送信装置において、ｎの値は２であり、前記分離手段は、送信対象のデータを第１のデータ列と第２のデータ列とに分離し、前記変換手段は、前記第１のデータ列に対して、前記符号化処理を施して、前記変換データ列を生成し、前記付加手段は、前記第２のデータ列を用いて前記第１及び前記第２の付加データ列それぞれを生成し、前記反転制御手段は、前記変換データ列と前記第１の付加データ列とを含む前記候補データ、及び前記反転データ列と前記第２の付加データ列とを含む前記別の候補データを生成し、前記変調手段は、前記第１の新たな累積値が前記基準値に近づくと判断される場合には第１の付加データ列と前記中間データ列とにおいて、前記第１の新たな累積値が前記基準値に近づかないと判断される場合には第２の付加データ列と前記中間データ列とにおいて、出現位置が同一である前記中間データ列を構成する構成ビットと前記付加データ列に含まれるビットとからなる１個以上の２ビット長のシンボルそれぞれに対して、２＾２値の振幅変調を施すことを特徴とする。
【００１５】
この構成によると、第３の送信装置は、４値の振幅変調において、ラングレンス及びＤＣバランスを保証することができる。
本発明の一実施態様である、第４の送信装置は、第３の送信装置において、前記符号化処理は、８Ｂ／１０Ｂを用いた符号化であり、前記送信対象のデータは、１６ビット長からなり、前記第１及び前記第２のデータ列それぞれは、８ビット長からなり、前記第１及び前記第２の制御データ列は、２ビット長からなることを特徴とする。
【００１６】
この構成によると、第４の送信装置は、８Ｂ／１０Ｂによる符号化方式を用いて、ラングレンス及びＤＣバランスを保証する４値の振幅変調を行うことができる。
本発明の一実施態様である、第５の送信装置は、第４の送信装置において、前記反転制御手段は、前記変換データ列に含まれる変換ビットそれぞれに対して、前記第１の付加データ列に含まれ、当該変換ビットの出現位置に応じたビットが付加された２ビット長のシンボル１０個からなる前記候補データ、及び前記反転データ列に含まれる反転ビットそれぞれに対して、前記第２の付加データ列に含まれ、当該反転ビットの出現位置に応じたビットが付加された２ビット長のシンボル１０個からなる前記別の候補データを生成し、前記候補データにおける１０個のシンボルそれぞれのディスパリティからその合計を示す第１の合計ディスパリティ、及び前記別の候補データにおける１０個のシンボルそれぞれのディスパリティからその合計を示す第２の合計ディスパリティをそれぞれ算出し、前記累積値と前記第１の合計ディスパリティとから前記第１の新たな累積値、及び前記累積値と前記第２の合計ディスパリティとから前記第２の新たな累積値をそれぞれ算出し、前記第１の新たな累積値の絶対値が前記第２の新たな累積値の絶対値よりも小さい場合は前記第１の新たな累積値が前記基準値に近づくと判定し、それ以外の場合は前記第１の新たな累積値が前記基準値に近づかないと判定することを特徴とする。
【００１７】
この構成によると、第５の送信装置は、第１及び第２の新たな累積値を用いることにより、出力振幅がある値に偏らないように符号化することができる。
本発明の一実施態様である、第６の送信装置は、第５の送信装置において、前記送信装置は、さらに、前記第１の新たな累積値が前記基準値に近づくと判断される場合には第１の付加データ列と前記中間データ列とにおいて、前記第１の新たな累積値が前記基準値に近づかないと判断される場合には第２の付加データ列と前記中間データ列とにおいて、出現位置が同一である前記中間データ列に含まれる構成ビットと前記付加データ列に含まれるビットとからなる１０個の２ビット長のシンボルそれぞれを、前記構成ビットの出現順に、連結させて変調対象のデータを生成する生成手段を備え、前記変調手段は、前記変調対象のデータを先頭位置から２ビット毎に区切って、前記２ビット長のシンボルを順次取得し、取得した前記シンボルに対して、２＾２値の振幅変調を順次施すことを特徴とする。
【００１８】
この構成によると、第６の送信装置は、現時点までの出力振幅との偏りが生じない変調対象のデータを確実に生成することができる。
本発明の一実施態様である、第７の送信装置は、第６の送信装置において、前記候補データにおける２ビット長のシンボルには、上位ビットには前記変換データ列に含まれるビットが、下位ビットには前記第１の付加データ列に含まれるビットが配されて構成され、前記別の候補データにおける２ビット長のシンボルには、上位ビットには反転された前記変換データ列に含まれるビットが、下位ビットには前記第２の付加データ列に含まれるビットが配されて構成され、前記変調対象のデータにおける２ビット長のシンボルには、上位ビットには前記構成ビットが配され、下位ビットには前記反転制御手段での反転・非反転に応じた付加ビット列に含まれるビットが配されて構成され、前記変調手段は、前記上位ビットに値１が配されている場合には前記下位ビットにおける値に応じた量だけ振幅が前記基準値より上回るよう制御し、前記上位ビットに値０が配されている場合には前記下位ビットにおける値に応じた量だけ振幅が前記基準値より下回るよう制御することを特徴とする。
【００１９】
この構成によると、第７の送信装置は、変調対象となるデータ列を構成する１０個の２ビット長のシンボルそれぞれにおいて、当該シンボルの上位ビットには中間データ列を構成する構成ビットが配され、下位ビットには前記反転制御手段での反転・非反転に応じた付加ビット列を構成するビットが配されているので、現時点までの出力振幅の偏りの方向（基準値より上回っているか下回っているか）と、今回の出力振幅の偏りの方向は必ず逆方向となる。これにより、ＤＣバランスが確実に保証される。
【００２０】
本発明の一実施態様である、第８の送信装置は、第６の送信装置において、前記反転制御手段は、前記累積値を記憶しており、前記変換データ列を反転しないよう制御した場合には、前記第１の合計ディスパリティを、前記累積値に加算することで、前記累積値を更新し、前記変換データ列を反転した場合には、前記第２の合計ディスパリティを、前記累積値に加算することで、前記累積値を更新することを特徴とする。
【００２１】
この構成によると、第８の送信装置は、送信したデータに対する出力振幅の偏りの度合いを保持しておくことができるので、次のデータを送信する際に、当該次のデータに対する出力振幅との偏り具合を確実に判断することができる。
本発明の一実施態様である、第９の送信装置は、第１の送信装置において、前記送信装置は、さらに、前記変換手段の処理が施されていないｎ−１個のデータ列のうち一のデータ列に対して、前記変換データ列が非反転であることを示す制御データ列を付加して、付加データ列を生成する付加手段を備え、前記特定データ列は、前記付加データ列であり、前記反転制御手段は、前記変換データ列、前記付加データ列及び何ら処理が施されていないｎ−２個の未処理データ列とを含む前記候補データのディスパリティの総計と前記累積値とから算出される前記新たな累積値が前記基準値に近づくと判定する場合は前記付加データ列を反転しない、それ以外の場合には前記付加データ列を反転するよう制御して、前記中間データ列を取得し、前記変調手段は、前記中間データ列を構成する構成ビットそれぞれに、前記変換データ列と、ｎ−２個の未処理データ列とのそれぞれにおける各ビットが付加されたｎビット長のシンボルに対して、２＾ｎ値の振幅変調を施すことを特徴とする。
【００２２】
この構成によると、第９の送信装置は、ｎ個のデータ列のうち一のデータ列に対して、同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換し、新たな累積値が基準値に近づくか否かの判定結果に応じて当該付加データ列に対して反転・非反転の何れかの制御を行っている。その結果、反転・非反転の何れかの制御された後のデータ列に対しても同じ値が連続する長さが所定値以下となっていることが保証されている。従って、第９の送信装置は、２＾ｎ値の振幅変調においてもラングレンス及びＤＣバランスを保証することができる。
【００２３】
本発明の一実施態様である、第１０の送信装置は、第９の送信装置において、ｎの値は２であり、前記分離手段は、送信対象のデータを第１のデータ列と第２のデータ列とに分離し、前記変換手段は、前記第１のデータ列に対して、前記符号化処理を施して、前記変換データ列を生成し、前記付加手段は、前記第２のデータ列に対して、前記制御データ列を付加して、付加データ列を生成し、前記変調手段は、前記中間データ列と前記変換データ列との双方において、出現位置が同一である前記中間データ列に含まれる構成ビットと前記変換データ列に含まれるビットとからなる１個以上の２ビット長のシンボルそれぞれに対して、２＾２値の振幅変調を施すことを特徴とする。
【００２４】
この構成によると、第１０の送信装置は、４値の振幅変調において、ラングレンス及びＤＣバランスを保証することができる。
本発明の一実施態様である、第１１の送信装置は、第１０の送信装置において、前記符号化処理は、８Ｂ／１０Ｂを用いた符号化であり、前記送信対象のデータは、１６ビット長からなり、前記第１及び前記第２のデータ列それぞれは、８ビット長からなり、前記制御データ列は、２ビット長からなることを特徴とする。
【００２５】
この構成によると、第１１の送信装置は、８Ｂ／１０Ｂによる符号化方式を用いて、ラングレンス及びＤＣバランスを保証する４値の振幅変調を行うことができる。
本発明の一実施態様である、第１２の送信装置は、第１１の送信装置において、前記反転制御手段は、前記変換データ列に含まれる変換ビットそれぞれに対して、前記付加データ列において当該変換ビットの出現位置に応じたビットが付加された２ビット長のシンボル１０個からなる前記候補データを生成し、生成した前記候補データにおける１０個のシンボルそれぞれのディスパリティからその合計を示す合計ディスパリティを算出し、前記累積値と前記合計ディスパリティとの乗算結果を示す候補累積値を算出し、前記候補累積値が値０より大きい場合には前記新たな累計値は前記基準値に近づかないと判定し、それ以外の場合には前記新たな累計値は前記基準値に近づくと判定することを特徴とする。
【００２６】
この構成によると、第１２の送信装置は、候補累積値を用いて、新たな累積値が基準値に近づくか否かを判定することができる。
本発明の一実施態様である、第１３の送信装置は、第１２の送信装置において、前記送信装置は、さらに、前記中間データ列と前記変換データ列との双方において、出現位置が同一である前記中間データ列に含まれる構成ビットと前記変換データ列に含まれるビットとからなる１０個の２ビット長のシンボルそれぞれを、前記構成ビットの出現順に、連結させて変調対象のデータを生成する生成手段を備え、前記変調手段は、前記変調対象のデータを先頭位置から２ビット毎に区切って、前記２ビット長のシンボルを順次取得し、取得した前記シンボルに対して、２＾２値の振幅変調を順次施すことを特徴とする。
【００２７】
この構成によると、第１３の送信装置は、現時点までの出力振幅との偏りが生じない変調対象のデータを確実に生成することができる。
本発明の一実施態様である、第１４の送信装置は、第１３の送信装置において、前記反転制御手段は、前記累積値を記憶しており、前記付加データ列を反転した場合には、前記合計ディスパリティを前記累積値から減算することで、前記累積値を更新し、前記付加データ列を反転しないよう制御した場合には、前記合計ディスパリティを前記累積値に加算することで、前記累積値を更新することを特徴とする。
【００２８】
この構成によると、第１４の送信装置は、送信したデータに対する出力振幅の偏りの度合いを保持しておくことができるので、次のデータを送信する際に、当該次のデータに対する出力振幅との偏り具合を確実に判断することができる。
本発明の一実施態様である、第１５の送信装置は、第１の送信装置において、前記送信装置は、さらに、前記変換データ列に、当該変換データ列が非反転であることを示す制御データ列を付加して、付加データ列を生成する付加手段を備え、前記特定データ列は、前記付加データ列であり、前記反転制御手段は、前記付加データ列、及び何ら処理が施されていないｎ−１個の未処理データ列を含む前記候補データのディスパリティの総計と前記累積値とから算出される前記新たな累積値が前記基準値に近づくと判定する場合は前記付加データ列を反転しない、それ以外の場合には前記付加データ列を反転するよう制御して、前記中間データ列を取得し、前記変調手段は、前記中間データ列を構成する構成ビットそれぞれに、ｎ−１個の未処理データ列それぞれにおける対応する各ビットが付加されたｎビット長のシンボルに対して、２＾ｎ値の振幅変調を施すことを特徴とする。
【００２９】
この構成によると、第１５の送信装置は、ｎ個のデータ列のうち一のデータ列に対して、同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換し、当該変換データ列から付加データ列を生成している。また、新たな累積値が基準値に近づくか否かの判定結果に応じて当該付加データ列に対して反転・非反転の何れかの制御を行っている。その結果、反転・非反転の何れかの制御された後のデータ列に対しても同じ値が連続する長さが所定値以下となっていることが保証されている。従って、第１５の送信装置は、２＾ｎ値の振幅変調においてもラングレンス及びＤＣバランスを保証することができる。
【００３０】
本発明の一実施態様である、第１６の送信装置は、第１５の送信装置において、ｎの値は２であり、前記分離手段は、送信対象のデータを第１のデータ列と第２のデータ列とに分離し、前記変換手段は、前記第１のデータ列に対して、前記符号化処理を施して、前記変換データ列を生成し、前記変調手段は、前記中間データ列と前記第２のデータ列との双方において、出現位置が同一である前記中間データ列を構成する構成ビットと前記第２のデータ列に含まれるビットとからなる１個以上の２ビット長のシンボルそれぞれに対して、２＾２値の振幅変調を施すことを特徴とする。
【００３１】
この構成によると、第１６の送信装置は、４値の振幅変調において、ラングレンス及びＤＣバランスを保証することができる。
本発明の一実施態様である、第１７の送信装置は、第１６の送信装置において、前記符号化処理は、８Ｂ／１０Ｂを用いた符号化であり、前記送信対象のデータは、２０ビット長からなり、前記第１のデータ列は、８ビット長からなり、前記第２のデータ列は、１２ビット長からなり、前記制御データ列は、２ビット長からなることを特徴とする。
【００３２】
この構成によると、第１７の送信装置は、８Ｂ／１０Ｂによる符号化方式を用いて、ラングレンス及びＤＣバランスを保証する４値の振幅変調を行うことができる。
本発明の一実施態様である、第１８の送信装置は、第１７の送信装置において、前記反転制御手段は、前記付加データ列に含まれるビットそれぞれに対して、前記第２のデータ列において当該付加データ列に含まれるビットの出現位置に応じたビットが付加された２ビット長のシンボル１２個からなる前記候補データを生成し、生成した前記候補データにおける１２個のシンボルそれぞれのディスパリティからその合計を示す合計ディスパリティを算出し、前記累積値と前記合計ディスパリティとの乗算結果を示す候補累積値を算出し、前記候補累積値が値０より大きい場合には前記新たな累計値は前記基準値に近づかないと判定し、それ以外の場合には前記新たな累計値は前記基準値に近づくと判定することを特徴とする。
【００３３】
この構成によると、第１８の送信装置は、候補累積値を用いて、新たな累積値が基準値に近づくか否かを判定することができる。
本発明の一実施態様である、第１９の送信装置は、第１８の送信装置において、前記送信装置は、さらに、前記中間データ列と前記第２のデータ列との双方において、出現位置が同一である前記中間データ列を構成する構成ビットと前記第２のデータ列に含まれるビットとからなる１２個の２ビット長のシンボルそれぞれを、前記構成ビットの出現順に、連結させて変調対象のデータを生成する生成手段を備え、前記変調手段は、前記変調対象のデータを先頭位置から２ビット毎に区切って、前記２ビット長のシンボルを順次取得し、取得した前記シンボルに対して、２＾２値の振幅変調を順次施すことを特徴とする。
【００３４】
この構成によると、第１９の送信装置は、現時点までの出力振幅との偏りが生じない変調対象のデータを確実に生成することができる。
本発明の一実施態様である、送信方法は、２＾ｎ値（ｎは２以上の整数）の振幅変調が施されたデータを送信する送信装置で用いられる送信方法であって、送信対象のデータをｎ個のデータ列に分離する分離ステップと、前記ｎ個のデータ列のうち一のデータ列に同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換する変換ステップと、送信された１つ以上のデータそれぞれの出力振幅のディスパリティを現時点まで累積した累積値と、前記変換データ列及び残りｎ−１個のデータ列を含むｎビット長の複数のシンボル分の候補データのディスパリティの総計とから算出される新たな累積値が基準値に近づいているか否かを判定し、当該判定の結果が否定的な場合は前記変換データ列と残りｎ−１個のデータ列とのうち各シンボルの最上位ビットを構成する一の特定データ列を反転させ、肯定的な場合は当該特定データ列は反転させないことで、当該特定データ列から中間データ列を得る反転制御ステップと、前記中間データ列を構成する構成ビットそれぞれを最上位ビットとし、前記変換データ列と残りｎ−１個のデータ列とのうち前記特定データ列を除く他のデータ列それぞれにおける対応する各ビットが後続ビットとして付加されたｎビット長のシンボルそれぞれに対して、２＾ｎ値の振幅変調を施す変調ステップとを含むことを特徴とする。
【００３５】
これによると、送信方法は、ｎ個のデータ列のうち一のデータ列に対して、同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換し、新たな累積値が基準値に近づくか否かの判定に応じて特定データ列に対して反転・非反転の何れかを行っている。そして、振幅変調の対象となるｎビット長のシンボルには、特定データ列に含まれる一のビットを最上位ビットに含み、変換データ列に含まれるビットが必ず含まれているので、振幅対象である各シンボルに対してランレングスは保証されている。また、新たな累積値が基準値に近づくか否かの判定に応じて特定データ列に対して反転・非反転の何れかを行うことで、出力振幅が基準値に近づくこととなり、これは、出力振幅がある値に偏らないことを意味している。つまり、振幅対象である各シンボルに対してＤＣバランスも保証されることとなる。従って、当該送信方法は、２＾ｎ値の振幅変調においてもラングレンス及びＤＣバランスを保証することができる。
【００３６】
本発明の一実施態様である、集積回路は、２＾ｎ値（ｎは２以上の整数）の振幅変調が施されたデータを送信する送信装置で用いられる集積回路であって、送信対象のデータをｎ個のデータ列に分離する分離手段と、前記ｎ個のデータ列のうち一のデータ列に同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換する変換手段と、送信された１つ以上のデータそれぞれの出力振幅のディスパリティを現時点まで累積した累積値と、前記変換データ列及び残りｎ−１個のデータ列を含むｎビット長の複数のシンボル分の候補データのディスパリティの総計とから算出される新たな累積値が基準値に近づいているか否かを判定し、当該判定の結果が否定的な場合は前記変換データ列と残りｎ−１個のデータ列とのうち各シンボルの最上位ビットを構成する一の特定データ列を反転させ、肯定的な場合は当該特定データ列は反転させないことで、当該特定データ列から中間データ列を得る反転制御手段と、前記中間データ列を構成する構成ビットそれぞれを最上位ビットとし、前記変換データ列と残りｎ−１個のデータ列とのうち前記特定データ列を除く他のデータ列それぞれにおける対応する各ビットが後続ビットとして付加されたｎビット長のシンボルそれぞれに対して、２＾ｎ値の振幅変調を施す変調手段とを備えることを特徴とする。
【００３７】
この構成によると、集積回路は、ｎ個のデータ列のうち一のデータ列に対して、同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換し、新たな累積値が基準値に近づくか否かの判定に応じて特定データ列に対して反転・非反転の何れかを行っている。そして、振幅変調の対象となるｎビット長のシンボルには、特定データ列に含まれる一のビットを最上位ビットに含み、変換データ列に含まれるビットが必ず含まれているので、振幅対象である各シンボルに対してランレングスは保証されている。また、新たな累積値が基準値に近づくか否かの判定に応じて特定データ列に対して反転・非反転の何れかを行うことで、出力振幅が基準値に近づくこととなり、これは、出力振幅がある値に偏らないことを意味している。つまり、振幅対象である各シンボルに対してＤＣバランスも保証されることとなる。従って、当該集積回路は、２＾ｎ値の振幅変調においてもラングレンス及びＤＣバランスを保証することができる。
【００３８】
１．第１の実施の形態
以下、本発明を実施するための第１の実施の形態について図面を参照しつつ説明する。
１．１  送受信システム１の概要
本発明に係る送信装置を含む送受信システム１の概要について説明する。
送受信システム１は、図１に示すように、送信装置１００と受信装置１１０とから構成されている。
【００３９】
送信装置１００は、入力された送信対象のデータに対して、符号化及び２（＝２＾１）値及び４（＝２＾２）値の何れかによる振幅変調を施し、受信装置１１０へ送信する。
ここで、本実施の形態では、４値の振幅変調として４値ＡＳＫ（Ａｍｐｌｉｔｕｄｅ  Ｓｈｉｆｔ  Ｋｅｙｉｎｇ）変調を用いるものとする。図２は、４値ＡＳＫ変調を用いたときのマッピングの一例を示す図である。図２では入力パターン（値“００”、“０１”、“１０”、“１１”）に応じて、電圧レベル（Ｖ０、Ｖ１、Ｖ２、Ｖ３）とディスパリティ（−３、−１、＋１、＋３）とが示されている。ここでディスパリティとは、各入力パターンが均等に入力された場合の基準電圧レベル（平均電圧レベル）と各電圧レベルとの差である。
【００４０】
受信装置１１０は送信装置１００から送信された光信号を受信して復調する。
ここで、演算子＾は、べき乗を示す。例えば、Ａ＾ｘは、ｘ＞０のときはＡをｘ回乗じたものを示す。
なお、ここでは、送信装置１００と受信装置１１０との間で、送信対象のデータを送信する前に、初期化の処理として、互いの装置は、通信を確立するためのデータを送受信する。具体的には、送信装置１００は通信を要求する要求データを受信装置１１０へ送信し、受信装置１１０は要求データを受信すると応答を示す応答データを送信装置１００へ送信するものとする。さらに、受信装置１１０は、要求データを受信した際の受信電力に応じて、２値及び４値の振幅変調の何れかを指定する変調指定データを送信装置１００へ送信する。送信装置１００は、受信した変調指定データが指定する振幅変調により送信対象のデータに対して変調を施す。
【００４１】
以下においては、先ず、変調指定データとして４値の振幅変調が指定された後における送信装置１００及び受信装置１１０それぞれの動作について説明する。
１．２  送信装置１００の構成
送信装置１００は、図１に示すように、符号化部１０１、４値変調部１０２、増幅器１０３及び発光素子１０４を備える。
【００４２】
（１）符号化部１０１
符号化部１０１は、入力された２ｍビット長の送信対象のデータ列（ｍは整数）を符号化して符号化データ列Ｃを生成し、生成した符号化データ列Ｃを４値変調部１０２へ出力する。本実施の形態ではｍを８とし、符号化部１０１には１６ビットのデータ列が入力されるものとする。
【００４３】
符号化部１０１は、図３に示すように、分離部３００、付加部３０１、変換部３０２、反転制御部３０３及び合成部３０４を備える。また、反転制御部３０３は、図３に示すように、ディスパリティ制御部３０５、反転部３０６を備える。
受信装置１１０からの変調指定データが４値の振幅変調を示す場合には、分離部３００、付加部３０１、変換部３０２、反転制御部３０３及び合成部３０４の全てが動作するよう制御される。
【００４４】
（１−１）分離部３００
符号化部１０１に入力された１６ビットの送信データ列Ｓは、分離部３００に入力される。分離部３００は、入力された１６ビットの送信データ列Ｓ（＝［Ｓ（０）、Ｓ（１）、・・・、Ｓ（ｋ）、・・・、Ｓ（１５）］）を偶数番目のビットで構成される８ビットのデータ列Ｓ１（＝［Ｓ（０）、Ｓ（２）、・・・、Ｓ（２ｋ）、・・・、Ｓ（１４）］）と、奇数番目のビットで構成される８ビットのデータ列Ｓ２（＝［Ｓ（１）、Ｓ（３）、・・・、Ｓ（２ｋ−１）、・・・、Ｓ（１５）］）に分離して、データ列Ｓ１を付加部３０１に出力し、データ列Ｓ２を変換部３０２に出力する。
【００４５】
（１−２）付加部３０１
付加部３０１は、２ビットの制御ビット“０”、“１”を分離部３００から入力されたのデータ列Ｓ１の先頭に付加し１０ビットのデータ列Ｃａ１２（＝［０、１、Ｓ（０）、Ｓ（２）、・・・、Ｓ（２ｋ）、・・・、Ｓ（１４）］）を生成し、生成した１０ビットのデータ列Ｃａ１２を反転制御部３０３のディスパリティ制御部３０５及び反転部３０６に出力する。
【００４６】
（１−３）変換部３０２
変換部３０２は、分離部３００から入力されたデータ列Ｓ２をランレングスを一定値以下に抑える符号化方式を用いて符号化する。一般にランレングスを一定値以下に抑える符号化方式として８Ｂ／１０Ｂ符号化方式が知られている（特許文献１）。本実施の形態の変換部３０２は、この８Ｂ／１０Ｂ符号化方式を用いてデータ列Ｓ２に対する符号化を行うものとする。
【００４７】
変換部３０２は、データ列Ｓ２を８Ｂ／１０Ｂ符号化方式を用いて符号化することにより、１０ビットのデータ列Ｃａ２（＝［Ｃａ（０）、Ｃａ（１）、・・・、Ｃａ（９）］）を生成し、生成したデータ列Ｃａ２をディスパリティ制御部３０５及び合成部３０４に出力する。
（１−４）反転制御部３０３
反転制御部３０３は、ＤＣバランスを保証するために、入力されたデータ列Ｃａ１２に対して、反転及び正転の何れかの制御を行う。なお、本明細書では、データ列の全ビットに対して、入力された値が“０”であれば“１”に変換し、入力された値が“１”であれば“０”に変換することを反転と言う。また、データ列の全ビットに対して入力された値をそのまま出力することを正転という。
【００４８】
反転制御部３０３のディスパリティ制御部３０５が、データ列Ｃａ１２に対して、反転させるか正転させるかの判断を行う。そして、反転部３０６が、ディスパリティ制御部３０５の判断結果に基づいて、データ列Ｃａ１２に対して反転及び正転の何れかの制御を行う
以下、ディスパリティ制御部３０５及び反転部３０６について説明する。
【００４９】
（１−４−１）ディスパリティ制御部３０５
ディスパリティ制御部３０５は、入力されたデータ列Ｃａ１２及びデータ列Ｃａ２に基づいて、データ列Ｃａ１２を反転させるか、または正転させるかを判定し、判定結果に応じて反転制御情報を生成し、生成した反転制御情報を反転部３０６に出力する。
ディスパリティ制御部３０５は、図４に示すように、合成部４００、算出部４０１、判定部４０２、累積ディスパリティ記憶部４０３を備える。
【００５０】
（累積ディスパリティ記憶部４０３）
累積ディスパリティ記憶部４０３は、現時点までに送信されたデータに対するディスパリティの累積値である累積ディスパリティを保持する。なお、送信開始時においては、累積ディスパリティ記憶部４０３には、通信の初期化の処理時において累積ディスパリティの値として初期値０が設定されるものとする。
【００５１】
（合成部４００）
合成部４００は、付加部３０１より入力されたデータ列Ｃａ１２（＝［０、１、Ｓ（０）、Ｓ（２）、・・・、Ｓ（２ｋ）、・・・、Ｓ（１４）］）と、変換部３０２より入力された１０ビットのデータ列Ｃａ２（＝［Ｃａ２（０）、Ｃａ２（１）、・・・、Ｃａ２（９）］）を互いに交互になるように２０ビットのデータ列Ｃｏ）＝［０、Ｃａ２（０）、１、Ｃａ２（１）、Ｓ（０）、Ｃａ２（２）、・・・、Ｓ（１４）、Ｃａ２（９）］）を生成する。合成部４００は、生成したデータ列Ｃｏを算出部４０１に出力する。
【００５２】
（算出部４０１）
算出部４０１は、合成部４００から入力されたデータ列Ｃｏを１シンボル（２ビット）毎に区切り、区切られた１シンボル毎に、当該シンボルの値に対応するディスパリティを求め、求めた１０シンボル分のディスパリティの総和を候補符号語ディスパリティとして算出する。ここで、本実施の形態では、図２における入力パターンとディスパリティの対応に合わせて、シンボルの値“００”にはディスパリティ＝−３を、シンボルの値が“０１”にはディスパリティ＝−１を、シンボルの値が“１１”にはディスパリティ＝＋１を、シンボルの値“１０”にはディスパリティ＝＋３を対応付けているものとする。
【００５３】
算出部４０１は算出した候補符号語ディスパリティを判定部４０２へ出力する。
（判定部４０２）
判定部４０２は、算出部４０１から入力された候補符号語ディスパリティと累積ディスパリティ記憶部４０３に記憶された累積ディスパリティに基づいて、データ列Ｃａ１２を反転させるか、または正転させるかを判定する。
【００５４】
具体的には、判定部４０２は、候補符号語ディスパリティ及び累積ディスパリティが共に正の値である場合、または共に負の値である場合には、データ列Ｃａ１２を反転部３０６において反転させると判定する。一方、判定部４０２は、候補符号語ディスパリティ及び累積ディスパリティが、いずれか一方が正の値であり、且つもう一方が負の値である場合に、データ列Ｃａ１２を反転部３０６において正転させると判定する。
【００５５】
候補符号語ディスパリティの値及び累積ディスパリティの値のうち、少なくともいずれか一方が０の場合は、データ列Ｃａ１２に対して反転または正転のいずれの処理を行っても問題ないが、本実施の形態では正転させるものとする。
判定部４０２は、上記の判定結果に応じて、反転制御情報及び符号語ディスパリティを生成する。反転制御情報は、データ列Ｃａ１２を反転させるか、または正転させるかを示すものであり、データ列Ｃａ１２を反転させる場合は“０”に設定され、データ列Ｃａ１２を正転させる場合は“１”に設定される。また、符号語ディスパリティは、累積ディスパリティの更新に用いる値であり、データ列Ｃａ１２を反転させる場合は候補符号語ディスパリティの正負の符号を反転させた値に設定され、データ列Ｃａ１２を正転させる場合は候補符号語ディスパリティの値がそのまま設定される。
【００５６】
判定部４０２は、生成した反転制御情報を反転部３０６へ出力し、生成した符号語ディスパリティを、累積ディスパリティ記憶部４０３で記憶されている累積ディスパリティに加算することで、当該累積ディスパリティを更新する。
これにより、反転部３０６で行なわれる反転処理を考慮して累積ディスパリティを更新するので、累積ディスパリティを実際に送信される信号に対応した値とすることができる。
【００５７】
（１−４−２）反転部３０６
反転部３０６は、付加部３０１から入力されたＣａ１２に対し、ディスパリティ制御部３０５から入力された反転制御情報に応じて反転させる、または正転させる処理を行うことにより、１０ビットのデータ列Ｃａ１を生成する。
反転部３０６は、生成したデータ列Ｃａ１を合成部３０４に出力する。
【００５８】
例えば、反転部３０６は入力されたデータ列１００１１０１１１１に対して、反転の場合は０１１００１００００を合成部３０４へ出力し、正転の場合は１００１１０１１１１を合成部３０４へ出力する。
（１−５）合成部３０４
合成部３０４は、反転部３０６から入力されたデータ列Ｃａ１（＝［Ｃａ１（０）、Ｃａ１（１）、・・・、Ｃａ１（９）］）と、変換部３０２から入力されたデータ列Ｃａ２（＝［Ｃａ２（０）、Ｃａ２（１）、・・・、Ｃａ２（９）］）を互いに交互になるように配置した２０ビットの符号化データ列Ｃ（＝［Ｃａ１（０）、Ｃａ２（０）、Ｃａ１（１）、Ｃａ２（１）、・・・Ｃａ１（９）、Ｃａ２（９）］）を生成する。
【００５９】
合成部３０４は合成した符号化データ列Ｃを４値変調部１０２に出力する。
（２）４値変調部１０２
４値変調部１０２は、変調指定データが４値の振幅変調を示す場合には、入力された符号化データ列Ｃに４値変調を施して出力する。
具体的には、４値変調部１０２は、入力されたデータ列を２ビットごとのシンボルに区切り、図２のマッピングに応じた電圧レベルを有する電気信号を出力する。
【００６０】
（３）増幅器１０３、発光素子１０４
増幅器１０３は、入力された電気信号を増幅し、発光素子１０４に出力する。
発光素子１０４は、増幅された電気信号に対応する振幅を有する光信号に変更して受信装置１１０に送信する。発光素子１０４としては一般的にＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）やレーザーが用いられる。
【００６１】
１．２  受信装置１１０の構成
受信装置１１０は、図１に示すように、受光素子１１１、増幅器１１２、４値復調部１１３、復号部１１４とを備える。
受信装置１１０は、通信の初期化時に送信装置１００へ送信した変調指定データを通信が終了するまでの間、一時的に記憶しているものとする。
【００６２】
なお、ここでも、送信装置１００の構成の説明と同様に、変調指定データが４値の振幅変調を示している場合における各構成要素の動作について説明する。
（１）受光素子１１１、増幅器１１２
受光素子１１１は、送信装置１００から送信された光信号を受光すると電気信号に変換して増幅器１１２に出力する。受光素子１１１は一般的にフォトダイオードが用いられる。
【００６３】
増幅器１１２は、受光素子１１１から入力された信号を増幅して４値復調部１１３に出力する。
（２）４値復調部１１３
４値復調部１１３は、変調指定データが４値の振幅変調を示す場合には、増幅器１１２から入力された信号がいずれの変調状態（電圧レベル）にあるかを判定し、判定された変調状態に対応する２ビットの値にデマッピングして復調データ列を生成する。
【００６４】
（３）復号部１１４
復号部１１４は、復調データ列に対して送信装置１００の符号化部１０１で行った、４値の振幅変調に係る符号化処理と逆の処理である復号処理を行うことにより、送信装置１００から送信された送信データ列Ｓを再生する。
１．４  動作
ここでは、送信装置１００及び受信装置１１０における処理について説明する。
【００６５】
（１）送信処理
送信装置１００がデータに対して４値の振幅変調を施して、振幅変調されたデータを受信装置１１０へ送信する処理の動作について、図５に示す流れ図を用いて説明する。
分離部３００は、送信対象である１６ビットのデータ列Ｓ（＝［Ｓ（０）、Ｓ（１）、・・・、Ｓ（ｋ）、・・・、Ｓ（１５）］）を受け付け（ステップＳ５）、受け付けたデータ列Ｓを偶数番目のビットで構成される８ビットのデータ列Ｓ１（＝［Ｓ（０）、Ｓ（２）、・・・、Ｓ（２ｋ）、・・・、Ｓ（１４）］）と、奇数番目のビットで構成される８ビットのデータ列Ｓ２（＝［Ｓ（１）、Ｓ（３）、・・・、Ｓ（２ｋ−１）、・・・、Ｓ（１５）］）とに分離する（ステップＳ１０）。分離部３００は、データ列Ｓ１を付加部３０１に出力し、データ列Ｓ２を変換部３０２に出力する。
【００６６】
付加部３０１は、２ビットの制御ビット“０”、“１”をデータ列Ｓ１の先頭に付加し１０ビットのデータ列Ｃａ１２（＝［０、１、Ｓ（０）、Ｓ（２）、・・・Ｓ（１２）、Ｓ（１４）］）を生成し、変換部３０２はデータ列Ｓ２を８Ｂ／１０Ｂ符号化方式を用いて符号化して１０ビットのデータ列Ｃａ２（＝［Ｃａ２（０）、Ｃａ２（１）、Ｃａ２（２）、・・・、Ｃａ２（９）］）を生成する（ステップＳ１５）。付加部３０１は生成したデータ列Ｃａ１２をディスパリティ制御部３０５及び反転部３０６に出力し、変換部３０２は生成したデータ列Ｃａ２をディスパリティ制御部３０５及び合成部３０４に出力する。
【００６７】
ディスパリティ制御部３０５の合成部４００は、付加部３０１より入力されたデータ列Ｃａ１２と、変換部３０２より入力したデータ列Ｃａ２とから２０ビットのデータ列Ｃｏを生成する（ステップＳ２０）。合成部４００は、生成したデータ列Ｃｏ（＝［０、Ｃａ２（０）、１、Ｃａ２（１）、Ｓ（０）、Ｃａ２（２）、・・・、Ｓ（１４）、Ｃａ２（９）］）を算出部４０１に出力する。
【００６８】
ディスパリティ制御部３０５の算出部４０１は、合成部４００から入力されたデータ列Ｃｏから候補符号語ディスパリティを算出する（ステップＳ２５）。算出部４０１は算出した候補符号語ディスパリティを判定部４０２へ出力する。
ディスパリティ制御部３０５の判定部４０２は、候補符号語ディスパリティと累積ディスパリティ記憶部４０３に記憶された累積ディスパリティに基づいて、データ列Ｃａ１２を反転させるか、または正転させるかを判定する（ステップＳ３０）。
【００６９】
反転部３０６は、ステップＳ３０における判定処理による判定結果に基づいて、付加部３０１から入力されたＣａ１２に対して反転させる、または正転させる処理を行うことにより、１０ビットのデータ列Ｃａ１（＝［Ｃａ１（０）、Ｃａ１（２）、・・・、Ｃａ１（９）］）を生成する（ステップＳ３５）。
合成部３０４は、反転制御処理が施されたデータ列Ｃａ１（＝［Ｃａ１（０）、Ｃａ１（２）、・・・、Ｃａ１（９）］）と、変換部３０２から入力されたデータ列Ｃａ２（＝［Ｃａ２（０）、Ｃａ２（１）、・・・、Ｃａ２（９）］）とから互いのビットが交互になるように配置した２０ビットの符号化データ列Ｃ（＝［Ｃａ１（０）、Ｃａ２（０）、Ｃａ１（１）、Ｃａ２（１）、・・・Ｃａ１（９）、Ｃａ２（９）］）を生成する（ステップＳ４０）。
【００７０】
４値変調部１０２、増幅器１０３及び発光素子１０４は、符号化データ列Ｃに対して、４値の振幅変調処理、増幅処理及び光信号への変換処理を施して送信すべき光信号を生成し、生成した光信号を受信装置１１０に送信する（ステップＳ４５）。
（２）判定処理
ここでは、図５に示すステップＳ３０で行われる判定処理について、図６に示す流れ図を用いて説明する。
【００７１】
判定部４０２は、累積ディスパリティ記憶部４０３に保持されている累積ディスパリティと算出部４０１から入力された候補符号語ディスパリティを乗算しＤ＿ｃｈｋを算出する（ステップＳ５００）。
判定部４０２は、算出されたＤ＿ｃｈｋの値が０より大きい値であるか否かを判定する（ステップＳ５０１）。
【００７２】
Ｄ＿ｃｈｋの値が０より大きいと判定された場合（ステップＳ５０１における「Ｙｅｓ」）、判定部４０２は、反転制御情報として“０”を反転部３０６へ出力し（ステップＳ５０２）、候補符号語ディスパリティの符号を反転させた値を符号語ディスパリティとする（ステップＳ５０４）。
Ｄ＿ｃｈｋが０より大きくない、つまり０以下であると判定された場合（ステップＳ５０１における「Ｎｏ」）、判定部４０２は、反転制御情報として“１”を反転部３０６へ出力し（ステップＳ５０３）、入力された候補符号語ディスパリティをそのまま符号語ディスパリティとする（ステップＳ５０５）。
【００７３】
判定部４０２は、ステップＳ５０４及びＳ５０５で得られた符号語ディスパリティを、累積ディスパリティ記憶部４０３で記憶されている累積ディスパリティに加算することで、当該累積ディスパリティを更新する（ステップＳ５０６）。
（３）反転処理
ここでは、図５に示すステップＳ３５で行われる反転処理について、図７に示す流れ図を用いて説明する。
【００７４】
反転部３０６は、ディスパリティ制御部３０５から入力された反転制御情報の値が“０”であるか否かを判定する（ステップＳ６００）。
反転制御情報の値が“０”であると判定された場合（ステップＳ６００における「Ｙｅｓ」）、反転部３０６は、付加部３０１から入力されたデータ列Ｃａ１２を反転させてＣａ１を生成し、生成したＣａ１を合成部３０４に出力する（ステップＳ６０１）。
【００７５】
反転制御情報の値が“０”でない、つまり“１”であると判定された場合（ステップＳ６００における「Ｎｏ」）、反転部３０６は、付加部３０１から入力されたデータ列Ｃａ１２を正転させてＣａ１を生成し、生成したＣａ１を合成部３０４に出力する（ステップＳ６０２）。ここで、図中に示す演算子〜は、反転を示す。例えば、〜Ａは、データ列Ａを反転させたものを示す。
【００７６】
（４）復号処理
ここでは、受信装置１１０で行われる復号処理について、簡単に説明する。
なお、ここでは、受信した信号に対して４値復調までの処理が行われているものとする。
復号処理は、以下に示すように、符号化処理と逆の手順により行なわれる。
【００７７】
受信装置１１０の復号部１１４は、４値復調された復調データ列を偶数ビット及び奇数ビットに分離する。
復号部１１４は、偶数番目のビットからなるデータ列を１０ビット毎に複数のブロックに分離し、各ブロックに付加された識別符号に基づいて、当該ブロックが反転されたものであるか否かを判定する。ここで、識別符号とは、送信装置１００にて、データ列Ｓ１に付加された２ビットの制御ビットで、反転制御が施された結果を示すものである。
【００７８】
復号部１１４は、反転されていると判定されたブロックについては、先頭２ビットに配された制御ビットを除いたデータ列を反転することによりデータ列Ｓ１を再生する。
正転されていると判定されたブロックについては、先頭２ビットに配された制御ビットを除いたデータ列を抽出することによりデータ列Ｓ１を再生する。
一方、復号部１１４は、奇数番目のビットからなるデータ列を１０ビット毎に複数のブロックに分離し、各ブロック（１０ビット長のデータ列）に対して８Ｂ／１０Ｂ復号処理を施すことによりデータ列Ｓ２を再生する。
【００７９】
復号部１１４は、データ列Ｓ１とデータ列Ｓ２をそれぞれ交互に並べ替えることによって送信データＳを再生する。
１．５  動作例
本発明の実施の形態における動作例について、図８及び図９を用いて説明する。図８は符号化部１０１に入力するデータ列の一例である。
【００８０】
図８は、合計６４ビットの入力データを１６ビット単位で区切ったデータ列＃１から＃４を表している。
図９は、図８に示すデータ列を＃１のブロックから順に＃４のブロックまで符号化部１０１に入力したときの符号化部１０１内部の動作例を示している。
以降では、符号化部１０１における動作例について、図９を用いて順に説明する。
【００８１】
（データ列＃１）
先ず、分離部３００には、データ列＃１（Ｓ＝１１００１０１００１０１０１００）が入力される。
そして、分離部３００で、データ列Ｓ１（＝１０１１００００）と、データ列Ｓ２（＝１０００１１１０）に分けられる。
【００８２】
付加部３０１は、データ列Ｓ１に対して２ビットの制御ビット列“０１”をＳ１の先頭に付加し、データ列Ｃａ１２（＝０１１０１１００００）を生成する。
一方、変換部３０２は、データ列Ｓ２に８Ｂ／１０Ｂ符号化を施して１０ビットのデータ列Ｃａ２（＝０１１１００１１０１）を生成する。
ディスパリティ制御部３０５は、データ列Ｃａ１２とＣａ２とから候補符号語ディスパリティを算出する。ここでは、候補符号語ディスパリティの値は−２となる。
【００８３】
判定部４０２は、候補符号語ディスパリティの値が−２であり、累積ディスパリティの値が初期値０であるので、候補符号語ディスパリティと累積ディスパリティを乗算することによりＤ＿ｃｈｋとして０を算出する。Ｄ＿ｃｈｋの値が０であるので、判定部４０２はデータ列Ｃａ１２に正転処理を行うと判定し、反転制御情報として１を反転部３０６へ出力し、符号語ディスパリティを−２として累積ディスパリティの値を−２に更新する。
【００８４】
反転部３０６は、ディスパリティ制御部３０５から入力された反転制御情報の値が１であるためデータ列Ｃａ１２は反転せず、Ｃａ１（＝０１１０１１００００）を合成部３０４に出力する。合成部３０４は、Ｃａ１とＣａ２を合成して、符号化データ列Ｃ（＝００１１１１０１１０１００１０１０００１）を生成し、生成した符号化データ列Ｃを４値変調部１０２に出力する。
【００８５】
（データ列＃２）
分離部３００に、データ列＃２（Ｓ＝０１０１１１００１００１１０００）が入力される。
そして、分離部３００で、データ列Ｓ１（＝００１０１０１０）と、データ列Ｓ２（＝１１１００１００）に分けられる。
【００８６】
付加部３０１は、データ列Ｓ１に対して２ビットの制御ビット列“０１”をＳ１の先頭に付加し、データ列Ｃａ１２（＝０１００１０１０１０）を生成する。
一方、変換部３０２は、データ列Ｓ２に８Ｂ／１０Ｂ符号化を施して１０ビットのデータ列Ｃａ２（＝００１０１０１１１０）を生成する。
ディスパリティ制御部３０５は、データ列Ｃａ１２とＣａ２とから候補符号語ディスパリティを算出する。この場合、候補符号語ディスパリティの値は−８となる。
【００８７】
判定部４０２は、候補符号語ディスパリティの値が−８であり、累積ディスパリティの値が−２であるので、候補符号語ディスパリティと累積ディスパリティを乗算することによりＤ＿ｃｈｋとして１６を算出する。Ｄ＿ｃｈｋの値が１６であるので、判定部４０２はデータ列Ｃａ１２に反転処理を行うと判定し、反転制御情報として０を出力し、符号語ディスパリティを８として累積ディスパリティを６に更新する。
【００８８】
反転部３０６は、反転制御情報の値が０であるためデータ列Ｃａ１２を反転して、Ｃａ１（＝１０１１０１０１０１）を生成し、合成部３０４へ出力する。
合成部３０４は、データ列Ｃａ１とＣａ２を合成して符号化データ列Ｃ（＝１０００１１１００１１００１１１０１１０）を生成し、４値変調部１０２に出力する。
（データ列＃３）
分離部３００に、データ列＃３（Ｓ＝１１０１１０１００００１０１０１）が入力される。
【００８９】
分離部３００で、データ列Ｓ１＝１０１１００００と、データ列Ｓ２＝１１０００１１１とに分けられる。
付加部３０１は、データ列Ｓ１と２ビットの制御ビット“０１”とから、データ列Ｃａ１２（＝０１１０１１００００）を生成する。
一方、変換部３０２は、データ列Ｓ２に対して、８Ｂ／１０Ｂ符号化を施して１０ビットの出力Ｃａ２（＝１１１００００１１０）を生成する。
【００９０】
ディスパリティ制御部３０５は、データ列Ｃａ１２とＣａ２とから候補符号語ディスパリティを算出する。この場合、候補符号語ディスパリティの値は−４となる。
判定部４０２は、候補符号語ディスパリティの値が−４であり、累積ディスパリティの値が６であるので、候補符号語ディスパリティと累積ディスパリティを乗算することによりＤ＿ｃｈｋとして−２４を算出する。Ｄ＿ｃｈｋの値が−２４であるので、判定部４０２はデータ列Ｃａ１２に正転処理を行うと判定し、反転制御情報として１を出力し、符号語ディスパリティを−４として累積ディスパリティを２に更新する。
【００９１】
反転部３０６は、反転制御情報の値が１であるためデータ列Ｃａ１２を反転せず、Ｃａ１（＝０１１０１１００００）を合成部３０４に出力する。
合成部３０４は、Ｃａ１とＣａ２を合成して符号化データ列Ｃ（＝０１１１１１００１０１００００１０１００）を生成して、４値変調部１０２に出力する。
（データ列＃４）
分離部３００に、データ列＃４（Ｓ＝１０１１０１１０１１０１００１０）が入力される。
【００９２】
そして、分離部３００で、データ列Ｓ１＝１１０１１００１と、データ列Ｓ２＝０１１０１１００とに分けられる。
付加部３０１は、データ列Ｓ１と２ビットの制御ビット“０１”とからデータ列Ｃａ１２（＝０１１１０１１００１）を生成する。
一方、変換部３０２は、データ列Ｓ２に対して８Ｂ／１０Ｂ符号化を施して１０ビットのデータ列Ｃａ２（＝１０１００１１１００）を生成する。
【００９３】
ディスパリティ制御部３０５は、データ列Ｃａ１２とＣａ２とから、候補符号語ディスパリティを算出する。ここでは、候補符号語ディスパリティの値は４となる。
判定部４０２は、候補符号語ディスパリティの値が４であり、累積ディスパリティの値が２であるので、候補符号語ディスパリティと累積ディスパリティを乗算することによりＤ＿ｃｈｋとして８を算出する。ｃｈｋの値が８であるので、判定部４０２はデータ列Ｃａ１２に反転処理を行うと判定し、反転制御情報として０を出力し、符号語ディスパリティを−４として累積ディスパリティを−２に更新する。
【００９４】
反転部３０６は、反転制御情報の値が０であるためデータ列Ｃａ１２を反転し、Ｃａ１（＝１０００１００１１０）を生成し、合成部３０４に出力する。
合成部３０４は、データ列Ｃａ１とＣａ２を合成して符号化データ列Ｃ（＝０１１０１１１０００１１１１０１００１０）を生成して、４値変調部１０２に出力する。
図１０は、図８に示すデータ列から符号化部１０１で算出される符号語ディスパリティと累積ディスパリティである。本実施の形態で開示される符号化部１０１で出力される符号語ディスパリティの最大値及び最小値は±２０である。符号語ディスパリティは判定部４０２において現時点で保持されている累積ディスパリティと同じ符号とならないよう制御されるため、更新される累積ディスパリティの最大値及び最小値は±２０の範囲に制限される。
【００９５】
１．６  ２値の振幅変調について
ここでは、送信装置１００が、２値の振幅変調を施す場合について説明する。
送信装置１００は、受信装置１１０から２値の振幅変調が指定された変調指定データを受け取ると、付加部３０１及び反転制御部３０３が動作しないよう制御する。つまり、符号化部１０１は、分離部３００、変換部３０２及び合成部３０４のみが動作する。
【００９６】
分離部３００は、２値の振幅変調が行われる場合には、送信対象である１６ビットのデータ列Ｓを受け付けると、受け付けたデータ列Ｓを変換部３０２へ出力する。
変換部３０２は、受け付けたデータ列Ｓに対して、８Ｂ／１０Ｂ符号化を施す。この場合、データ列Ｓは８ビット毎に２つのデータ列に区切られて、８Ｂ／１０Ｂ符号化が施され、１０ビット長の２つのデータ列が合成部３０４へ出力される。
【００９７】
合成部３０４では、８Ｂ／１０Ｂが施された１０ビットのデータ列を４値変調部１０２へ出力する。
４値変調部１０２は、合成部３０４から受け取ったデータ列Ｓを１ビット毎のシンボルに区切って、各シンボルを上位ビットとし、固定ビット“０”を下位ビットに割り当てて、２ビットのシンボルに変換し、変換されたシンボル毎に図２のマッピングに応じた電圧レベルを有する電気信号を出力する。
【００９８】
以降、増幅器１０３及び発光素子１０４における動作は、同様であるので、ここでの説明は省略する。
また、受信装置１１０における復号処理についても、２値の振幅変調を復号する従来の処理と同様であるので、ここでの説明は省略する。
１．７  第１の実施の形態のまとめ
ディスパリティ制御部３０５における制御により、累積ディスパリティの正負の符号と符号語ディスパリティの正負の符号とは逆になるので、ブロック単位でみるとディスパリティが発生していても、複数ブロック単位でみると各ブロックのディスパリティは互いに相殺されて０に近づく。その結果、同じ正負の符号を有するディスパリティが連続することによって、ＤＣオフセットが発生し、受信装置側で正しい基準値を生成することができずに受信誤りが発生することを防ぐことができる。つまりは、４値の振幅変調を行った場合でもＤＣバランスが保証されることとなる。
【００９９】
データ列Ｃａ２において同じ値が連続しない箇所では、データ列Ｃａ１及びデータ列Ｃａ２を多値化した場合においても同一の値が連続しないので、多値符号において同じ値が連続する長さを所定値以下とすることができる。その結果、同じ値の多値符号が所定値以下とすることによって、受信装置１１０中の増幅器１１２でのクロック再生が容易となり、受信装置側で同期が失われて受信誤りが発生することを防ぐことができる。これにより、ランレングスが保証されることとなる。
【０１００】
２．第２の実施の形態
以下、本発明を実施するための第２の実施の形態について図面を参照しつつ、第１の実施の形態と異なる箇所を中心に説明する。なお、同一の動作を行う構成要素については、同一の符号を用いて説明する。
第２の実施の形態における送受信システム１ａは、図１１にて示すように、送信装置１００ａと受信装置１１０ａとから構成されている。
【０１０１】
以下においては第１の実施の形態と同様に、送信装置１００ａが送信対象のデータを送信する前に、初期化の処理として、互いの装置は通信を確立するためのデータを送受信する。そして、受信装置１１０ａは、第１の実施の形態と同様に、２値及び４値の振幅変調の何れかを指定する変調指定データを送信装置１００ａへ送信する。送信装置１００ａは、受信した変調指定データが指定する振幅変調により送信対象のデータに対して変調を施すものとする。
【０１０２】
２．１  送信装置１００ａの構成
送信装置１００ａは、図１１に示すように、符号化部１０１ａと、４値変調部１０２と、増幅器１０３と、発光素子１０４とから構成されている。
ここでは、第１の実施の形態における構成と異なる符号化部１０１ａについて説明する。なお、その他の構成（４値変調部１０２、増幅器１０３及び発光素子１０４）については第１の実施の形態と同様であるため、説明を省略する。
【０１０３】
（１）符号化部１０１ａ
符号化部１０１ａは、図１２に示すように、分離部３００ａ、付加部３０１ａ、３０１ｂ、変換部３０２ａ、反転制御部３０３ａ及び合成部３０４ａを備える。また、反転制御部３０３ａは、図１２に示すように、ディスパリティ制御部３０５ａ、反転部３０６ａ及び制御ビット選択部１００２を備える。
【０１０４】
変調指定データが４値の振幅変調を示す場合には、分離部３００ａ、付加部３０１ａ、３０１ｂ、変換部３０２ａ、反転制御部３０３ａ及び合成部３０４ａの全てが動作するよう制御される。
（１−１）分離部３００ｄ
符号化部１０１ａに入力された１６ビットデータ列Ｓは、分離部３００ａに入力される。分離部３００ａは、入力された１６ビットのデータ列Ｓ（＝［Ｓ（０）、Ｓ（１）、・・・、Ｓ（ｋ）、・・・、Ｓ（１５）］）を偶数番目のビットで構成される８ビットのデータ列Ｓ１（＝［Ｓ（０）、Ｓ（２）、・・・、Ｓ（２ｋ）、・・・、Ｓ（１４）］）と、奇数番目のビットで構成される８ビットのデータ列Ｓ２（＝［Ｓ（１）、Ｓ（３）、・・・、Ｓ（２ｋ−１）、・・・、Ｓ（１５）］）に分離して、８ビットのデータ列Ｓ１を変換部３０２ａに出力し、８ビットのデータ列Ｓ２を付加部３０１ａ及び３０１ｂへそれぞれ出力する。
【０１０５】
（１−２）変換部３０２ａ
変換部３０２ａは、分離部３００ａから入力されたデータ列Ｓ１をランレングスを一定値以下に抑える符号化方式を用いて符号化する。ここでは、第１の実施の形態の場合と同様に、８Ｂ／１０Ｂ符号化方式を用いてデータ列Ｓ１を符号化を行うものとする。
変換部３０２ａは、８ビットのデータ列Ｓ１を８Ｂ／１０Ｂ符号化方式を用いて符号化することにより、１０ビットのデータ列Ｃｂ１１（＝［Ｃｂ１１（０）、Ｃｂ１１（１）、・・・、Ｃｂ１１（９）］）を生成し、生成したデータ列Ｃｂ１１をディスパリティ制御部３０５ａ及び反転部３０６ａに出力する。このような構成にすることでランレングスを一定値以下に抑え、受信装置が備えるの増幅器でのクロック再生が容易となる。
【０１０６】
（１−３）付加部３０１ａ、３０１ｂ
付加部３０１ａは、分離部３００ａから入力されたデータ列Ｓ２に２ビットの制御ビット“０”、“１”を付加し、１０ビットのデータ列Ｃｂ２１（＝［０、１、Ｓ（１）、Ｓ（３）、・・・、Ｓ（２ｋ−１）、・・・、Ｓ（１５）］）を生成し、生成したデータ列Ｃｂ２１をディスパリティ制御部３０５ａ及び制御ビット選択部１００２へ出力する。
【０１０７】
付加部３０１ｂは入力されたデータ列Ｓ２に付加部３０１ａで付加される２ビットの制御ビットと異なる制御ビット“１”、“１”を付加し、１０ビットのデータ列Ｃｂ２２（＝［１、１、Ｓ（１）、Ｓ（３）、・・・、Ｓ（２ｋ−１）、・・・、Ｓ（１５）］）を生成し、生成したデータ列Ｃｂ２２をディスパリティ制御部３０５ａ及び制御ビット選択部１００２へ出力する。
【０１０８】
（１−４）反転制御部３０３ａ
反転制御部３０３ａは、ＤＣバランスを保証するために、入力されたデータ列Ｃｂ１１に対して、反転及び正転の何れかの制御を行う。
反転制御部３０３ａのディスパリティ制御部３０５ａが、データ列Ｃｂ１１に対して、反転させるか正転させるかの判断を行う。そして、反転部３０６ａが、ディスパリティ制御部３０５ａの判断結果に基づいて、データ列Ｃａ１１に対して反転及び正転の何れかの制御を行う
以下、ディスパリティ制御部３０５ａ及び反転部３０６ａについて説明する。
【０１０９】
（１−４−１）ディスパリティ制御部３０５ａ
ディスパリティ制御部３０５ａは、入力されたデータ列Ｃｂ１１、Ｃｂ２１、Ｃｂ２２に基づいて、データ列Ｃｂ１１を反転させるか、または正転させるかを判定し、判定結果に応じて反転制御情報を生成し、生成した反転制御情報を反転部３０６ａ及び制御ビット選択部１００２に出力する。
【０１１０】
ディスパリティ制御部３０５ａは、図１３に示すように、反転部１１０１、合成部４００ａ、４００ｂ、算出部４０１ａ、４０１ｂ、判定部４０２ａ、累積ディスパリティ記憶部４０３ａを備える。
（累積ディスパリティ記憶部４０３ａ）
累積ディスパリティ記憶部４０３ａは、第１の実施の形態における累積ディスパリティ記憶部４０３と同様であるので、ここでの説明は省略する。
【０１１１】
（反転部１１０１）
反転部１１０１は、入力されたデータ列Ｃｂ１１を反転し、Ｃｂ１１’（＝  ［Ｃｂ１１’（０）、Ｃｂ１１’（１）、・・・、Ｃｂ１１’（９）］）を生成する。反転部１１０１は、生成したＣｂ１１’を合成部４００ｂに出力する。
（合成部４００ａ、４００ｂ）
合成部４００ａは変換部３０２ａから入力されたデータ列Ｃｂ１１（＝［Ｃｂ１１（０）、Ｃｂ１１（１）、・・・、Ｃｂ１１（９）］）と付加部３０１ａから入力されたデータ列Ｃｂ２１（＝［０、１、Ｓ（１）、Ｓ（３）、・・・、Ｓ（２ｋ−１）、・・・、Ｓ（１５）］）を互いに交互になるように２０ビットのデータ列Ｃｂ３１（＝［Ｃｂ１１（０）、０、Ｃｂ１１（１）、１、・・・、Ｓ（１５）］）を生成する。合成部４００ａは、生成したデータ列Ｃｂ３１を算出部４０１ａに出力する。
【０１１２】
合成部４００ｂは、反転部１１０１から入力されたデータ列Ｃｂ１１’（＝［Ｃｂ１１’（０）、Ｃｂ１１’（１）、・・・、Ｃｂ１１’（９）］）と付加部３０１ｂから入力されたデータ列Ｃｂ２２（＝［１、１、Ｓ（１）、Ｓ（３）、・・・、Ｓ（２ｋ−１）、・・・、Ｓ（１５）］）を互いに交互になるように２０ビットのデータ列Ｃｂ３２（＝［Ｃｂ１１’（０）、１、Ｃｂ１１’（１）、１、・・・、Ｓ（１５）］）を生成する。合成部４００ｂは生成したＣｂ３２を算出部４０１ｂに出力する。
【０１１３】
（算出部４０１ａ、４０１ｂ）
算出部４０１ａは合成部４００ａから入力されたデータ列Ｃｂ３１を１シンボル（２ビット）毎に区切り、区切られた１シンボル毎にシンボルの値に対応するディスパリティを求め、求めた１０シンボル分のディスパリティの総和を正転符号語ディスパリティとして算出する。本実施の形態では、４値変調部１０２のマッピングパターンに合わせて、シンボル値“００”にはディスパリティ＝−３を、“０１”にはディスパリティ＝−１を、“１１”にはディスパリティ＝＋１を、“１０”にはディスパリティ＝＋３を対応付けている。算出部４０１ａは算出した正転符号語ディスパリティを判定部４０２ａへ出力する。
【０１１４】
算出部４０１ｂは合成部４００ｂから入力されたデータ列Ｃｂ３２を算出部４０１ａと同様に１シンボル（２ビット）毎に区切り、区切られた１シンボル毎にシンボルの値に対応するディスパリティを求め、求めた１０シンボル分のディスパリティの総和を反転符号語ディスパリティとして算出する。本実施の形態では、４値変調部１０２のマッピングパターンに合わせて、シンボル値“００”にはディスパリティ＝−３を、“０１”にはディスパリティ＝−１を、“１１”にはディスパリティ＝＋１を、“１０”にはディスパリティ＝＋３を対応付けている。算出部４０１ｂは算出した反転符号語ディスパリティを判定部４０２ａへ出力する。
【０１１５】
（判定部４０２ａ）
判定部４０２ａは算出部４０１ａから入力された正転符号語ディスパリティと算出部４０１ｂから入力された反転符号語ディスパリティと累積ディスパリティ記憶部４０３ａに記憶された累積ディスパリティに基づいて、データ列Ｃｂ１１を反転部３０６ａにおいて反転させるか、または正転させるかを判定する。
【０１１６】
判定部４０２ａは、算出部４０１ａから入力された正転符号語ディスパリティと算出部４０１ｂから入力された反転符号語ディスパリティと累積ディスパリティ記憶部４０３に記憶された累積ディスパリティに基づいてＣｂ２１またはＣｂ２２のどちらか一方のデータ列を選択する。
具体的には、判定部４０２ａは、累積ディスパリティと正転符号語ディスパリティの総和の絶対値が累積ディスパリティと反転符号語ディスパリティの総和の絶対値よりも小さい場合、データ列Ｃｂ１１を反転部３０６ａにおいて正転させ、制御ビット選択部１００２にＣｂ２１を選択させると判定する。一方、判定部４０２ａは、累積ディスパリティと正転符号語ディスパリティの総和の絶対値が累積ディスパリティと反転符号語ディスパリティの総和の絶対値よりも大きい場合、データ列Ｃｂ１１を反転部３０６ａにおいて反転させ、制御ビット選択部１００２にＣｂ２２を選択させると判定する。なお、反転部３０６ａ及び制御ビット選択部１００２については後述する。
【０１１７】
判定部４０２ａは、データ列Ｃｂ１１を反転させるか、または正転させるかの判定結果に応じて、反転制御情報及び符号語ディスパリティを生成する。反転制御情報の値は、データ列Ｃｂ１１を反転させる場合は“０”に設定され、データ列Ｃｂ１１を正転させる場合は“１”に設定される。また、符号語ディスパリティには、データ列Ｃｂ１１を反転させる場合は反転符号語ディスパリティの値が設定され、データ列Ｃｂ１１を正転させる場合には正転符号語ディスパリティの値がそのまま設定される。判定部４０２ａは、生成した反転制御情報を反転部３０６ａ及び制御ビット選択部１００２へ出力し、生成した符号語ディスパリティを、累積ディスパリティ記憶部４０３ａで記憶されている累積ディスパリティに加算することで、当該累積ディスパリティを更新する。
【０１１８】
（１−４−２）反転部３０６ａ
反転部３０６ａは、変換部３０２ａから入力されたデータ列Ｃｂ１１に対し、ディスパリティ制御部３０５ａから入力された反転制御情報に応じて反転させる、または正転させる処理を行うことにより１０ビットのデータ列Ｃｂ１を生成する。
反転部３０６ａは、生成したデータ列Ｃｂ１を合成部３０４ａに出力する。
【０１１９】
具体的には、反転部３０６ａは、反転制御情報が値１である場合には、データ列Ｃｂ１１を正転させ、反転制御情報が値０である場合には、データ列Ｃｂ１１を反転させる。
（１−４−３）制御ビット選択部１００２
制御ビット選択部１００２は、付加部３０１ａから入力されたＣｂ２１及び付加部３０１ｂから入力されたＣｂ２２に対して、ディスパリティ制御部３０５ａから入力された反転制御情報に応じて、データ列Ｃｂ２１またはＣｂ２２どちらかを選択し、選択したデータ列をＣｂ２として合成部３０４ａに出力する。
【０１２０】
具体的には、制御ビット選択部１００２は、反転制御情報が値１である場合には、データ列Ｃｂ２１を選択し、反転制御情報が値０である場合には、データ列Ｃｂ２２を選択する。
（１−５）合成部３０４ａ
合成部３０４ａは、反転部３０６ａから入力されたデータ列Ｃｂ１及び制御ビット選択部１００２より入力されたデータ列Ｃｂ２を実施の形態１と同様に、交互になるように配置した２０ビットの符号化データ列Ｃを生成する。合成部３０４ａは生成した符号化データ列Ｃを４値変調部１０２に出力する。
【０１２１】
２．２  受信装置１１０ａ
受信装置１１０ａは、図１１に示すように、受光素子１１１と、増幅器１１２と、４値復調部１１３と、復号部１１４ａとから構成されている。
復号部１１４ａは、復調されたデータ列に対して符号化部１０１ａで行った、４値の振幅変調に係る符号化処理と逆の処理である復号処理を行うことにより、送信装置１００ａから送信された送信データ列Ｓを再生する。
【０１２２】
なお、その他の構成（受光素子１１１、増幅器１１２及び４値復調部１１３）については第１の実施の形態と同様であるため、説明を省略する。
２．３  動作
ここでは、第２の実施の形態における送信装置１００ａ及び受信装置１１０ａでの処理について説明する。
【０１２３】
（１）送信処理
送信装置１００ａがデータに対して４値の振幅変調を施して、振幅変調されたデータを受信装置１１０ａへ送信する処理の動作について、図１４に示す流れ図を用いて説明する。
分離部３００ａは、送信対象である１６ビットのデータ列Ｓ（＝［Ｓ（０）、Ｓ（１）、・・・、Ｓ（ｋ）、・・・、Ｓ（１５）］）を受け付け（ステップＳ７００）、受け付けたデータ列Ｓを偶数番目のビットで構成される８ビットのデータ列Ｓ１（＝［Ｓ（０）、Ｓ（２）、・・・、Ｓ（２ｋ）、・・・、Ｓ（１４）］）と、奇数番目のビットで構成される８ビットのデータ列Ｓ２（＝［Ｓ（１）、Ｓ（３）、・・・、Ｓ（２ｋ−１）、・・・、Ｓ（１５）］）とに分離する（ステップＳ７０５）。分離部３００ａは、データ列Ｓ１を変換部３０２ａに出力し、データ列Ｓ２を付加部３０１ａ及び３０１ｂに出力する。
【０１２４】
変換部３０２ａはデータ列Ｓ１を８Ｂ／１０Ｂ符号化方式を用いて符号化して１０ビットのデータ列Ｃｂ１１（＝［Ｃｂ１１（０）、Ｃｂ１１（１）、・・・、Ｃｂ１１（９）］）を生成し、付加部３０１ａは２ビットの制御ビット“０”、“１”をデータ列Ｓ２の先頭に付加し１０ビットのデータ列Ｃｂ２１（＝［０、１、Ｓ（０）、Ｓ（２）、・・・Ｓ（１２）、Ｓ（１４）］）を生成し、付加部３０１ｂは２ビットの制御ビット“１”、“１”をデータ列Ｓ２の先頭に付加し１０ビットのデータ列Ｃｂ２２（＝［１、１、Ｓ（０）、Ｓ（２）、・・・Ｓ（１２）、Ｓ（１４）］）を生成する（ステップＳ７１０）。変換部３０２ａは生成したデータ列Ｃｂ１１をディスパリティ制御部３０５ａ及び合成部３０４ａに出力し、付加部３０１ａは生成したデータ列Ｃｂ２１をディスパリティ制御部３０５ａ及び制御ビット選択部１００２に出力し、付加部３０１ｂは生成したデータ列Ｃｂ２２をディスパリティ制御部３０５ａ及び制御ビット選択部１００２に出力する。
【０１２５】
ディスパリティ制御部３０５ａの反転部１１０１は、変換部３０２ａより入力されたデータ列Ｃｂ１１を反転して、データ列Ｃｂ１１’（＝  ［Ｃｂ１１’（０）、Ｃｂ１１’（１）、・・・、Ｃｂ１１’（９）］）を生成する（ステップＳ７１５）。反転部１１０１は、生成したデータ列Ｃｂ１１’を合成部４００ｂに出力する。
ディスパリティ制御部３０５ａの合成部４００ａは、付加部３０１ａより入力されたデータ列Ｃｂ２１と、変換部３０２ａより入力されたデータ列Ｃｂ１１とから２０ビットのデータ列Ｃｂ３１（＝［Ｃｂ１１（０）、０、Ｃｂ１１（１）、１、・・・、Ｓ（１５）］）を生成し、合成部４００ｂは、付加部３０１ｂより入力されたデータ列Ｃｂ２２と、反転部１１０１より入力されたデータ列Ｃｂ１１’とから２０ビットのデータ列Ｃｂ３２（＝［Ｃｂ１１’（０）、１、Ｃｂ１１’（１）、１、・・・、Ｓ（１５）］）を生成する（ステップＳ７２０）。合成部４００ａはデータ列Ｃｂ３１を算出部４０１ａに出力し、合成部４００ｂはデータ列Ｃｂ３２を算出部４０１ｂに出力する。
【０１２６】
算出部４０１ａは合成部４００ａから入力されたデータ列Ｃｂ３１から正転符号語ディスパリティとして算出し、算出部４０１ｂは合成部４００ｂから入力されたデータ列Ｃｂ３２から反転符号語ディスパリティとして算出する（ステップＳ７２５）。算出部４０１ａは算出した正転符号語ディスパリティを判定部４０２ａへ出力し、算出部４０１ｂは算出した反転符号語ディスパリティを判定部４０２ａへ出力する。
【０１２７】
判定部４０２ａは、正転符号語ディスパリティと反転符号語ディスパリティと累積ディスパリティ記憶部４０３ａに記憶された累積ディスパリティとに基づいて、データ列Ｃｂ１１を反転させるか、または正転させるかを判定する（ステップＳ７３０）。
反転部３０６ａは、ステップＳ７３０における判定処理による判定結果に基づいて、変換部３０２ａより入力されたＣｂ１１に対して反転させる、または正転させる処理を行うことにより、１０ビットのデータ列Ｃｂ１（＝［Ｃｂ１（０）、Ｃｂ１（２）、・・・、Ｃｂ１（９）］）を生成する（ステップＳ７３５）。
【０１２８】
制御ビット選択部１００２は、ステップＳ７３０における判定処理による判定結果に基づいて、データ列Ｃｂ２１及びＣｂ２２のうち何れかのデータ列を選択する（ステップＳ７４０）。制御ビット選択部１００２は、選択したデータ列をデータ列Ｃｂ２として合成部３０４ａに出力する。
合成部３０４ａは、反転制御処理が施されたデータ列Ｃｂ１（＝［Ｃｂ１（０）、Ｃｂ１（２）、・・・、Ｃｂ１（９）］）と、制御ビット選択部１００２で選択されたデータ列Ｃｂ２とから互いのビットが交互になるように配置した２０ビットの符号化データ列Ｃ（＝［Ｃｂ１（０）、Ｃｂ２（０）、Ｃｂ１（１）、Ｃｂ２（１）、・・・Ｃｂ１（９）、Ｃｂ２（９）］）を生成する（ステップＳ７４５）。
【０１２９】
４値変調部１０２、増幅器１０３及び発光素子１０４は、符号化データ列Ｃに対して、４値の振幅変調処理、増幅処理及び光信号への変換処理を施して送信すべき光信号を生成し、生成した光信号を受信装置１１０ａに送信する（ステップＳ７５０）。
（２）判定処理
ここでは、図１４に示すステップＳ７３０で行われる判定処理について、図１５に示す流れ図を用いて説明する。
【０１３０】
判定部４０２ａは、累積ディスパリティ記憶部４０３ａで記憶されている累積ディスパリティに算出部４０１ａから入力された正転符号語ディスパリティを加算し、Ｄ＿ｃｈｋ１を算出する（ステップＳ１２００）。
判定部４０２ａは、累積ディスパリティ記憶部４０３ａで記憶されている累積ディスパリティに算出部４０１ｂから入力された反転符号語ディスパリティを加算し、Ｄ＿ｃｈｋ２を算出する（ステップＳ１２０１）。
【０１３１】
判定部４０２ａは、算出されたＤ＿ｃｈｋ１の絶対値｜Ｄ＿ｃｈｋ１｜と、で算出されたＤ＿ｃｈｋ２の絶対値｜Ｄ＿ｃｈｋ２｜のどちらが大きいかを判定する（ステップＳ１２０２）。
｜Ｄ＿ｃｈｋ１｜が｜Ｄ＿ｃｈｋ２｜より小さいと判定された場合（ステップＳ１２０２における「Ｙｅｓ」）、判定部４０２ａは、反転制御情報として“１”を反転部３０６ａ及び制御ビット選択部１００２に出力する（ステップＳ１２０３）。判定部４０２ａは符号語ディスパリティを正転符号語ディスパリティとし（ステップＳ１２０４）、符号語ディスパリティを累積ディスパリティ記憶部４０３ａで記憶されている累積ディスパリティに加算することで、当該累積ディスパリティを更新する（ステップＳ１２０７）。
【０１３２】
判定部４０２ａは、｜Ｄ＿ｃｈｋ１｜が｜Ｄ＿ｃｈｋ２｜より小さくない、つまり｜Ｄ＿ｃｈｋ１｜が｜Ｄ＿ｃｈｋ２｜以上であると判定した場合（ステップＳ１２０２における「Ｎｏ」）、判定部４０２ａは、反転制御情報として“０”を反転部３０６ａ及び制御ビット選択部１００２に出力する（ステップＳ１２０５）。判定部４０２ａは符号語ディスパリティを反転符号語ディスパリティとし（ステップＳ１２０４）、符号語ディスパリティを累積ディスパリティ記憶部４０３ａで記憶されている累積ディスパリティに加算することで、当該累積ディスパリティを更新する（ステップＳ１２０７）。
【０１３３】
（３）反転処理
ここでは、図１４に示すステップＳ７３５で行われる反転処理について、図１６に示す流れ図を用いて説明する。
反転部３０６ａは、ディスパリティ制御部３０５ａから入力された反転制御情報の値が“０”であるか否かを判定する（ステップＳ１２５０）。
【０１３４】
反転制御情報の値が“０”であると判定された場合（ステップＳ１２５０における「Ｙｅｓ」）、反転部３０６ａは、変換部３０２ａから入力されたデータ列Ｃｂ１１を反転させてＣｂ１を生成し、生成したＣｂ１を合成部３０４ａに出力する（ステップＳ１２５１）。
反転制御情報の値が“０”でない、つまり“１”であると判定された場合（ステップＳ１２５０における「Ｎｏ」）、反転部３０６ａは、変換部３０２ａから入力されたデータ列Ｃｂ１１を正転させてＣｂ１を生成し、生成したＣｂ１を合成部３０４ａに出力する（ステップＳ１２５２）。ここで、図中に示す演算子〜は、第１の実施の形態と同様に、反転を示す。
【０１３５】
（４）選択処理
ここでは、図１４に示すステップＳ７４０で行われる選択処理について、図１７に示す流れ図を用いて説明する。
制御ビット選択部１００２は、ディスパリティ制御部３０５ａから入力された反転制御情報が“１”であるか判定する（ステップＳ１３００）。反転制御情報が“１”と判定された場合（ステップＳ１３００における「Ｙｅｓ」）、制御ビット選択部１００２は、Ｃｂ２１をＣｂ２として合成部３０４ａに出力する（ステップＳ１３０１）。反転制御情報が“１”でない、つまり反転制御情報が“０”と判定された場合（ステップＳ１３００における「Ｎｏ」）、制御ビット選択部１００２は、Ｃｂ２２をＣｂ２として合成部３０４ａに出力する（ステップＳ１３０２）。
【０１３６】
（５）復号処理
ここでは、受信装置１１０ａで行われる復号処理について、簡単に説明する。
なお、ここでは、受信した信号に対して４値復調までの処理が行われているものとする。
復号処理は、以下に示すように、符号化処理と逆の手順により行なわれる。
【０１３７】
復号部１１４ａは、４値復調された復調データ列を偶数番目のビット及び奇数番目のビットに分離する。
復号部１１４ａは、奇数番目のビットからなるデータ列を１０ビット毎に複数のブロックに分離し、各ブロックに付加された識別符号に基づいて、当該ブロックに対応する偶数番目のビットからなる１０ビット長のブロックが反転されたものであるか否かを判定する。ここで、識別符号とは、送信装置１００ａにて、データ列Ｓ２に付加された２ビットの制御ビットの値を示すものであり、制御ビットが“０１”である場合には、対応する偶数番目のビットからなる１０ビット長のブロックは正転されたものであり、制御ビットが“１１”である場合には、対応する偶数番目のビットからなる１０ビット長のブロックは反転されたものであることを示す。
【０１３８】
復号部１１４ａは、反転されていると判定されたブロックについては、当該ブロックであるデータ列を反転し、さらに反転後のブロックに対して８Ｂ／１０Ｂ復号処理を施すことによりデータ列Ｓ１を再生する。また、復号部１１４ａは、正転されている、つまり反転されていないと判定されたブロックについては、当該ブロックに対して８Ｂ／１０Ｂ復号処理を施すことによりデータ列Ｓ１を再生する。
【０１３９】
また、復号部１１４ａは、奇数番目のビットからなる１０ビットのブロックについては、先頭２ビットに配された制御ビットを除いたデータ列を抽出することによりデータ列Ｓ２を再生する。
復号部１１４ａは、データ列Ｓ１とデータ列Ｓ２をそれぞれ交互に並べ替えることによって送信データＳを再生する。
【０１４０】
２．４  動作例
本発明の実施の形態における動作例について、図１８を用いて説明する。なお、入力されるデータ（入力データ）は、図７に示すデータと同一ものを用いる。
図１８は、図８に示すデータ列を＃１のブロックから順に＃４のブロックまで符号化部１０１ａに入力したときの符号化部１０１ａ内部の動作例を示している。
【０１４１】
以降では、符号化部１０１ａにおける動作例について、図１８を用いて順に説明する。
（データ列＃１）
先ず、分離部３００ａには、データ列＃１（Ｓ＝１１００１０１００１０１０１００）が入力される。
そして、分離部３００ａで、データ列Ｓ１（＝１０１１００００）と、データ列Ｓ２（＝１０００１１１０）とに分けられる。
【０１４２】
変換部３０２ａは、分離部３００ａから入力されたデータ列Ｓ１に対して、８Ｂ／１０Ｂ符号化を施して、１０ビットのデータ列Ｃｂ１１（＝０１１０１１１０１０）を生成する。
一方、付加部３０１ａは、分離部３００ａから入力されたデータ列Ｓ２に２ビットの制御ビット“０１”をＳ２の先頭に付加し、Ｃｂ２１（＝０１１０００１１１０）を生成する。また、付加部３０１ｂは、分離部３００ａから入力されたデータ列Ｓ２に２ビットの制御ビット“１１”をＳ２の先頭に付加し、Ｃｂ２２（＝１１１０００１１１０）を生成する。
【０１４３】
ディスパリティ制御部３０５ａは、変換部３０２ａから入力されたＣｂ１１と、付加部３０１ａから入力されたＣｂ２１と、付加部３０１ｂから入力されたＣｂ２２とから、正転符号語ディスパリティと反転符号語ディスパリティとを算出する。ここでは、正転符号語ディスパリティの値は０、反転符号語ディスパリティの値は−２となる。
判定部４０２ａは、正転符号語ディスパリティの値が０、反転符号語ディスパリティの値が−２であり、累積ディスパリティの値が初期値０であるので、累積ディスパリティと正転符号語ディスパリティを加算し、その絶対値をとることにより｜Ｄ＿ｃｈｋ１｜として０を算出する。次に判定部４０２ａは、反転符号語ディスパリティの値が−２であり、累積ディスパリティの値が初期値０であるので、累積ディスパリティと反転符号語ディスパリティを加算し、その絶対値をとることにより｜Ｄ＿ｃｈｋ２｜として２を算出する。判定部４０２ａは、｜Ｄ＿ｃｈｋ２｜より｜Ｄ＿ｃｈｋ１｜の方が小さいので、データ列Ｃｂ１１に対して正転処理を行うと判定し、反転制御情報として１を反転部３０６ａ及び制御ビット選択部１００２へ出力する。また、判定部４０２ａは、符号語ディスパリティを０として累積ディスパリティの値を０に更新する。
【０１４４】
反転部３０６ａは、ディスパリティ制御部３０５ａから出力された反転制御情報の値が１のため、変換部３０２ａから入力されたＣｂ１１を反転させずＣｂ１（＝０１１０１１００００）として合成部３０４ａに出力する。制御ビット選択部１００２はディスパリティ制御部３０５ａから入力された反転制御情報の値が１のためＣｂ２１を選択し、Ｃｂ２（＝０１１１００１１０１）として合成部３０４ａに出力する。合成部３０４ａはデータ列Ｃｂ１とＣｂ２とを合成して、符号化データ列Ｃ（＝００１１１１０１１０１００１０１０００１）を生成し、生成した符号化データ列Ｃを４値変調部１０２に出力する。
【０１４５】
（データ列＃２）
分離部３００ａにデータ列＃２（Ｓ＝０１０１１１００１００１１０００）が入力される。
分離部３００ａで、データ列Ｓ１（＝００１０１０１０）と、データ列Ｓ２（＝１１１００１００）とに分けられる。
【０１４６】
変換部３０２ａは、分離部３００ａから入力されたデータ列Ｓ１に対して、８Ｂ／１０Ｂ符号化を施して、１０ビットのデータ列Ｃｂ１１（＝０１０１０１１００１）を生成する。
一方、付加部３０１ａは分離部３００ａから入力されたデータ列Ｓ２に２ビットの制御ビット“０１”をＳ２の先頭に付加し、Ｃｂ２１（＝０１１１１００１００）を生成する。また、付加部３０１ｂは分離部３００ａから入力されたデータ列Ｓ２に２ビットの制御ビット“１１”をＳ２の先頭に付加し、Ｃｂ２２（＝１１１１１００１００）を生成する。
【０１４７】
ディスパリティ制御部３０５ａは、変換部３０２ａから入力されたＣｂ１１と、付加部３０１ａから入力されたＣｂ２１と、付加部３０１ｂから入力されたＣｂ２２とから、正転符号語ディスパリティと反転符号語ディスパリティとを算出する。ここでは、正転符号語ディスパリティの値は２、反転符号語ディスパリティの値は−４となる。
判定部４０２ａは、正転符号語ディスパリティの値が２、反転符号語ディスパリティの値が−４であり、累積ディスパリティの値が０であるので、累積ディスパリティと正転符号語ディスパリティを加算し、その絶対値をとることにより｜Ｄ＿ｃｈｋ１｜として２を算出する。次に、判定部４０２ａは、反転符号語ディスパリティの値が−４であり、累積ディスパリティの値が０であるので、累積ディスパリティと反転符号語ディスパリティを加算し、その絶対値をとることにより｜Ｄ＿ｃｈｋ２｜として４を算出する。判定部４０２ａは、｜Ｄ＿ｃｈｋ２｜より｜Ｄ＿ｃｈｋ１｜の方が小さいので、データ列Ｃｂ１１に対して正転処理を行うと判定し、反転制御情報として１を反転部３０６ａ及び制御ビット選択部１００２へ出力する。また、判定部４０２ａは、符号語ディスパリティを２として累積ディスパリティの値を２に更新する。
【０１４８】
反転部３０６ａは、ディスパリティ制御部３０５ａから出力された反転制御情報の値が１のため、変換部３０２ａから入力されたＣｂ１１を反転させずＣｂ１（＝０１０１０１１００１）として合成部３０４ａに出力する。制御ビット選択部１００２はディスパリティ制御部３０５ａから入力された反転制御情報の値が１のためＣｂ２１を選択し、Ｃｂ２（＝０１１１１００１００）として合成部３０４ａに出力する。合成部３０４ａは、Ｃｂ１とＣｂ２を合成して、符号化データ列Ｃ（＝００１１０１１１０１１０１００１００１０）を生成し、生成した符号化データ列Ｃを４値変調部１０２へ出力する。
【０１４９】
（データ列＃３）
分離部３００ａに、データ列＃３（Ｓ＝１１０１１０１００００１０１０１）が入力される。
分離部３００ａで、データ列Ｓ１（＝１０１１００００）と、データ列Ｓ２（＝１１０００１１１）とに分けられる。
【０１５０】
変換部３０２ａは、分離部３００ａから入力されたデータ列Ｓ１に対して、８Ｂ／１０Ｂ符号化を施して、１０ビットのデータ列Ｃｂ１１（＝０１１０１１１０１０）を生成する。
一方、付加部３０１ａは分離部３００から入力されたデータ列Ｓ２に２ビットの制御ビット“０１”をＳ２の先頭に付加し、Ｃｂ２１（＝０１１１０００１１１）を生成する。また、付加部３０１ｂは分離部３００から入力されたデータ列Ｓ２に２ビットの制御ビット“１１”をＳ２の先頭に付加し、Ｃｂ２２（＝１１１１０００１１１）を生成する。
【０１５１】
ディスパリティ制御部３０５ａは、変換部３０２ａから入力されたＣｂ１１と、付加部３０１ａから入力されたＣｂ２１と、付加部３０１ｂから入力されたＣｂ２２とから、正転符号語ディスパリティと反転符号語ディスパリティとを算出する。ここでは、正転符号語ディスパリティの値は６、反転符号語ディスパリティの値は−８となる。
判定部４０２ａは、正転符号語ディスパリティの値が６、反転符号語ディスパリティの値が−８であり、累積ディスパリティの値が２であるので、累積ディスパリティと正転符号語ディスパリティを加算し、その絶対値をとることにより｜Ｄ＿ｃｈｋ１｜として８を算出する。次に、判定部４０２ａは、反転符号語ディスパリティの値が−８であり、累積ディスパリティの値が２であるので、累積ディスパリティと反転符号語ディスパリティを加算し、その絶対値をとることにより｜Ｄ＿ｃｈｋ２｜として６を算出する。判定部４０２ａは、｜Ｄ＿ｃｈｋ１｜より｜Ｄ＿ｃｈｋ２｜の方が小さいので、データ列Ｃｂ１１に対して反転処理を行うと判定し、反転制御情報として０を反転部３０６ａ及び制御ビット選択部１００２へ出力する。また、判定部４０２ａは、符号語ディスパリティを−８として累積ディスパリティの値を−６に更新する。
【０１５２】
反転部３０６ａは、ディスパリティ制御部３０５ａから出力された反転制御情報の値が０のため、Ｃｂ１１を反転しＣｂ１（＝１００１０００１０１）を生成し、合成部３０４ａに出力する。
制御ビット選択部１００２は、ディスパリティ制御部３０５ａから入力された反転制御情報の値が０のためＣｂ２２を選択し、Ｃｂ２（＝１１１１０００１１１）として合成部３０４ａに出力する。
【０１５３】
合成部３０４ａは、Ｃｂ１とＣｂ２を合成して、符号化データ列Ｃ（＝１１０１０１１１００００００１１０１１１）を生成し、生成した符号化データ列Ｃを４値変調部１０２へ出力する。
（データ列＃４）
分離部３００ａにデータ列＃４（Ｓ＝１０１１０１１０１１０１００１０）が入力される。
【０１５４】
分離部３００ａで、データ列Ｓ１（＝１１０１１００１）と、データ列Ｓ２（＝０１１０１１００）とに分けられる。
変換部３０２ａは、分離部３００ａから入力されたデータ列Ｓ１に対して、８Ｂ／１０Ｂ符号化を施して、１０ビットのデータ列Ｃｂ１１（＝１００１１００１１０）を生成する。
【０１５５】
一方、付加部３０１ａは、分離部３００ａから入力されたデータ列Ｓ２に２ビットの制御ビット“０１”をＳ２の先頭に付加し、Ｃｂ２１（＝０１０１１０１１００）を生成する。また、付加部３０１ｂは、分離部３００ａから入力されたＳ２に２ビットの制御ビット“１１”をＳ２の先頭に付加し、Ｃｂ２２（＝１１０１１０１１００）を生成する。
ディスパリティ制御部３０５ａは、変換部３０２ａから入力されたＣｂ１１と、付加部３０１ａから入力されたＣｂ２１と、付加部３０１ｂから入力されたＣｂ２２とから、正転符号語ディスパリティと反転符号語ディスパリティを算出する。ここでは、正転符号語ディスパリティの値は−２、反転符号語ディスパリティの値は４となる。
【０１５６】
判定部４０２ａは、正転符号語ディスパリティの値が−２、反転符号語ディスパリティの値が４であり、累積ディスパリティの値が−６であるので、累積ディスパリティと正転符号語ディスパリティを加算し、その絶対値をとることにより｜Ｄ＿ｃｈｋ１｜として８を算出する。次に、判定部４０２ａは、反転符号語ディスパリティの値が４であり、累積ディスパリティの値が−６であるので、累積ディスパリティと反転符号語ディスパリティを加算し、その絶対値をとることにより｜Ｄ＿ｃｈｋ２｜として２を算出する。判定部４０２ａは、｜Ｄ＿ｃｈｋ１｜より｜Ｄ＿ｃｈｋ２｜の方が小さいので、データ列Ｃｂ１１に対して反転処理を行うと判定し、反転制御情報として０を反転部３０６ａ及び制御ビット選択部１００２へ出力する。また、判定部４０２ａは、符号語ディスパリティを４として累積ディスパリティの値を−２に更新する。
【０１５７】
反転部３０６ａはディスパリティ制御部３０５ａから出力された反転制御情報の値が０のため、Ｃｂ１１を反転しＣｂ１（＝０１１００１１００１）を生成して、合成部３０４ａに出力する。
制御ビット選択部１００２は、ディスパリティ制御部３０５ａから入力された反転制御情報の値が０のためＣｂ２２を選択し、Ｃｂ２（＝１１０１１０１１００）として合成部３０４ａに出力する。
【０１５８】
合成部３０４ａは、Ｃｂ１とＣｂ２を合成して、符号化データ列Ｃ（＝０１１１１００１０１１０１１０１００１０）を生成し、生成した符号化データ列Ｃを４値変調部１０２へ出力する。
図１９は、図８のデータ列の場合の符号化部１０１ａで生成される符号語ディスパリティと累積ディスパリティである。なお、本第２の実施の形態で開示される符号化部１０１ａで生成される符号語ディスパリティの最大値及び最小値は±１４である。符号語ディスパリティは、判定部４０２ａにおいて現時点で保持されている累積ディスパリティと同じ符号にならないように制御されるため、更新される累積ディスパリティの最大値及び最小値は±１４の範囲に制限される。
【０１５９】
２．５  ２値の振幅変調について
ここでは、送信装置１００ａが、２値の振幅変調を施す場合について説明する。
送信装置１００ａは、受信装置１１０ａから２値の振幅変調が指定された変調指定データを受け取ると、付加部３０１ａ、３０１ｂ及び反転制御部３０３ａが動作しないよう制御する。つまり、符号化部１０１ａは、分離部３００ａ、変換部３０２ａ及び合成部３０４のみが動作する。なお、各構成要素の動作は、第１の実施の形態において２値の振幅変調を行う場合の動作と同様であるので、ここでの説明は省略する。
【０１６０】
２．６  第２の実施の形態のまとめ
上述したように、本第２の実施の形態における累積ディスパリティの最大値及び最小値は±１４であり、第１の実施の形態における累積ディスパリティの最大値及び最小値である±２０と比較して小さいもとなっている。すなわち、本第２の実施の形態は、第１の実施の形態と比較して累積ディスパリティのダイナミックレンジを小さくし、ＤＣバランスを改善することができる。累積ディスパリティの最大値及び最小値は、符号語ディスパリティの最大値及び最小値により決定される値であり、本第２の実施の形態における符号語ディスパリティの最大値及び最小値が±１４に制限されていることが、累積ディスパリティのダイナミックレンジを小さくし、ＤＣバランスを改善することに貢献している。
【０１６１】
本第２の実施の形態における符号語ディスパリティの取り得る値の範囲が、第１の実施の形態における符号語ディスパリティの取り得る値の範囲よりも狭くなるのは、本第２の実施の形態における符号化部１０１ａが、偶数番目のビットのデータ列Ｓ１に対して８Ｂ／１０Ｂ符号化を施しているためである。８Ｂ／１０Ｂ符号化方式は、符号化された１０ビットのビット列においてランレングスが５以下となり、且つ“１”の値をとるビットの数と“０”の値をとるビットの数の差が２以下となるという特徴を備えている。４値変調部１０２に入力される各シンボルのディスパリティが正の値であるか又は負の値であるかを決定するのは偶数番目のビットであるが、本第２の実施の形態では偶数番目のビットのデータ列Ｓ１に対して８Ｂ／１０Ｂ符号化が施しているため、合成部３０４ａに入力される１０ビットのデータ列Ｃｂ１は“１”の値をとるビットの数と“０”の値をとるビットの数の差が２以下に制限されている。その結果、符号語ディスパリティが正の値をとる場合も少なくとも４個のシンボルのディスパリティは負の値となり、正の値をとる残り６個のシンボルのディスパリティと互いに相殺するため、偶数番目のビットのデータ列Ｓ１に対して８Ｂ／１０Ｂ符号化が施さない場合と比較して符号語ディスパリティが取り得る値の範囲が小さくなる。同様に、符号語ディスパリティが負の値をとる場合も少なくとも４個のシンボルのディスパリティは正の値となり、負の値となる残りの６個のシンボルのディスパリティと互いに相殺するため、偶数番目のビットのビット列Ｓ１に対して８Ｂ／１０Ｂ符号化が施さない場合と比較して符号語ディスパリティが取り得る値の範囲が小さくなる。
【０１６２】
このように、本第２の実施の形態では、４値変調部１０２に入力される各シンボルのディスパリティが正の値であるか又は負の値であるかを決定するビットのビット列に対して、８Ｂ／１０Ｂ符号化のような“１”の値をとるビットの数と“０”の値をとるビットの数の差を一定値以下に制限する符号化を施すことにより、累積ディスパリティのダイナミックレンジを小さくし、ＤＣバランスを改善することができる。
【０１６３】
３．変形例
本発明は、上記の実施の形態に限られるものではなく、例えば、次のようなものであってもよい。
３．１  第１の変形例
上記第１の実施の形態では、分離部３００は、１６ビットのデータ列Ｓ（＝［Ｓ（０）、Ｓ（１）、・・・、Ｓ（ｋ）、・・・、Ｓ（１５）］）を、偶数番目のビットで構成される８ビットのデータ列Ｓ１（＝［Ｓ（０）、Ｓ（２）、・・・、Ｓ（２ｋ）、・・・、Ｓ（１４）］）と、奇数番目のビットで構成される８ビットのデータ列Ｓ２（＝［Ｓ（１）、Ｓ（３）、・・・、Ｓ（２ｋ−１）、・・・、Ｓ（１５）］）に分離したが、これに限定されない。
【０１６４】
分離方法は、他の方法であってよい。例えば、分離部３００は、入力した１６ビットのデータ列Ｓを上位８ビットからなるデータ列Ｓ１（＝［Ｓ（０）、Ｓ（１）、Ｓ（２）、・・・、Ｓ（７）］）と、下位８ビットからなるデータ列Ｓ２（＝［Ｓ（８）、Ｓ（９）、Ｓ（１０）、・・・、Ｓ（１５）］）とに分離してもよい。
この場合、付加部３０１は、第１の実施の形態と同様に、データ列Ｓ１（＝［Ｓ（０）、Ｓ（１）、Ｓ（２）、・・・、Ｓ（７）］）に対して、制御ビット“０１”を付加して、データ列Ｃａ１２（＝［０、１、Ｓ（０）、Ｓ（１）、Ｓ（２）、・・・、Ｓ（７）］）を生成する。変換部３０２は、データ列Ｓ２（＝［Ｓ（８）、Ｓ（９）、Ｓ（１０）、・・・、Ｓ（１５）］）に対して８Ｂ／１０Ｂを施して、データ列Ｃａ２（＝［Ｃａ（０）、Ｃａ（１）、・・・、Ｃａ（９）］）を生成する。反転制御部３０３は、データ列Ｃａ１２（＝［０、１、Ｓ（０）、Ｓ（１）、Ｓ（２）、・・・、Ｓ（７）］）とデータ列Ｃａ２（＝［Ｃａ（０）、Ｃａ（１）、・・・、Ｃａ（９）］）と、累積ディスパリティを用いてデータ列Ｃａ１２を反転させるか否かを判断する。そして、反転制御部３０３は、判断結果に応じてデータ列Ｃａ１２に対して反転、若しくは正転の制御を行い、データ列Ｃａ１を生成する。合成部３０４は、第１の実施の形態と同様の動作により、データ列Ｃａ１とＣａ２とから符号化データ列Ｃを生成する。
【０１６５】
また、受信装置１１０では、第１の実施の形態と同様の手順により、データ列Ｓ１及びＳ２を再生すると、データ列Ｓ１を上位８ビットとし、データ列Ｓ２を下位８ビットとして１６ビットからなるデータ列Ｓを再生する。
また、第２の実施の形態においても、上記と同様に、分離部３００は、入力した１６ビットのデータ列Ｓを上位８ビットからなるデータ列Ｓ１（＝［Ｓ（０）、Ｓ（１）、Ｓ（２）、・・・、Ｓ（７）］）と、下位８ビットからなるデータ列Ｓ２（＝［Ｓ（８）、Ｓ（９）、Ｓ（１０）、・・・、Ｓ（１５）］）とに分離してもよい。この場合、送信装置１００ａは、分離した２つのデータ列Ｓ１（＝［Ｓ（０）、Ｓ（１）、Ｓ（２）、・・・、Ｓ（７）］）と、データ列Ｓ２（＝［Ｓ（８）、Ｓ（９）、Ｓ（１０）、・・・、Ｓ（１５）］）とから、データ列Ｃｂ１及びＣｂ２を生成し、合成部３０４ａにおいて、第２の実施の形態と同様の合成方法により、符号化データ列Ｃを生成する。受信装置１１０ａにおいては、第１の実施の形態と同様の手順により、データ列Ｓ１及びＳ２を再生すると、データ列Ｓ１を上位８ビットとし、データ列Ｓ２を下位８ビットとして１６ビットからなるデータ列Ｓを再生する。
【０１６６】
３．２  第２の変形例
上記第１及び第２の実施の形態では、８Ｂ／１０Ｂ符号化を施すデータ列と、制御ビットを付加するデータ列とは異なるものとしたが、同一のデータ列に対して、８Ｂ／１０Ｂ符号化及び制御ビットの付加を行ってもよい。
この場合における符号化部１０１ｃを図２０に示す。
【０１６７】
符号化部１０１ｃは、図２０に示すように、分離部３００ｃ、付加部３０１ｃ、変換部３０２ｃ、反転制御部３０３ｃ及び合成部３０４ｃから構成されている。また、反転制御部３０３ｃは、ディスパリティ制御部３０５ｃ及び反転部３０６ｃから構成されている。
分離部３００ｃは、２０ビットからなる送信データ列Ｓ（＝［Ｓ（０）、Ｓ（１）、・・・、Ｓ（ｋ）、・・・、Ｓ（１９）］）を受け付ける。分離部３００ｃは、データ列Ｓを上位８ビットのデータ列Ｓ１（＝［Ｓ（０）、Ｓ（２）、・・・、Ｓ（７）］）と、下位１２ビットのデータ列Ｓ２（＝［Ｓ（８）、Ｓ（９）、・・・、Ｓ（１９）］）に分離して、データ列Ｓ１を変換部３０２ｃに出力し、データ列Ｓ２をディスパリティ制御部３０５ｃと合成部３０４ｃに出力する。
【０１６８】
変換部３０２ｃは、データ列Ｓ１を８Ｂ／１０Ｂ符号化方式を用いて符号化することにより、１０ビットのデータ列Ｃｃ１１（＝［Ｃｃ（０）、Ｃｃ（１）、・・・、Ｃｃ（９）］）を生成し、生成したデータ列Ｃｃ１１を付加部３０１ｃに出力する。
付加部３０１ｃは、２ビットの制御ビット“０”、“１”を分離部３００ｃから入力されたのデータ列Ｃｃ１１の先頭に付加し１２ビットのデータ列Ｃｃ１２（＝［０、１、Ｃｃ（０）、Ｃｃ（１）、・・・、Ｃｃ（９）］）を生成し、生成したデータ列Ｃｃ１２をディスパリティ制御部３０５ｃ及び反転部３０６ｃに出力する。
【０１６９】
ディスパリティ制御部３０５ｃは、データ列Ｃｃ１２とＳ２とを用いて、第１の実施の形態と同様の判定方法により、データ列Ｃｃ１２に対して反転を行うか否かを判断する。
反転部３０６ｃは、ディスパリティ制御部３０５ｃの判断結果である反転制御情報が示す値に応じて、データ列Ｃｃ１２に対して反転及び正転の何れかによる制御を行い、データ列Ｃｃ１を生成する。
【０１７０】
合成部３０４ｃは、第１の実施の形態と同様の合成方法により、データ列Ｃｃ１とＳ２とを合成して、２４ビットからなる符号化データ列Ｃを生成する。具体的には、反転制御部３０３ｃによる反転制御後のビット列とビット列Ｓ２を交互に配置した２４ビットのビット列Ｃを出力する。
以降の動作は、第１の実施の形態と同様であるので、ここでの説明は省略する。
【０１７１】
また、受信装置側の動作についても、第１の変形例にて示す動作と同様であるので、ここでの説明は省略する。
３．３  第３の変形例
上記第１及び第２の実施の形態において、１個のシンボルが２ビットで構成される多値（４（＝２＾２）値）の振幅変調の場合を例に挙げて説明したが、本発明はこれに限られるものではない。
【０１７２】
２＾ｎ値（ｎは２以上の整数）の振幅変調に適用してもよい。
（１）第１の実施の形態に対する変形の具体例
以下、第１の実施の形態に対する変形の具体例として、ｎ＝３、つまり、８値の振幅変調を行う場合について説明する。
この場合の符号化部１０１ｄは、図２１に示すように、分離部３００ｄ、付加部３０１ｄ、変換部３０２ｄ、反転制御部３０３ｄ及び合成部３０４ｄを備える。また、反転制御部３０３ｄは、図２１に示すように、ディスパリティ制御部３０５ｄ、反転部３０６ｄを備える。
【０１７３】
（１−１）分離部３００ｄ
符号化部１０１ｄに入力された２６（＝８×３＋２）ビットの送信データ列Ｓ（＝［Ｓ（０）、Ｓ（１）、・・・、Ｓ（ｋ）、・・・、Ｓ（２５）］）は、分離部３００ｄに入力される。分離部３００ｄは、入力された送信データ列Ｓを先頭から８番目のビットで構成される８ビットのデータ列Ｓ１（＝［Ｓ（０）、Ｓ（１）、Ｓ（２）、・・・Ｓ（７）］）と、９番目から１６番目のビットで構成される８ビットのデータ列Ｓ２（＝［Ｓ（８）、Ｓ（９）、Ｓ（１０）、・・・、Ｓ（１５）］）と、残りのビットで構成される１０ビットのデータ列Ｓ３（＝［Ｓ（１６）、Ｓ（１７）、Ｓ（１８）、・・・、Ｓ（２５）］）とに分離して、データ列Ｓ１を付加部３０１ｄに出力し、データ列Ｓ２を変換部３０２ｄに出力し、データ列Ｓ３をディスパリティ制御部３０５ｄと合成部３０４ｄに出力する。
【０１７４】
（１−２）付加部３０１ｄ
付加部３０１ｄは、第１の実施の形態と同様に、２ビットの制御ビット“０１”をデータ列Ｓ１の先頭に付加し１０ビットのデータ列Ｃｄ１２（＝［０、１、Ｓ（０）、Ｓ（１）、・・・、Ｓ（７）］）を生成し、生成した１０ビットのデータ列Ｃｄ１２をディスパリティ制御部３０５ｄ及び反転部３０６ｄに出力する。
【０１７５】
（１−３）変換部３０２ｄ
変換部３０２ｄは、第１の実施の形態と同様に、データ列Ｓ２に８Ｂ／１０Ｂ符号化方式を適用して、１０ビットのデータ列Ｃｄ２（＝［Ｃｄ（０）、Ｃｄ（１）、・・・、Ｃｄ（９）］）を生成し、生成したデータ列Ｃｄ２をディスパリティ制御部３０５ｄ及び合成部３０４ｄに出力する。
【０１７６】
（１−４）反転制御部３０３ｄ
反転制御部３０３ｄは、第１の実施の形態と同様に、ＤＣバランスを保証するために、入力されたデータ列Ｃｄ１２に対して、反転及び正転の何れかの制御を行う。
以下、ディスパリティ制御部３０５ｄ及び反転部３０６ｄについて説明する。
（ディスパリティ制御部３０５ｄ）
ディスパリティ制御部３０５ｄは、入力されたデータ列Ｃｄ１２、Ｃｄ２、Ｓ３に基づいて、データ列Ｃｄ１２を反転させるか、または正転させるかを判定し、判定結果に応じて反転制御情報を生成し、生成した反転制御情報を反転部３０６ｄに出力する。ディスパリティ制御部３０５ｄは、図２２に示すように、合成部４００ｄ、算出部４０１ｄ、判定部４０２ｄ、累積ディスパリティ記憶部４０３ｄを備える。
【０１７７】
累積ディスパリティ記憶部４０３ｄは、第１の実施の形態と同様であるので、ここでの説明は省略する。
合成部４００ｄは、データ列Ｃｄ１２（＝［０、１、Ｓ（０）、Ｓ（２）、・・・Ｓ（７）］）と、データ列Ｃｄ２（＝［Ｃｄ２（０）、Ｃｄ２（１）、・・・、Ｃｄ２（９）］）と、データ列Ｓ３（＝［Ｓ（１６）、Ｓ（１７）、・・・、Ｓ（２５）］）とを互いに交互になるように３０ビットのデータ列Ｃｏ（＝［０、Ｃｄ２（０）、Ｓ（１６）、１、Ｃｄ２（１）、Ｓ（１７）、Ｓ（０）、Ｃｄ２（２）、Ｓ（１８）、・・・、Ｓ（７）、Ｃｄ２（９）、Ｓ（２５）］）を生成する。合成部４００ｄは、生成したデータ列Ｃｏを算出部４０１ｄに出力する。
【０１７８】
算出部４０１ｄは、データ列Ｃｏを１シンボル（３ビット）毎に区切り、区切られた１シンボル毎に、当該シンボルの値に対応するディスパリティを求め、求めた１０シンボル分のディスパリティの総和を候補符号語ディスパリティとして算出する。ここで、本変形例では、シンボル“０００”に対してディスパリティ＝−７を、“００１”に対してディスパリティ＝−５を、“０１１”に対してディスパリティ＝−３を、“０１０”に対してディスパリティ＝−１を、“１１０”に対してディスパリティ＝＋１を、“１１１”に対してディスパリティ＝＋３を、“１０１”に対してディスパリティ＝＋５を、“１００”に対してディスパリティ＝＋７を、割り当てるようなマッピングを行う。算出部４０１ｄは算出した候補符号語ディスパリティを判定部４０２ｄへ出力する。
【０１７９】
判定部４０２ｄは、第１の実施の形態と同様の判定方法により、データ列Ｃｄ１２を反転させるか、または正転させるかを判定する。判定部４０２ｄは、判定結果に応じて、反転制御情報及び符号語ディスパリティを生成する。反転制御情報及び符号語ディスパリティの生成方法についても第１の実施の形態と同様であるので、ここでの説明は省略する。判定部４０２ｄは、生成した反転制御情報を反転部３０６ｄへ出力し、生成した符号語ディスパリティを、累積ディスパリティ記憶部４０３ｄで記憶されている累積ディスパリティに加算することで、当該累積ディスパリティを更新する。
【０１８０】
（反転部３０６ｄ）
反転部３０６ｄは、データ列Ｃｄ１２に対し、反転制御情報に応じて反転させる、または正転させる処理を行うことにより、１０ビットのデータ列Ｃｄ１（＝［Ｃｄ１（０）、Ｃｄ１（１）、・・・、Ｃｄ１（９）］）を生成する。反転部３０６ｄは、生成したデータ列Ｃｄ１を合成部３０４ｄに出力する。
【０１８１】
（１−５）合成部３０４ｄ
合成部３０４ｄは、データ列Ｃｄ１（＝［Ｃｄ１（０）、Ｃｄ１（１）、・・・、Ｃｄ１（９）］）と、データ列Ｃｄ２（＝［Ｃｄ２（０）、Ｃｄ２（１）、・・・、Ｃｄ２（９）］）と、データ列Ｓ３（＝［Ｓ（１６）、Ｓ（１７）、・・・、Ｓ（２５）］）とを互いに交互になるように３０ビットの符号化データ列Ｃ（＝［Ｃｄ１（０）、Ｃｄ２（０）、Ｓ（１６）、Ｃｄ１（１）、Ｃｄ２（１）、Ｓ（１７）、・・・Ｃｄ１（９）、Ｃｄ２（９）、Ｓ（２５）］）を生成する。合成部３０４ｄは合成した符号化データ列Ｃを８値の変調を行う変調部に出力する。
【０１８２】
（１−６）受信装置
受信装置では、１個のシンボルを３ビットとする点が、第１の実施の形態と異なるだけであり、その他の処理については第１の実施の形態と同様の手順により、データ列Ｓ１、Ｓ２及びＳ３を再生すると、データ列Ｓ１を上位８ビットとし、データ列Ｓ２を中位８ビットとし、データ列Ｓ３を下位１０ビットとして２６ビットからなるデータ列Ｓを再生する。
【０１８３】
（１−７）まとめ
上記から分かるように、２＾ｎ値の振幅変調を行う場合には、以下のような動作により行われる。
送信装置の分離部は、８×ｎ＋２（ｎ−２）ビット長からなるデータ列を８ビット長の第１及び第２のデータ列、及びｎ−２個の１０ビット長のデータ列に分離する。
【０１８４】
付加部は、第１のデータ列に２ビットの制御ビットを付加して、１０ビットの付加データ列を生成する。
変換部は、第２のデータ列に対して８Ｂ／１０Ｂの符号化処理を施し、１０ビットの符号化データ列を生成する。
ディスパリティ制御部の合成部は、付加データ列、符号化データ列及びｎ−２個の１０ビット長のデータ列とが、互いの交互になるように８×ｎ＋２ｎビットのデータ列Ｃｏを生成し、算出部は、当該データ列Ｃｏに対する候補符号語ディスパリティを算出する。判定部においては、第１の実施の形態と同様の判定方法により反転を行うか否かの判定を行い、第１の実施の形態と同様の反転制御情報及び符号語ディスパリティの生成方法にて、反転制御情報及び符号語ディスパリティの生成を行い、第１の実施の形態と同様の更新方法により累積ディスパリティの更新を行う。
【０１８５】
反転部では、反転制御情報が示す値に応じて、付加データ列に対して反転及び正転の何れかの制御を行い、データ列Ｃ１を生成する。
第１の実施の形態の合成部３０４に相当する合成部においては、データ列Ｃ１と、符号化データ列及びｎ−２個の１０ビット長のデータ列とから、互いの交互になるように８×ｎ＋２ｎビットのデータ列Ｃを生成する。
【０１８６】
（２）第２の実施の形態に対する変形の具体例
以下、第２の実施の形態に対する変形の具体例として、ｎ＝３、つまり、８値の振幅変調を行う場合について説明する。
この場合の符号化部１０１ｅは、図２３に示すように、分離部３００ｅ、付加部３０１ｅ、３０１ｆ、変換部３０２ｅ、反転制御部３０３ｅ及び合成部３０４ｅを備える。また、反転制御部３０３ｅは、図２３に示すように、ディスパリティ制御部３０５ｅ、反転部３０６ｅを備える。
【０１８７】
（２−１）分離部３００ｅ
符号化部１０１ｅに入力された２６（＝８×３＋２）ビットの送信データ列Ｓ（＝［Ｓ（０）、Ｓ（１）、・・・、Ｓ（ｋ）、・・・、Ｓ（２５）］）は、分離部３００ｅに入力される。分離部３００ｅは、入力された送信データ列Ｓを先頭から８番目のビットで構成される８ビットのデータ列Ｓ１（＝［Ｓ（０）、Ｓ（１）、Ｓ（２）、・・・Ｓ（７）］）と、９番目から１６番目のビットで構成される８ビットのデータ列Ｓ２（＝［Ｓ（８）、Ｓ（９）、Ｓ（１０）、・・・、Ｓ（１５）］）と、残りのビットで構成される１０ビットのデータ列Ｓ３（＝［Ｓ（１６）、Ｓ（１７）、Ｓ（１８）、・・・、Ｓ（２５）］）とに分離して、データ列Ｓ１を変換部３０２ｅに出力し、データ列Ｓ２を付加部３０１ｅ、３０１ｆに出力し、データ列Ｓ３をディスパリティ制御部３０５ｅと合成部３０４ｅに出力する。
【０１８８】
（２−２）変換部３０２ｅ
変換部３０２ｅは、データ列Ｓ１をランレングスに対して８Ｂ／１０Ｂ符号化方式を適用して、１０ビットのデータ列Ｃｅ１１（＝［Ｃｅ１１（０）、Ｃｅ１１（１）、・・・、Ｃｅ１１（９）］）を生成し、生成したデータ列Ｃｅ１１をディスパリティ制御部３０５ｅ及び反転部３０６ｅに出力する。
【０１８９】
（２−３）付加部３０１ｅ、３０１ｆ
付加部３０１ｅは、データ列Ｓ２に２ビットの制御ビット“０”、“１”を付加し、１０ビットのデータ列Ｃｅ２１（＝［０、１、Ｓ（８）、Ｓ（９）、Ｓ（１０）、・・・、Ｓ（１５）］）を生成し、生成したデータ列Ｃｅ２１をディスパリティ制御部３０５ｅ及び制御ビット選択部１００２ｅへ出力する。
【０１９０】
付加部３０１ｆは、データ列Ｓ２に制御ビット“１”、“１”を付加し、１０ビットのデータ列Ｃｅ２２（＝［１、１、Ｓ（８）、Ｓ（９）、Ｓ（１０）、・・・、Ｓ（１５）］）を生成し、生成したデータ列Ｃｅ２２をディスパリティ制御部３０５ｅ及び制御ビット選択部１００２ｅへ出力する。
（２−４）反転制御部３０３ｅ
反転制御部３０３ｅは、第２の実施の形態と同様に、ＤＣバランスを保証するために、入力されたデータ列Ｃｅ１１に対して、反転及び正転の何れかの制御を行う。
【０１９１】
以下、ディスパリティ制御部３０５ｅ及び反転部３０６ｅについて説明する。
（ディスパリティ制御部３０５ｅ）
ディスパリティ制御部３０５ｅは、データ列Ｃｅ１１、Ｃｅ２１、Ｃｅ２２、Ｓ３に基づいて、データ列Ｃｅ１１を反転させるか、または正転させるかを判定し、判定結果に応じて反転制御情報を生成し、生成した反転制御情報を反転部３０６ｅ及び制御ビット選択部１００２ｅに出力する。
【０１９２】
ディスパリティ制御部３０５ｅは、図２４に示すように、反転部１１０１ｅ、合成部４００ｅ、４００ｆ、算出部４０１ｅ、４０１ｆ、判定部４０２ｅ、累積ディスパリティ記憶部４０３ｅを備える。
累積ディスパリティ記憶部４０３ｅは、第１の実施の形態における累積ディスパリティ記憶部４０３と同様であるので、ここでの説明は省略する。
【０１９３】
反転部１１０１ｅは、データ列Ｃｅ１１を反転し、Ｃｅ１１’（＝  ［Ｃｅ１１’（０）、Ｃｅ１１’（１）、・・・、Ｃｅ１１’（９）］）を生成する。反転部１１０１ｅ、生成したＣｅ１１’を合成部４００ｆに出力する。
合成部４００ｅは、データ列Ｃｅ１１（＝［Ｃｅ１１（０）、Ｃｅ１１（１）、・・・、Ｃｅ１１（９）］）と付加部３０１ｅから入力されたデータ列Ｃｅ２１（＝［０、１、Ｓ（８）、Ｓ（９）、Ｓ（１０）、・・・、Ｓ（１５）］）、データ列Ｓ３（＝［Ｓ（１６）、Ｓ（１７）、・・・、Ｓ（２５）］）とを互いに交互になるように３０ビットのデータ列Ｃｅ３１（＝［Ｃｅ１１（０）、０、Ｓ（１６）、Ｃｅ１１（１）、１、Ｓ（１７）、・・・、Ｃｅ１１（９）、Ｓ（１５）、Ｓ（２５）］）を生成する。合成部４００ｅは、生成したデータ列Ｃｅ３１を算出部４０１ｅに出力する。
【０１９４】
合成部４００ｆは、データ列Ｃｅ１１’（＝［Ｃｅ１１’（０）、Ｃｅ１１’（１）、・・・、Ｃｅ１１’（９）］）と、付加部３０１ｆから入力されたデータ列Ｃｅ２２（＝［１、１、Ｓ（８）、Ｓ（９）、Ｓ（１０）、・・・、Ｓ（１５）］）と、データ列Ｓ３（＝［Ｓ（１６）、Ｓ（１７）、・・・、Ｓ（２５）］）とを互いに交互になるように３０ビットのデータ列Ｃｅ３２（＝［Ｃｅ１１’（０）、１、Ｓ（１６）、Ｃｅ１１’（１）、１、Ｓ（１７）、・・・、Ｃｅ１１’（９）、Ｓ（１５）、Ｓ（２５）］）を生成する。合成部４００ｆは、生成したデータ列Ｃｅ３２を算出部４０１ｆに出力する。
【０１９５】
算出部４０１ｅは、データ列Ｃｅ３１を１シンボル（３ビット）毎に区切り、区切られた１シンボル毎にシンボルの値に対応するディスパリティを求め、求めた１０シンボル分のディスパリティの総和を正転符号語ディスパリティとして算出する。ここで、本変形例では、シンボル“０００”に対してディスパリティ＝−７を、“００１”に対してディスパリティ＝−５を、“０１１”に対してディスパリティ＝−３を、“０１０”に対してディスパリティ＝−１を、“１１０”に対してディスパリティ＝＋１を、“１１１”に対してディスパリティ＝＋３を、“１０１”に対してディスパリティ＝＋５を、“１００”に対してディスパリティ＝＋７を、割り当てるようなマッピングを行う。算出部４０１ｅは、算出した正転符号語ディスパリティを判定部４０２ｅへ出力する。
【０１９６】
算出部４０１ｆは、データ列Ｃｅ３２を算出部４０１ｅと同様に１シンボル（３ビット）毎に区切り、区切られた１シンボル毎にシンボルの値に対応するディスパリティを求め、求めた１０シンボル分のディスパリティの総和を反転符号語ディスパリティとして算出する。なお、３ビットからなる値に対するディスパリティの割り当ては上記と同様である。
【０１９７】
判定部４０２ｅは、正転符号語ディスパリティと反転符号語ディスパリティと累積ディスパリティ記憶部４０３ｅに記憶された累積ディスパリティに基づいて、データ列Ｃｅ１１を反転部３０６ｅにおいて反転させるか、または正転させるかを判定する。
判定部４０２ｅは、正転符号語ディスパリティと反転符号語ディスパリティと累積ディスパリティに基づいてＣｅ２１またはＣｅ２２のどちらか一方のデータ列を選択する。なお、判定方法と選択方法とは、第２の実施の形態と同様であるので、ここでの説明は省略する。
【０１９８】
判定部４０２ｅは、生成した反転制御情報を反転部３０６ｅ及び制御ビット選択部１００２ｅへ出力し、生成した符号語ディスパリティを、累積ディスパリティ記憶部４０３ｅで記憶されている累積ディスパリティに加算することで、当該累積ディスパリティを更新する。
反転部３０６ｅは、データ列Ｃｅ１１に対し、第２の実施の形態と同様に、反転制御情報に応じて反転させる、または正転させる処理を行うことにより１０ビットのデータ列Ｃｅ１を生成する。反転部３０６ｅは、生成したデータ列Ｃｅ１を合成部３０４ｅに出力する。
【０１９９】
制御ビット選択部１００２ｅは、第２の実施の形態と同様に、データ列Ｃｅ２１及びＣｅ２２に対して、反転制御情報に応じて、データ列Ｃｅ２１またはＣｅ２２どちらかを選択し、選択したデータ列をＣｅ２として合成部３０４ｅに出力する。
（２−５）合成部３０４ｅ
合成部３０４ｅは、データ列Ｃｅ１、Ｃｅ２及びＳ３を、交互になるように配置した３０ビットの符号化データ列Ｃを生成する。合成部３０４ｅは、生成した符号化データ列Ｃを８値の変調を行う変調部に出力する。
【０２００】
（２−６）受信装置
受信装置では、１個のシンボルを３ビットとする点が、第２の実施の形態と異なるだけであり、その他の処理については第２の実施の形態と同様の手順により、データ列Ｓ１、Ｓ２及びＳ３を再生すると、データ列Ｓ１を上位８ビットとし、データ列Ｓ２を中位８ビットとし、データ列Ｓ３を下位１０ビットとして２６ビットからなるデータ列Ｓを再生する。
【０２０１】
（２−７）まとめ
上記から分かるように、２＾ｎ値の振幅変調を行う場合には、以下のような動作により行われる。
送信装置の分離部は、８×ｎ＋２（ｎ−２）ビット長からなるデータ列を８ビット長の第１及び第２のデータ列、及びｎ−２個の１０ビット長のデータ列に分離する。
【０２０２】
変換部は、第１のデータ列に対して８Ｂ／１０Ｂの符号化処理を施し、１０ビットの符号化データ列を生成する。
付加部は、第２のデータ列に２ビットの制御ビット“０１”が付加された１０ビットからなる第１の付加データ列と、２ビットの制御ビット“１１”が付加された１０ビットからなる第２の付加データ列とを生成する。
【０２０３】
ディスパリティ制御部の第１の合成部（上記の合成部４００ｅに相当）は、符号化データ列、第１の付加データ列及びｎ−２個の１０ビット長のデータ列とが、互いの交互になるように８×ｎ＋２ｎビットのデータ列Ｃｅ３１を生成する。
第２の合成部（上記の合成部４００ｆに相当）は、反転された符号化データ列、第２の付加データ列及びｎ−２個の１０ビット長のデータ列とが、互いの交互になるように８×ｎ＋２ｎビットのデータ列Ｃｅ３２を生成する。
【０２０４】
第１の算出部（上記の算出部４０１ｅに相当）は、データ列Ｃｅ３１に対する正転符号語ディスパリティを算出する。
第２の算出部（上記の算出部４０１ｆに相当）は、データ列Ｃｅ３２に対する反転符号語ディスパリティを算出する。
判定部においては、第２の実施の形態と同様の判定方法により反転を行うか否かの判定を行い、第２の実施の形態と同様の反転制御情報及び符号語ディスパリティの生成方法にて、反転制御情報及び符号語ディスパリティの生成を行い、第２の実施の形態と同様の更新方法により累積ディスパリティの更新を行う。
【０２０５】
制御ビット選択部は、第２の実施の形態と同様に、反転制御情報が示す値に応じて、第１及び第２の付加データ列のうち一の付加データ列を選択する。
反転部では、反転制御情報が示す値に応じて、変換データ列に対して反転及び正転の何れかの制御を行い、データ列Ｃ１を生成する。
合成部３０４ｅに相当する合成部においては、データ列Ｃ１と、選択された付加データ列及びｎ−２個の１０ビット長のデータ列とから、互いの交互になるように８×ｎ＋２ｎビットのデータ列Ｃを生成する。
【０２０６】
（３）第２の変形例の対する変形の具体例
以下、第２の変形例の対する変形の具体例として、ｎ＝３、つまり、８値の振幅変調を行う場合について説明する。
この場合における符号化部１０１ｇを図２５に示す。
符号化部１０１ｇは、図２５に示すように、分離部３００ｇ、付加部３０１ｇ、変換部３０２ｇ、反転制御部３０３ｇ及び合成部３０４ｇから構成されている。また、反転制御部３０３ｇは、ディスパリティ制御部３０５ｇ及び反転部３０６ｇから構成されている。
【０２０７】
（３−１）分離部３００ｇ
分離部３００ｇは、３２（＝８×３＋８）ビットの送信データ列Ｓ（＝［Ｓ（０）、Ｓ（１）、・・・、Ｓ（ｋ）、・・・、Ｓ（３１）］）を受け付ける。分離部３００ｇは、入力された送信データ列Ｓを先頭から８番目のビットで構成される８ビットのデータ列Ｓ１（＝［Ｓ（０）、Ｓ（１）、Ｓ（２）、・・・Ｓ（７）］）と、９番目から２０番目のビットで構成される１２ビットのデータ列Ｓ２（＝［Ｓ（８）、Ｓ（９）、Ｓ（１０）、・・・、Ｓ（１９）］）と、残りのビットで構成される１２ビットのデータ列Ｓ３（＝［Ｓ（２０）、Ｓ（２１）、Ｓ（２２）、・・・、Ｓ（３１）］）とに分離して、データ列Ｓ１を変換部３０２ｇに出力し、データ列Ｓ２、Ｓ３をディスパリティ制御部３０５ｅと合成部３０４ｅとに出力する。
【０２０８】
（３−２）変換部３０２ｇ
変換部３０２ｇは、データ列Ｓ１を８Ｂ／１０Ｂ符号化方式を用いて符号化することにより、１０ビットのデータ列Ｃｇ１１（＝［Ｃｇ（０）、Ｃｇ（１）、・・・、Ｃｇ（９）］）を生成し、生成したデータ列Ｃｇ１１を付加部３０１ｇに出力する。
（３−３）付加部３０１ｇ
付加部３０１ｇは、２ビットの制御ビット“０”、“１”をデータ列Ｃｇ１１の先頭に付加し１２ビットのデータ列Ｃｇ１２（＝［０、１、Ｃｇ（０）、Ｃｇ（１）、・・・、Ｃｇ（９）］）を生成し、生成したデータ列Ｃｇ１２をディスパリティ制御部３０５ｇ及び反転部３０６ｇに出力する。
【０２０９】
（３−４）反転制御部３０３ｇ
反転制御部３０３ｇは、第１の実施の形態と同様に、ＤＣバランスを保証するために、データ列Ｃｇ１２に対して、反転及び正転の何れかの制御を行う。
以下、ディスパリティ制御部３０５ｇ及び反転部３０６ｇについて説明する。
（ディスパリティ制御部３０５ｇ）
ディスパリティ制御部３０５ｇは、データ列Ｃｇ１２とＳ２とＳ３とを互いに交互になるように配置した３６ビットのデータ列Ｃｏ（＝［０、Ｓ（８）、Ｓ（２０）、１、Ｓ（９）、Ｓ（２１）、Ｃｇ（０）、Ｓ（１０）、Ｓ（２２）、・・・、Ｃｇ（９）、Ｓ（１９）、Ｓ（３１）］）を生成する。
【０２１０】
ディスパリティ制御部３０５ｇは、データ列Ｃｏを１シンボル（３ビット）毎に区切り、区切られた１シンボル毎に、当該シンボルの値に対応するディスパリティを求め、求めた１０シンボル分のディスパリティの総和を候補符号語ディスパリティとして算出する。ここで、本変形例では、シンボル“０００”に対してディスパリティ＝−７を、“００１”に対してディスパリティ＝−５を、“０１１”に対してディスパリティ＝−３を、“０１０”に対してディスパリティ＝−１を、“１１０”に対してディスパリティ＝＋１を、“１１１”に対してディスパリティ＝＋３を、“１０１”に対してディスパリティ＝＋５を、“１００”に対してディスパリティ＝＋７を、割り当てるようなマッピングを行う。
【０２１１】
ディスパリティ制御部３０５ｇは、第１の実施の形態と同様の判定方法により、データ列Ｃｇ１２を反転させるか、または正転させるかを判定する。また、ディスパリティ制御部は、判定結果に応じて、反転制御情報及び符号語ディスパリティを生成する。反転制御情報及び符号語ディスパリティの生成方法についても第１の実施の形態と同様であるので、ここでの説明は省略する。
【０２１２】
ディスパリティ制御部３０５ｇは、生成した反転制御情報を反転部３０６ｇへ出力し、生成した符号語ディスパリティを、当該ディスパリティ制御部３０５ｇで記憶している累積ディスパリティに加算することで、当該累積ディスパリティを更新する。
（反転部３０６ｇ）
反転部３０６ｇは、反転制御情報が示す値に応じて、データ列Ｃｇ１２に対して反転及び正転の何れかによる制御を行い、データ列Ｃｇ１を生成する。
【０２１３】
（３−５）合成部３０４ｇ
合成部３０４ｇは、データ列Ｃｇ１とＳ２とＳ３とを互いに交互になるように配置した３６ビットの符号化データ列Ｃを生成する。
（３−６）受信装置
受信装置では、１個のシンボルを３ビットとする点が、第２の変形例と異なるだけであり、その他の処理については第２の変形例と同様の手順により、データ列Ｓ１、Ｓ２及びＳ３を再生すると、データ列Ｓ１を上位８ビットとし、データ列Ｓ２を中位１２ビットとし、データ列Ｓ３を下位１２ビットとして３２ビットからなるデータ列Ｓを再生する。
【０２１４】
（３−７）まとめ
上記から分かるように、２＾ｎ値の振幅変調を行う場合には、以下のような動作により行われる。
送信装置の分離部は、８×ｎ＋４（ｎ−１）ビット長からなるデータ列を８ビット長のデータ列Ｓ１、及びｎ−１個の１２ビット長のデータ列に分離する。
【０２１５】
付加部は、第１のデータ列に２ビットの制御ビットを付加して、１０ビットの付加データ列を生成する。
変換部は、付加データ列に対して８Ｂ／１０Ｂの符号化処理を施し、１２ビットの符号化データ列を生成する。
ディスパリティ制御部は、符号化データ列及びｎ−１個の１２ビット長のデータ列とが、互いの交互になるように８×ｎ＋４（ｎ−１）ビットのデータ列Ｃｏを生成する。ディスパリティ制御部は、生成したデータ列Ｃｏに対する候補符号語ディスパリティを算出する。さらに、ディスパリティ制御部は、第１の実施の形態と同様の判定方法により反転を行うか否かの判定を行い、第１の実施の形態と同様の反転制御情報及び符号語ディスパリティの生成方法にて、反転制御情報及び符号語ディスパリティの生成を行い、第１の実施の形態と同様の更新方法により累積ディスパリティの更新を行う。
【０２１６】
反転部では、反転制御情報が示す値に応じて、符号化データ列に対して反転及び正転の何れかの制御を行い、データ列Ｃ１を生成する。
合成部においては、データ列Ｃ１と、ｎ−１個の１２ビット長のデータ列とから、互いの交互になるように８×ｎ＋４×ｎビットのデータ列Ｃを生成する。
（４）まとめ
上記したように、２＾ｎ値の振幅変調を行う場合も、各シンボルを２＾ｎ値の振幅変調した場合のディスパリティが正の値であるか又は負の値であるかを決定するビットからなるデータ列に対してディスパリティを考慮した反転制御を行うことにより、ディスパリティについても保証することができる。
【０２１７】
３．４  その他の変形例
（１）上記第１及び第２の実施の形態、及び各変形例では、変換部３０２は８Ｂ／１０Ｂ符号を行う場合を例に挙げて説明したが、本発明はこれに限られるものではない。２値のビット列に対し、ランレングスが一定値以下となる符号化を施す符号化方式は他にも多数提案されており、これらの符号化方式の中から、要求されるランレングスの短さや、符号化率等に応じて、適切な符号化方式を選択することができる。
【０２１８】
例えば、１００ＢＡＳＥ−ＴＸ（１００メガイーサネット（登録商標））で用いられている４Ｂ／５Ｂ符号化方式がある。
（２）上記第１及び第２の実施の形態、及び各変形例において、付加部は、２ビットの制御ビットをデータ列の先頭に付加して説明しているが、これに限られるもものではない。例えば、データ列の後方に付加してもよい。
【０２１９】
（３）上記第１及び第２の実施の形態、及び各変形例において、２＾ｎ値（ｎは２以上の整数）の振幅変調を行う場合、分離部は、入力されたデータ列をｎ個のデータ列に分離したが、これに限定されない。分離部は、分離する個数を２個以上ｎ−１個以下にしてもよい。ただし、合成部においては、入力される各データ列のビット長を同じにする必要がある。
【０２２０】
（４）上記第１及び第２の実施の形態、及び各変形例において、累積ディスパリティの値は、通信の初期化の処理時において初期値０が設定されるとしたが、これに限定されない。
送信すべきパケット単位に、累積ディスパリティの値をリセットしてもよい。
（５）上記第２の実施の形態において、送信装置１００ａは、判定部４０２ｂの判定結果に応じて、データ列Ｃｂ１１に反転・非反転の制御を行ったが、これに限定されない。
【０２２１】
送信装置１００ａは、判定部４０２ｂの判定結果に応じて、判定に用いた２０ビットからなるデータ列Ｃｂ３１（＝［Ｃｂ１１（０）、０、Ｃｂ１１（１）、１、・・・、Ｓ（１５）］）及びデータ列Ｃｂ３２（＝［Ｃｂ１１’（０）、１、Ｃｂ１１’（１）、１、・・・、Ｓ（１５）］）のうち一のデータ列を出力するとしてもよい。
この場合の符号化部１０１は、分離部、第１及び第２の付加部、変換部、ディスパリティ制御部を備える。
【０２２２】
第２の実施の形態と異なる点は、ディスパリティ制御部が出力する情報（データ）のみが異なる。
本変形例における分離部は第２の実施の形態の分離部３００ａと、本変形例における第１及び第２の付加部それぞれは第２の実施の形態の付加部３０１ａ、３０１ｂと、本変形例における変換部は、第２の実施の形態における変換部３０２ａと同様である。
【０２２３】
ここでは、ディスパリティ制御部についてのみ説明する。
本変形例におけるディスパリティ制御部は、第２の実施の形態と同様に、２０ビットからなるデータ列Ｃｂ３１（＝［Ｃｂ１１（０）、０、Ｃｂ１１（１）、１、・・・、Ｓ（１５）］）及びデータ列Ｃｂ３２（＝［Ｃｂ１１’（０）、１、Ｃｂ１１’（１）、１、・・・、Ｓ（１５）］）を生成し、データ列Ｃｂ３１から正転符号語ディスパリティを、データ列Ｃｂ３２から反転符号語ディスパリティをそれぞれ算出する。本変形例におけるディスパリティ制御部は、第２の実施の形態と同様の判定方法により、累積ディスパリティと正転符号語ディスパリティの総和の絶対値が累積ディスパリティと反転符号語ディスパリティの総和の絶対値よりも小さい場合にはデータ列Ｃｂ３１を４値変調部へ出力し、累積ディスパリティと正転符号語ディスパリティの総和の絶対値が累積ディスパリティと反転符号語ディスパリティの総和の絶対値よりも大きい場合にはデータ列Ｃｂ３２を４値変調部へ出力する。
【０２２４】
（６）上記第１及び第２の実施の形態、及び各変形例において、送信装置と受信装置との間におけるデータの送受信は光信号によるものとしたが、これに限定されない。
送信装置と受信装置との間においてデータを送受信できる形態であればよく、有線に限らず、無線による通信であってもよい。
（７）上記第１及び第２の実施の形態、及び各変形例で説明した手法の手順を記述したプログラムをメモリに記憶しておき、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などがメモリからプログラムを読み出して、読み出したプログラムを実行することによって、上記の手法が実現されるようにしてもよい。
【０２２５】
（８）上記第１及び第２の実施の形態、及び各変形例で説明した手法の手順を記述したプログラムを記録媒体に格納して、頒布するようにしてもよい。
（９）上記第１及び第２の実施の形態、及び各変形例で説明した各装置が備える各ブロックは、典型的には、集積回路であるＬＳＩとして実現される。これらは個別に１チップ化されてもよいし、一部または全てを含むように１チップ化されてもよい。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０２２６】
また、集積化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現してもよい。ＬＳＩ製造後にプログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィグラブル・プロセッサを利用してもよい。さらには、半導体技術の進歩または派生する別技術により、ＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてあり得る。
【０２２７】
（１０）これらの実施の形態および変形例の組合せであってもよい。
（１１）なお、本発明における出力振幅の偏りとは、基準値（平均電圧レベル）より上回っているか下回っているかによるという概念を少なくとも含むものである。
また、特に、上述した第２から第８の送信装置における出力振幅の偏りとは、上記概念と、電圧に対する基準値からの振れ幅とを加味したものである。
【０２２８】
４．その他
（１）本発明の一実施態様である、送信装置は、送信対象のデータをｎ個のデータ列に分離する分離手段と、一のデータ列に同じ値が連続する長さが所定値以下となる符号化処理を施して変換データ列へと変換する変換手段と、処理が施されていないｎ−１個のデータ列のうち一のデータ列に、前記変換データ列の反転を示す第１の制御データ列を付加して第１の付加データ列を、非反転を示す第２の制御データ列を付加して第２の付加データ列をそれぞれ生成する付加手段と、前記第１の付加データ列、何ら処理が施されていないｎ−２個の未処理データ列及び前記変換データ列からなる第１の候補データと、前記第２の付加データ列、前記ｎ−２個の未処理データ列及び前記変換データ列が反転した反転データ列からなる第２の候補データを生成し、前記第１の候補データのディパリティの総計と、送信された１つ以上のデータそれぞれにおける出力振幅のディスパリティを現時点まで累積した累積値とから算出される第１の新たな累積値、及び前記第２の候補データのディスパリティの総計と、前記累積値とから算出される第２の新たな累積値のうち前記基準値に近づく新たな累積値に応じた候補データを特定する制御手段と、前記特定された候補データに対して２＾ｎ値の振幅変調を施す変調手段とを備えることを特徴とする。
【０２２９】
この構成によると、送信装置は、ｎ個のデータ列のうち一のデータ列に対して、同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換している。また、第１及び第２の新たな累積値を用いて出力振幅との偏りが生じない候補データを特定している。従って、当該送信装置は、２＾ｎ値の振幅変調においてもラングレンス及びＤＣバランスを保証することができる。
【０２３０】
（２）本発明の一実施態様である、２＾ｎ値（ｎは２以上の整数）の振幅変調が施されたデータを送信する送信装置で用いられるプログラムは、コンピュータに、送信対象のデータをｎ個のデータ列に分離する分離ステップと、前記ｎ個のデータ列のうち一のデータ列に同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換する変換ステップと、送信された１つ以上のデータそれぞれの出力振幅のディスパリティを現時点まで累積した累積値と、前記変換データ列及び残りｎ−１個のデータ列を含むｎビット長の複数のシンボル分の候補データのディスパリティの総計とから算出される新たな累積値が基準値に近づいているか否かを判定し、当該判定の結果が否定的な場合は前記変換データ列と残りｎ−１個のデータ列とのうち各シンボルの最上位ビットを構成する一の特定データ列を反転させ、肯定的な場合は当該特定データ列は反転させないことで、当該特定データ列から中間データ列を得る反転制御ステップと、前記中間データ列を構成する構成ビットそれぞれを最上位ビットとし、前記変換データ列と残りｎ−１個のデータ列とのうち前記特定データ列を除く他のデータ列それぞれにおける対応する各ビットが後続ビットとして付加されたｎビット長のシンボルそれぞれに対して、２＾ｎ値の振幅変調を施す変調ステップとを実行させることを特徴とする。
【０２３１】
これによると、プログラムは、コンピュータに、ｎ個のデータ列のうち一のデータ列に対して、同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換し、新たな累積値が基準値に近づくか否かの判定に応じて特定データ列に対して反転・非反転の何れかを行わせている。そして、振幅変調の対象となるｎビット長のシンボルには、特定データ列に含まれる一のビットを最上位ビットに含み、変換データ列に含まれるビットが必ず含まれているので、振幅対象である各シンボルに対してランレングスは保証されている。また、新たな累積値が基準値に近づくか否かの判定に応じて特定データ列に対して反転・非反転の何れかを行うことで、出力振幅が基準値に近づくこととなり、これは、出力振幅がある値に偏らないことを意味している。つまり、振幅対象である各シンボルに対してＤＣバランスも保証されることとなる。従って、当該プログラムは、２＾ｎ値の振幅変調においてもラングレンス及びＤＣバランスを保証することができる。
【０２３２】
（３）本発明の一実施態様である、符号化装置は、送信対象のデータをｎ個のデータ列に分離する分離手段と、前記ｎ個のデータ列のうち一のデータ列に同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換する変換手段と、送信された１つ以上のデータそれぞれの出力振幅のディスパリティを現時点まで累積した累積値と、前記変換データ列及び残りｎ−１個のデータ列を含むｎビット長の複数のシンボル分の候補データのディスパリティの総計とから算出される新たな累積値が基準値に近づいているか否かを判定し、当該判定の結果が否定的な場合は前記変換データ列と残りｎ−１個のデータ列とのうち各シンボルの最上位ビットを構成する一の特定データ列を反転させ、肯定的な場合は当該特定データ列は反転させないことで、当該特定データ列から中間データ列を得る反転制御手段と、前記中間データ列と、判定結果に応じた付加データ列との双方において、同一の出現位置が同一である前記中間データ列に含まれる構成ビットと前記付加データ列に含まれるビットとからなるｎビット長のシンボルそれぞれを、前記構成ビットの出現順に、連結させて変調対象のデータを生成する生成手段を備えることを特徴とする。
【０２３３】
この構成によると、符号化装置は、ｎ個のデータ列のうち一のデータ列に対して、同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換し、新たな累積値が基準値に近づくか否かの判定に応じて特定データ列に対して反転・非反転の何れかを行っている。そして、振幅変調の対象となるｎビット長のシンボルには、特定データ列に含まれる一のビットを最上位ビットに含み、変換データ列に含まれるビットが必ず含まれているので、振幅対象である各シンボルに対してランレングスは保証されている。また、新たな累積値が基準値に近づくか否かの判定に応じて特定データ列に対して反転・非反転の何れかを行うことで、出力振幅が基準値に近づくこととなり、これは、出力振幅がある値に偏らないことを意味している。つまり、振幅対象である各シンボルに対してＤＣバランスも保証されることとなる。従って、当該符号化装置は、２＾ｎ値の振幅変調においてもラングレンス及びＤＣバランスを保証することができる。
【０２３４】
（４）本発明の一実施態様である、符号化方法は、送信対象のデータをｎ個のデータ列に分離する分離ステップと、前記ｎ個のデータ列のうち一のデータ列に同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換する変換ステップと、送信された１つ以上のデータそれぞれの出力振幅のディスパリティを現時点まで累積した累積値と、前記変換データ列及び残りｎ−１個のデータ列を含むｎビット長の複数のシンボル分の候補データのディスパリティの総計とから算出される新たな累積値が基準値に近づいているか否かを判定し、当該判定の結果が否定的な場合は前記変換データ列と残りｎ−１個のデータ列とのうち各シンボルの最上位ビットを構成する一の特定データ列を反転させ、肯定的な場合は当該特定データ列は反転させないことで、当該特定データ列から中間データ列を得る反転制御ステップと、前記中間データ列と、判定結果に応じた付加データ列との双方において、同一の出現位置が同一である前記中間データ列に含まれる構成ビットと前記付加データ列に含まれるビットとからなるｎビット長のシンボルそれぞれを、前記構成ビットの出現順に、連結させて変調対象のデータを生成する生成ステップを備えることを特徴とする。
【０２３５】
これによると、符号化方法は、ｎ個のデータ列のうち一のデータ列に対して、同じ値が連続する長さが所定値以下となる符号化処理を施して、変換データ列へと変換し、新たな累積値が基準値に近づくか否かの判定に応じて特定データ列に対して反転・非反転の何れかを行っている。そして、振幅変調の対象となるｎビット長のシンボルには、特定データ列に含まれる一のビットを最上位ビットに含み、変換データ列に含まれるビットが必ず含まれているので、振幅対象である各シンボルに対してランレングスは保証されている。また、新たな累積値が基準値に近づくか否かの判定に応じて特定データ列に対して反転・非反転の何れかを行うことで、出力振幅が基準値に近づくこととなり、これは、出力振幅がある値に偏らないことを意味している。つまり、振幅対象である各シンボルに対してＤＣバランスも保証されることとなる。従って、当該符号化方法は、２＾ｎ値の振幅変調においてもラングレンス及びＤＣバランスを保証することができる。
【産業上の利用可能性】
【０２３６】
本発明は、有線または無線の伝送路を介してデータ及び制御情報を送信及び受信するために多値変調方式を利用する送信装置及び送信方法、または当該送信装置及び送信方法において用いられる符号化装置及び符号化方法に利用することができる。
【符号の説明】
【０２３７】
１    送受信システム
１００    送信装置
１０１    符号化部
１０２    値変調部
１０３    増幅器
１０４    発光素子
１１０    受信装置
１１１    受光素子
１１２    増幅器
１１３    値復調部
１１４    復号部
３００    分離部
３０１    付加部
３０２    変換部
３０３    反転制御部
３０４    合成部
３０５    ディスパリティ制御部
３０６    反転部
４００    合成部
４０１    算出部
４０２    判定部
４０３    累積ディスパリティ記憶部
【図１】
2010213263.tif 000003
【図２】
2010213263.tif 000004
【図３】
2010213263.tif 000005
【図４】
2010213263.tif 000006
【図５】
2010213263.tif 000007
【図６】
2010213263.tif 000008
【図７】
2010213263.tif 000009
【図８】
2010213263.tif 000010
【図９】
2010213263.tif 000011
【図１０】
2010213263.tif 000012
【図１１】
2010213263.tif 000013
【図１２】
2010213263.tif 000014
【図１３】
2010213263.tif 000015
【図１４】
2010213263.tif 000016
【図１５】
2010213263.tif 000017
【図１６】
2010213263.tif 000018
【図１７】
2010213263.tif 000019
【図１８】
2010213263.tif 000020
【図１９】
2010213263.tif 000021
【図２０】
2010213263.tif 000022
【図２１】
2010213263.tif 000023
【図２２】
2010213263.tif 000024
【図２３】
2010213263.tif 000025
【図２４】
2010213263.tif 000026
【図２５】
2010213263.tif 000027