- ソフトウェア定義ラジオ(SDR) と デジタル信号処理(DSP) の概念を、Pythonで実践中心に学べるよう構成されたオンライン教材
- ハードウェアの代わりにソフトウェアでRF信号を処理するSDRの原理と、NumPy・Matplotlib を用いた信号の可視化および分析例を収録
- 数学的な公式よりも アニメーションと視覚資料 を通じて、概念を直感的に理解できるよう設計
- 電気工学専攻でなくても、プログラミング経験のある学習者 が容易に取り組める構成
- オープンソースで運営されており、GitHubでの貢献・Patreonでの支援 を通じて教材改善に参加可能
1. 目的と対象読者
- SDR(Software-Defined Radio) は、従来ハードウェアベースで行っていたRF処理をソフトウェアで実行するという概念
- 一般的なコンピュータ(CPU)、FPGA、GPUなどで実行でき、リアルタイム処理または記録済み信号のオフライン処理をサポート
- アンテナを接続してRF信号を受信・送信できる装置という形でも存在
- DSP(Digital Signal Processing) は、デジタル方式で信号を処理する技術であり、本教材ではRF信号を中心に扱う
- 教材は次のような学習者を対象としている
- SDRを活用して実験的なプロジェクトを行いたい人
- Pythonには慣れているが、DSPや無線通信は初心者の人
- 数式より視覚資料を好む学習者
- 簡潔な説明を好み、長い教材ではなく実践中心の学習を望む人
- 電気工学専攻でなくても、プログラミング経験のあるコンピュータ工学の学生 などに適している
- 複雑な数学の代わりに 画像・アニメーション を通じて、Fourier級数などの中核概念を説明
- このため、PySDRは印刷版としては販売されていない
2. 教材構成と学習アプローチ
- DSPの基礎理論を、電気工学の「Signals and Systems」1学期分から 数章に圧縮
- その後、SDR関連トピックへと拡張し、DSPと無線通信の概念が教材全体を通じて繰り返し登場
- Pythonコード例 ではNumPyとMatplotlibを使用
- NumPyは配列および数学演算のための標準ライブラリであり、ほとんどの演算はC/C++で最適化されている
- Matplotlibは信号・配列・複素数を可視化するためのプロットツール
- PythonはC++より遅くても、内部演算が最適化されているため、実習には十分な性能を提供
- MATLAB、Ruby、Perlの経験者も、Pythonの文法に慣れれば容易に活用できる
3. 貢献方法
- PySDRを通じて学んだ内容を 学生・同僚・学習者に共有 することを推奨
- Patreon で支援すると、名前を教材ページ下部に表示可能
- 教材を読み、質問・意見・修正提案 をメールで送ると、自動的に貢献者として認められる
- GitHubリポジトリ を通じて、直接修正提案(Pull Request)が可能
- Gitに不慣れでも、メールで提案できる
4. 謝辞
- 教材にフィードバックを提供した読者および翻訳貢献者への謝意を表明
- フランス語、オランダ語、ウクライナ語、中国語、スペイン語の翻訳参加者を明記
- Patreon支援者一覧と、Analog Devices, Inc. などの機関支援者も含まれる
- PySDRは CC BY-NC-SA 4.0ライセンス で配布されている
1件のコメント
Hacker Newsのコメント
全体として良い資料だと思うが、細部がやや曖昧なまま流されている部分があるのは惜しい。
例えば、プリアンブル長と最大周波数オフセットが分かっているとき、安定してロックできるようにループパラメータをどう選ぶべきかという説明がない。
そういう方向性を示してくれていれば、ずっと良かったと思う。
サンプルレートと持続時間によって変わる点も一緒に示してくれていれば、もっとよかったと思う。
もちろん、線形システムの授業に出てくる完璧な正弦波列も現実的ではないという点は認める。
今では誰もが大学院レベルの個人TAを持っているようなものなので、大事なのは正しい質問を投げる方法を学ぶことだ。
特にコードには慣れているがDSPには弱い新人チームメンバーにとって、とても良い入門書だ。
しかも本で扱っているハードウェアも安価で、手を出しやすい。私は今 Nooelec の RTL-SDR を使っていて、基本学習用なら50ユーロ前後で十分だ。
周波数帯によってはノイズやスプリアス信号があるが、熟練者ならたいてい問題なく扱える。
無線の世界をさらに知るほど RTL-SDR が新しい可能性を開いてくれて、そのうち自分で I/Q サンプルを処理するソフトウェアを書くようになるはずだ。
ラジオを聴くのが恋しくなってまた始めることにし、結局 Tecsun PL-880 を注文した。
コンピュータで聴くならストリーミングで十分だが、後で Tecsun では物足りないと感じたら SDR の方にもっと深く入ってみるつもりだ。
複数のラジオを積み上げたり、大きなデスクトップ機器を置いたりするのは望んでいない。