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

実践的SDR: ソフトウェア定義無線の始め方

概要

本章では、 AM受信機の作成方法 を解説。 ソフトウェア無線(SDR) の基礎を実践的に学習。 GNU Radio Companion を活用した仮想ラジオ構築。 AM/FM信号のデモジュレーション 手法を紹介。 RFハードウェア選定やアンテナ の最適化にも言及。

Chapter 4: AM受信機の作成

  • AMラジオの仕組み の理解
  • GNU Radio Companion による仮想AM受信機の構築
  • 実際のAM信号 からのオーディオ抽出
  • 振幅変調(AM)の原理 を体感
  • 信号フィルタリング によるクリアな受信
  • IQサンプリング など複雑なトピックの基礎解説
  • SDRハードウェア(例:HackRF One) やアンテナの選定ポイント
  • 1 MHz~6 GHz の周波数帯域での信号操作
  • フィルタとゲイン制御 によるノイズ除去
  • リアルタイムIQデータ処理 による信号デモジュレーション
  • PC上での柔軟な仮想ラジオ環境 の構築

Practical SDR の特徴

  • 理論書にとどまらない実践的アプローチ
    • 初心者からエンジニアまで 幅広い層に対応
    • Wi-Fi、Bluetooth、セルラー通信 等の現代無線システムへの応用基盤
    • 基本チュートリアルと高度な応用 の橋渡し
  • 一部プロジェクトにはSDRハードウェア (例:HackRF One)と 対応アンテナ が必要

学習ポイント

  • 無線通信の基礎から応用 まで段階的に習得
  • 直感的なGUIツール でラジオシステムを構築
  • 実際の無線信号を用いた実験 による理解深化
  • 現代のワイヤレス技術 への応用力養成

推奨環境

  • GNU Radio Companion のインストール済みPC
  • SDRハードウェア (必要に応じて)
  • 対応アンテナ (受信周波数帯域に合わせて選択)

まとめ

  • Practical SDR は、 ソフトウェア無線の基礎から応用 までを体系的に学べる実践書
  • AM受信機の作成 を通じて、 信号処理・無線通信 の本質を体験

Hackerたちの意見

SDRには気をつけてね。気づいたらスペクトラムをスクロールしてて、次の瞬間には36要素の八木アンテナやAZ/ELローテーター、さらに3,000ドルのラジオを注文してるかも。地球-月-地球の通信をするためにね。

これ、確認するわ。冗談みたいだけど、突然アリがラジオ機器のオファーでうまく狙ってくるんだよね…

3,000ドルなんて、ほんとに始まりに過ぎないよ。文字通り、ほんの始まり。だけど、結局好きなんだよね。

それにライセンスのアップグレードもあるしね!

月に向かって反射させるのにたった3,000ドル?

ADHDやULTの生活の中で、唯一ハマっては吐き出された趣味の一つだわ。

今まさにそんな感じ!1ヶ月前に初めてSDRを手に入れたんだけど、緊急用のFMラジオが欲しくて。今はアンテナを設計したり、アマチュア無線のライセンスの勉強してるよ。

アイデアが欲しい人は、WISPRネットワークに参加してみて!必要なのは20フィートくらいのワイヤーとSDRだけで、簡単に海を越えた信号が聞けるよ。

アドミラル・アックバーが言ってる…「罠だ!」

... そしてアマチュア無線のライセンス取得にかかる時間とお金!その後、HFや2m/70cmの機材に何千ドルもかかって、さらにHamnetリンクや、ヨーロッパ向けのQO-100衛星用のアンテナに何千ドルもかかる... 73

目次と本の説明、なんかちょっと暗い感じしない?GNU Radio、フィルター、AM/FM、IQ復調…GNU RadioのチュートリアルWikiでこれらのトピックを全部やったのを覚えてるけど、この本がもっと価値のあることを提供してるかはわからないな。著者がGNU Radioをソフトウェアスタックとして重視してるなら、自分のPythonブロックを作る章を入れないのはおかしいと思う。これがGNU Radioの一番の利点だと思うし。SDRが大好きで、電気工学に興味がある人はぜひ触ってみるべきだと思う。でも、サンプルの第4章を見た限りでは、この本を勧めるかどうかは微妙かな。[0] https://wiki.gnuradio.org/index.php/Tutorials

