I'm recording the received signal after sending a 20Khz signal. I make some rotations with hand before the device and get some variations in the signal.I obtain a very noisy signal and do some pre-processing to it. I tried getting the wavelet response of the signal and this seemded to be good.

Wavelet, gaussain and moving average filter of signal

I can get the count of the number of times I wave my hand before the device using this. I want to find the change in frequency for every section, the wave of hand happend. I tried applying STFT to the signal.

STFT of signal

The response I get is very weak. Is there someway to tweak the signal to obtain the doppler shift ?


Is there someway to tweak the signal to obtain the doppler shift ?


Your objective is to retrieve the phase shift of the recorded signal due to the Doppler Phenomenon. This is most commonly done with a Phase Detector which integrates the product of two sinusoids.

So, in order to generate a signal that is proportional to the target movement, you can generate a sinusoid at the same frequency as the signal you are sending out of the speakers, multiply it with the received signal and then integrate it over time with a simple integrator.

This will give you a varying DC signal whose amplitude will be proportional to the relative hand movement. This means that in one instance of the experiment, this signal might increase when the hand is moving away from the detector and decrease when the hand is moving towards the detector and in another instance this relationship might appear reversed.

To avoid this problem you are going to have to synchronise the "generated sinusoid" with the received sinusoid.

Eventually, we get to the concept of a Phase Locked Loop (PLL) which is an Automatic Control System that does exactly this job: It synchronises a local oscillator with a received signal so that they co-vary in phase. Due to its operation, the PLL generates an error signal which represents the difference between the phase of the local oscillator and the received signal.

It is exactly this signal that you are after, which is valid after the PLL has "locked" on to the incoming signal.

It is likely however, that you will need to do some pre-processing to your received signal, especially if it is in the audible range and it is recorded via a microphone. Various noise sources (e.g. your palm, compressing air towards the microphone which will create a low frequency whooping sound, mobile phone ringtones and other sources) will make the job of the PLL difficult and you will have to apply at least a high pass filter (e.g. after 15kHz) to make sure that the effect of these noise sources on the recording is minimised.

Hope this helps.

  • $\begingroup$ This helps in a very big deal. But I also found a paper where they are doing it without the sine signal, but work in the frequency domain. dl.acm.org/citation.cfm?doid=2971648.2971736 $\endgroup$ – Dinesh Oct 17 '16 at 1:27
  • $\begingroup$ Thank you for letting me know, I will have a look at it too. In the meantime, if you felt that the response helped you you can always upvote or accept it via the controls on the left. $\endgroup$ – A_A Oct 17 '16 at 7:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.