Wednesday, 2 September 2020

More on Digital SSB generation

 If you look back through this blog you will see (June 2020) a couple of reports of me delving into generating SSB signals using the digital "Phasing Method" using a Teensy processor to do the DSP processing using a couple of Hilbert filters. Hilberts give a band pass characteristic, plus they can be programmed to provide a signal phase shift. The design uses a +45 and -45 deg phase shift to generate I & Q audio signals, which are them fed to a couple of balanced mixers with RF I & Q signals. The result is USB or LSB SSB signals.

The SSB generator. Left Si5351 RF I & Q signals
Centre mixers and audio amp
Right the Teensy processor and mic input

It worked but it had a problem with the Hilbert filters, as they were limited to 70 to 100 taps, the Teensy could not handle a longer filter. This in turn caused the phase shift to move away from 45 deg at low AF frequencies. This then generated opposite sideband break though.

To tackle this I have added a couple of further processing steps. The Teensy processor is mounted on an audio ADC/DAC board and this can provide some audio preprocessing by itself. I have programmed it to provide an EQ with a passband of 500Hz to 3kHz and also an auto volume control, or compressor function. This is the code snippet

  soundcard.audioPreProcessorEnable(); // preprocess -3dB 500-3000kHz

  soundcard.eqBands(1.0, -1.0);

  soundcard.autoVolumeEnable();

  soundcard.autoVolumeControl(0, 1, 1, -10, 0.1, 0.1);

The full code for the app is on my website M0IFA.me here, it is called TEENSY_TX_ABPF.

On a listening test I found a significant improvement in the SSB punch and a reduction on the other sideband and correct side band audio BW.


No comments: