I am reading out the movement of a motor arm using a Hall sensor and a magnet pair. The hall sensor measures the distance between the sensor and the magnet. The motor arm is being moved with a band-limited Gaussian white-noise signal (0-300 Hz). Due to the movement being very small, the stimulus being a white-noise, and the inherent noise of the Hall sensor, I have a terrible Signal to Noise Ratio. I am trying to improve the SNR by filtering. But the problem is that, the frequencies in the sensor output in the absence of any movement of the motor (baseline noise, in blue) hugely overlap with the frequencies of the actual movement (0-600 Hz) and noise (stimulus, in orange).
The figure below shows the generated white-noise signal that I use to actuate the motor (in black). Grey background marks the presence of a movement stimulus to the motor arm (this signal is in orange in rest of the figures). Notice the 0 baseline outside the grey region in subplot 1. The subplot below it shows the unfiltered hall sensor output. Notice the high baseline noise in the absence of any actual movement. So, this "baseline noise" is the inherent noise of the Hall sensor.
Without filtering, the baseline and stimulus are indistinguishable.

But, the powers are slightly different for frequencies below 150 Hz. But the noise and the signal have the same power after 150 Hz. I do need better SNR in this range.
I tried filtering the signal with 10th order Butterworth with cut-off at 600 Hz (Because I need 300 Hz to be represented properly). I can now distinguish baseline from stimulus but SNR is still very bad, as visible in the PSD.
I want to use the noise in the baseline to denoise the stimulus. How should I do it?




For example, start at 1 Hz, perform a synchronous demodulation, extract the amplitude and phase. Then repeat at 2 Hz, and on and on until you have an adequate frequency response.
– Ben Feb 19 '24 at 15:45https://ethz.ch/content/dam/ethz/special-interest/mavt/dynamic-systems-n-control/idsc-dam/Lectures/Signals-and-Systems/Lectures/Fall2018/Lecture11_sigsys.pdf
– Ben Feb 20 '24 at 03:19