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.
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:
Post a Comment