HackRF Oneを用いた受信機のフローを作ってきましたが、送信機能にもトライです。今度はデバイスにRed Pitayaを用います。Red PitayaはLANインタフェースを有するため、設置場所の自由度が大きく、つど、別のマシンからアクセスできます。ただし、Red Pitaya用GNU RadioはLinuxのみです。
フローはRed Pitaya用GNU RadioにサンプルとしてあったAMトランシーバーのものをベースにしました。右のフロー図の下半分が送信部です。オリジナルのフローではPCのマイク入力が信号源になっていますが、オーディオファイルや、一定周波数の連続波を切り替えて印加できるよう若干の変更を行いました(フロー図左下)。
このフローにはPTTが設定されており、GUIではPTT用のチェックボックスが表示されます。このボックスにチェックを入れることにより送信状態となります。なお送信中も受信部は動作し続けます。Red PitayaはSDRモジュールのため、簡単なSGやオシロスコープにもなります。この辺がトランシーバーと違うところです。
ここでは、信号波は3KHzの連続正弦波とします(フロー中の”Signal Source”)。これにキャリア成分となる定数(フロー中の”Add Const”)を加えてからRed Pitayaに送り込みます。 キャリア周波数は1MHzとしました。 出力波形をオシロで見ながら、Red Pitayaの出力がクリップしないよう、また適切な変調となるようGNU Radio上のフローのブロックの変数値(信号レベルの設定値)を設定していきます。
最終的な出力波形は右の図のとおりです。変調度は90%ぐらいになっています。Red PitayaのFPGAの処理能力は122.88MSPS、DAコンバーターは14Bitと十分です。出力波のスペクトルをオシロのFFT機能で測定しました。 中央のキャリアから両サイドの3KHz離れたところに、数dB低いレベルでの変調信号が確認できます。 変調信号の高次波も十分低く、良好です。
今後はSSB波に挑戦の予定です。
2019/8/11追記
スペアナを入手したので、改めて測定しました(右図)。Red Pitayaの出力に20dBのアッテネータを挿入してあります。きれいな出力信号です。
I made a AM transmitter flow on GNU Radio Companion with Red Pitaya. Flow diagram and measured signal are shown on pictures above.