Removing multiplicative noise (signal) in FFT

I've read up a little here on how to deal with multiplicative noise vs additive noise, with the most simple approach to take the logarithm of the signal to remove the noise. I'm wondering how this translates to FFT / spectra. For my case, I'm dealing with time series, so the noise has a known form in frequency space but not temporal space. Specifically:

If my background noise is $$x_0$$ and my signal has amplitude $$A$$ and frequency $$\omega_0$$, I assume my signal takes the form [*,**]: $$x=x_0(1 + A sin(\omega_0 t))$$

For my case, $$x_0$$ varies in time but has a known spectral slope (brown / pink noise), thus, I want to remove the noise in frequency space / infer the amplitude $$A$$ from the spectral peak at $$\omega_0$$.

To get at this, I've done a couple numerical tests to prove that I can relate the spectral peak to the amplitude $$A$$ of my original signal by dividing the FFT of the signal $$x$$ by the FFT of the noise ($$x_0$$). See below for a couple variations of $$A$$ (right plots) and $$x_0$$ (red vs purple). What is important is that the effect of noise at $$\omega_0$$(notable in difference between red and purple in top right) is effectively reduced by dividing the $$x$$ FFT by $$x_0$$ FFT (bottom right).

$x$ (top left) and spectra of signal divided by spectra of noise (bottom left) for $$A=0.05$$. For varying $$A$$, magnitude of peak at $$\omega_0$$ in spectra of signal $$x$$ (top right) and for spectra of signal divided by spectra of noise (bottom right). Two example forms of $$x$$ with different $$x_0$$ are shown in red and purple." />

What I'm wondering, and please advise: Is this approach legitimate? Can this be validated analytically? I've attempted to solve the FFT integral by hand but am out of practice.

[*] Note 1: This is rather than the additive case $$x=x_0 + A sin(\omega_0 t)$$).

[**] Note 2: Technically I'm dealing with a signal that is multiplicative on the noise, rather than the noise multiplicative on the signal, but for now let's assume they're similar.

• Some comments. 1. You do not take the maximum value of the peak, you take the energy (the integral squared) of the peak inside a narrow band. This is the way, I have spoken. 2. If red top left is $x$, blue top left is $x_0$, and red bottom left is $x/x_0$, it is not clear what the blue bottom left is. 3. You can take the division by $x_0$ provided the proper caution are applied to that signal, i.e. when the noise FFT happens to be very small, the result will be, well... uselessly large. 4. At the end, if you multiplicative model is right and valid for you, you must use it. Dec 9, 2023 at 2:54
• 1. Yes totally concede on that point. 2. Apologies for confusion. Red and blue are both $x$ with different $x_0$ to demonstrate effect of varying background on signal in question. Bottom left blue and red are both $x$/$x_0$. 3. Yes! Fortunately for this case I can assume $x_0$ will always be significant. Dec 10, 2023 at 4:04

I think the key to understanding this problem is the Fourier relationship between multiplication and convolution. If you have multiplicative noise in the time domain, this equates to the convolution of the individual noise and signal spectrums. So, you would have to perform deconvolution in the Fourier domain. This becomes difficult if you don’t know your noise spectrum as you would have to do blind deconvolution. Division may work in certain cases, but I’m not sure that it gives an exact analytical solution.

For dealing with the effects multiplicative noise in the time domain when looking at the spectrum, a good way to deal with it is a non-linear approach to estimating the spectrum. If you only want to observe the spectrum and do not need to get back to your signal, a power spectral density estimation approach would work. Methods like Capon, Burg’s, or EV/MUSIC would work well for dealing with multiplicative noise. If you need to get back to your signal though, or if you want an exact estimate of your signal amplitude specifically, you need a nonlinear amplitude spectral estimate. These are typically more involved, however.

EDIT: Since I'm getting downvoted, I'll be more thorough in my response.

Let's take a look at your signal model:

$$$$x = x_{0}(1+A\sin(\omega_{0}t)) = x_{0} + x_{0}A\sin(\omega_{0}t)$$$$

This is technically additive and multiplicative noise of the same noise model. This is not often done, as typically additive noise is assumed zero mean and multiplicative noise is assumed unit mean so that neither add bias. However, for analysis sake, we can continue with this. Taking the Fourier Transform, we would get:

$$$$X(\omega) = X_{0}(\omega) + X_{0}(\omega)*(\mathcal{F}(A\sin(\omega_{0}t)) =$$$$

For simplicity, I'll let $$(\mathcal{F}(A\sin(\omega_{0}t)) = B(\omega)$$. We then get:

$$$$X(\omega) = X_{0}(\omega) + X_{0}(\omega)*B(\omega) = X_{0}(\omega) + \int_{-\infty}^{\infty}X_{0}(\omega - \gamma)B(\gamma)$$$$

In this case, you can subtract off $$X_{0}(\omega)$$ to get:

$$$$\int_{-\infty}^{\infty}X_{0}(\omega - \gamma)B(\gamma)$$$$

Once, you get here, if you divide by $$B(\omega)$$, you get:

$$$$\frac{\int_{-\infty}^{\infty}X_{0}(\omega - \gamma)B(\gamma)}{B(\omega)}$$$$

You cannot bring the denominator into the convolution because it has a different indexing variable. To mathematically deal with this, you would need to perform deconvolution. It's also important to note that if you take the log of the integral, you can't bring it inside the integral because it is non-linear.

Dealing with convolutional noise requires a different approach than dealing with multiplicative noise. The main approach involves deconvolution, although you may find that another domain, like wavelets, could provide some insight. This is why I suggested a non-linear approach to estimating the spectrum, as they typically are able to handle multiplicative noise well when it comes to denoising a spectrum.

If you know the spectrum of your signal with multiplicative noise, you can always inverse Fourier transform, use a multiplicative noise technique, and then Fourier transform again.

• Ok! Question - say before you do the step after $X_0(\omega) * B(\omega)$, I write the form of $B(\omega)$ explicitly as the Dirac delta. Could I then simplify the convolution analytically? Dec 10, 2023 at 22:28
• If your delta function is not shifted, ie centered at 0, then you would get $X_{0}(\omega)$. If it is shifted, you will get a shifted version of $X_{0}$. Dec 11, 2023 at 7:06