What I want to ask you comes from a place where I can play with all the parameters as much as I want (I can measure as long as I want and as fast as I want, as well as change sensor/ADC).
The signal of origin will be a pure sine wave of known frequency (I make it) and maximum amplitude. As it travels through space it will attenuate. Due to the environment (underwater) I use low band frequencies (10-80Hz.) When I get too far away from it I cannot distinguish signal from noise as the SNR becomes 1/1.
Right know I am measuring using a 20bit ADC, mainly I reconstruct the amplitude of the signal by doing an FFT of it. Here is what I have tried:
- Use windos (have tried flat-top,Hann and a couple more) - proved really useful.
- Filter the signal (FIR and biquad filter) - didn't help too much.
- Play with the sampling rate and sampling ammount (empirical tests, I use 200Hz sampling rate, and 512 samples for ARM built in functions for FFT.)
The easy answer when I get far away from the signal would be to increase the power at the origin or get a better sensor with lower floor noise, but I feel that I can do much better processing my signal before changing to better sensors and emitters. I plan to enhance my system in both ways.
My problem then, comes when I am far away from the signal (I can provide real data if needed), I cannot distinguish anymore the tone at the FFT from the noise. As far as my knowledge can go, this could be either
- Quantization noise of the ADC (20 bits)
- Floor noise of the sensor
- Dispersion from other noise signals. At the end, I think is more white noise like, I don't see other tones.
I have been reading other articles here, using autocorrelation, Goerthe as well as other solutions like precise measurement of sine wave using ADC that I will definitely try while you answer this question and compare to my actual solution.
Sorry to disturb you if this question has been already answered.
For those of you interested to help, even though appreciated, I know having an easy answer that I can copy paste is almost impossible, but I am also really interested in learning about these kind of situations, so I will gladly accept any good book or article recomendations where I can learn more about it, enhance my solution and most of all learn and help other people in a situation close to mine.
EDIT Another things you have suggested me that i will search about:
- Synchronization of signals.
Things i don't know if they could help:
- Oversampling
- Synchronous Waveform Averaging
I upload these photos to get an idea, not same experiment but you get the point, close to the sources i can get the signal.
But as i get further away, I find it harder to know if there is or not signal (assume i don't care about the intensity of the signal)