世界を動かす技術を、日本語で。

PySDR: Pythonを使ったSDRとDSPのガイド

概要

  • SDRDSP 分野への入門書
  • 初心者視覚的学習者 向けの内容
  • Python を用いた実践的な例の紹介
  • 数式よりも 図やアニメーション 重視
  • 貢献方法 や連絡先も案内

本書の目的と対象読者

  • Software-Defined Radio(SDR) の基本概念と実用例の紹介

    • SDRは 従来ハードウェアで行っていた信号処理 を、 ソフトウェア で実現する技術
    • 一般的なPC(CPU)、FPGA、GPUなどで動作し、 リアルタイム処理オフライン処理 に対応
    • アンテナ接続型のSDRデバイス では、受信したRF信号をデジタル化しPCへ送信
    • 多くのSDRは 送信機能 も搭載し、PCからの信号を任意のRF周波数で送信可能
    • 一部SDRには 組み込み型コンピュータ も内蔵
  • Digital Signal Processing(DSP) の基礎

    • 本書では RF信号のデジタル処理 を中心に解説
  • 本書の特徴

    • SDR・DSP・無線通信 の実践的入門書
    • Pythonが得意 な方、 視覚的学習 を好む方、 数式よりも概念重視 の方に最適
    • 簡潔な解説豊富な図・アニメーション で理解を促進
    • 1,000ページ級の専門書 ではなく、 短期間で基礎を習得 できる構成
    • 例: 無線通信分野を志望する情報系学生 や、 プログラミング経験者
  • 学習スタイルと教材の方針

    • 視覚的な教材 (アニメーションや図)を多用
    • 数式は概念理解の後 に学ぶ方針
    • 物理的な書籍販売は行わず、オンライン教材として提供
  • 学習範囲

    • 電気工学の「Signals and Systems」 の基礎理論を数章に凝縮
    • DSP基礎 を学び終えた後、 SDRの実践 に移行
    • Pythonによるコード例 を多数掲載
      • NumPy (配列・高水準数学ライブラリ)を利用
      • Matplotlib (信号や複素数可視化用ライブラリ)を活用
      • SDR API はPythonからC/C++の関数・クラスを呼び出し
      • MATLAB・Ruby・Perl経験者 もPython文法に慣れれば問題なく学習可能

貢献方法・フィードバック

  • PySDRに価値を感じた方 は、 同僚や学生、学習仲間 への共有を推奨
  • PySDR Patreon での寄付も歓迎
    • 支援者は 各ページ左側のリスト に名前を掲載
  • 質問・コメント・提案marc@pysdr.org へメール送信
    • いずれかを送れば 本書への貢献者 として認定
  • GitHub上で直接編集やプルリクエスト も歓迎
    • Issueの提出Pull Request(PR) で修正・改善案を受付
    • 有益なフィードバック/修正を送った方 は、 謝辞欄に永久掲載
  • Gitが苦手な場合 も、 メールでの提案 を受付

Hackerたちの意見

今、この本で勉強してるんだけど、実用的でエンジニア向けのガイドがすごく良いよ!おすすめ!それに、紹介されてるハードウェアも安く手に入るし、今はnooelecのRTL-SDRを使ってるんだけど、基本を学ぶのに50ユーロくらい投資すればいいから、妥当だと思う。

RTL-SDRは初心者向けだけじゃないよ。毎日の使用にぴったりな安価なSDRで、パラメータも分かりやすい。使い方が分かっていれば、RTL-SDRで受信タスクの90%は解決できる。特定の周波数帯域ではノイズがあるし、スプリアス信号も出るし、8ビットしかないけど、プロはこういうことには簡単に対処できる。ラジオの世界を学ぶにつれて、RTL-SDRは新しいチャンスを開いてくれるし、受信機としては決して消えないよ。後で自分でI/Qサンプルを処理するソフトウェアを書き始めることになるだろうね。

これは素晴らしいリソースだね。私はDSPの専門家じゃないけど、この分野で働いてるから、基本を再確認したいときにはいつも最初に見るリソースだよ。

私はDSPの専門家なんだけど、やっぱりこの説明は楽しいし、役に立つ視点があると思う。新しいチームメンバーにも良いよね。彼らはDSPよりもコードが得意なことが多いから。

わあ!ありがとう!!!

最近の章をたくさん読んでみたけど、そこが一番曖昧だったんだ。Pythonのコードがあるのは嬉しいね。全体的には良いリソースだと思うけど、具体的な部分がちょっと曖昧すぎるのが気になる。著者も特定の定数を選ぶ理論については触れないって認めてるし、どうやってそれを理解すればいいのか教えてくれない。例えば、プレアンブルの長さと最大周波数オフセットが分かってる場合、必要な時間内にロックするためのループパラメータをどう選べばいいのか、全く分からない。正しい方向に導いてくれると良かったな。

もう少し具体的な資料への参照があればいいな。無料のリソースだから、あまり文句は言わないけどね。第一章の矩形波の例のウィンドウ効果はすごいけど、そういうのを見せるなら、サンプルレートや持続時間に依存することも示すべきだと思う。もしかしたら、後の方で触れられるかもしれないけど。公平に言うと、線形システムの授業で得られる完璧な正弦波の列も現実的じゃないけどね。

先週はSDRについてたくさん読んで、現在のラジオ市場を調査してたんだけど、ラジオを聴くのが本当に恋しかったんだ。まだ聴けるラジオ局があるうちに戻った方がいいと思って、Tecsun PL-880を注文したよ。もしコンピュータを使うなら、ストリーミングでもいいかなって。Tecsunが提供する以上のものが欲しくなったらSDRにも手を出すかもしれないけど、ラジオの山を持つ気はないし、大きなデスクトップラジオもいらないからね。

あなたのロゴとフーリエアニメーションが大好きです!これに時間と労力をかけてくれてありがとう。