How to undo dynamic Doppler effect by software?
If the only reason for the buffer is so your algorithm has something to process, then the simplest way to implement this is to keep your current algorithm but use a shorter buffer. If the larger buffer was present for other reasons (i.e. data arrives in large chunks), then keep that larger buffer, but feed it into a shorter buffer that is given to your processing code. (It seems any algorithm able to recognize Doppler shift in a given snapshot must also be able to process that same snapshot.) In this way you can keep your current algorithm, and tailor the short buffer length as desired. I can't imagine how an algorithm specifically designed to do this per sample would be of benefit, unless it takes less CPU--which seems unlikely.