Better SSB Demodulation
Can We Build a Better SSB Demodulator?

Improving weak-signal SSB reception
Over the years, SDR Console has benefited from improvements in digital signal processing, noise reduction, filtering, and interference suppression. Recent work on wideband noise blanking has demonstrated that there are still opportunities to improve established SDR techniques.
Soon I'll start another interesting project: investigating whether we can develop a better SSB demodulator. The objective is simple: can I make weak SSB signals easier to understand, particularly when they are close to the noise floor?
This is an experimental project. There are no guarantees of improvement, but several techniques are worth investigating.
How SSB Demodulation Works Today
Most software-defined radio receivers use a relatively straightforward approach to SSB demodulation.
Once the incoming signal has been filtered and shifted to the correct frequency, the receiver extracts the real component of the complex IQ samples.
In simplified C++:
float audio = IQ.real();
That's essentially it!
Of course, a complete receiver includes frequency conversion, filtering, AGC, and other processing, but the actual coherent SSB demodulation is remarkably simple. Importantly, this method is mathematically correct. Under ideal conditions, there is no alternative demodulation formula that will magically recover additional information.
However, real-world signals are rarely ideal. They suffer from noise, fading, frequency errors, interference, and propagation-related distortion. The question is whether more sophisticated processing of the complex IQ signal, before converting it to audio, can improve the recovered speech.
1. Automatic Frequency Correction
One possibility is to improve the accuracy of SSB tuning. Unlike AM or FM, suppressed-carrier SSB has no continuously transmitted carrier that the receiver can simply lock onto. Even a small frequency error changes the pitch of the recovered speech.
For example, a station may be tuned 20 or 30 Hz away from its ideal frequency. The resulting audio is perfectly intelligible, but it is not quite correct. We could investigate an adaptive frequency estimator that analyses the received signal and automatically corrects small tuning errors.
The challenge is distinguishing genuine frequency errors from natural variations in human speech.
Potential benefit: More accurate tuning and improved speech reproduction without manual adjustment.
2. Adaptive Phase Correction
Another interesting area is phase distortion. Radio signals can experience phase changes due to propagation, fading, and receiver imperfections. A conventional SSB demodulator simply takes the real component of the received complex signal.
But what if we could identify and compensate for unwanted phase variations before demodulation?
A simplified mathematical representation is:
z(t)=s(t)e^{j\phi(t)}+n(t)
Here, the received signal consists of the wanted SSB signal, phase variations, and noise. If we can reliably estimate the unwanted phase variations, we may be able to compensate for them before producing audio.
There is an important complication: SSB does not normally provide an absolute carrier-phase reference, and a constant phase rotation is not necessarily a distortion.
Any correction algorithm must therefore avoid introducing errors of its own.
Potential benefit: Better audio under certain fading and phase-distortion conditions.
3. Complex-Domain Weak-Signal Processing
This is perhaps the most interesting part of the project. An SDR receiver processes complex IQ samples, containing both in-phase (I) and quadrature (Q) components. In a conventional SSB demodulator, the final audio is obtained from the real component. However, before this conversion, the complex signal contains relationships that may be useful for estimating the wanted transmission.
Could we exploit those relationships to distinguish weak speech from noise and interference?
Possible techniques include:
- Complex-domain spectral estimation.
- Adaptive interference suppression.
- Statistical signal estimation.
- Time-frequency analysis.
- Processing that exploits the mathematical structure of SSB signals.
There is an important distinction here. The I and Q components are not two independent copies of the speech. In an ideal SSB signal, they are mathematically related through the Hilbert transform. We cannot simply combine them to obtain a free improvement in signal-to-noise ratio. Nevertheless, more sophisticated processing may exploit information about the signal, interference, or propagation channel that conventional demodulation does not explicitly use.
Potential benefit: Improved recovery of weak SSB signals, especially in difficult interference or fading conditions.
4. Speech-Aware Processing
Human speech has a great deal of structure. Voiced speech contains harmonics, while the resonances of the vocal tract produce formants that change relatively smoothly over time. These characteristics provide opportunities for distinguishing speech from noise.
I have already investigated speech-processing techniques in SDR Console, and one lesson is particularly important: aggressive processing can easily damage the wanted audio. Different speakers have different voices, pitches, and spectral characteristics. An algorithm that works well with one voice may distort another.
For this project, I would prefer to concentrate initially on recovering the actual received signal rather than generating speech that an algorithm predicts should be present. Speech-aware processing may become useful later, but it should not be the starting point.
5. Carrier Estimation and Tracking
Another possibility is to estimate the missing SSB carrier frequency from the received speech. Because the carrier is suppressed, this is not straightforward. However, the statistical properties of speech may provide clues that help determine the correct tuning frequency.
I could also investigate tracking certain propagation-related phase variations. The challenge is obtaining a reliable estimate without confusing normal speech characteristics with carrier or channel errors.
This is another area worth investigating experimentally.
Proposed Signal Processing Architecture
The experimental demodulator would operate directly on the complex IQ samples, before conversion to real audio.
The proposed processing chain is:

Not every stage will necessarily prove useful. Some may provide little improvement, while others may introduce unacceptable distortion.
The purpose of the project is to find out through controlled experiments.
Development Plan
I'll develop the new demodulator in C++17 and integrate it experimentally into SDR Console.
The initial development stages will be:
V1 Conventional coherent SSB demodulator for reference
V2 Adaptive residual frequency correction
V3 Adaptive phase and channel correction
V4 Complex-domain weak-signal estimation
V5 Combined adaptive demodulator
Each version will be compared against the conventional SSB demodulator using the same recorded IQ signals.
This is important. Any claimed improvement must be repeatable and not simply the result of different signal levels, filtering, or subjective listening conditions.
Where suitable reference recordings are available, I can also make objective measurements.
What Am I Trying to Improve?
There are two main objectives.
1. Better speech quality
Improve the audio from signals that are already reasonably strong but suffer from fading, frequency errors, or distortion.
2. Better weak-signal sensitivity
Recover more intelligible speech from extremely weak signals, particularly those close to the noise floor. The second objective is the one I find most interesting. If a signal is already strong and intelligible, improvements in audio quality are welcome, but they are not necessarily revolutionary.
The real challenge is improving the intelligibility of signals that are currently difficult to copy. For example, could a new algorithm make a weak station easier to understand without the unnatural artefacts sometimes introduced by aggressive noise reduction?
That would be a worthwhile achievement.
A Realistic Assessment
There are fundamental mathematical limits to what can be recovered from a noisy signal. A conventional coherent SSB demodulator is already an excellent starting point, and under ideal assumptions it is optimal for recovering the transmitted waveform. I should not expect an enormous improvement simply by replacing the familiar IQ.real()
operation with something more complicated.
Any genuine improvement will need to come from better estimation of the received signal, correction of impairments, exploitation of additional information, or carefully designed processing that improves intelligibility. It is entirely possible that some experiments will produce no measurable improvement. That's part of research.
The important thing is to test each idea carefully and retain only those techniques that provide a genuine benefit.
Starting Soon
Soon I'll begin work on the first experimental SSB demodulator. I'll establish a reference implementation and then investigate the most promising signal-processing techniques, concentrating particularly on weak-signal reception.
As with recent noise-blanker development, I'll use actual SDR recordings, compare the results, and refine the algorithms based on what I hear and measure.
The ultimate objective is not simply to create a more complicated demodulator. It's to find out whether we can hear and understand weak SSB signals that are currently difficult to receive.
Whether we achieve a small improvement, a significant improvement, or discover that conventional SSB demodulation is already close to the practical limit, the results should be interesting.
I'll report our progress as the project develops.










