
小学5年生が理解する「誤り訂正符号」(デジタル社会を支えるテクノロジー:誤り訂正符号って何?その5))
私の仕事の話しを4日続けたけど、そろそろ息子も飽きてきたかな?と思っていたが・・・
息子:「ただいまー!!ねえねえ。昨日の話の続きは?」
私:「(えっ!?まだ飽きてないの!?奇跡だ!!)てんてんてんてんててててん、てんてんてんててててん、てててててて、てててててんてんてんてん・・・(GReeeeNの「キセキ」の前奏のつもり)奇跡だっ!!5日目だぞ!!いまだかつてこんなにもタクムの興味が続いたことがあるあっただろうか、いや無い!・・・昔、習って漢文で唯一覚えてる反語♫」
息子:「悪いのかよー!いいじゃん!!」
私:「出た〜!!いいじゃん!!モランボンのジャン!!・・・それは良いとして先ずは手を洗え!!」
息子:「ハイハイ。」
私:「ハイは1回で良い!!」
息子:手を洗い終えて「手を洗いましたよ。」
私:「い〜いっ!心掛けだ〜っ!褒美に続きの話をしてやろう〜っ!!」
息子:「何の真似だよっ!!もしかして、昔テレビでやってた「ベイブレード」に出てたキャラの真似のつもりっ!?似てねー!!しかもいつの話だよー、古っ!!」
私:「まーいいやキリが無くなるからこれぐらいにして、続きの話しをするか。」
息子:「なんでも前置きが長過ぎるんだよ!!」
私:「悪い悪い。それでは昨日の話しを思い出すところから始めよう。昨日は繰り返し符号の繰り返し数2から3以上に増やせば誤り検出できるビット数1ではなく2以上に増やせる、ことがわかったね。もうひとつは、1のビット数が偶数になるようにする符号も考えたよね。こちらはパリティ検査符号と言うってことも知ったね。実は、タクムが考えた繰り返しの数を増やした繰り返し符号は『誤り検出符号』だけど、『誤り訂正符号』にもなってるんだ。」
息子:「えっ!そうなのっ!!」
私:「そう。例えば、0を送りたいときに000、1を送りたいときに111と3ビット繰り返す繰り返し符号は最大で2ビットの誤りまで検出ができる使い方もできるけど、1ビットの誤りを訂正する使い方もできる。ここで注意は、あくまでもどちらか一方の使い方しかできない、ってこと。」
息子:「どうして?」
私:「それは誤り検出だけであれば、受けた方で誤りが起きたか起きてないかだけ判別してやるだけだから、やることが簡単で少なく済むからなんだ。」
息子:「ふーん。でもさー、誤りが起こりやすい場合は誤り検出だけしたって意味無いじゃん!」
私:「そういう場合は、受け取った方から、送った方に『受け取ったデータは間違えてるみたいだから、もう1回送って』って言って送り直してもらうんだ。この動作を自動でやることを『自動再送要求(Automatic Repeat Request:ARQ)』って言うんだ。」
息子:「わかったけど面倒だね。」
私:「そうなんだ。だから、『誤り検出符号』だけでなくて受け取ったデータに誤りが有ると分かったら、誤ったデータを直してくれる『誤り訂正符号』が欲しい、ということになる。誤り訂正符号を使って受けた方で誤りを訂正する方法を『前方向誤り訂正方式(Forward Error Correction:FEC)』と言う。」
息子:「で、3ビット繰り返す繰り返し符号で、誤り訂正するにはどうするのか?」
私:「ま〜たタクムちゃ〜ん!?人に聞いちゃうの〜!?自分で少しは考えたら〜!?」
息子:「あっ!そうかっ!・・・うーん・・・000か111しか送られてこないんだから・・・どこか1ビット間違って000が100、010、そして001ってなって、111は011、101、そして110ってなるんだから・・・わかった!!多数決で100、010、そして001は0のビットが多いから000が送られてきて1ビット誤ったことが分かる。011、101、そして110は1のビットが多いから111が送られてきて1ビット誤ったことが分かる!そうだよね!!」
私:「そう!!正解!!ついでに言うと、誤りが無い場合もその多数決の考え方で000は000が送られてきて、111は111が送られてきたんだってことが分かるんだ。」
息子:「あっ!そうかっ!忘れてた。」
私:「実はタクムが考えついた多数決の考え方は『誤り訂正方式』で最も簡単な誤り訂正の方法なんだ。誤り訂正の方法を『復号法(ふくごうほう)』と言うんだけど、この多数決の考え方を使った復号法を『多数決論理復号法(たすうけつろんりふくごうほう)』と言う。そして、繰り返し符号みたいに多数決論理復号法で誤り訂正できる、多数決論理復号できる誤り訂正符号を『多数決論理復号可能な符号』って言うんだ。」
息子:「へー。繰り返しと多数決だけで誤り訂正もできるんだね。簡単だね。」
私:「だろ。難しそうに思える事も、実は簡単な事が多いんだ。ただ、表現する数式とか、数式を表現するのに必要な、というか便利な数学が難しいだけなんだ。でも、数式にしても、数学にしても基本の考え方さえわかれば難しくないんだ。だけど、教科書だけだと分かりにくかったり、どういう順番で勉強したら良いか分からなかったり、何よりもどんな数学を勉強したら良いかすら分からなかったりして諦めてしまう人が多いんだ。そういうところから説明してる教科書とか有れば良いんだけど、なかなか無いのも確かなんだけどね。」
息子:「それじゃ諦められてもしょうがないじゃん。何か無いの?」
私:「うーん・・・パパが誤り訂正符号のことを初めて知ったこの本、天外伺朗さんの本「ディジタル・オーディオの謎を解く」(講談社ブルーバックス)とか、更にその前の天外伺朗さんの本「CDはこう生まれ未来をこう変える」(ダイヤモンド社)、あとはパパが大学の研究室に入ってすぐに初めて渡された教科書かなぁー?でもこれは英語の教科書なんだよね。パパは英語が苦手だったから、どちらかというと英語で苦労したなぁ、でもその教科書は分かりやすく書いてあったなぁ。会社入ってから買ったよ。ちょっと待って・・・(本棚から厚さ5cm位ある分厚い赤い本を出してきて)ハイ!これっ!!」
息子:「こんなの今のタクムに読めるわけ無いじゃん!!」
私:「えっ!?そうかー。今は小学校で英語習ってんだろ?」
息子:「簡単な英会話だけだよ。面倒だからって育児放棄しないでよ!!」
私:「(笑)育児放棄っていくつだよ!?まぁ冗談冗談。でも、この教科書のおかげでしっかり基本の考え方が理解できたんだよなぁ。そして先生の熱心なご指導のおかげだなうんうん。まぁ、いきなりこの教科書で自習は無理だから、タクムが飽きるまでは付き合ってやるか。」
息子:「頼むよ!!」
私:「今日は『誤り訂正符号』まで話しができたから、ここまでにしよう。」