I have a continuous signal. I digitize it at 40kHz. A useful signal for me is in the range of 500-1500Hz and takes ~ 50-100Hz. It can be located in any part of this strip at any time. If I apply a digital bandpass filter at 500-1500Hz, I will select the signal I want from the entire band, and along the way I will collect all the noise in the 500-1500Hz band. To reduce noise, I divided this band into 10 bands of 100 Hz (also with digital bandpass filters) and from them I choose the one with the largest signal. At the same time, I do not collect noise across all bands, that is, I have improved the signal-to-noise ratio. But there are moments when the signal is on the border of my 10 filters, that is, part of it falls on one filter, part on another, and I lose signal-to-noise ratio. An obvious option for me is to split the 500-1500Hz band into more bands, but the computational capabilities of my microcontroller are limited, and I cannot afford to increase the number of filters anymore.
Is there any good way to select a signal located in the 500-1500Hz band without collecting noise from the entire frequency band? I also wonder if there are 2 such signals in my 500-1500Hz frequency band, how can I do in this situation? And will it be possible to unite them? Perhaps the Wavelet transformation will help me, but in the Internet I did not find any information on how it can be implemented on a microcontroller.