I took some signal from the real hardware. I have an amplifier which provides non linearity in my resulting signal. Suppose, I have an algorithm which iteratively suppress this nonlinear effects and run LDPC decoder after every iteration to obtain the valid codeword The problem I faced with is the following: everything works good but the speed of the convergence is weak. Ths iterative algorithm suppress non linearity “too long”

The root of the problem is thot I have non Gaussian noise (residual small non linear part).

The question is: what can I do to either remove this part earlier or suppress it or distinguish white noise and colored one?

  • $\begingroup$ Take a fourier trasnform of the signal in matlab, and I think you can remove the non linearity, by filtering out the higher frequencies using a low pass filter (choose an appropriate LPF with the correct sampling rate). Mathematically model your filtered signal, and try to make it a signal with AWGN, using equalization techniques ! $\endgroup$
    – phanitej
    Commented Dec 21, 2022 at 12:43
  • 1
    $\begingroup$ @phanitej you can't filter out nonlinearity with a low pass filter in a wideband signal; the relevant nonlinear effects end up within the bandwidth of the signal. $\endgroup$ Commented Dec 21, 2022 at 13:58

1 Answer 1


Assuming your non-gaussian noise is independent, adding up enough noise realizations will, through the central limit theorem make them normally distributed.

Good thing, also, is that LDPC codes are linear block codes – meaning that if you add two code words, you are guaranteed to get another code word

So, as strangely as that might sound: instead of LDPC-decoding a single (noisy) codeword, sum up (for example) 10 codewords, and and decode the result. This will not yield a useful infoword, but if all you need is some kind of decision-feedback loop involving successful decoding, then that might be a way.

Another classical way of getting the noise to be normally distributed is to employ a dense, unitarian Matrix as precoder on the transmit side, and its inverse (transpose) on the receive side: You're not changing the number of symbols that way, but you're "combining" enough noise realizations to gaussianizing the noise, whilst not introducing selectivity.
A popular (and quite logical) choice for a matrix pair here is the DFT matrix, because you can very quickly calculate the result using the FFT (and you end up implementing OFDM that way, which can have further interesting properties); you'll definitely want a whitener around that, though, because "nonlinear system" implies "OFDM is kind of a worst case, due to high PAPR", so at least make these worst-case symbols rare.
Unless you can make productive use of the properties of OFDM (e.g. for equalization purposes), using the Walsh-Hadamard transform would be a better choice: easy to compute (using the fast Walsh-Hadamard transform, FWHT), exceptionally well-conditioned, and should be as good as the DFT at gaussianizing your noise.

  • $\begingroup$ 1. I transmit 15 LDPC codewords simultaneously, so maybe I can use the summation approach that you proposed to obtain good noise statistic from it after successful decoding. But I did not get the point how it could be useful in case of non linearity. 2. If I understand correctly, you mean also that I need to use OFDM and I already use it together with whitening and mmse equalization . But it seems that it is not enough. I did not work with Walsh hadamard transform yet, but I think I should use fft in any case $\endgroup$
    – asd
    Commented Dec 21, 2022 at 15:24
  • $\begingroup$ 1. not useful in nonlinearity per se, only useful to make the additive noise look more gaussian. Also, I proposed adding up the codewords, prior to decoding 2. no, you don't understand correctly. I explicitly said you probably do not want to use OFDM. $\endgroup$ Commented Dec 21, 2022 at 15:26
  • $\begingroup$ It seems I got it. Thank you very much, I will go deeper in the Walsh hadamard transform and consider it $\endgroup$
    – asd
    Commented Dec 21, 2022 at 19:44
  • $\begingroup$ @MarcusMüller could you please give some references for the whitener? And how exactly should it be placed in the communications chain? $\endgroup$
    – AlexTP
    Commented Dec 23, 2022 at 16:08

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.