毎日、スマホを眺めておられるみなさん。今日も画面にはさまざまな情報がクリアに映っていることでしょう。その陰ではノイズとの戦いの歴史があります。よく「コンピューターは0と1の二進数で動いているんだよ」という話を聞くと思います。しかし、0が内部でどう表現されているかを考えたことがあるでしょうか。多くの方は0は0ボルト、1はなんらかの電気が流れている状態だと想像するかもしれません。しかし、現実は異なります。先人達はノイズを防ぐために、さまざまな知恵を使ってきました。
まず現実を見てみます。電線を置いているだけで次のようなノイズが電線には発生しています。(図A:筆者宅での調査例)
図 A:オシロスコープで測定
これらのノイズを防ぐために、デジタル機器ではわずかな電圧がかかった状態であってもゼロとみなします。一般的に5ボルトを1とみなす回路では、2ボルト未満をゼロとみなす「しきい値」を設定しています。図にするとこんな感じです。(図B参照)

このようなしきい値を設けることで、ノイズが多少あってもデジタル機器内でデータが変化してしまうことは少ないのです。
しかし、2ボルトを超えるような強いノイズが入ってくると、信号は誤ったデータとなってしまいます。具体的には「彼がいい」というデータが「彼でいい」だと情報としては大違いです。特にメールなどの通信では、信号がさまざまな状況を通過していくため、データが正確であること、少なくとも誤っているかどうかを知る必要があります。よく使われているのは、CRC(Cyclic Redundancy Check)という計算で出た検査用数値をデータに付加して送る方法です。受信側も同じ計算をして、送られてきた数値と一致すればデータが正しいとします。
この概念は、スーパーでの買い物に似ています。買った商品明細と共に合計金額を相手に送ります。受信側も合計金額を計算し、送られてきた数字と一致すれば、データは正しいと判断します。もし違っていたら、データは破損している可能性があるため、再度送り直してもらうわけです。
スマートフォンの中に詰まっている電子回路は上記のような0と1の区別で動き、インターネットを通ってきたデータはCRCの検査をして送受信されています。エラーが起きたら再送されるため、通信環境が悪い場所では若干遅くなりますが、データは正しく通信されていてデータエラーは発生しないようになっています。
それでも例外はあります。動画の送信ではしばしばこのCRC検査が省略されます。理由は動画はデータが多いのでCRCの計算が負担になることと、動画は少々データがおかしくても全体としてはわかるからです。
以上、スマホの中でおこなわれているノイズ対策を見てみました。
