GNU RadioでのAM波の送受信がおのおのできたので、最後にループテストです。送信はRed Pitaya、受信はHackRF Oneを用います。
これまで作成したものをベースに作ったフローなので、ゴチャゴチャしていますがご容赦ください。ちなみにグレーとなっているブロックは”De-activate”、つまり動作しないようにしてあります。フロー作成途上の実験・動作検証に便利です。メニューバーで操作できます。
Red PitayaのAMトランシーバーのサンプルフローでは、送信と受信に同一SDRデバイスを用いていましたが、送りと受けで違うデバイスを用いることが可能なのか?できるようです。これまで別々に作成したフローを一枚にまとめます。エラーはでません。
フロー図の上が送信部、下が受信部です。実体としては右上のブロック”Red Pitaya Sink”に対応するハードであるRed Pitayaの出力を、同軸ケーブルを用いて左下のブロック”Osmocom source”に対応するハードであるHackRF Oneの入力端子に接続してあります。途中、計30dBのアッテネータを挿入しています。送受信周波数は21.2MHzを使います。HackRF Oneの受信では、21.5MHz近辺を受信し、300KHzのLOを注入して差の周波数である21.2MHzをLPFで抽出・復調しています。
HackRF Oneで受信・復調した信号のスペクトルです。音源は以前の記事と同じ、ハイレゾオーディオ用音源ファイルで20KHzを超えるところまでスペクトルが含まれています。10KHzや12KHz付近に小さなピークがありますが、パーカッションの倍音かと思います。
もともとはハイレゾ音源ですが、復調した音楽は高音まで伸びているものの、オーディオ評論家が良く使う言葉である「きめ細かな粒度の音」「瑞々しい音」ではありません。処理を重ねてきた音です。サンプリング速度を上げたり、デジメーションを工夫するともう少し瑞々しい音になるかもしれません。しかし、 LAN・有線ですが高周波区間・USB接続、さらにはC++やFPGAでのデジタル信号処理と、これだけの処理を通ってきたわりにはよい音だと感じました。繰り返しになりますが、1台のLinuxマシンで送受信処理を行っています。IntelのNUC、CPUはCore i3、第7世代です。写真ではNUCの上にRed Pitayaが載っていますが、両者はLAN接続です。
ループテストもでき、SDRデバイスを2台持った甲斐がありました。次はいよいよデジタル伝送に挑むつもりです。すこしずつ取り組んでいますが、難儀しています。GNU Radioに関して十分な知識を持っていないことや、実は無線プロトコルと通信プロトコルのインタフェース部分に関して自分が案外わかっていないということがわかりました。
ネット上にある海外の情報を見ても、AM・FM受信のフローは数多く出ていますが、送信となるとあまりみかけません。デジタル伝送についての取り組みはみかけるものの、「うまくいかない・・・」という書き込みを掲示板でよく見かけます。アナログ受信であれば、放送波という安定・確実な信号源がありますし、送信も手元の受信機で動作確認できます。デジタルとなると処理が複雑になるうえに、検証が難しくなるのでしょう。先は長く、夏場は体がダレるので、ペースが落ちそうです。