30kHz All Mode SDR(Receiver)

ギターエフェクタ用に作成したボードを使って,30kHzオールモード(AM, FM, SSB)レシーバの動作確認をした(最終的にはこれの前にダウンコンバータをつけて広帯域レシーバに仕上げる予定).

エフェクタ用基板

このボードはESP32-S3にI2SインターフェースのAudioCodecを接続した単純なものなので,実験用としても使いやすい.

プログラムは過去のブログ記事のとおりだが,中心周波数30kHz,帯域+-25kHzとするためサンプリング周波数のみ120kHzに変更している.

余談になるが,過去に動作していたプログラムが動作しなかった.原因は esp32 のボードマネージャのバージョン.2.0.10以降だとDSP関係の処理(FIRフィルタ)がまともに動作しない.DSPライブラリに不備があるようだ.そういえばFFTも,条件によって虚数部の符号が逆になったりインデックスが1つずれたり…  とりあえず2.0.9 を使っていこうと思う.

ADCにはPCM1808を使っている.これの動作保証は96kHzまでだが問題なく動作した.倍の192kHzでも動作したので120kHzサンプリングで動作させてもあまり問題はなさそう.
DACはPCM5102Aでこちらの最大サンプリング周波数は384kHzで余裕がある.

最終的にレシーバに仕上げるにはこれに前にダウンコンバータが必要で,一般的には直交ミキサを用い,その出力をIQ 2ch入力で受けて60kHz離れたイメージを除去する.また各モードで必要な帯域制限は信号処理で行う.

しかし,現実問題として直交ミキサをどんなに調整しても広帯域でかつ満足できる性能で動作させることは難しい.具体的にはあらゆる周波数で60kHz離れたイメージを十分減衰させる(つまりIQバランスを保つ)のは難しく,調整も面倒なので(物理的な)直交ミキサは使いたくない.

このような理由でダウンコンバート時のイメージはフィルタで切ることを前提にして,上図のように入力は解析信号(IQ 2ch)ではなく実信号(1ch)とした.

 


AM受信

 


FM受信


SSB(USB)受信


SSB受信(逆サイド)