Receiver function, frequency domain deconvolution not giving logic results
The &quot;spikes&quot; that you see are coming from a &quot;half-done&quot; inverse Discrete Fourier Transform (DFT).
The main thing to note is that when you specify a filter in the frequency domain (as it is hapenning here), that filter has to &quot;fit&quot; the DFT spectrum ordering too.
You conclude (correctly) &quot;I'm splitting the transforms range in the middle since the real input will produce symmetric outputs. &quot; but that is not what is expressed in the code.
If you use numpy.fft.fft() then you have to specify a symmetric filter. Which is clearly not what gauss will be, because it is defined over freq whose linspace goes from 1 (why one?) to numpoints//2. If you plot this, you will see that it is only half the Gaussian and it has to be extended with its mirror image (since you are using numpy.fft.fft()) to include the negative frequencies part.
What you describe (that you only specify half the spectrum because the rest is symmetric) is what the pair numpy.fft.rfft(), numpy.fft.irfft() implement. But if you choose this way of doing it, you have to get rid of numpoints//2 because it is already taken care for you.
Having done this, we then turn to the &quot;cut off&quot; (or equivalent cut off) of the filter. The formulas in Langston79 are in angular frequency and the &quot;standard deviation&quot; (the width of the Gaussian filter) is specified at some $4 \alpha$, which is something like 6Hz (for an $a=1.5$). This has to be defined appropriately on the discrete frequency axis. If you have (for example) an $Fs=1000Hz$ and you are looking for 6 Hz in a 500 point signal, then after the DFT, each bin is $\frac{Fs}{N_{FFT}}$ Hz wide (or 2 Hz in this case). So your discrete $\alpha$ (let's call it $\alpha_d$) is now $3$. If your signal is very long (which I think it is, here, just looking at the duration of those signals), the $\alpha_d$ will work out much higher of course, because the resolution of the DFT is now higher (to still achieve the desired $4 \alpha$).
Hope this helps.