GNU Radio – HackRF Oneを用いたAM放送受信機(デュアルレシーブ)

そろそろ、自分のオリジナリティのあるGNU Radioのフローをということで作りました。といってもまだまだ100%オリジナルではないと思いますが。

Dual AM broadcast receiver with HackRF One and GNU radio Companion
HackRF Oneを用いたデュアルレシーブ機能付きAM放送受信フロー

AM放送の受信フローはいろいろ見かけます。PCのサウンドカードは2チャンネルなので、これを活かしデュアルレシーブのフローを作成しました。GNU Radio for Windows上で動作します。自分でもまだ完全に理解していないので、エイリアス対策など必要だろうと思いますが、これからです。

復調以外で有する機能は
■放送帯域全体のバンドスコープ
■チューニングレバー(2つ)
■ボリュームレバー(2つ)
■受信局のスペクトラムスコープとウォーターフォール(2セット)
です。

HackRF Oneを用いたAM放送受信機のスクリーン1(バンドスコープ)
HackRF Oneを用いたAM放送受信機のスクリーン1(バンドスコープ)

復調された音声信号がそれそれL、Rのスピーカーから別に出力され、ボリューム調整も個別に可能です。

受信動作原理ですが、まず、HackRF OneでAM放送帯域全体をキャプチャします。受信周波数に等しいローカル信号を乗じてゼロIF信号を得て、ローパスフィルタを通した後にAM復調、ボリュームを経てPCのサウンドカードへ入力という順序です。これが2系統です。周波数変換においてチャネライザというブロックもあるのですが、自身の理解促進のため、あえてまだ使っていません。チューニングレバーを操作して受信周波数を変えるとローカル信号の発振周波数も連動して変化するようにしてあります。隣接局のキャリアを排除するため、帯域は8KHzとしています。

CPUがCore i5-4570Kのマシンを使いました。デュアルレシーブとなっていますが、遅延・音切れなどなく復調できます。AM放送としては十分な音質です。ただ、Open hardware monitorでCPUの使用率を見ると、各コア20~40%ですので、それなりにCPUパワーを消費するようです。

HackRF Oneを用いたAM放送受信機のスクリーン2(受信局のスペクトラムとウォーターフォール)
HackRF Oneを用いたAM放送受信機のスクリーン2(受信局のスペクトラムとウォーターフォール)

画面表示されるレバーや画面ですが、ブロック”GUInotebook”や、各ブロックのNotebookプロパティで表示のまとめ方を編集できます。デフォルトの受信周波数はIDが”tuninnig_freq_x”となっているブロック”GUI Slider”のDefault Valueで設定できます。

フロー(grcファイル)はここからダウンロードできます。解凍してお使いください。

Attached is a GNU Radio Companion flow to receive AM broadcast with HackRF One. This flow features dual receive function. Although improvement would be needed, enjoy.

GRC flow for dual AM receiver

2 comments

  • RTL-SDRを持っているので、GNU Radioを試してみたいです。やっぱり、Linux環境があった方が良いですか?

    • こんにちは。

      入口としてはGNU-Radio for Windowsでいいと思います。でも、そのうち、いろいろ試してみたくなるかもしれません。そうするとLinux環境の方がよいと思います。Windows環境では制約がありますし。でも、わざわざLinuxマシンを用意するのは・・・という方は多いと思います。この件については、近々に別にエントリをおこします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ˆ Back To Top