人を直接GNU Radioに送るのはちょっとリスクがあると思う。SDRのスペルを覚えたばかりの人をDSPの奥深くに送り込むのは、ちょっと急すぎる学習曲線で、多くの人がそれを壁だと感じるかもしれない。10年以上前に、Windowsのボックス、sdrsharp、安いRTLベースのSDRで始めたんだけど、スペクトラムをクルクル回って、面白い信号をクリックして、デコーディングパイプラインを組み合わせて実際に結果を出すのが自分には合ってた。動くソフトウェアと、安いハードウェアでできる面白い使い方から始めたことでハマったし、その後GNU Radioの理解を深めたいと思うようになったんだ。

ちょっと前にSDRを触ってみたんだけど、その時の最大の課題は、いろんな周波数を受信できて、かつ自分のLinuxボックスと互換性のあるハードウェアを見つけることだったな。

RTL-SDRは始めるのにめっちゃ安いよね。あとはHackRF Oneとか?今はLinuxで使うのも簡単だし。

Hermes Liteはそんなに高くないし、いいオープンソースプロジェクトだよね:http://hermeslite.com/

かなり改善されたよ。最近はGNU Radio(OsmoSDR経由)が、主要なホビースト価格のSDRベンダーをサポートしてるし、ほとんどが約50MHzから約6GHzまで対応してる。

HackRFは超広範囲で、すごくいいよ。めっちゃおすすめ! https://greatscottgadgets.com/hackrf/

SDR大好き!教授のマイク信号を録音するのに使ってるんだけど、スマホや専用レコーダーより全然いいよ!

講義中にラベリアマイクを使って、録音を暗号化されていない形式で放送してるってことかな?それなら、いい解決策だね。

自動的に信号を検出する技術ってあるのかな?つまり、ノイズじゃないスペクトルの部分を自動で特定するようなもの。安いSDRは受信窓が狭いから、そういうのがあれば助かるんだけど。

あなたの質問を読む限り、ウォーターフォールを表示できるものが必要ってことだよね。信号がどこにあってもクリアに見えるし、その周波数に簡単にクリックしてチューニングできるよ。通常、ウォーターフォールをズームインしたりズームアウトしたりして、広い範囲や狭い範囲をカバーできるんだ。高価なラジオでも、安いRTLSDRドングルと適切なソフトウェアを組み合わせれば手に入るよ。安いSDRについて言ったことに関しては… 24MHzから1766MHzは、私の視点からすると特に狭い範囲じゃないけど、もう少しお金をかける気があるなら、HackRF Oneは1MHz(160mバンド)から6GHz(Wi-Fi)までカバーできるよ。それ以上や以下の周波数は、もっと専門的なものが必要かもね。(もちろん、ラジオやドングルに適切に調整されたアンテナが必要だけど)

それ用の専門的なハードウェアもあるよ。「スペクトルモニタリング」でググってみて。

SDRの別の使い方を探してるなら、KrakenRFを使ってラジオ送信機を見つけることができるよ。 https://www.krakenrf.com/

誰かがこのNo Starchの本を見かけたら(これ、結構いいよ。No Starchらしい内容だし)、ここから始めてみてね: https://www.rtl-sdr.com/rtl-sdr-quick-start-guide/ ゴミみたいな機材がたくさんあって、動かないものや、スプリアスエミッションや変な干渉を引き起こすものを買っちゃうのは簡単だから。電子工学やRFの深い理解がないと、いい結果を得るのは難しいよ。このサイトは初心者にとって最も包括的なスタート地点だから、ドングルを買う前にしっかり読んでね。

rtl-sdr.comのサイトには賛成だね。安い(あまり良くない)ものがたくさんあるから。私のコレクションには3つの定番SDRがあるよ。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で動かすのに問題はないよ、もしそれが考慮事項なら。

学ぶための良い無料リソースは https://pysdr.org/ だよ。これはPythonモジュールじゃなくて、SDRを使ったデジタル信号処理の基本を学ぶためのガイドだよ。人気のあるSDRハードウェアの使い方にも触れてる。

誰も聞いてないけど、ここにいるなら:これは本当にデザインと開発が素晴らしい(私見だけど)SDR用の新しいPythonライブラリをチェックしてみてね。 https://mhostetter.github.io/sdr/latest/

自分のSDRが届くまでの間、遊びたいならオンラインのSDRの便利な地図があるよ :-) https://www.receiverbook.de/map