(57)【要約】【課題】  復号されたデータのエラー発生箇所に、検査行列に含まれる線形従属な列のすべてが乗じられるとそれらのエラーを検出できない。【解決手段】  信号復号装置に含まれるＬＤＰＣ単位復号部３３２は、符号化された信号の一時推定値算出部３４２により算出された一時推定値と検査行列との乗算を実行する乗算器であるパリティ検査部３４４を備える。検査行列保持部３４０は、検査行列を保持する。ｓ、ｔをｓ≧ｔ≧２なる自然数とするとき、この検査行列から抽出されたｓ列のうちｔ列以下の列どうしは、線形独立の関係となる。このｓ列は、一時推定値においてエラー発生頻度が比較的高い箇所に乗じられる列である。【選択図】  図４
2007087530.tif 000002
【特許請求の範囲】
【請求項１】
入力信号系列に属する符号化された信号が復号されたとき、この復号された信号系列に行列を作用させて復号精度を高める方法において、
ｓ、ｔをｓ≧ｔ≧２なる自然数とするとき、前記行列として、当該行列から抽出されたｓ列のうちｔ列以下の列どうしが線形独立の関係となるものを用い、
前記ｓ列は、前記復号された信号系列においてエラー発生頻度が比較的高い信号に乗じられる列であることを特徴とする信号復号方法。
【請求項２】
入力信号系列に属する符号化された信号が復号されたとき、この復号された信号系列に行列を作用させて復号精度を高める方法において、
ｓ、ｔをｓ≧ｔ≧２なる自然数とするとき、前記行列として、当該行列から抽出されたｓ列のうちｔ列以下の列どうしが線形独立の関係となるものを用い、
前記ｓ列は、前記行列において隣接する列であることを特徴とする信号復号方法。
【請求項３】
入力信号系列に属する符号化された信号が復号されたとき、この復号された信号系列にｍ行ｎ列（ｍとｎは、ｍ，ｎ≧２なる自然数）の行列を作用させて復号精度を高める方法において、
前記行列は、列方向に接続されたｍ行ｓ列（ｓは、ｎ＞ｓなる自然数）の第１および第２の部分行列を含み、
第１および第２の部分行列は、そのｓ列のうちｔ列（ｔはｓ≧ｔ≧２なる自然数）以下の列どうしが線形独立の関係となることを特徴とする信号復号方法。
【請求項４】
入力信号系列を取得し、この入力信号系列に属する符号化された信号が復号されたとき、この復号された信号系列と行列との乗算を実行する単位復号部を備え、
ｓ、ｔをｓ≧ｔ≧２なる自然数とするとき、前記単位復号部は、前記行列として、当該行列から抽出されたｓ列のうちｔ列以下の列どうしが線形独立の関係となるものを用い、
前記ｓ列は、前記復号された信号系列においてエラー発生頻度が比較的高い信号に乗じられる列であることを特徴とする信号復号装置。
【請求項５】
入力信号系列を取得し、この入力信号系列に属する符号化された信号が復号されたとき、この復号された信号系列と行列との乗算を実行する単位復号部を備え、
ｓ、ｔをｓ≧ｔ≧２なる自然数とするとき、前記単位復号部は、前記行列として、当該行列から抽出されたｓ列のうちｔ列以下の列どうしが線形独立の関係となるものを用い、
前記ｓ列は、前記行列において隣接する列であることを特徴とする信号復号装置。
【請求項６】
入力信号系列を取得し、この入力信号系列に属する符号化された信号が復号されたとき、この復号された信号系列とｍ行ｎ列（ｍとｎは、ｍ，ｎ≧２なる自然数）の行列との乗算を実行する単位復号部を備え、
前記行列は、列方向に接続されたｍ行ｓ列（ｓは、ｎ＞ｓなる自然数）の第１および第２の部分行列を含み、
第１および第２の部分行列は、そのｓ列のうちｔ列（ｔはｓ≧ｔ≧２なる自然数）以下の列どうしが線形独立の関係となることを特徴とする信号復号装置。
【請求項７】
請求項６に記載の装置において、第２の部分行列は、第１の部分行列の要素に対して所定のシフト処理が加えられた関係であることを特徴とする信号復号装置。
【請求項８】
請求項７に記載の装置において、前記シフト処理は行の置換であることを特徴とする信号復号装置。
【請求項９】
請求項４から８のいずれかに記載の装置において、前記ｔの値は、復号の際に検出不能となる、復号された信号系列に属する信号に生じるエラーの許容限度をもとに定められることを特徴とする信号復号装置。
【請求項１０】
請求項４から９のいずれかに記載の装置において、前記単位復号部は、低密度パリティ検査符号を用いて符号化された信号を復号することを特徴とする信号復号装置。
【請求項１１】
ライトチャネルとリードチャネルとを有する信号記憶システムであって、
前記ライトチャネルは、
データをランレングス符号化する第１の符号化部と、
前記第１の符号化部で符号化されたデータを低密度パリティ検査符号を用いてさらに符号化する第２の符号化部と、
前記第２の符号化部で符号化されたデータを記憶装置に書き込む書込部と、
を備え、
前記リードチャネルは、
前記第２の符号化部で符号化されたデータを前記記憶装置から読み出す読出部と、
前記読出部で読み出されたデータの尤度を計算して軟判定値を出力するソフト出力検出部と、
前記ソフト出力検出部から出力されたデータを復号する、第２の符号化部に対応する第２の復号部と、
前記第２の復号部で復号されたデータをさらに復号する、前記第１の符号化部に対応する第１の復号部と、
を備え、
前記第２の復号部は、前記ソフト出力検出部から出力されたデータが復号されたとき、この復号されたデータと行列との乗算を実行する単位復号部を有し、
ｓ、ｔをｓ≧ｔ≧２なる自然数とするとき、前記単位復号部は、前記行列として、当該行列から抽出されたｓ列のうちｔ列以下の列どうしが線形独立の関係となるものを用い、
前記ｓ列は、前記復号されたデータにおいてエラー発生頻度が比較的高い部分に乗じられる列であることを特徴とする信号記憶システム。
【請求項１２】
ライトチャネルとリードチャネルとを有する信号記憶システムであって、
前記ライトチャネルは、
データをランレングス符号化する第１の符号化部と、
前記第１の符号化部で符号化されたデータを低密度パリティ検査符号を用いてさらに符号化する第２の符号化部と、
前記第２の符号化部で符号化されたデータを記憶装置に書き込む書込部と、
を備え、
前記リードチャネルは、
前記第２の符号化部で符号化されたデータを前記記憶装置から読み出す読出部と、
前記読出部で読み出されたデータの尤度を計算して軟判定値を出力するソフト出力検出部と、
前記ソフト出力検出部から出力されたデータを復号する、第２の符号化部に対応する第２の復号部と、
前記第２の復号部で復号されたデータをさらに復号する、前記第１の符号化部に対応する第１の復号部と、
を備え、
前記第２の復号部は、前記ソフト出力検出部から出力されたデータが復号されたとき、この復号されたデータと行列との乗算を実行する単位復号部を有し、
ｓ、ｔをｓ≧ｔ≧２なる自然数とするとき、前記単位復号部は、前記行列として、当該行列から抽出されたｓ列のうちｔ列以下の列どうしが線形独立の関係となるものを用い、
前記ｓ列は、前記行列において隣接する列であることを特徴とする信号記憶システム。
【請求項１３】
請求項１１または１２に記載の信号記憶システムにおいて、当該システムは、さらに、
所定のデータを記憶する記憶装置と、
記憶装置へのデータの書込と、記憶装置からのデータの読出とを制御する制御部と、
を備え、
前記リードチャネルは、前記制御部の指示に従って、前記記憶装置に記憶されているデータを読み出し、
前記ライトチャネルは、前記制御部の指示に従って、前記所定のデータを前記記憶装置に書き込むことを特徴とする信号記憶システム。
【請求項１４】
請求項１１または１２に記載の信号記憶システムにおいて、当該システムは、少なくとも１つの半導体基板上に集積化されたことを特徴とする信号記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化された信号を復号するための技術に関する。
【背景技術】
【０００２】
符号化された信号を復号する際、ノイズ等に起因するエラーの検出や訂正がなされる。信号を符号化する符号の一つとして、例えば、低密度パリティ検査（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ。以下「ＬＤＰＣ」とも表記する）符号が挙げられる。ＬＤＰＣ符号を用いて符号化された信号を復号（「ＬＤＰＣ復号」とも表記する）する際、検査行列を復号された信号に乗じることにより、復号された信号で発生したエラーの検出が可能となる。この検査行列の構成方法として、様々な手法が提案されている。例えば、特許文献１には、アレイコードに関する検査行列の定義に従って定義された行列の一部を、上三角構造に修正する検査行列の構成方法が開示されている。
【特許文献１】特開２００３−１１５７６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、検査行列の構成によっては、復号された信号において発生するエラーの一部を検出できない場合がある。
【０００４】
本発明は、上述の事情を鑑みてなされたものであり、その目的は、エラーを好適に検出できるよう検査行列を構成することにある。
【課題を解決するための手段】
【０００５】
検査行列において、線形従属関係を有する複数の列（以下「線形従属な列」とも表記する）が含まれるとき、線形従属な列を構成するすべての列が、復号された信号におけるエラー発生箇所に乗じられると、後述するようにそのエラーを検出できない。本発明者は、この点に着目し、線形従属な列のすべてが復号された信号のエラー発生箇所に乗じられないよう検査行列を構成することにより、好適なエラー検出を実現する本発明をするに至った。
【０００６】
本発明の一態様は信号復号方法に関する。この信号復号方法では、入力信号系列に属する符号化された信号が復号されたとき、この復号された信号系列に行列を作用させて復号精度を高める。ｓ、ｔをｓ≧ｔ≧２なる自然数とするとき、行列として、この行列から抽出されたｓ列のうちｔ列以下の列どうしが線形独立の関係となるものを用い、ｓ列は、復号された信号系列においてエラー発生頻度が比較的高い信号に乗じられる列である。
【０００７】
この態様によれば、行列は、線形独立なｔ列、すなわち線形従属でないｔ列を含むよう構成される。これによって、復号された信号系列において、ｔ箇所でエラーが発生したとき、線形従属な列のすべてがそのエラー発生箇所に乗じられることを回避できるので、発生頻度が比較的高いエラーを好適に検出できる。
【０００８】
本発明の別の態様も信号復号方法に関する。この信号復号方法では、入力信号系列に属する符号化された信号が復号されたとき、この復号された信号系列に行列を作用させて復号精度を高める。ｓ、ｔをｓ≧ｔ≧２なる自然数とするとき、行列として、この行列から抽出されたｓ列のうちｔ列以下の列どうしが線形独立の関係となるものを用い、ｓ列は、行列において隣接する列である。
【０００９】
この態様によれば、行列は、線形独立なｔ列を隣接させて含むよう構成される。これによって、復号された信号系列においてｔ箇所で連続的に発生するエラー（「バーストエラー」とも表記する）が発生した場合、線形従属な列がバーストエラーの発生箇所に対して乗じられることを回避できるので、そのバーストエラーを好適に検出できる。
【００１０】
本発明の別の態様も信号復号方法に関する。この信号復号方法は、入力信号系列に属する符号化された信号が復号されたとき、この復号された信号系列にｍ行ｎ列（ｍとｎは、ｍ，ｎ≧２なる自然数）の行列を作用させて復号精度を高める。行列は、列方向に接続されたｍ行ｓ列（ｓは、ｎ＞ｓなる自然数）の第１および第２の部分行列を含み、第１および第２の部分行列において、そのｓ列のうちｔ列（ｔはｓ≧ｔ≧２なる自然数）以下の列どうしが線形独立の関係となる。
【００１１】
この態様によれば、行列において、ｔ列以下で線形従属関係が成立することはない。これによって、発生するエラーの数がｔ以下であれば、そのｔ箇所で発生したのエラーに線形従属な列を構成する列のすべてが乗じられることを回避できるため、それらのエラーの検出が可能となる。
【００１２】
本発明の別の態様は信号復号装置に関する。この信号復号装置は、入力信号系列を取得し、この入力信号系列に属する符号化された信号が復号されたとき、この復号された信号系列と行列との乗算を実行する単位復号部を備える。ｓ、ｔをｓ≧ｔ≧２なる自然数とするとき、単位復号部は、行列として、行列から抽出されたｓ列のうちｔ列以下の列どうしが線形独立の関係となるものを用いる。ｓ列は、復号された信号系列においてエラー発生頻度が比較的高い信号に乗じられる列である。
【００１３】
この態様によれば、行列は、線形独立なｔ列、すなわち線形従属でないｔ列を含むよう構成される。復号された信号系列におけるｔ箇所でエラーが発生したとき、単位復号部は、線形従属な列のすべてをそのエラー発生箇所に乗じることはないので、発生頻度が比較的高いエラーを好適に検出できる。
【００１４】
本発明の別の態様も信号復号装置に関する。この信号復号装置は、入力信号系列を取得し、この入力信号系列に属する符号化された信号が復号されたとき、この復号された信号系列と行列との乗算を実行する単位復号部を備える。ｓ、ｔをｓ≧ｔ≧２なる自然数とするとき、単位復号部は、行列として、行列から抽出されたｓ列のうちｔ列以下の列どうしが線形独立の関係となるものを用いる。ｓ列は、行列において隣接する列である。
【００１５】
この態様によれば、行列が、線形独立なｔ列を隣接させて含むよう構成される。これによって、復号された信号系列において、ｔ箇所でバーストエラーが発生した場合、単位復号部は、線形従属な列のすべてをそのバーストエラー発生箇所に乗じることはないので、そのバーストエラーを好適に検出できる。
【００１６】
本発明の別の態様も信号復号装置に関する。この信号復号装置は、入力信号系列を取得し、この入力信号系列に属する符号化された信号が復号されたとき、この復号された信号系列とｍ行ｎ列（ｍとｎは、ｍ，ｎ≧２なる自然数）の行列との乗算を実行する単位復号部を備える。行列は、列方向に接続されたｍ行ｓ列（ｓは、ｎ＞ｓなる自然数）の第１および第２の部分行列を含み、第１および第２の部分行列において、そのｓ列のうちｔ列（ｔはｓ≧ｔ≧２なる自然数）以下の列どうしが線形独立の関係となる。
【００１７】
この態様によれば、行列において、ｔ列以下で線形従属関係が成立することはない。これによって、発生するエラーの数がｔ以下であれば、単位復号部が、そのｔ箇所で発生したエラーに線形従属な列のすべてを乗じることはないので、それらのエラーの検出が可能となる。
【００１８】
第２の部分行列は、第１の部分行列の要素に対して所定のシフト処理が加えられた行列であってもよい。また、そのシフト処理は行の置換であってもよい。このように、第１の部分行列を構成すれば、第２の部分行列は、第１の部分行列の要素に対して所定のシフト処理を加えれば構成できるので、行列の構成が容易となる。
【００１９】
信号復号装置において、ｔの値は、復号の際に検出不能となる、復号された信号系列に属する信号に生じるエラーの許容限度をもとに定められてもよい。この態様によれば、すべてのエラーを検出をしない場合でも、そのエラー検出結果が許容できる範囲内のものとなるようにｔの値が決定される。つまり、ここで決定されたｔ列のうちに線形従属な列が含まれないように行列を構成することにより、許容できる範囲内のエラー検出が可能となる。これによって、すべてのエラーを検出するような行列を構成する必要がなくなるので、より容易に行列を構成することができる。
【００２０】
単位復号部は、低密度パリティ検査符号を用いて符号化された信号を復号してもよい。この態様によれば、ＬＤＰＣ復号された信号において発生するエラーの検出が可能となる。
【００２１】
本発明の別の態様は、信号記憶システムに関する。この信号記憶システムは、ライトチャネルとリードチャネルとを有する信号記憶システムである。ライトチャネルは、データをランレングス符号化する第１の符号化部と、第１の符号化部で符号化されたデータを低密度パリティ検査符号を用いてさらに符号化する第２の符号化部と、第２の符号化部で符号化されたデータを記憶装置に書き込む書込部とを備える。リードチャネルは、第２の符号化部で符号化されたデータを記憶装置から読み出す読出部と、読出部で読み出されたデータの尤度を計算して軟判定値を出力するソフト出力検出部と、ソフト出力検出部から出力されたデータを復号する、第２の符号化部に対応する第２の復号部と、第２の復号部で復号されたデータをさらに復号する、第１の符号化部に対応する第１の復号部とを備える。第２の復号部は、ソフト出力検出部から出力されたデータが復号されたとき、この復号されたデータと行列との乗算を実行する単位復号部を有し、ｓ、ｔをｓ≧ｔ≧２なる自然数とするとき、単位復号部は、行列として、行列から抽出されたｓ列のうちｔ列以下の列どうしが線形独立の関係となるものを用いる。ｓ列は、復号されたデータにおいてエラー発生頻度が比較的高い部分に乗じられる列である。信号記憶システムは、少なくとも１つの半導体基板上に集積化されてもよい。
【００２２】
この態様によれば、行列は、線形独立なｔ列、すなわち線形従属でないｔ列を含むよう構成される。復号されたデータにおけるｔ箇所でエラーが発生したとき、単位復号部は、線形従属な列のすべてをそのエラー発生箇所に乗じることはないので、記憶装置から読み出したデータについて発生頻度が比較的高いエラーを好適に検出できる。
【００２３】
本発明の別の態様も信号記憶システムに関する。この信号記憶システムは、ライトチャネルとリードチャネルとを有する信号記憶システムである。ライトチャネルは、データをランレングス符号化する第１の符号化部と、第１の符号化部で符号化されたデータを低密度パリティ検査符号を用いてさらに符号化する第２の符号化部と、第２の符号化部で符号化されたデータを記憶装置に書き込む書込部とを備える。リードチャネルは、第２の符号化部で符号化されたデータを記憶装置から読み出す読出部と、読出部で読み出されたデータの尤度を計算して軟判定値を出力するソフト出力検出部と、ソフト出力検出部から出力されたデータを復号する、第２の符号化部に対応する第２の復号部と、第２の復号部で復号されたデータをさらに復号する、第１の符号化部に対応する第１の復号部とを備える。第２の復号部は、ソフト出力検出部から出力されたデータが復号されたとき、この復号されたデータと行列との乗算を実行する単位復号部を有する。ｓ、ｔをｓ≧ｔ≧２なる自然数とするとき、単位復号部は、行列として、行列から抽出されたｓ列のうちｔ列以下の列どうしが線形独立の関係となるものを用いる。ｓ列は、行列において隣接する列である。信号記憶システムは、少なくとも１つの半導体基板上に集積化されてもよい。
【００２４】
この態様によれば、行列が、線形独立なｔ列、すなわち線形従属でないｔ列を隣接させて含むよう構成される。これによって、復号されたデータにおいて、ｔ箇所でバーストエラーが発生した場合、単位復号部は、線形従属な列のすべてをそのバーストエラー発生箇所に乗じることはないので、記憶装置から読み出したデータについてそのバーストエラーを好適に検出できる。
【００２５】
信号記憶システムは、さらに、所定のデータを記憶する記憶装置と、記憶装置へのデータの書込と、記憶装置からのデータの読出とを制御する制御部とを備えてもよく、リードチャネルは、制御部の指示に従って、記憶装置に記憶されているデータを読み出し、ライトチャネルは、制御部の指示に従って、所定のデータを記憶装置に書き込んでもよい。この態様によれば、制御部による制御により記憶装置から読み出されたデータについてエラーを好適に検出できる。
【００２６】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００２７】
本発明の信号復号方法、信号復号装置および信号記憶システムによれば、符号化された信号について好適にエラーを検出できる。
【発明を実施するための最良の形態】
【００２８】
本実施の形態では、磁気ディスク装置から読み出された信号すなわちデータをＬＤＰＣ復号する際に発生するエラーの検出について説明する。具体的には、線形従属な列を互いに離れた位置に配置して検査行列を構成することにより、バーストエラーが発生する位置に線形従属な列のすべてが乗じられることを回避して、そのバーストエラーの検出を実現する。
【００２９】
図１は、磁気ディスク装置１００の構成を示す図である。図１の磁気ディスク装置１００は、大きく分けて、ハードディスクコントローラ１（以下、「ＨＤＣ１」と略記する。）、中央処理演算装置２（以下、「ＣＰＵ２」と略記する。）、リードライトチャネル３（以下、「Ｒ／Ｗチャネル３」と略記する。）、ボイスコイルモータ／スピンドルモータ制御部４（以下、「ＶＣＭ／ＳＰＭ制御部４」と略記する。）、及びディスクエンクロージャ５（以下、「ＤＥ５」と略記する。）からなる。一般に、ＨＤＣ１、ＣＰＵ２、Ｒ／Ｗチャネル３、及びＶＣＭ／ＳＰＭ制御部４は少なくとも一つの半導体基板上に集積化される。
【００３０】
ＨＤＣ１は、ＨＤＣ１全体を制御する主制御部１１、データフォーマット制御部１２、誤り訂正符号化制御部１３（以下、「ＥＣＣ制御部１３」と略記する。），及びバッファＲＡＭ１４を含む。ＨＤＣ１は、図示しないインタフェース部を介してホストシステムと接続される。また、Ｒ／Ｗチャネル３を介して、ＤＥ５と接続されており、主制御部１１の制御により、ホストとＤＥ５の間のデータ転送を行う。このＨＤＣ１には、Ｒ／Ｗチャネル３で生成されるリードリファレンスクロック（ＲＲＣＫ）が入力される。データフォーマット制御部１２は、ホストから転送されたデータをディスク媒体５０上に記録するのに適したフォーマットに変換し、逆に、ディスク媒体５０から再生されたデータをホストに転送するのに適したフォーマットに変換する。ディスク媒体５０は、たとえば、磁気ディスクを含む。ＥＣＣ制御部１３は、ディスク媒体５０から再生されたデータに含まれる誤りの訂正及び検出を可能にするために、記録するデータを情報シンボルとして、冗長シンボルを付加する。またＥＣＣ制御部１３は、再生されたデータに誤りが生じているかを判断し、誤りがある場合には訂正或いは検出を行う。但し、誤りが訂正できるシンボル数は有限であり、冗長データの長さに関係する。即ち、多くの冗長データを付加するとフォーマット効率が悪化するため、誤り訂正可能シンボル数とはトレードオフとなる。ＥＣＣとしてリードソロモン（ＲＳ）符号を利用して誤り訂正を行う場合、（冗長シンボル数／２）個までの誤りを訂正できる。バッファＲＡＭ１４は、ホストから転送されたデータを一時的に保存し、適切なタイミングでＲ／Ｗチャネル３に転送する。逆に、Ｒ／Ｗチャネル３から転送されたリードデータを一時的に保存し、ＥＣＣ復号処理などの終了後、適切なタイミングでホストに転送する。
【００３１】
ＣＰＵ２は、フラッシュＲＯＭ２１（以下、「ＦＲＯＭ２１」と略記する。）、及びＲＡＭ２２を含み、ＨＤＣ１、Ｒ／Ｗチャネル３、ＶＣＭ／ＳＰＭ制御部４、及びＤＥ５と接続される。ＦＲＯＭ２１には、ＣＰＵ２の動作プログラムが保存されている。
【００３２】
Ｒ／Ｗチャネル３は、ライトチャネル３１とリードチャネル３２とに大別され、ＨＤＣ１との間で記録するデータ及び再生されたデータの転送を行う。また、Ｒ／Ｗチャネル３は、ＤＥ５と接続され、記録信号の送信、再生信号の受信を行う。詳細は後述する。
【００３３】
ＶＣＭ／ＳＰＭ制御部４は、ＤＥ５中のボイスコイルモータ５２（以下、「ＶＣＭ５２」と略記する。）とスピンドルモータ５３（以下、「ＳＰＭ５３」と略記する。）を制御する。
【００３４】
ＤＥ５は、Ｒ／Ｗチャネル３と接続され、記録信号の受信、再生信号の送信を行う。またＤＥ５は、ＶＣＭ／ＳＰＭ制御部４と接続されている。ＤＥ５は、ディスク媒体５０、ヘッド５１、ＶＣＭ５２、ＳＰＭ５３、及びプリアンプ５４等を有している。図１の磁気ディスク装置１００においては、ディスク媒体５０が１枚であり、且つヘッド５１がディスク媒体５０の一方の面側のみに配置されている場合を想定しているが、複数のディスク媒体５０が積層配置された構成であってもよい。また、ヘッド５１は、ディスク媒体５０の各面に対応して設けられるのが一般的である。Ｒ／Ｗチャネル３により送信された記録信号は、ＤＥ５内のプリアンプ５４を経由してヘッド５１に供給され、ヘッド５１によりディスク媒体５０に記録される。逆に、ヘッド５１によりディスク媒体５０から再生された信号は、プリアンプ５４を経由してＲ／Ｗチャネル３に送信される。ＤＥ５内のＶＣＭ５２は、ヘッド５１をディスク媒体５０上の目標位置に位置決めするために、ヘッド５１をディスク媒体５０の半径方向に移動させる。また、ＳＰＭ５３は、ディスク媒体５０を回転させる。一般に、ＨＤＣ１、ＣＰＵ２、Ｒ／Ｗチャネル３、及びＶＣＭ／ＳＰＭ制御部４、プリアンプ５４およびＶＣＭ５２は同一の半導体集積回路で実現される。ただし、これらの一部の任意の組み合わせを同一の半導体集積回路で実現することもできる。
【００３５】
ここで、図２を用いて、Ｒ／Ｗチャネル３について説明する。図２は、図１のＲ／Ｗチャネル３の構成を示す。Ｒ／Ｗチャネル３は、大きく分けて、ライトチャネル３１とリードチャネル３２から構成される。
【００３６】
ライトチャネル３１は、バイトインターフェース部３０１、スクランブラ３０２、ランレングス制御符号化部３０３（以下、「ＲＬＬ符号化部３０３」と略記する）、低密度パリティチェック符号化部３０４（以下、「ＬＤＰＣ符号化部３０４」と略記する。）、書込補償部３０５（以下、「ライトプリコン部３０５」と略記する）、ドライバ３０６を含む。
【００３７】
バイトインターフェース部３０１では、ＨＤＣ１から転送されたデータが入力データとして処理される。メディア上に書き込むデータは１セクタ単位でＨＤＣ１から入力される。このとき１セクタ分のユーザデータ（５１２バイト）だけでなく、ＨＤＣ１によって付加されたＥＣＣバイトも同時に入力される。データバスは通常１バイト（８ビット）であり、バイトインターフェース部３０１により入力データとして処理される。スクランブラ３０２はライトデータをランダムな系列に変換する。同じパターンのデータの繰り返しは、リード時における検出性能に悪影響を与え、エラーレートを悪化させるのを防ぐためである。ＲＬＬ符号化部３０３は０の最大連続長を制限するためのものである。０の最大連続長を制限することによりリード時の自動利得制御部３１７（以下、「ＡＧＣ３１７」と略記する）などに適したデータ系列にする。
【００３８】
ＬＤＰＣ符号化部３０４はデータ系列にＬＤＰＣ符号の冗長ビットを付加したＬＤＰＣ符号化したデータ系列に符号化する役割を有する。ＬＤＰＣ符号化は、生成行列と呼ばれるｋ×ｎの行列に、長さｋのデータ系列を左から掛け合わせることで行う。この生成行列に含まれる各要素は、０もしくは１である。
【００３９】
ライトプリコン部３０５はメディア上の磁化転移の連続による非線形歪を補償する回路である。ライトデータから補償に必要なパターンを検出し、正しい位置で磁気転移が生ずるようにライト電流波形を予め調整をする。ドライバ３０６は擬似ＥＣＬレベルに対応した信号を出力するドライバである。ドライバ３０６からの出力は図示しないＤＥ５に送られ、プリアンプ５４を通してヘッド５１に送られ、ライトデータがディスク媒体５０上に記録される。
【００４０】
リードチャネル３２は、可変利得増幅器３１１（以下、「ＶＧＡ３１１」と略記する。）、ローパスフィルタ３１２（以下、「ＬＰＦ３１２」と略記する。）、ＡＧＣ３１７、アナログ／ディジタル変換器３１３（以下、「ＡＤＣ３１３」と略記する。）、周波数シンセサイザ３１４、ＦＩＲフィルタ３１５、ＳＯＶＡ（Ｓｏｆｔ−Ｏｕｔｐｕｔ Ｖｉｔｅｒｂｉ Ａｌｇｏｒｉｔｈｍ）復号部３１６、ゼロ相スタート部３１８、タイミング制御部３１９、インタポレータ３２５、ＬＤＰＣ繰返復号部３２２、同期信号検出部３２１、ランレングス制御復号部３２３（以下、「ＲＬＬ復号部３２３」と略記する。）、デスクランブラ３２４とから構成されている。
【００４１】
ＶＧＡ３１１及びＡＧＣ３１７は、図示しないプリアンプ５４から送られたデータのリード波形の振幅の調整を行う。ＡＧＣ３１７は理想的な振幅と実際の振幅を比較し、ＶＧＡ３１１に設定すべきゲインを決定する。ＬＰＦ３１２は、カットオフ周波数とブースト量を調整することができ、高周波ノイズの低減と部分応答（Ｐａｒｔｉａｌ Ｒｅｓｐｏｎｓｅ。以下、「ＰＲ」と略記する）波形への等化の一部を担う。ＬＰＦ３１２でＰＲ波形への等化を行うが、ヘッドの浮上量変動、媒体の不均一性、モータの回転変動などの多くの要因により、アナログのＬＰＦによる完全な等化は難しいので、後段に配置され、よりフレキシビリティに富んだＦＩＲフィルタ３１５を用いて、再度ＰＲ波形への等化を行う。ＦＩＲフィルタ３１５は、そのタップ係数を適応的に調整する機能を有していてもよい。周波数シンセサイザ３１４は、ＡＤＣ３１３のサンプリング用クロックを生成する。インタポレータ３２５は、タイミング制御部３１９で検出された位相誤差を用いて、周波数シンセサイザ３１４で生成されたサンプリング用クロックの微調整を行う。ＡＤＣ３１３は、ＡＤ変換により直接同期サンプルを得る構成とした。なお、この構成の他に、ＡＤ変換により非同期サンプルを得る構成であってもよい。この場合は、インタポレータ３２５に代えて補間フィルタを用いればよい。ゼロ相スタート部３１８は、初期位相を決定するためのブロックである。タイミング制御部３１９は、決定された初期位相およびＦＩＲフィルタ３１５の出力を用いて、理想的なサンプル値と実際のサンプル値を比較し、位相誤差を検出する。
【００４２】
ＳＯＶＡ復号部３１６は、ビタビアルゴリズムの一種であるＳＯＶＡを用いて、符号間干渉に伴う復号特性の劣化を回避する。すなわち、近年の磁気ディスク装置の記録密度の上昇に伴い、記録された符号間の干渉が大きくなり、復号特性が劣化するといった課題を解決するため、これを克服する方式として最尤復号（Ｐａｒｔｉａｌ  Ｒｅｓｐｏｎｓｅ  Ｍａｘｉｍｕｍ  Ｌｉｋｅｌｉｈｏｏｄ。以下、「ＰＲＭＬ」と略記する）方式を用いる。ＰＲＭＬ方式は、ＰＲ方式およびＭＬ方式の二つの方式から成り立ち、再生信号の符号間干渉による部分応答の尤度を最大にする信号系列を求める方式である。図２に示すように、ＰＲＭＬ復号部３２０は、ＦＩＲフィルタ３１５とＳＯＶＡ復号部３１６とを含む。ＳＯＶＡ復号部３１６からの出力は、ＬＤＰＣ繰返復号部３２２のソフト値入力として用いることができる。例えば、ＳＯＶＡの出力として、（０．７１， ０．１８， ０．４５， ０．４５， ０．９）というソフト値が出力されたとする。これらの値は、０である可能性が大きいか、１である可能性が大きいかを数値で表している。例えば、１番目の０．７１は１である可能性が大きいことを示しており、４番目の０．４５は０である可能性が大きいが１である可能性も小さくはないことを意味する。従来のビタビディテクタの出力はハード値であり、ＳＯＶＡの出力を硬判定したものである。ここで、硬判定とは、例えば、所定のしきい値より大きかった場合は、”１”と判定し、小さかった場合は、”０”と判定することなどをいう。上記の例の場合、（１，０，０，０，１）である。ハード値は、０であるか、１であるかのみを表しており、どちらの可能性が高いかという情報が失われている。このためＬＤＰＣ繰返復号部３２２にソフト値を入力する方が復号性能が良くなる。
【００４３】
同期信号検出部３２１はデータの先頭に付加された同期信号（Ｓｙｎｃ Ｍａｒｋ）を検出し、データの先頭位置を認識する役割を有する。ＬＤＰＣ繰返復号部３２２は、ＬＤＰＣ符号化されているデータ系列から、ＬＤＰＣ符号化前の系列に復元する役割を有する。復号化の方法としては、主に、ｓｕｍ−ｐｒｏｄｕｃｔ復号法とｍｉｎ−ｓｕｍ復号法があり、復号性能の面ではｓｕｍ−ｐｒｏｄｕｃｔ復号法が有利であるが、ｍｉｎ−ｓｕｍ復号法はハードウェアによる実現が容易である特徴を持つ。
【００４４】
一般的に、ＬＤＰＣ復号に繰り返し復号を用いた場合、事前値と事後値と呼ばれる値を求め、さらに、ＤＡＥを介して、再度、事前値と事後値を計算する。所定の回数、もしくは、エラーが含まれなくなったと判断された場合、その時点で求まっている尤度を硬判定し、２値の復号データを出力することとなる。エラーが含まれなくなったことは、冗長データ系列を含む復号データに検査行列の転置行列を掛け合わせて、その結果が０行列であるか否かで判断できる。検査行列とは、生成行列をＧ、検査行列をＨとするとき、ＧＨＴ＝０が成立するような行列である。上述のように、ＬＤＰＣ符号化は、生成行列にデータ系列を左から掛け合わせて、データ系列に冗長ビットを付加することによりなされる。つまり、復号データに検査行列の転置行列を掛け合わせた結果が０行列になっていれば、訂正により復号データにエラーが含まれなくなったと判断され、また、結果が０行列以外であれば訂正しきれていないエラーが復号データに含まれていると判断されることとなる。他にエラーが含まれなくなったことを判断する方法としては、復号対象のデータのうち、冗長データ系列を除くデータ系列に、ＬＤＰＣ符号化時に用いた生成行列を掛け合わせて冗長ビットを求める。次に、冗長ビットを硬判定して、冗長データ系列と比較し、一致しているか否かによってエラーが訂正されているかどうかを判断する。
【００４５】
ＲＬＬ復号部３２３は、ＬＤＰＣ繰返復号部３２２から出力されたデータに対して、ライトチャネル３１のＲＬＬ符号化部３０３の逆操作を行い、元のデータ系列に戻す。デスクランブラ３２４はライトチャネル３１のスクランブラ３０２の逆操作を行い、元のデータ系列に戻す。ここで生成されたデータはＨＤＣ１に転送される。
【００４６】
図３は、ＬＤＰＣ繰返復号部３２２の機能ブロック図である。ＬＤＰＣ繰返復号部３２２は、インタリーバ３３０、ＬＤＰＣ単位復号部３３２、デインタリーバ３３４、判定部３３６、カウンタ３３７、ＤＡＥ３３８およびＰＲ方式ターゲット保持部３３９を含む。
【００４７】
ＳＯＶＡ復号部３１６で復号されて出力されたソフト値のデータは、同期信号検出部３２１によりデータの先頭位置が認識されてからインタリーバ３３０に入力される。インタリーバ３３０は、入力されたデータをインタリーブして複数の経路に分ける。「インタリーブ」とは、データ系列の連続するデータを複数の段に振り分けることである。
ここで、インタリーバ３３０の働きを説明する。一般に、ＰＲＭＬ方式では、バーストエラーが発生しやすいことが知られている。ＬＤＰＣ単位復号部３３２が、データ系列に検査行列を作用させるとき、データ系列でのバーストエラー発生位置に検査行列における線形従属な関係を有する列が乗じられると、そのバーストエラーを検出できない場合がある。特に、ＬＤＰＣ復号に用いられる検査行列の要素は、１の数が０の数に比べて少ないので線形従属な関係を有する列を含みやすく、バーストエラーを検出できない可能性が比較的高い。インタリーバ３３０は、データを複数の経路に分けることにより、エラーを各経路に分散させ、検査行列を乗じたときのエラー検出の精度を上げる。
【００４８】
しかし、バーストエラーを構成するエラー箇所の数が多く、インタリーブしてもバーストエラーが存在する場合、検査行列の構成によってはそのバーストエラーを検出できない場合がある。例えば、インタリーブされる前のデータおいてエラーが３２箇所連続していて、インタリーバ３３０が、エラー発生箇所を８つの経路に分けるとする。この結果、各経路に振り分けられたデータにおいて、エラーは４箇所連続して存在する。ここで、検査行列の中に４列で線形従属の関係が成立する列が互いに隣接して存在し、これら４列すべてが、各経路に振り分けられたデータのそれぞれに含まれる４箇所連続しているエラーに乗じられると、これらのエラーは検出されない。このような場合、後述するように線形従属な列を離して検査行列を構成することにより、インタリーブした後にも存在するバーストエラーの検出が可能となる。
【００４９】
ＬＤＰＣ単位復号部３３２は、インタリーバ３３０で複数の経路に分けられたデータに対してＬＤＰＣ復号をして、その復号データを一時推定値として出力するとともに、その一時推定値についてパリティ検査を行う。ここで、ＬＤＰＣ単位復号部３３２は、１回目の復号において入力されたソフト値を硬判定し、一時推定値をハード値として出力する。「パリティ検査」とは、一時推定値をｘ、検査行列をＨとするとき、一時推定値ｘに検査行列Ｈの転置行列ＨＴを乗じて、ｘＨＴ＝０なる関係が成立するか否かを調べることである。ＬＤＰＣ単位復号部３３２は、インタリーバ３３０で複数経路に分けられたデータについて並列処理を施すことにより、高速な処理を実現する。デインタリーバ３３４は、ＬＤＰＣ単位復号部３３２で復号されて出力された一時推定値をデインタリーブして、元の一つのデータ系列の形に戻す。図３では、インタリーバ３３０とＬＤＰＣ単位復号部３３２との間およびＬＤＰＣ単位復号部３３２とデインタリーバ３３４との間における複数経路を３本の矢印で示す。ここで、「デインタリーブ」とは、インタリーブされて複数経路に振り分けられたデータを統合して元の形に並べ直すことである。
【００５０】
判定部３３６は、パリティ検査の結果に応じて、繰り返し復号を終了するか否かを判定する。カウンタ３３７は、復号が繰り返された回数を計数する。つまり、カウンタ３３７は、判定部３３６が判定をするごとにカウンタ３３７において１を加算する。ここで、判定部３３６は、パリティ検査の結果、ｘＨＴ＝０が成立したとき、または、ｘＨＴ＝０が成立しないが、カウンタ３３７があらかじめ定められた繰り返し復号の回数（「所定の回数」とも表記する）を計数したときは、繰り返し復号を終了すると判定する。一方、判定部３３６は、パリティ検査の結果、ｘＨＴ＝０が成立せず、かつ、カウンタ３３７が所定の回数を計数していないときは繰り返し復号を終了しないと判定する。判定部３３６は、繰り返し復号を終了すると判定したとき、一時推定値をＲＬＬ復号部３２３へ出力する。一方、判定部３３６は、繰り返し復号を終了すると判定しなかったときは、一時推定値をＤＡＥ３３８に出力する。つまり、判定部３３６は、デインタリーバ３３４によりデインタリーブされた一時推定値に処理を加えることなく、その一時推定値をＲＬＬ復号部３２３またはＤＡＥ３３８へ出力する。ＤＡＥ３３８はデインタリーブされた一時推定値、ＦＩＲフィルタ３１５の出力およびＰＲ方式ターゲット保持部３３９が保持するＰＲ方式によるデータの波形等価の目標値（「ＰＲ方式ターゲット」とも表記する）を用いて対数尤度比を算出する。本実施の形態では、この際に用いられる一時推定値はハード値であるが、硬判定前のソフト値であってもよい。ここで、「対数尤度比」とは、一時推定値シンボルの信頼度情報である。２回目以降の繰り返し復号には、ＤＡＥ３３８が算出した対数尤度比が用いられる。つまり、インタリーバ３３０は、ＤＡＥ２２８の出力である対数尤度比をインタリーブする。ＬＤＰＣ単位復号部３３２は、インタリーバ３３０によりインタリーブされた対数尤度比についてＬＤＰＣ復号をして、その復号データを一時推定値として出力するとともに、その一時推定値についてパリティ検査を行う。
【００５１】
図４は、ＬＤＰＣ単位復号部３３２の機能ブロック図である。本実施の形態では、ｍｉｎ−ｓｕｍ復号法を用いて復号する。ここで、ｓｕｍ−ｐｒｏｄｕｃｔ復号法によって復号してもよい。一時推定値算出部３４２は、インタリーバ３３０によりインタリーブされた信号を復号する。一時推定値算出部３４２による復号は、検査行列保持部３４０が保持する検査行列の各要素についての対数外部値比、対数事前値比および対数尤度比を用いて、信号の一時推定値を所定の回数繰り返し算出して行われる。ここで、一時推定値算出部３４２は、１回目の復号において入力されたソフト値を硬判定し、一時推定値をハード値として出力する。パリティ検査部３４４は、一時推定値算出部３４２が算出した一時推定値について、パリティ検査によるエラー検出を行う。パリティ検査は、一時推定値に検査行列保持部３４０が保持する検査行列の転置行列を乗じて行う。具体的には、一時推定値をｘ、検査行列をＨとすると、パリティ検査部３４４は、ｘＨＴなる乗算を行う。回路に実装する場合、パリティ検査部３４４としては乗算器が用いられる。乗算の対象となった一時推定値は、パリティ検査部３４４から出力され、デインタリーバ３３４に入力される。また、パリティ検査部３４４での乗算した結果は、判定部３３６に投入される。ここで、「対数外部値比」とは、復号によるシンボルの信頼度の増分である。「対数事前値比」とは、対数外部値比の算出のためにあらかじめ与える値である。
【００５２】
図５は、エラー検出について説明するための図である。ここでは、検査行列に含まれる線形従属な列のすべてがエラー発生箇所に乗じられると、エラー検出が不可能となることについて説明する。同図において、一時推定値をｘ、検査行列をＨ、パリティ検査における乗算ｘＨＴの結果をｙとする。一時推定値ｘは１７ビットのデータ系列であるとし、同図では、１行１７列の行列として表現する。検査行列Ｈは６行１７列の行列であり、ｘＨＴなる乗算結果として１行６列の行列ｙが得られる。検査行列Ｈにおける各行に行番号、各列に列番号を付して示す。ここで、乗算結果ｙの要素がすべて「０」であるときは、エラーは発生しておらず、いずれかの要素が「１」であるときは、エラーが発生しているといえる。本実施の形態では、符号化される前の本来のデータは、要素がすべて「０」の１行１７列の行列であるとする。同図において枠で囲って示した検査行列Ｈにおける３列、すなわち第１１列、第１２列および第１５列によって線形従属関係が成立する。
【００５３】
一時推定値ｘにおいてエラーが発生していない、つまり、一時推定値ｘの要素がすべて「０」である場合、乗算結果ｙの要素はすべて「０」である「００００００」となる。一時推定値ｘにおける１箇所においてエラーが発生し、第１１列の要素が「１」となったとき、乗算結果ｙは「００１０１１」となる。この場合、乗算結果ｙの要素に「１」が含まれているため、エラーが発生したことを判別できる。一時推定値ｘにおける２箇所においてエラーが発生し、第１１列および第１２列の要素が「１」となったとき、乗算結果ｙは「００１１００」となる。この場合も乗算結果ｙの要素に「１」が含まれているため、エラーが発生したことを判別できる。一時推定値ｘにおける３箇所においてエラーが発生し、第１１列、第１２列および第１５列の要素が「１」となったとき、乗算結果ｙは「００００００」となる。この場合は、一時推定値ｘにおいてエラーが発生していない場合と同一の乗算結果ｙが得られることとなり、エラーが発生したことを判別できない。これは、エラー発生箇所の要素「１」に線形従属な列のすべてが乗じられたことに起因する。以下で、図６を用いてこれを説明する。
【００５４】
図６は、図５に示した行列からエラー発生箇所に関する箇所を抽出した図である。行列αは、一時推定値ｘにおける第１１列、第１２列および第１５列を抽出して構成した行列、行列βは、検査行列Ｈにおける線形従属な列、第１１列、第１２列および第１５列を抽出して構成した行列、行列γは、乗算αβＴの結果である。行列βを構成する３列は線形従属関係にある。つまり、行列βの各行において要素「１」は、存在しないか、または２箇所に存在し、これら３列を加算するとすべての要素が「０」の６行１列の行列となる。
【００５５】
乗算αβＴがなされる場合、行列αの各要素と、転置行列βＴの各列、すなわち行列βの各行の各要素がそれぞれ乗じられてから加算されることにより、乗算結果γの各要素が算出される。図６（ａ）、同図（ｂ）、同図（ｃ）および同図（ｄ）はそれぞれ、一時推定値ｘにおいてエラーが発生していない場合、１箇所にエラーが発生した場合、２箇所にエラーが発生した場合、３箇所でエラーが発生した場合の行列α、行列βおよび乗算結果γを示す。また、これらの同図（ｂ）、（ｃ）および（ｄ）に示す矢印は、矢印の引出元である行列βにおける各行が、乗算した結果、矢印の引出先である乗算結果γの各要素の値の決定に関わることを示している。
【００５６】
一時推定値ｘにおいてエラーが発生していない場合、行列αの各列の要素「０」が行列βの各行の要素と乗じられ、乗算結果γは、図６（ａ）に示すように「００００００」となる。一時推定値ｘにおいて１箇所にエラーが発生して行列αの第１列が「１」となった場合、この要素「１」が、行列βの第１列における各行の要素に乗じられる。この行列βの第１列の要素が「１」であるのは第３行、第５行および第６行であるので、乗算結果γは、エラーが発生していない場合の乗算結果γ「００００００」の第３列、第５列および第６列の要素が反転する結果、図６（ｂ）に示すように「００１０１１」となる。これに起因して、図５に示して上述したように、乗算結果ｙも「００１０１１」となる。ここで、「反転」とは、要素「０」が「１」となること、または要素「１」が「０」となることをいう。
【００５７】
一時推定値ｘにおいてエラーが２箇所に発生し、上述の行列αの第１列に加え、さらに第２列の要素も「１」となったとする。このとき、行列αの第１列の要素「１」が行列βの第１列における各行の要素に、行列αの第２列の要素「１」が行列βの第２列における各行の要素に乗じられる。行列βの第２列の要素が「１」であるのは第４行、第５行および第６行であるので、乗算結果γは、エラーが１箇所に発生した場合の乗算結果γ「００１０１１」の第４列、第５列および第６列の要素が反転して、図６（ｃ）に示すように「００１１００」となる。これに起因して、図５に示して上述したように、乗算結果ｙも「００１１００」となる。
【００５８】
一時推定値ｘにおいてエラーが３箇所に発生し、上述の行列αの第１列および第２列に加え、さらに第３列の要素も「１」となったとする。このとき、行列αの第１列の要素「１」が行列βの第１列における各行の要素に、行列αの第２列の要素「１」が行列βの第２列における各行の要素に、行列αの第３列の要素「１」が行列βの第３列における各行の要素に乗じられる。行列βの第３列の要素が「１」であるのは第３行および第４行であるので、乗算結果γは、エラーが２箇所に発生した場合の乗算結果γ「００１１００」の第３列および第４列の要素が反転して、図６（ｄ）に示すように「００００００」となる。これに起因して、図５に示して上述したように、乗算結果ｙも「００００００」となり、この結果、エラーの検出が不可能となる。
【００５９】
一時推定値ｘの３箇所でエラーが発生したときに、乗算結果γが「００００００」となるのは、行列βの第３行、第４行、第５行および第６行のそれぞれにおいて「１」が２箇所に存在することに起因する。つまり、行列βにおいてエラー発生箇所と乗じられる箇所に要素「１」があると、その要素「１」が存在する行と対応する乗算結果γの列の「０」または「１」が反転する。ここでは、行列βの第３行、第４行、第５行および第６行において「１」が２箇所に存在するため、３箇所にエラーが発生したときに乗算結果γの第３列、第４列、第５列および第６列の要素がそれぞれ２回反転して「０」となる。つまり、エラー発生箇所に線形従属の列のすべてが乗じられたとき、エラー検出が不可能となる。本実施の形態では、本来のデータにおいて「０」であった箇所にエラーが発生して「１」となった場合について説明した。本来のデータが「１」であった箇所にエラーが発生して「０」となった場合でも、乗算結果における要素「１」と「０」が反転することに変わりはなく、上述の場合と同様に説明できる。
【００６０】
このエラー検出が不可能となる問題点にを解消する方策として、なるべく多くの数の列で線形従属関係が成立する列を検査行列に含ませることにより、検出できるエラーの数も増加させることが考えられる。しかし、検査行列は「１」の数が「０」の数より少ない疎な行列であるため、線形従属関係が成立しやすく、線形従属が成立する列の数にも限界がある。
【００６１】
ここで、どの箇所でエラーが発生しても、その箇所に線形従属な列のすべてが乗じられないように線形従属な列を配置して検査行列を構成すれば、エラーの検出が可能となる。以下で、本実施の形態における、このような検査行列の構成方法を説明する。
図７および図８を用いて、本実施の形態の検査行列の構成の概念を説明する。ここでは、バーストエラーの検出するための検査行列の構成について説明する。図７および図８は、図２に示すＰＲＭＬ復号部３２０とＬＤＰＣ繰返復号部３２２に着目した図である。ＰＲＭＬ復号部３２０は、図１に示したディスク媒体５０から再生されたデータをＰＲＭＬ復号する。上述したように、一般に、ＰＲＭＬ復号されたデータにおいては、バーストエラーが発生しやすい。ＬＤＰＣ繰返復号部３２２は、ＰＲＭＬ復号されたデータに検査行列を作用させる。
【００６２】
図７および図８において、ＰＲＭＬ復号部３２０およびＬＤＰＣ繰返復号部３２２の下に示した○と×で示す列は、ＰＲＭＬ復号されたデータ系列の一部である。○は、そのデータ系列においてＰＲＭＬ復号によってエラーが発生しなかった箇所、×は、ＰＲＭＬ復号によってエラーが発生した箇所である。図７および図８に示すように、ＰＲＭＬ復号によって復号されたデータにおいて、５箇所連続したバーストエラーが発生している。ＬＤＰＣ繰返復号部３２２の下に示した行列は、検査行列である。図７および図８には、検査行列に含まれる３列が示されている。これら３列は、線形従属の関係を有する。検査行列において、これら３列以外には、線形従属となる列の組み合わせは存在しないものとする。図７では、これら３列は互いに隣接して配置されている。一方、図８では、これら３列は互いに離れた位置に配置されている。
【００６３】
図７において、信号に検査行列を作用させるときに、これら３列は、点線で結んで示したデータの×印の箇所、すなわちエラー発生箇所とそれぞれ対応するものとする。つまり、ＬＤＰＣ繰返復号部３２２において、検査行列に含まれる線形従属な列のすべてがエラー発生箇所に乗じられる。上述したように、この場合はこれらのエラーを検出できない。
【００６４】
一方、図８では、線形従属な３列は、検査行列の中で互いに離れた位置に配置されており、線形従属な３列のうち、エラー発生箇所と対応するのは２列であり、他の１列はエラーが発生していない箇所と対応する。つまり、検査行列におけるエラー発生箇所に対応する５箇所には、互いに線形独立な列、すなわち線形従属でない列が配置される。この場合、線形従属な列のすべてが、エラー発生箇所と乗じられることはないため、エラーの検出が可能となる。つまり、バーストエラーにおいて連続するエラーの数と同数の列のうちに、線形従属な列のすべてが含まれないように、これらの列を互いに離して配置することにより検査行列を構成すれば、バーストエラーを検出できる。
【００６５】
検査行列における線形従属な列を配置する位置は、バーストエラーの特性に応じて決めることができる。例えば、長手記録方式または垂直記録方式によってディスク媒体５０に記録されたデータをＰＲＭＬ復号法により復号する場合、一般に、復号したデータにおいて発生するバーストエラーのうち、連続するエラーのビット数は、ほとんどが１０ビット以下であることが知られている。このとき、隣接する１０列の中に線形従属な列のすべてが含まれないように線形従属な列を配置して検査行列を構成することにより、ＰＲＭＬ復号により復号された信号で発生するバーストエラーをほぼ検出することができる。
【００６６】
また、すべてのエラーパターンを検出できなくても、エラーの検出結果として許容できる範囲を設けて、エラーの検出結果がその許容範囲内のものとなるように検査行列を構成することもできる。例えば、上述のＰＲＭＬ復号されたデータにおいて、１０ビットのような長いパターンのバーストエラーが発生することは稀であり、発生するすべてのエラーうち、約９０パーセントエラーは５ビット程度のエラーパターンである。ここで、これらのエラーを検出できれば、検出結果として許容できるとする。そこで、５ビット以内のエラーパターンをすべて検出すべく、隣接する５列の中に線形従属な列のすべてが含まれないように検査行列を構成する。これによって、発生頻度の低い９ビットや１０ビットの長いエラーパターンをも検出するために、隣接する１０列に線形従属な列のすべてが含まれないように検査行列を構成する場合と比較して、容易に検査行列を構成できる。また、そのように構成した検査行列を用いれば許容できるエラー検出結果を得ることができ、エラー検出の精度の高さを確保できる。
【００６７】
図９を用いて上述したような検査行列の構成方法を説明する。ここでは、５ビット以下のバーストエラーを検出することを目的とする。つまり、検査行列のいずれの箇所においても互いに隣接する５列のうちに、線形従属な列のすべてが含まれないようにする必要がある。まず、隣接する５列に線形従属な列のすべてが含まれないようにブロックを構成する。次いで、このブロックを行方向にサイクリックシフトしたブロックを列方向に順次接続する作業を繰り返して検査行列を構成する。ここで、各ブロックの境界を挟んだ５列についても、その中に線形従属な列のすべてが含まれないようにする。サイクリックシフトが一巡したときは、最初に構成したブロックを接続し、一巡目と同様にサイクリックシフトしたブロックを、検査行列の列の数に到達するまで順次接続する作業を繰り返す。
【００６８】
図９は、この方法により構成された検査行列を示した図である。検査行列４００は、６行３７列の行列であり、ブロックＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの６つのブロックおよびａ１なる１つの列により構成される。また、同図に示すように、ブロックＡは、ａ１、ａ２、ａ３、ａ４、ａ５およびａ６の６つの列から構成される。ブロックＢ〜Ｆも同様に、ｂ１〜ｂ６、ｃ１〜ｃ６、ｄ１〜ｄ６、ｅ１〜ｅ６、ｆ１〜ｆ６の６つの列からそれぞれ構成される。なお、同図において、検査行列４００の下側に列の番号を示す。
【００６９】
検査行列の構成の手順を説明する。まず、ａ１〜ａ６の６列を列方向に並べてブロックＡを構成する。ここで、ａ１、ａ３およびａ６は、線形従属な列である。なお、ブロックＡにおいて、これら３列以外によって、線形従属関係が成立することはないとする。ａ１〜ａ６を並べるとき、同図に示すように、隣接する５列に線形従属なこれら３列すべてが含まれないよう離して配置する。次に、ブロックＡを行方向にサイクリックシフトしてブロックＢを構成し、ブロックＡの最終列ａ６に接続して配置する。ブロックＡを行方向にサイクリックシフトするので、ブロックＡの第１行の要素は、ブロックＢの第６行の要素に相当する。また、ブロックＡの第２行〜第５行は、ブロックＢの第１行から第５行に相当する。つまり、ｂ１、ｂ３、ｂ６は、ａ１、ａ３、ａ６のそれぞれを行方向にサイクリックシフトしたものである。ａ１、ａ３およびａ６は線形従属な列であり、それを行方向にサイクリックシフトしたｂ１、ｂ３およびｂ６も線形従属な列である。つまり、ブロックＢにおいても、隣接する５列に線形従属な列ｂ１、ｂ３、ｂ６は含まれない。なお、例えば、第６列から第１０列までの５列にはａ６、ｂ１およびｂ３が、ブロックＡとブロックＢにまたがって含まれるが、ブロックの境界に留意してブロックを構成しているため、これらの列の間には線形従属関係は成立しない。
【００７０】
同様に、ブロックＣ〜Ｆについても、順次行方向にサイクリックシフトして接続する作業を繰り返す。ブロックＡ〜Ｆが接続された状態で、６行３６列の行列が構成される。そして、検査行列４００の第３７列目として、ブロックＡの第１列であるａ１を配置する。以上の手順によって構成された検査行列４００においては、いずれの箇所の隣接する５列の中にも線形従属な列のすべてが含まれることはない。これによって、連続５ビットまでのバーストエラーであれば、そのバーストエラーの発生を検出することができる。
【００７１】
本実施の形態における検査行列４００の構成方法では、各ブロックを構成する６列のうち隣接する５列中に線形従属な列のすべてが含まれないように構成すれば、上述の所定の手順により検査行列４００を構成できる。これによって、検査行列４００におけるすべての列における隣接する５列中に線形従属な列のすべてが含まれないような構成を考える必要がなくなるため、容易に検査行列４００を構成できる。
【００７２】
本実施の形態では、検査行列に含まれる各ブロックは線形従属な列を含んだが、変形例として、各ブロックに線形従属な列を含まず、線形独立な列のみを含んでもよい。これによって、検査行列の中の列はすべて線形独立な列から構成されることになるので、線形従属な列を離して配置する作業を省略できる。
【００７３】
本実施の形態では、バーストエラーの検出について説明するため、線形独立な列を隣接して配置した。しかし、検出されるエラーはこれに限られない。線形独立な列を信号にエラー発生頻度の高い箇所に対応する位置に配置して検査行列を構成すれば、周期的にエラーの発生しやすい信号に対するエラー検出が可能となる。また、なるべく多い数で線形従属の関係が成立するような列を検査行列に含むことにより、多くのエラーを検出できる。
【００７４】
本実施の形態では、本発明に係る信号復号装置をＬＤＰＣ符号の復号に適用した例について説明したが、適用の対象はこれに限られず、行列を用いた復号であれば適用が可能である。
【００７５】
本実施の形態では、磁気ディスク装置に適用の例として説明したが、適用の対象はこれに限られず、光ディスク記憶装置、光磁気ディスク記憶装置等、符号化された信号を記憶する記憶装置であって、信号を読み取る際に復号するものへの適用が可能である。また、符号化されて送信された信号を受信する際に復号する通信システムへの適用が可能である。
【図面の簡単な説明】
【００７６】
【図１】実施の形態の磁気ディスク装置の構成を示す図である。
【図２】実施の形態のＲ／Ｗチャネルの構成を示す図である。
【図３】実施の形態のＬＤＰＣ繰返復号部の機能ブロック図である。
【図４】実施の形態のＬＤＰＣ単位復号部の機能ブロック図である。
【図５】エラー検出について説明するための図である。
【図６】（ａ）は、エラーが発生していない場合における図５の一部を抽出した図、（ｂ）は、１箇所にエラーが発生した場合における図５の一部を抽出した図、（ｃ）は、２箇所にエラーが発生した場合における図５の一部を抽出した図、（ｄ）は、３箇所にエラーが発生した場合における図５の一部を抽出した図である。
【図７】検査行列において線形従属な列が隣接して配置される場合のエラー発生位置との対応関係を示す図である。
【図８】検査行列において線形従属な列が離れて配置される場合のエラー発生位置との対応関係を示す図である。
【図９】実施の形態の検査行列の構成方法を説明するための図である。
【符号の説明】
【００７７】
１  ＨＤＣ、  ２  ＣＰＵ、  ３  Ｒ／Ｗチャネル、  ４  ＶＣＭ／ＳＰＭ制御部、  ５  ＤＥ、  １１  主制御部、  １２  データフォーマット制御部、  １３  ＥＣＣ制御部、  １４  バッファＲＡＭ、  ２１  ＦＲＯＭ、  ２２  ＲＡＭ、  ３１  ライトチャネル、  ３２  リードチャネル、  ５０  ディスク媒体、  ５１  ヘッド、  ５２  ＶＣＭ、  ５３  ＳＰＭ、  ５４  プリアンプ、  １００  磁気ディスク装置、  ３０１  バイトインターフェース部、  ３０２  スクランブラ、  ３０３  ＲＬＬ符号化部、  ３０４  ＬＤＰＣ符号化部、  ３０５  ライトプリコン部、  ３０６  ドライバ、  ３１１  ＶＧＡ、  ３１２  ＬＰＦ、  ３１３  ＡＤＣ、  ３１４  周波数シンセサイザ、  ３１５  ＦＩＲフィルタ、  ３１６  ＳＯＶＡ復号部、  ３１７  ＡＧＣ、  ３２０  ＰＲＭＬ復号部、  ３２１  同期信号検出部、  ３２２  ＬＤＰＣ繰返復号部、  ３２３  ＲＬＬ復号部、  ３２４  デスクランブラ、  ３３０  インタリーバ、  ３３２  ＬＤＰＣ単位復号部、  ３３４  デインタリーバ、  ３３６  判定部、  ３３７  カウンタ、  ３３８  ＤＡＥ、  ３４０  検査行列保持部、  ３４２  一時推定値算出部、  ３４４  パリティ検査部、  ４００  検査行列。
【図１】
2007087530.tif 000003
【図２】
2007087530.tif 000004
【図３】
2007087530.tif 000005
【図４】
2007087530.tif 000006
【図５】
2007087530.tif 000007
【図６】
2007087530.tif 000008
【図７】
2007087530.tif 000009
【図８】
2007087530.tif 000010
【図９】
2007087530.tif 000011