これまでの記事に書いてきたようにRTL2832Uドングルを使うと、帯域内のどのような信号も受信することができますが、残念ながら信号を生成することができません。USRPのような機器を使えば受信も送信も行うことができますが高価です。
先日入手したアンリツMG3660Aは、デジタル変調用SGということですが、その機能として外部からIQ信号を与えて変調を行うことができます。ということは、GNURadioでIQ信号を生成してPCのサウンドカードから出力し、それをこのSGに与えれば、GNURadioで可能な変調した信号を生成することができそうです。前回の記事に書いたように入手したSGは不具合があり、このような実験ができていなかったのですが先日修理が成功したので、ようやく試してみることができました。
MG3660AのIQ信号は、500mVという仕様です。一方サウンドカードは1V程度で調整の範囲内ですから直結して問題なさそうです。ただし、サウンドカードはDCを出力することができませんので、DC分が必要な変調方式(FMやAMが該当します)は一工夫必要です。今回は変調後のベースバンドをゼロIFではなく、ちょっとずらしてLow-IFとしてIQに出力することにします。
GNURadioのフローグラフを下記に示します。NBFMの変調モジュールそのものが用意されているのでそれを使います。変調後にLPFで9kHz以下に切った後、Frequency Xlating Filterで周波数を10kHzずらします。得られた複素信号を実部、虚部に分けて、サウンドの両チャネルに出力します。音声入力信号は、シングルトーンや、PCのマイク、WAVファイルを選べるようにしました。どれか一つを有効(選択状態にして大文字Eキーを入力)にして、他を無効にします(大文字D)。また、FFT画面でIQ信号をモニタして変調動作がわかるようにします。いつもと同様にGNURadioはMacで動作させます。
全体のセットアップは、USBサウンド(UA-1G)をMacに接続し、そのライン出力を、SGのIQに接続しています。サウンドカードからの出力がひずまないよう、オシロスコープで波形を確認しながら、ボリュームを調整しておきます。SGのRF出力は-70dBmくらいに絞って、ハンディトランシーバのアンテナ端子に直結します。実際の変調出力はIQ入力レベルに依存しますので、もっと小さくなっているはずです。また、IQ信号の周波数を10kHzシフトしているので、その分SG側で周波数を逆側にずらしておきます。今回は435MHzを出力しますので、SGの周波数は10kHzずらして434.990MHzに設定します。
動作させている動画です。音声は録音された小説朗読のWAVファイルを加工して、GNURadioのモジュールで読み込ませています。
ちゃんと変調された信号をハンディトランシーバのスピーカから聞くことができています。FFT画面を見ると、周波数をずらしてあるので0Hz付近は使用されていないことがわかります。
AMの場合は以下のようなフローグラフになります。特にAM変調のモジュールはありませんが、キャリア用のDCを与えるために定数加算してからLPFに通します。LPFでは複素化をしないで実信号のままとしておきます。これは両側にサイドバンドを残すためです。次にLow-IFとして周波数シフトする際に複素化を行います。フローグラフでは実信号(Float)はオレンジ、複素信号(Complex)は青色で示されています。
SSBの場合はもっと簡単で、BPFを通して必要な成分のみを残し、かつ複素化で片側サイドバンドのみを残し、それをそのままIQ出力するだけです。SSBにはキャリアすなわちDC分が無いので周波数シフトも不要です。AMと比べて、複素化のタイミングの違いにより片サイドのみとするか、両サイドにするかが変わってきます。細かいようですが、結果は大違いです。
以上、FM,AM,SSB変調を試してみました。IQ変調機能とPCがあれば、以上の方式に限らず任意の変調を行うことが可能です。電鍵をIQ端子に繋げば、CW送信機にもなりますね(若干の波形成形は必要ですが)。今回は一般的なFM,AM,SSBのみしか行っていませんが、このような構成を取ることでデジタル変調等の実験も自由に試せると思います(国内ではデジタル変調の実験例をあまり見かけない気がします)。
周波数についてもSGで設定可能な範囲で、任意の周波数(MG3660Aの場合は300kHz~2.75GHz)を出力することが可能です。というわけで、430MHz帯に限らず、HFから2.4G帯までフルカバーすることができます。
今回は事情で電波は出していませんが、アンプがあれば送信機を構成し電波を出すこともできると思います。ただし、免許のためにはハムバンドを周波数が逸脱しないよう何らかの制限が必要だと思われます。
SGを使うことは一般的であるとは言えませんが、受信と復調についてはRTL2832Uドングルで安価に可能ですので、できれば変調についても何か安価なソリューションが欲しいところです。
使用したフローグラフファイルは以下にアップしておきます。WAVファイルを使う場合は48kHz、16bit、1chのものを使います。