# How to undo dynamic Doppler effect by software?

I have a signal affected by Doppler effect. In general, the Doppler effect changes the scale of the time and frequency domains. So, to undo this phenomenon, I am using a sampling rate converter. Two possible implementations using polyphase structures are shown in Figures 1 and 2. They both work fine as expected. The recovered signal has no Doppler shift. .

However, while in presence of dynamic Doppler, i.e. the compression/expansion factor varies over time, I am not sure if this solution is appropriate. I am buffering the signal, and for each buffer I compute the corresponding $L$ and $M$ factors that undo the Doppler effect. Nevertheless, there exists a trade-off between buffer length and the frequency resolution. In other words, in a buffer I still have a varying Doppler shift, so the $L/M$ ratio should not be a constant during a single buffer.

Is there a way of apply a sample-to-sample method to undo dynamic Doppler effect? I am currently interested in software-based solutions, not hardware-based ones. For example, in hardware I would dynamically modify the sampling rate. What about in software? How can I dynamically modify the sampling rate?

References:

Both figures were taken from:

R. E. Crochiere and L. R. Rabiner, Multirate Digital Signal Processing. Englewood Cliffs, NJ: Prentice-Hall, 1983

• Yes, you need a sample-rate converter whose resampling factor changes with time. The most straightforward way to do this is to maintain a NCO that indicates "what sample from the input stream should I output next." That NCO has a fractional component that indicates the subsample offset that your sample rate converter needs to create for each output sample. You can then use whichever resampling implementation structure that you want in order to effect the appropriate offset. – Jason R Jun 26 '18 at 15:01