【入門編】 無線物理層の変調方式と多値変調技術(QPSK、16QAM、64QAM、256QAM、1024QAM)の比較 – 家庭用ネットワーク・IoT・モバイル通信実践ガイド

こんにちは!ガジェットとネットワークの深層を愛するライターの私です。

皆さんは普段、スマホで動画をサクサク見たり、オンラインゲームを遅延なく楽しんだりしていますよね。「最近の5Gって本当に速いなぁ」と何気なく恩恵を受けていると思いますが、あの目に見えない電波の空間では、実は壮絶で緻密なデータ変形のドラマが繰り広げられているんです。

今回は、4G LTEから最新の5Gにかけて、モバイル通信のスピードを根底から支えてきた「無線物理層の変調方式(QPSKから1024QAMまで)」にスポットライトを当てます。

小難しい数式や冷たい仕様書のコピーは一旦置いておいて、「電波の空間をどうやってデータに変えているのか」、身近な例えを交えながら一歩ずつ紐解いていきましょう!

—

1. 電波の正体ってなぁに?変調(Modulation)の基本を「郵便配達」で例えよう

私たちがスマホで飛ばす写真や動画は、そのままでは空を飛ぶことができません。これらを電波に乗せるために「別の形に翻訳」する作業、それが変調(Modulation)です。

イメージしてみてください。
あなたは「東京」にいる友達に、たくさんの荷物(データ)を送りたいとします。でも、荷物をそのまま放り投げても届きませんよね。そこで、足の速い「バイク便の兄ちゃん(搬送波=キャリア)」を用意し、そのバイクの荷台に荷物を積んで走ってもらいます。

この「バイクの荷台に、どれだけ効率よく、かつ確実に荷物を詰め込めるか」を定めたルールが、変調方式というわけです。

電波の世界では、この「荷台の広さや積み方の工夫」を、電波の「位相(波のズレ)」や「振幅(波の高さ)」の組み合わせで表現します。これを視覚化したものが、通信の世界でおなじみのコンスタレーション(星座)図です。

—

2. 階段を登るように進化してきた多値変調の歴史

電波という限られた有限の資源(周波数帯)の中で、いかにたくさんのデータを送るか。その鍵を握るのが「多値変調(マルチレベル変調)」です。一度に運べるビット数を増やしていく歴史を、下位の方式から順に見ていきましょう。

① QPSK(Quadrature Phase Shift Keying)

  • 一度に運べる情報量: 2ビット(4つの状態)
  • 例え: バイクの荷台に「東西南北」の4つの方向のどれかを指す旗を立てるイメージ。

嵐が吹くような悪天候の山の中でも、東西南北の4つだけなら旗の向きを間違えませんよね。QPSKは、電波の状態(SINR:信号対干渉電力比)が非常に悪く、ノイズまみれの環境でも絶対に途切れない「超・堅実なベテラン配達員」です。電波のフチ(セルの端っこ)で頑張る健気なやつです。

② 16QAM / 64QAM

  • 一度に運べる情報量: 16QAMは4ビット(16個のマス目)、64QAMは6ビット(64個のマス目)
  • 例え: 荷台を綺麗に区切って、16マス、あるいは64マスの「仕切り」を作り、そこに荷物を詰め込むイメージ。

4G LTEの全盛期を支えた主役級の方式です。ある程度電波の状態が良ければ、QPSKよりも何倍もの物量(データ)を一度に運べるようになります。住宅街やオフィスビルなど、基地局から比較的近い場所でその真価を発揮します。

③ 256QAM

  • 一度に運べる情報量: 8ビット(256個のマス目)
  • 例え: 64マスの棚をさらに細かくし、256個もの極小の引き出しを用意した職人技の詰め合わせ。

4Gの終盤から現在の5G Sub6エリアの主力として君臨しています。荷台の仕切りがものすごく細かいため、少しでもバイクがガタッと揺れる(=ノイズが入る)と、「あれ?どこの引き出しの荷物だっけ?」と迷子になってしまいます。そのため、電波がすこぶる良好な環境でないと採用されません。

④ 1024QAM(最新のトレンド)

  • 一度に運べる情報量: 10ビット(1024個のマス目!)
  • 例え: 砂粒のように細かい1024個のマス目に、ピンセットで精密機械のパーツを並べるような神業。

最新の5G(特にミリ波帯や、キャリアアグリゲーションを駆使した高度なSub6環境)で導入が進んでいる最先端の技術です。一瞬で膨大なデータを叩き込めるため、実効速度でギガビット超えを叩き出す立役者ですが、基地局のアンテナの真下で、スマホがじっと静止しているような「極上の環境」でしか点火しません。

—

3. 回線品質(SINR)に合わせた「動的適応変調(AMC)」の裏側

