ワイヤレス通信を、順番に学ぶ

4つのトラックで、各レッスンは前のレッスンの上に積み上がります。すべてのレッスンに学習目標、図またはグラフ、シミュレーションで実際に動くコード、そして演習があります。

すべてのレッスンは2027年1月31日まで無料で読めます。アカウント登録は不要です。

入門

10レッスン

「無線とは何か」から、シミュレーションした信号の復調まで。

無線リンクとは何か

ビットからアンテナを経て再びビットに戻るまでの、あらゆる無線リンクを構成する要素、搬送波周波数が変えるもの、帯域幅が重要な理由、そしてデシベルの最初の実践的な使い方を学びます

30 分 · 概念

複素ベースバンドとIQサンプル

無線機が信号をIとQで表す理由、ミキシングで信号を搬送波との間で移す仕組み、複素信号に必要なサンプルレート、負の周波数の意味を説明します。

40 分 · python, numpy

デシベルとリンクバジェット

dB・dBm・dBW・dBiによるデシベル計算、フリスの伝達公式、ITU-R P.525と照合した自由空間損失、numpyによるリンクバジェット計算機

40 分 · python, numpy

雑音・SNR・通信路容量

−174 dBm/Hzの熱雑音フロアの由来、雑音指数と多段構成の縦続接続が受信感度をどう決めるか、そしてシャノン容量が帯域幅と電力について何を示すかを解説します

40 分 · python, numpy

デジタル変調とビット誤り率

BPSK・QPSK・16-QAMのシンボルにグレイマッピングでビットを割り当て、雑音中で検出し、ビット誤り率をEb/N0に対してモンテカルロシミュレーションで測定して理論値と比較します

45 分 · python, numpy, scipy

パルス整形と整合フィルタ

矩形パルスがスペクトラムを無駄にする理由、レイズドコサインとルートレイズドコサインのパルスが符号間干渉を避ける仕組み、受信フィルタを送信パルスに整合させる必要がある理由を説明します

45 分 · numpy, scipy

フェージングチャネル

マルチパス、レイリーフェージングとライスフェージング、ドップラーとコヒーレンス時間、遅延広がりとコヒーレンス帯域幅、そして2アンテナのダイバーシチがBER曲線をどう変えるかを、すべてnumpyでシミュレーションして理論と照合します

50 分 · numpy, scipy

ゼロから作るOFDM

numpyで完全なOFDMリンクを構築します。IFFTによる変調、サイクリックプレフィックス、マルチパスチャネル、パイロットに基づくチャネル推定、1タップ等化を実装し、ビット誤り率を理論値と比較します。

55 分 · numpy, scipy

初めてのGNU Radioフローグラフ

GNU Radio 3.10のヘッドレスなフローグラフをPythonで作ります。QPSKをルートレイズドコサインフィルタと雑音に通して復調し、ビット誤りを数えます。GNU Radio Companionとの対応も確認します。

50 分 · gnuradio, numpy, scipy

IQファイルの記録と読み込み

生のIQサンプル形式(cf32からcu8まで)、SigMFメタデータ、numpyによる合成キャプチャの書き込みと読み出し、スペクトログラムでのバースト検出、SoapySDRによる実際のSDRからの記録

45 分 · numpy, scipy, soapysdr

中級

0レッスン

チャネル、OFDM、MIMO、そして初めてのソフトウェア無線。

このトラックのレッスンは執筆中です。まずは入門トラックからどうぞ。

上級

0レッスン

5G NRの物理層、ビームフォーミング、同期、RF障害。

このトラックのレッスンは執筆中です。まずは入門トラックからどうぞ。

エキスパート

0レッスン

研究の最前線: Massive MIMO、ISAC、RIS、AIネイティブ無線インタフェース、サブテラヘルツ。

このトラックのレッスンは執筆中です。まずは入門トラックからどうぞ。