Raspberry Pi and Dual Watch

As an example of digital signal processing capabilities of a Raspberry Pi, dual watch functionality is implemented.

The audio signal from IC-7410 is converted to an analytic signal using a Hilbert filter with 51 taps, and down converted with a BFO generating a 300 Hz complex sinusoid. The converted signal goes into the left channel of the audio output, while the original signal, after going through a 151 tap BPF, goes to the right channel.

To generate a single tone, say, around 660 Hz, an AM broadcasting signal at 954 kHz is received with IC-7410 set to a CW mode. The left and right channels show a 360 Hz and a 660 Hz signal, respectively.

You observe two peaks, each comming from the left and the right channels.

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);