見出し画像

小学5年生が理解する「誤り訂正符号」(デジタル社会を支えるテクノロジー:誤り訂正符号って何?その33)

私:「『リード・ソロモン符号』の『生成多項式』はg(X)=(X-α)(X-(α^2))、つまり連続な『零点』だけ持つ、ことを紹介したけど、『BCH符号』との違いはそれだけじゃないんだ。」

息子:「他にも何か違うの?」

私:「その前に『生成多項式』は、どんな『有限体』で表されてるかな?」

息子:「えっ!えーと・・・そっか!!0と1だけのGF(2)じゃなくて、αがそのまま残るから『生成多項式』はGF(2^4)で表されるんだね!」

私:「そうなると、『符号語』はどんな『有限体』で表されることになるかな?」

息子:「ってことは・・・GF(2^4)ってこと?」

私:「そうなんだ。『リード・ソロモン符号』は『零点』も『生成多項式』も『符号語』も全て『拡大体』の『有限体』、例えばGF(2^4)で表される『巡回符号』なんだ。『BCH符号』では『零点』は『拡大体』の『有限体』で表されるけど、『生成多項式』と『符号語』はGF(2)で表されてたよね。」

息子:「そうだね。でも、何で最初から『リード・ソロモン符号』ができなかったんだろう?」

私:「確かにそう思うよね。これは本当かはわからないけど、理由の1つ目は最初のうちは0と1だけで『符号語』を取り扱いたかったから、もう1つの理由は取り扱うデータの量がそれほど大きくなかったからかもしれないな。」

息子:「どういうこと?」

私:「うん。最初に出てきた『誤り訂正符号』の『ハミング符号』の時は0と1だけの『符号語』で、かつ『符号語』の長さも7ビットとか、『拡大ハミング符号』で8ビットの長さだったよね。」

息子:「うん。そうだった。」

私:「でも、パソコンとかテレビ番組の録画などで使われてるハード・ディスク・ドライブ(HDD)やソリッド・ステート・ドライブ(SSD)の容量ってどれぐらい?」

息子:「容量2TBとかって書いてあるね。」

私:「2TBは2テラ・バイトと読む。T(テラ)は(10^12)、つまり0が12個並んだ数字、1兆のこと。そしてB(バイト)は8ビットの固まり、つまり1バイトは8ビットのことなんだ。」

息子:「えっ!!ってことは、2TBって16兆ビットってことなの!?すげ〜っ!!」

私:「だろ?ちなみにパパが初めて買ったコンピュータ、電卓型のポケット・コンピュータ、略してポケコンのメモリの容量は1kBだ。kは(10^3)だから、8000ビット程度だよ。パパが子供の頃よりももっと前に考えられた『誤り訂正符号』だとしたら、そんな大きなデータ量を使うようになるとは思わなかったとしても当然だよね。」

息子:「確かにそうだね。」

私:「でも研究者や技術者は、未来の世界を想像して、新たな技術を創造する務めがあるんだ。だから、今の技術や常識に縛られることなく、いろいろと発想していかなければならない。」

息子:「・・・何か、パパじゃないみたい・・・。」

私:「失礼ねっ!!これでも一応、博士なんだぞ!」

息子:「いつもふざけてばっかのネタキャラじゃん!そんなの信じるわけないじゃん!(笑)」

私:「酷いっ!!まーいいや。話しが外れてしまったけど、すぐに『リード・ソロモン符号』が登場しなかったのは、そんな背景もあるんじゃないかな。『リード・ソロモン符号』をGF(2^8)で作れば、『符号語』を8ビット単位、つまりバイトで表すことになる。『BCH符号』では0と1で『符号語』が表されていたけど、『リード・ソロモン符号』では0と1の代わりにGF(2^8)の元(げん)で表されGF(2^8)の元(げん)は8ビット、つまり1バイトで表されるから便利なんだ。」

この記事が気に入ったらサポートをしてみませんか?