I had a noisy signal which I denoised using machine learning. Now assuming the noise was additive I am subtracting the denoised signal from the noisy signal to get the noise part. I just did time domain subtraction, but when I plotted the frequency response of the noisy signal, the denoised signal and the noise, I noticed that some harmonics are actually of higher amplitude in the noise signal, like the harmonic at 3.3 MHz. enter image description here

Can somebody please tell what I am doing wrong?



1 Answer 1


Well, two options:

  1. Your channel doesn't only add noise, but has some nonlinearity, or the noise is not just additive, so: your model is wrong, or
  2. your denoiser is not perfect and doesn't only remove noise, but maybe adds some interference at some frequencies. So: your denoiser can't denoise perfectly, and has some unexpected side effects.

Option 2 seems more likely. Also note that it is mathematically in general impossible to remove all noise. From an information-theory point of view, whenever you add noise with a PDF that has support wider than half the minimum distance between signal points, you simply eradicate some information. It's mathematically impossible to perfectly denoise.

Note that learned denoisers are trained towards one objective only – minimizing some objective function ("loss function"). I'd expect that function to be something like a euclidean distance between the denoised and the transmit sequence at the symbol instants – but that doesn't mean it's the only possible loss function for this task, nor does it mean your denoiser actually converged against a maximum estimator that's uncorrelated to your data.

First of all, unless you can prove the opposite, you have converged (best case) to a local optimum, not to the global optimum, and:

Denoising might, depending on your signal level, simply have learned to e.g. set specific samples to specific values (e.g. in a filtered/shaped pulse train, you'd expect "0" in the middle between symbol instants, on average. But learning to always set that value to zero, even when the filter doesn't fulfill Nyquist criteria, doesn't make the loss function I described above any worse, and might train a bit of a zero-forcing equalizer for the transmit filter – which might be amplifying your signal harmonics. So, I'd even call this a bit expected!

  • $\begingroup$ Hello, thanks for your response. Can you please provide any idea what noise model I should try? I just know about addition, multiplication and convolution but is there anything else? $\endgroup$
    – nasrin
    Commented May 16, 2022 at 20:10
  • $\begingroup$ No, I can't! You're modelling your problem. The noise model reflects your idea of the system you need to build. Also, I don't see why you should change anything. does your noise reduction not work as expected? $\endgroup$ Commented May 16, 2022 at 20:12
  • $\begingroup$ actually I followed this example: mathworks.com/help/signal/ug/…. I used my own data where noisy signal a mixture of sample 1 and sample 2 and the clean signal is pure sample 1. I actually don't have a validation signal for the denoised part and I don't know how the 2 samples are behaving in the mixture. It's a blackbox so I thought I have to try different models. $\endgroup$
    – nasrin
    Commented May 16, 2022 at 20:20
  • $\begingroup$ well, if you don't have a validation signal, how do you figure the higher amplitude there isn't correct? $\endgroup$ Commented May 16, 2022 at 20:24
  • $\begingroup$ I know the behavior of pure sample 1 and pure sample 2, usually sample 2 (the noise here) has lower harmonic amplitude than sample 1. Also, I thought according to the linearity property of fft, subtracted signal was supposed to have a lower fft amplitude response. $\endgroup$
    – nasrin
    Commented May 16, 2022 at 20:39

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.