「じゃあ、ずっと一番速い1024QAMを使えばいいじゃん!」と思いますよね。
しかし、現実はそう甘くありません。電波は刻一刻と変化します。あなたが地下鉄に乗ったり、ビルの陰に入ったり、あるいは目の前を大型トラックが通り過ぎたりするだけで、回線の品質(SINR:信号対雑音・干渉比)は激しく上下します。

ここで無線基地局(gNB / eNodeB)とスマホは、ミリ秒単位でこんな会話を心の中で繰り広げているのです。

> スマホ: 「基地局さん、今の私の周り、電波がすごくクリアで静かだよ! 256QAMでガンガン送って!」
> 基地局: 「了解! じゃあ今日の特急便は256QAMで飛ばすね」
>
> (数秒後……スマホが地下街の入り口へ移動)
>
> スマホ: 「あ、やばい、周りがざわついてノイズが増えてきた! 256QAMだと荷物が崩れそう……QPSKに落として!」
> 基地局: 「OK、安全第一でQPSKにするね。少し速度は落ちるけど確実に届けるよ」

この仕組みをAMC(Adaptive Modulation and Coding:適応変調符号化)と呼びます。通信が途切れないのは、この絶妙な「引き算の美学」が背後で働いているからなんです。

—

4. 【実務・検証向け】電波品質と変調方式の挙動をシミュレートするPythonコード

インフラエンジニアや通信の実験を行う際、この「SINR(電波品質)に応じて変調方式がどう切り替わるか」をプログラムでシミュレートすることはよくあります。

ここでは、受け取ったSINR(dB)の値に基づいて、適切な変調方式と誤り訂正符号化率(MCS)の目安を判定する簡単なPythonスクリプトを共有します。実務でのログ解析やシミュレーションのベースとして参考にしてみてください。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
SINR (Signal-to-Interference-plus-Noise Ratio) に基づく
動的変調方式(AMC)選定シミュレーター
"""

def select_modulation_scheme(sinr_db: float) -> dict:
    """
    SINRの値(dB)を受け取り、最適な変調方式とスループット効率の目安を返す関数
    
    Parameters:
        sinr_db (float): 回線品質を示すSINR値
        
    Returns:
        dict: 変調方式名、ビット数、推奨コードレートの目安
    """
    # 閾値判定ロジック(一般的なLTE/5Gの物理層特性を簡略化)
    if sinr_db < 0:
        return {
            "scheme": "QPSK",
            "bits_per_symbol": 2,
            "description": "極めて悪条件。セル端や遮蔽物の裏で接続を維持します。"
        }
    elif 0 <= sinr_db < 10:
        return {
            "scheme": "16QAM",
            "bits_per_symbol": 4,
            "description": "中程度の品質。安定したスループットを提供します。"
        }
    elif 10 <= sinr_db < 20:
        return {
            "scheme": "64QAM",
            "bits_per_symbol": 6,
            "description": "良好な品質。多くの都市部エリアで日常的に使用されます。"
        }
    elif 20 <= sinr_db < 30:
        return {
            "scheme": "256QAM",
            "bits_per_symbol": 8,
            "description": "非常に良好な品質。高速なダウンロードを体感できます。"
        }
    else:
        return {
            "scheme": "1024QAM",
            "bits_per_symbol": 10,
            "description": "極上の環境(基地局直近・ミリ波等)。最高速のデータ転送を実現します!"
        }

if __name__ == "__main__":
    # テスト用のSINR値リスト(単位: dB)
    test_sinr_values = [-3.5, 5.0, 14.2, 22.8, 32.1]
    
    print("=== 無線物理層 AMCシミュレーション結果 ===")
    for sinr in test_sinr_values:
        result = select_modulation_scheme(sinr)
        print(f"実測 SINR: {sinr:5.1f} dB  --> 選択方式: {result['scheme']:7} (1シンボルあたりの容量: {result['bits_per_symbol']} bit)")
        print(f"  └ 状況: {result['description']}\n")

このコードのように、インフラの世界では「環境の揺らぎを数値(SINRなど)で捉え、最適なモードへ即座にスイッチングする」というアルゴリズムが、あらゆる通信機器の心臓部で動いています。

—

まとめ:目に見えない空間の「職人技」に思いを馳せて

今回は、QPSKから1024QAMに至る変調方式の進化と、それを支える動的な仕組みについて解説しました。

私たちが何気なくスマホで高画質な動画をストリーミング再生できているのは、ただ単に「5Gの電波が強いから」だけではありません。刻々と変わる電波の荒波を読み取り、コンスタレーションの密度を瞬間瞬間で賢く切り替え続ける、基地局とスマホの「絶妙なキャッチボール」があるからこそなのです。

次にスマホのアンテナピクトがフルに立っているのを見かけたら、その見えない空間で「今、1024QAMの超密度の荷台がすごいスピードで駆け抜けているんだな」と、ちょっぴり技術のロマンに思いを馳せてみてくださいね。

それでは、また次回のネットワーク探訪でお会いしましょう!

コメント

タイトルとURLをコピーしました