そろそろ、自分のオリジナリティのあるGNU Radioのフローをということで作りました。といってもまだまだ100%オリジナルではないと思いますが。
AM放送の受信フローはいろいろ見かけます。PCのサウンドカードは2チャンネルなので、これを活かしデュアルレシーブのフローを作成しました。GNU Radio for Windows上で動作します。自分でもまだ完全に理解していないので、エイリアス対策など必要だろうと思いますが、これからです。
復調以外で有する機能は
■放送帯域全体のバンドスコープ
■チューニングレバー(2つ)
■ボリュームレバー(2つ)
■受信局のスペクトラムスコープとウォーターフォール(2セット)
です。
復調された音声信号がそれそれL、Rのスピーカーから別に出力され、ボリューム調整も個別に可能です。
受信動作原理ですが、まず、HackRF OneでAM放送帯域全体をキャプチャします。受信周波数に等しいローカル信号を乗じてゼロIF信号を得て、ローパスフィルタを通した後にAM復調、ボリュームを経てPCのサウンドカードへ入力という順序です。これが2系統です。周波数変換においてチャネライザというブロックもあるのですが、自身の理解促進のため、あえてまだ使っていません。チューニングレバーを操作して受信周波数を変えるとローカル信号の発振周波数も連動して変化するようにしてあります。隣接局のキャリアを排除するため、帯域は8KHzとしています。
CPUがCore i5-4570Kのマシンを使いました。デュアルレシーブとなっていますが、遅延・音切れなどなく復調できます。AM放送としては十分な音質です。ただ、Open hardware monitorでCPUの使用率を見ると、各コア20~40%ですので、それなりにCPUパワーを消費するようです。
画面表示されるレバーや画面ですが、ブロック”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.
RTL-SDRを持っているので、GNU Radioを試してみたいです。やっぱり、Linux環境があった方が良いですか?
こんにちは。
入口としてはGNU-Radio for Windowsでいいと思います。でも、そのうち、いろいろ試してみたくなるかもしれません。そうするとLinux環境の方がよいと思います。Windows環境では制約がありますし。でも、わざわざLinuxマシンを用意するのは・・・という方は多いと思います。この件については、近々に別にエントリをおこします。