I have been exploring different ways of improving the EVM performance of quadrature demod block for GMSK demodulation. As we all know, the Gaussian filter introduces intentional ISI, which can be pretty destructive at lower BTs values. I suppose a Viterbi demodulator, which is the ML solution for GMSK, can deal with ISI without much trouble. Other sub-optimal solutions like the quadrature demod in GNU Radio can make use of a Wiener equalizer to reduce the EVM.

I saw in one CCSDS standard that a 3-tap [-0.0859984,1.0116342,-0.0859984] Wiener equalizer was used in their coherent demodulator. The demodulator in question uses Laurent taps as matched filters. I added an FIR filter with the recommended taps after the symbol sync. As it could be seen, in the constellation diagram and its distribution, there seems to be an improvement in EVM performance. I don't know if I use the Wiener equalizer correctly. I would also like to learn more about how to generate the Wiener equalizer taps so I could use more taps as needed.

Additionally, could anyone suggest more ways of reducing the EVM? All I want to see are two dots on the constellation diagram.

GNU Radio Flowgraph Constellation diagram and statistics


1 Answer 1


As for generating the coefficients for the Wiener Filter and static equalization in general, I detail that in this post and the resulting operations are actually quite simple as long as you have a reference waveform with no distortion time aligned with the distorted waveform as detailed in that post. This is done and useful for static equalizer corrections such as distortions introduced from analog filters used. Adaptive equalizers for time changing channels converge to this solution using adaptive techniques.

As for simplifying GMSK, the Laurent AMP decomposition is a technique used to reduce the complexity in separating the intentional inter-symbol interference (ISI) of partial response GMSK modulation (the intentional ISI is done for the benefit of spectral efficiency) by representing the CPM signal as $M = 2^{L-1} $ PAM signals. Each of the PAM components has decreasing amplitude such that a (suboptimum) receiver can be constructed with less matched filters and omitting the smaller PAM signals. Since the energy in the first CPM signal is significantly stronger, an implementation that is done with using just the first of the complete set of PAM signals will have reasonable performance at a significant reduction in receiver complexity.

More details on Laurent Decomposition for GMSK can be found here. and the original paper by Pierre A. Laurent is:

"Exact and Approximate Construction of Digital Phase Modulations by Superposition of Amplitude Modulated Pulses (AMP)", IEEE Transactions on Communications, Vol. COM-34 No 2 February 1986. pp 150-160

  • $\begingroup$ The post for the Wiener filter is clear. One clarification though. It seems like from what I'm reading, the Wiener equalizer is not adaptive? Regarding the use of Laurent expansion. Do we use the Laurent filter (with Co taps I think) before quadrature demodulation or after? Alternatively, could use the Co taps as a filterbank for symbol synchronizer? $\endgroup$ Commented Jan 26, 2022 at 18:35
  • $\begingroup$ Computing the coefficients one time based on comparing the received signal and what should have been sent is not adaptive, but recomputing them periodically is. More often however a least squares solution is carried out recursively with adaptive algorithms which converge to the Wiener solution for stationary channels. The two most common algorithms for that are the LMS algorithm (gradient descent) which is simplest but slowest to converge and the Recursive Least Squares (RLS) algorithm which as higher computational complexity. Re Laurent refer to the linked paper I provided. $\endgroup$ Commented Jan 27, 2022 at 3:29
  • $\begingroup$ @MosesBrowneMwakyanjala Here is another post I did before that details the adaptive equalizer solutions with further references for implementation: dsp.stackexchange.com/questions/40939/…. But note that if you are dealing with a frequency selective channel (deep nulls in your passband) you really want to use a Decision Feedback Equalizer and not these solutions. $\endgroup$ Commented Jan 27, 2022 at 3:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.