Raspberry Piでデュアルウォッチ

Raspberry Piによるディジタル信号処理能力の例として、デュアルウォッチ機能を実装してみました。

IC-7410からのオーディオ信号は、51タップのヒルベルトフィルタを用いて解析信号に変換され、さらに、300Hzの複素正弦波を生成するBFOによってダウンコンバードされます。変換された信号はオーディオ出力の左チャンネルに、そして、元の信号は151タップのBPFを通過した後右チャンネルにそれぞれ導かれます。

例えば、660Hz付近のシングルトーンを生成するために、954kHzのAM放送をIC-7410をCWモードにして受信します。左右のチャンネルは、それぞれ360Hzと660Hzの信号を示しています。

あなたは2つのピークを観測しますが、それぞれ、左と右のチャンネルからに由来しています。

const double bfo_freq = +300.0; 
double bfo_phase      =    0.0;
//
double complex cbfo  = cos(bfo_phase) - I * sin(bfo_phase);
double complex cleft = cright * cbfo
bfo_phase += bfo_delta;
//
sample[2*i  ] = creal(cleft );
sample[2*i+1] = creal(cright);