Practical SDR - ソフトウェア無線入門
(nostarch.com)- Practical SDRは、ホビーユーザー、無線通信の学習者、RF設計のプロトタイピングを行うエンジニアが、ソフトウェア無線の基礎を身につけるのを助ける一冊
- 読者はコンピュータ上で仮想無線受信機を作成し、実際のAM・FM信号からオーディオを抽出し、GNU Radio Companionで無線システムを段階的に構築する
- 学習範囲は1MHz〜6GHzの周波数操作、フィルタとゲイン制御、アンテナとRFハードウェアの選定、リアルタイムのIQデータ処理にまで及ぶ
- 一部のプロジェクトではHackRF OneのようなSDRハードウェアと互換アンテナが必要で、純粋なソフトウェア実習だけでは完結しない
- 基本チュートリアルと高度な応用の間をつなぐ入門書であり、Wi‑Fi・Bluetooth・セルラー通信のような現代の無線システム学習の土台となる
本書の範囲と形式
- Practical SDRはソフトウェア無線を始めるための書籍で、副題は「Getting Started with Software-Defined Radio」
- 2025年3月刊行予定で、336ページ
- 形式と価格は以下のとおり
- Print Book and FREE Ebook: $39.99
- Ebook PDF, Mobi, ePub: $31.99
- サンプルとしてChapter 4: Creating an AM Receiverが提供されている
実習で作るラジオ
- コンピュータ上で仮想無線受信機を作成し、実際のAM・FM信号からオーディオを抽出する
- AMラジオを作りながら、振幅変調がどのように動作するかを学ぶ
- クリアなFM受信を構成する過程で、信号フィルタリングを習得する
- IQサンプリングのような複雑なテーマも実習範囲に含まれる
- GNU Radio Companionのインターフェースで動作する無線システムを部品ごとに作り、その後AM・FM受信機や無線送信機の設計へと拡張する
扱う技術要素
- 1MHz〜6GHz範囲の無線周波数を扱う
- フィルタとゲイン制御を使って、雑音の中から明瞭な信号を抽出する
- 適切なアンテナとRFハードウェアを選定してSDR性能を高める
- 複素数ベースのリアルタイムIQデータを処理し、実際の無線信号を復調する
- コンピュータ上で柔軟な仮想無線テスト環境を構築する
章構成
-
Part I: 基本受信機を作る
- What Is a Radio?
- Computers and Signals
- Getting Started with GNU Radio
- Creating an AM Receiver
-
Part II: 受信機の内部
- Signal Processing Fundamentals
- How an AM Receiver Works
- Building an FM Radio
-
Part III: SDRハードウェアの活用
- The Physics of Radio Signals
- GNU Radio Flowgraphs with SDR Hardware
- Modulation
- SDR Hardware Under the Hood
- Peripheral Hardware
- Transmitting
必要な資料と制約
- 一部のプロジェクトではHackRF OneのようなSDRハードウェアと互換アンテナが必要
- Early Accessチャプター用のサポートファイルはgetting_started_sdr-main.zipから入手できる
- 著作権ページ、詳細目次、索引は別途PDFで提供される
1件のコメント
Hacker Newsの意見
SDRには注意が必要。最初はスペクトラムを眺めているだけだったのに、いつの間にか36素子YagiアンテナとAZ/ELローテーターの部品を注文し、地球-月-地球反射通信向けの3,000ドルの無線機を見ていることになる
20フィートほどのワイヤーとSDRだけで、海の向こうからの信号も簡単に聞ける
それでも結局好きになる
No Starchの本を見て入門したいなら、ここから始めるのがよい: https://www.rtl-sdr.com/rtl-sdr-quick-start-guide/
No Starchらしく本自体は悪くないが、市場には粗悪な機器も多く、動作しなかったり、不要輻射、変な干渉、互換性問題を起こすものを買ってしまいやすい
電子工学とRFをもっと深く理解してこうした問題を緩和できないなら、良い結果を得るのは難しい。このサイトは初心者向けの出発点としては最も包括的だが、ドングルを買う前に念入りに読んでおくのがよい
安物、つまり品質のいまいちな機器が多い。自分が主に使っているSDRは3つで、RTL-SDR.com Blog V4ドングルは優秀で安価な出発点。合わなければ約40ドルの損で済むし、合うなら27MHz〜1.6GHzの範囲だけでも当分忙しい
アマチュア無線や短波受信が好きならAirspy HF+がよい。0.5KHzからHF、VHF帯までカバーし、超音波実験に使ったという報告も見た。価格比で自分の持っているSDRの中では品質が最も良く、感度も良く、ノイズも低い
最後はGreat Scott Gadgets HackRF Oneで、ほぼ箱一つ分の無線実験室。1MHz〜6GHz、20MS/s、ただし8ビット直交サンプリングで、送信も可能。おまけに教育動画も非常に良い
ちなみにこの3つのSDR機器はLinuxで問題なくよく動く
SDRが本当に好き。教授たちのマイク信号を録音するのに使っている
携帯電話や専用レコーダーを使うよりずっと良い
目次と本の説明が少し陰鬱に見えないか?
GNU Radio、フィルター、AM/FM、IQ復調といったトピックはGNU Radio TutorialsのWiki [0]で試した記憶があるが、この本がそれ以上にどんな価値を提供するのかよく分からない
また著者たちがGNU Radioをソフトウェアスタックにするなら、GNU Radioの最大の利点だと思っている独自Pythonブロックの作成をなぜ1章として入れなかったのかも疑問。SDRが好きで電気工学に興味のある人にはぜひ触ってみてほしいが、提供されている第4章のサンプルだけではこの本を薦めるべきか分からない
[0] https://wiki.gnuradio.org/index.php/Tutorials
10年以上前にWindowsマシン、sdrsharp、安価なRTLベースのSDRで始めた。スペクトラムを巡って面白い信号をクリックし、復号パイプラインをざっくりつなぎ合わせて実際の結果を得るやり方のほうがずっとよかった
動くソフトウェアと安価なハードウェアで試せる面白いユースケースが先に自分を引きつけ、その後でようやくGNU Radioを理解したいという本当の動機が生まれた
学ぶのに良い無料資料としてhttps://pysdr.org/がある
Pythonモジュールではなく、SDR利用の文脈でPythonによりデジタル信号処理の基礎を学ぶガイド。人気の高いSDRハードウェアを使う具体的な方法も扱っている
配送を待っている間に遊べるオンラインWeb SDRマップも便利 :-)
https://www.receiverbook.de/map
以前SDRを少し触ったことがあるが、そのとき一番大きな難点は、複数の周波数を受信でき、自分のLinuxマシンと互換性のある適切なハードウェアを見つけることだった
https://greatscottgadgets.com/hackrf/
自動信号検出技術のようなものはあるのか? たとえばスペクトラム内でノイズではない部分を自動で識別するようなもの
安価なSDRは受信ウィンドウがかなり狭いので、あると助かりそう
高価な完成品の無線機でも可能だし、安価なRTLSDRドングルと適切なコンピューターソフトウェアの組み合わせでも可能。安価なSDRについて言えば、自分の見方では24〜1766MHzは特に狭い範囲ではない
もっとお金を使えるなら、HackRF Oneは1MHz、つまり160mバンドから6GHz、つまりWi-Fi帯までカバーする。それより低い帯域や高い帯域は、より特化した機器が必要になる可能性が高い
もちろん、無線機やドングルには適切にチューニングされたアンテナを接続する必要がある
SDRの別の用途を探しているなら、KrakenRFで無線送信機を探せる
https://www.krakenrf.com/
ここまで来たなら、設計も開発もよくできたSDR向けの新しめのPythonライブラリも確認してみる価値がある
https://mhostetter.github.io/sdr/latest/