Re: [music-dsp] Clock drift and compensation

```Hi GM,
Instead of finding Hilbert transform, I tried with just finding the angle
between samples
of a fixed frequency sine wave.
I tried to create a sine wave of  frequency x[n] = sin ( 2 * pi * 1/4 * n), and
tried calculating the angle between samples,
it should be 90 degree. This also can be used to detect any discontinuity in
the signal.
Below is the octave code which I tried.```
```
One cycle of sine wave consists of 4 samples, two +ve and two -ve.

% generate the sine wave of frequency 1/4
for i = 1 : 20
x(i) = sin( 2 * pi * ( 1 / 4) * i);
end

% find the angle between samples in degrees.
for i = 1:20
ang(i)  =  asin( x(i) ) * (180 / pi);
end

% find the absolute difference between angles
for i = 1:20
diff(i) =  abs( ang( i + 1 ) - ang( i ));
end

% check for discontinuity
for i = 1:20
if (diff(i) != 90)
disp("discontinuity")
endif
end

Please verify this logic is correct for discontinuity check.

-ben

________________________________
From: music-dsp-boun...@music.columbia.edu
<music-dsp-boun...@music.columbia.edu> on behalf of gm <g...@voxangelica.net>
Sent: Monday, January 29, 2018 1:29 AM
To: music-dsp@music.columbia.edu
Subject: Re: [music-dsp] Clock drift and compensation

diff gives you the phase step per sample,
basically the frequency.

However the phase will jump back to zero periodically when the phase exceeds
360°
(when it wraps around) in this case diff will get you a wrong result.

So you need to "unwrap" the phase or the phase difference, for example:

diff = phase_new - phase_old
if phase_old > Pi and phase_new < Pi then diff += 2Pi

or similar.

Am 28.01.2018 um 17:19 schrieb Benny Alexandar:
Hi GM,

>> HT -> Atan2 -> differenciate -> unwrap
Could you please explain how to find the drift using HT,

HT -> gives real(I) & imaginary (Q) components of real signal
Atan2 -> the phase of an I Q signal
diff-> gives what ?
unwrap ?

-ben

________________________________
From:
music-dsp-boun...@music.columbia.edu<mailto:music-dsp-boun...@music.columbia.edu>

<music-dsp-boun...@music.columbia.edu><mailto:music-dsp-boun...@music.columbia.edu>
on behalf of gm <g...@voxangelica.net><mailto:g...@voxangelica.net>
Sent: Saturday, January 27, 2018 5:20 PM
To: music-dsp@music.columbia.edu<mailto:music-dsp@music.columbia.edu>
Subject: Re: [music-dsp] Clock drift and compensation

I don't understand your project at all so not sure if this is helpful,
probably not,
but you can calculate the drift or instantanous frequency of a sine wave
on a per sample basis
using a Hilbert transform
HT -> Atan2 -> differenciate -> unwrap
_______________________________________________
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu<mailto:music-dsp@music.columbia.edu>
https://lists.columbia.edu/mailman/listinfo/music-dsp

```
```_______________________________________________
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp```