[time-nuts] Re: GPS failed

2022-07-11 Thread Carsten Andrich via time-nuts
The u-blox SAW filtering is great. We've carried out various RF 
measurements with +40 dBm EIRP at 2.53 and 3.75 GHz with some u-blox 
ANN-MB within <2m of the Tx antennas. While we haven't conducted 
in-depth comparisons with a superior ground-truth, my current conclusion 
is that the u-blox RTK performance is not (noticeably) affected by 
strong out-of-band emissions. Without extensive filtering the Tx power 
would likely steamroll any LNA/receiver. Of course, as John pointed out, 
this won't help against in-band interference.


Best regards,
Carsten

On 11.07.22 15:16, John Ackermann via time-nuts wrote:

Hi Skipp -- there is a lot of info about interference mitigation in the u-blox 
integration manual for the ZED--F9T (available under the docs at 
https://www.u-blox.com/en/product/zed-f9t-module).  It might give you some 
clues, and I think might also point to another u-blox app note on the topic.

Most of the antennas I've seen that have an LNA also include a SAW filter.  I 
also once found on either Amazon or eBay so e new-product, relatively 
inexpensive, high pass filters with cutoff around 1 GHz.  Those would help 
knock down broadcast, trunking, etc. stuff.  (But of course nothing will help 
with on-frequency crud coming from outside the GPS system.)

John

On Jul 11, 2022, 8:49 AM, at 8:49 AM, skipp Isaham via time-nuts 
 wrote:

Hello to the Group,

I'd like to get some opinions and war stories regarding GPS reliability
at
high RF level and elevation locations.

Background:  Three different hill-top GPS receivers, all different
types, using
different antennas mounted on an outside fixiture, plain view of the
open sky,
all stopped working.

Test antennas were brought in and placed on a fixture well away from
the
original antennas, the recevers went back in to capture and lock.


>From what I understand, the original antennas are what I would call

straight
preamp with no pre-selection / filtering.

The ordered and now inbound replacements are said to contain a SAW
filter
system. It is the intent of the client to just place these "improved
antennas" in
to service and get on with life.

I would suspect a GPS antenna (and receiver) could be subject to RF
overload
or blocking, however, we're assuming nothing major has changed at the
site, nor
any nearby location.  One might think there are more GPS receivers
being pushed
out of reliable operation by the world around them, I'm just not
hearing those stories
>from a lot of people using them (GPS receivers). 

Any new install GPS receiver antenna ordered will/should contain some
pre-selection
to potentially avoid a problem, even some years down the road? Seems
like that's
where things are going... no more off the shelf, wide band, (hot)
preamplified GPS antennas
in busy locations?

Thank you in advance for any related comments and/or opions ...

cheers,

skipp

skipp025 at jah who dot calm
___
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-le...@lists.febo.com

___
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-le...@lists.febo.com

___
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-le...@lists.febo.com

[time-nuts] Re: Realtime comparing PPS of 3 GPS

2022-05-31 Thread Carsten Andrich via time-nuts

On 31.05.22 01:10, glen english LIST via time-nuts wrote:
Be aware not to confuse the antenna ground plane  (the patch will 
always have its own plane because the top metalization must be fed 
against a plane or counterpoise -  and a ground plane behind the antenna.


I can see the usefulness of the larger ground plane for any purchased 
patch antenna to reduce the likelihood of interference underneath (if 
the feed coax has a good RF contact with the plane), and if the plane 
is coupled well, it may improve the low angle response .


The supplementary ground plane doesnt have to have a galvanic 
connection if the gap between the underside of the patch is low- IE 
use purely a capacitive coupling to tie the patch antenna ground to 
the large ground sheet-

[...]

That means reducing the gap to about 0.05mm  OR increasing the area- 
probably means using a bigger patch.


Hi Glen,

thank you for the insight. I was referring to a ground plane behind the 
antenna.


Gaps below 1~2 mm between a magnetic "puck"-type patch antenna with IP67 
housing and an external ground plane seem practically challenging to me. 
When it comes to stacked patch multi-band antennas like u-blox' ANN-MB 
[1], the gap between the top patch and the external ground plane is 
probably significantly higher. Yet, u-blox generally recommends the use 
of a symmetric ground plane for the RTK applications [1,2]. From my 
experience, the M8P and F9P RTK fix barely works without a ground plane 
under the u-blox antennas.
While it's just an empirically educated guess, I'd assume that what is 
required for RTK will not hurt for timing.


Could you share your expert opinion on this? My antenna expertise is 
admittedly limited to reading data sheets and picking the right one for 
the particular RF measurement requirements.


Thanks and best regards,
Carsten

[1] 
https://content.u-blox.com/sites/default/files/ZED-F9P_IntegrationManual_UBX-18010802.pdf#page=114
[2] 
https://content.u-blox.com/sites/default/files/ZED-F9P-MovingBase_AppNote_(UBX-19009093).pdf#page=8

___
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-le...@lists.febo.com

[time-nuts] Re: Realtime comparing PPS of 3 GPS

2022-05-30 Thread Carsten Andrich via time-nuts

Hi Erik,

have you tried running all receivers off the same antenna via a power 
splitter (make sure to dc block all but one receiver)? That should 
remove the uncertainty due to antenna differences (location, RF 
characteristics, etc.).


Also, are you using ground planes for your puck antennas? These types of 
antennas typically require a ground plane for optimal performance [1].


Best regards,
Carsten

[1] 
https://content.u-blox.com/sites/default/files/products/documents/GNSS-Antennas_AppNote_(UBX-15030289).pdf#page=16


On 30.05.22 13:00, Erik Kaashoek via time-nuts wrote:
Further evaluation did shown the time differences between the 3 GPS 
modules was due to difference in the trigger level setting of the 
timer/counter and difference in length of GPS antenna cables.
After removal of the phase drift due to Rb frequency offset the 
attached image shows the phase differences of the 3 modules versus a 
Rb reference.
The two ATGM modules are very consistent over a 2.8 hours period. The 
NEO-7M varies wildly  with phase errors above 100 ns. Possibly due to 
a somewhat less optimal antenna position.
It seems phase variations over time in the order of 10-20 ns are 
indeed unavoidable, even with a good antenna.

Erik.

___
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-le...@lists.febo.com

___
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-le...@lists.febo.com

[time-nuts] Re: Simple simulation model for an OCXO?

2022-05-16 Thread Carsten Andrich

Hi Magnus,

On 15.05.22 19:37, Magnus Danielson via time-nuts wrote:
This is a result of using real-only values in the complex Fourier 
transform. It creates mirror images. Greenhall uses one method to 
circumvent the issue.
Can't quite follow on that one. What do you mean by "mirror images"? 
Do you mean that my formula for X[k] is missing the complex 
conjugates for k = N/2+1 ... N-1? Used with a regular, complex IFFT 
the previously posted formula for X[k] would obviously generate 
complex output, which is wrong. I missed that one, because my 
implementation uses a complex-to-real IFFT, which has the complex 
conjugate implied. However, for a the regular, complex (I)FFT given 
by my derivation, the correct formula for X[k] should be the following:


   { N^0.5 * \sigma *  N(0, 1)    , k = 0, N/2
X[k] = { (N/2)^0.5 * \sigma * (N(0, 1) + 1j * N(0, 1)), k = 1 ... N/2 
- 1
   { conj(X[N-k]) , k = N/2 + 1 
... N - 1


If you process a real-value only sample list by the complex FFT, as 
you did, you will have mirror fourier frequencies of opposite sign. 
This comes as e^(i*2*pi*f*t)+e^(-i*2*pi*f*t) is only real.


I'm familiar with the hermitian symmetry properties of the Fourier 
transform, just wasn't entirely sure that's what you were referring to.



Rather than using the optimization to remove half unused inputs 
(imaginary) and half unused outputs (negative frequencies) with N/2 
size transform, you can use the N-size transform more straightforward 
and accept the losses for simplicity of clarity.
I agree that deriving for the regular, complex-to-complex DFT is best 
regarding generality and clarity from a theoretical point of view.


However, from a practical standpoint, the complex-to-real IDFT/IFFT is 
just a minor optimization with the hermitian symmetry of the spectrum 
hard wired into the transform. It's an N-point (not N/2) IFFT that is 
analytically -- not numerically, due to limited precision -- identical 
to a fully-complex N-point IFFT of data with hermitian symmetry. 
Practically, it halves memory usage and computational complexity [2]. 
When using common numeric packages like Matlab or NumPy, peak memory 
usage may even be cut down to one third by obviating the extra copy of 
the real values implied by "dropping" the imaginary component of a 
regular IFFT's complex output.


IMHO, the minor head scratching involved in using a complex-to-real IFFT 
(N/2+1 vs. N input samples) is well worth the computational advantage, 
because the two implementation differences are minor and actually reduce 
implementation complexity slightly:


1. The complex conjugate required for hermitian symmetry of the IFFT
   input does not have to be explicitly computed, but is implied by the
   transform.
2. The IFFT's output is already real, so explicitly dropping the
   imaginary component is not required.


This is why Greenhall only use upper half frequencies. 
Could you elaborate on that? Greenhall uses all 2N frequency-domain 
samples of his 2N DFT [1]:


   Let Z_k = √(S_k/2) (Uk + iV_k), Z_{2N-k} = Z*_k for k = 1 to N-1


Thanks and best regards,
Carsten


[1] https://apps.dtic.mil/sti/pdfs/ADA485683.pdf#page=5
[2] 
https://www.fftw.org/fftw3_doc/One_002dDimensional-DFTs-of-Real-Data.html


--
M.Sc. Carsten Andrich

Technische Universität Ilmenau
Fachgebiet Elektronische Messtechnik und Signalverarbeitung (EMS)
Helmholtzplatz 2
98693 Ilmenau
T +49 3677 69-4269
___
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-le...@lists.febo.com

[time-nuts] Re: Simple simulation model for an OCXO?

2022-05-14 Thread Carsten Andrich

Hi Magnus,

On 14.05.22 08:59, Magnus Danielson via time-nuts wrote:
Do note that the model of no correlation is not correct model of 
reality. There is several effects which make "white noise" slightly 
correlated, even if this for most pratical uses is very small 
correlation. Not that it significantly changes your conclusions, but 
you should remember that the model only go so far. To avoid aliasing, 
you need an anti-aliasing filter that causes correlation between 
samples. Also, the noise has inherent bandwidth limitations and 
futher, thermal noise is convergent because of the power-distribution 
of thermal noise as established by Max Planck, and is really the 
existence of photons. The physics of it cannot be fully ignored as one 
goes into the math field, but rather, one should be aware that the 
simplified models may fool yourself in the mathematical exercise.


Thank you for that insight. Duly noted. I'll opt to ignore the residual 
correlation. As was pointed out here before, the 5 component power law 
noise model is an oversimplification of oscillators, so the remaining 
error due to residual correlation is hopefully negligible compared to 
the general model error.



Here you skipped a few steps compared to your other derivation. You 
should explain how X[k] comes out of Var(Re(X[k])) and Var(Im(X[k])).

Given the variance of X[k] and E{X[k]} = 0 \forall k, it follows that

X[k] = Var(Re{X[k]})^0.5 * N(0, 1) + 1j * Var(Im{X[k]})^0.5 * N(0, 1)

because the variance is the scaling of a standard Gaussian N(0, 1) 
distribution is the square root of its variance.



This is a result of using real-only values in the complex Fourier 
transform. It creates mirror images. Greenhall uses one method to 
circumvent the issue.
Can't quite follow on that one. What do you mean by "mirror images"? Do 
you mean that my formula for X[k] is missing the complex conjugates for 
k = N/2+1 ... N-1? Used with a regular, complex IFFT the previously 
posted formula for X[k] would obviously generate complex output, which 
is wrong. I missed that one, because my implementation uses a 
complex-to-real IFFT, which has the complex conjugate implied. However, 
for a the regular, complex (I)FFT given by my derivation, the correct 
formula for X[k] should be the following:


   { N^0.5 * \sigma *  N(0, 1), k = 0, N/2
X[k] = { (N/2)^0.5 * \sigma * (N(0, 1) + 1j * N(0, 1)), k = 1 ... N/2 - 1
   { conj(X[N-k]) , k = N/2 + 1 ... N - 1

Best regards,
Carsten

--
M.Sc. Carsten Andrich

Technische Universität Ilmenau
Fachgebiet Elektronische Messtechnik und Signalverarbeitung (EMS)
Helmholtzplatz 2
98693 Ilmenau
T +49 3677 69-4269
___
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-le...@lists.febo.com

[time-nuts] Re: Simple simulation model for an OCXO?

2022-05-14 Thread Carsten Andrich

On 14.05.22 16:58, Matthias Welwarsky wrote:

I went "window shopping" on Google and found something that would probably fit
my needs here:

https://ccrma.stanford.edu/~jos/sasp/Example_Synthesis_1_F_Noise.html

Matlab code:

Nx = 2^16;  % number of samples to synthesize
B = [0.049922035 -0.095993537 0.050612699 -0.004408786];
A = [1 -2.494956002   2.017265875  -0.522189400];
nT60 = round(log(1000)/(1-max(abs(roots(A); % T60 est.
v = randn(1,Nx+nT60); % Gaussian white noise: N(0,1)
x = filter(B,A,v);% Apply 1/F roll-off to PSD
x = x(nT60+1:end);% Skip transient response


Hi Matthias,

the coefficients could come the digital transform of an analog filter 
that approximates a 10 dB/decade slope, see:

https://electronics.stackexchange.com/questions/200583/is-it-possible-to-make-a-weak-analog-low-pass-filter-with-less-than-20-db-decade
https://electronics.stackexchange.com/questions/374247/is-the-roll-off-gain-of-filters-always-20-db-dec
https://m.youtube.com/watch?v=fn2UGyk5DP4

However, even for the 2^16 samples used by the CCRMA snippet, the filter 
slope rolls off too quickly. I've attached its frequency response. It 
exhibits a little wobbly 1/f power slope over 3 orders of magnitude, but 
it's essentially flat over the remaining two orders of mag. The used IIR 
filter is too short to affect the lower frequencies.


If you want a good approximation of 1/f over the full frequency range, I 
personally believe Greenhall's "discrete spectrum algorithm" [1] to be 
the best choice, as per the literature I've consulted so far. It 
realizes an appropriately large FIR filter, i.e., as large as the 
input/output signal, and it's straightforward to implement. Because it's 
generic, it can be used to generate any combination of power-law noises 
or arbitrary characteristics, e.g., phase noise based on measurements, 
in a single invocation.


Best regards,
Carsten

[1] https://apps.dtic.mil/sti/pdfs/ADA485683.pdf#page=5

P.S.: Python Code to plot attached frequency response:

import matplotlib.pyplot as plt
import numpy as np
import scipy.signal as signal

w, h = signal.freqz(
[0.049922035, -0.095993537, 0.050612699, -0.004408786],
[1, -2.494956002,   2.017265875,  -0.522189400],
2**16)

plt.loglog(w/np.pi, abs(h))
plt.plot([1e-3, 1e-0], [0.93, 0.93/10**(0.5*3)], "--")

plt.xlabel("Normalized frequency ($f_\mathrm{Nyquist}$)")
plt.ylabel("Gain")
plt.grid()
___
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-le...@lists.febo.com

[time-nuts] Re: Simple simulation model for an OCXO?

2022-05-13 Thread Carsten Andrich

On 11.05.22 08:15, Carsten Andrich wrote:


Also, any reason to do this via forward and inverse FFT? AFAIK the
Fourier transform of white noise is white noise, [...]

I had the same question when I first saw this. Unfortunately I don't have a good
answer, besides that forward + inverse ensures that the noise looks like it is
supposed to do, while I'm not 100% whether there is an easy way to generate
time-domain Gauss i.i.d. noise in the frequency domain.

If you know how, please let me know.

Got an idea on that, will report back.


Disclaimer: I'm an electrical engineer, not a mathematician, so someone 
trained in the latter craft should verify my train of though. Feedback 
is much appreciated.


Turns out the derivation of the DFT of time-domain white noise is 
straightforward. The DFT formula


X[k] = \Sigma_{n=0}^{N-1} x[n] * e^{-2j*\pi*k*n/N}

illustrates that a single frequency-domain sample is just a sum of 
scaled time-domain samples. Now let x[n] be N normally distributed 
samples with zero mean and variance \sigma^2, thus each X[k] is a sum of 
scaled i.i.d. random variables. According to the central limit theorem, 
the sum of these random variables is normally distributed.


To ascertain the variance of X[k], rely on the linearity of variance 
[1], i.e., Var(a*X+b*Y) = a^2*Var(X) + b^2*Var(Y) + 2ab*Cov(X,Y), and 
the fact that the covariance of uncorrelated variables is zero, so, 
separating into real and imaginary components, one gets:


Var(Re{X[k]}) = \Sum_{n=0}^{N-1} Var(x[n]) * Re{e^{-2j*\pi*k*n/N})}^2
  = \Sum_{n=0}^{N-1} \sigma^2  * cos(2*\pi*k*n/N)^2
  = \sigma^2 * \Sum_{n=0}^{N-1} cos(2*\pi*k*n/N)^2

Var(Im{X[k]}) = \Sum_{n=0}^{N-1} Var(x[n]) * Im{e^{-2j*\pi*k*n/N})}^2
  = ...
  = \sigma^2 * \Sum_{n=0}^{N-1} sin(2*\pi*k*n/N)^2

The sum over squared sin(…)/cos(…) is always N/2, except for k=0 and 
k=N/2, where cos(…) is N and sin(…) is 0, resulting in X[k] with real DC 
and Nyquist components as is to be expected for a real x[n].
Finally, for an x[n] ~ N(0, \sigma^2), the DFT's X[k] has the following 
variance:


{ N   * \sigma^2, k = 0
Var(Re{X[k]}) = { N   * \sigma^2, k = N/2
{ N/2 * \sigma^2, else


{ 0 , k = 0
Var(Im{X[k]}) = { 0 , k = N/2
{ N/2 * \sigma^2, else

Therefore, a normally distributed time domain-sequence x[n] ~ N(0, 
\sigma^2) with N samples has the following DFT (note: N is the number of 
samples and N(0, 1) is a normally distributed random variable with mean 
0 and variance 1):


   { N^0.5 * \sigma *  N(0, 1), k = 0
X[k] = { N^0.5 * \sigma *  N(0, 1), k = N/2
   { (N/2)^0.5 * \sigma * (N(0, 1) + 1j * N(0, 1)), else

Greenhall has the same results, with two noteworthy differences [2]. 
First, normalization with the sample count occurs after the IFFT. 
Second, his FFT is of size 2N, resulting in a N^0.5 factor between his 
results and the above. Finally, Greenhall discards half (minus one) of 
the samples returned by the IFFT to realize linear convolution instead 
of circular convolution, fundamentally implementing a single iteration 
of overlap-save fast convolution [3]. If I didn't miss anything skimming 
over the bruiteur source code, it seems to skip that very step and 
therefore generates periodic output [4].


Best regards,
Carsten

[1] https://en.wikipedia.org/wiki/Variance#Basic_properties
[2] https://apps.dtic.mil/sti/pdfs/ADA485683.pdf#page=5
[3] https://en.wikipedia.org/wiki/Overlap%E2%80%93save_method
[4] https://github.com/euldulle/SigmaTheta/blob/master/source/filtre.c#L130
___
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-le...@lists.febo.com

[time-nuts] Re: Simple simulation model for an OCXO?

2022-05-11 Thread Carsten Andrich

On 10.05.22 10:37, Neville Michie wrote:

The use of forward then reverse Fourier transforms is one of the most important
achievements of the Fourier transform. When one data set is convolved with
another data set, it appears impossible to undo the tangle.
But if the data is transformed into the Fourier domain, serial division can 
separate
the data, and transformation back will yield the original data.


Absolutely, but in this case I was wondering why to do the costly O(n 
log n) forward transform at all, if its output can be directly computed 
in O(n).



On 10.05.22 12:58, Attila Kinali wrote:

If you happen to find the paper, please share a reference. I'm curious
about implementation details and side-effects, e.g., whether
implementing the filter via circular convolution (straightforward
multiplication in frequency-domain) carries any penalties regarding
stochastic properties due to periodicity of the generated noise.

Yes, for one, noise is not periodic, neither is the filter you need.
You can't build a filter with a 1/sqrt(f) slope over all the
frequency range. That would require a fractional integrator, which
is a non-trivial task. Unless you actually do fractional integration,
all time domain filters will be approximations of the required filter.


Any chance the Paper was "FFT-BASED METHODS FOR SIMULATING FLICKER FM" 
by Greenhall [1]?


I've had a look at the source code of the bruiteur tool, which you 
previously recommended, and it appears to opt for the circular 
convolution approach. Would you consider that the state-of-the-art for 
1/sqrt(f)? The same is used here [3]. Kasdin gives an extensive overview 
over the subject [2], but I haven't read the 20+ pages paper yet.




I had the same question when I first saw this. Unfortunately I don't have a good
answer, besides that forward + inverse ensures that the noise looks like it is
supposed to do, while I'm not 100% whether there is an easy way to generate
time-domain Gauss i.i.d. noise in the frequency domain.

If you know how, please let me know.

Got an idea on that, will report back.



But be aware, while the Gauss bell curve is an eigenfunction of the Fourier
transform, the noise we feed into it is not the Gauss bell curve.
Thanks for pointing that out. It appears I went for the first reasonable 
sounding explanation to support my gut feeling without thinking it 
through :D


Best regards,
Carsten


[1] https://apps.dtic.mil/sti/pdfs/ADA485683.pdf
[2] https://ieeexplore.ieee.org/document/381848
[3] https://rjav.sra.ro/index.php/rjav/article/view/40
___
time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe send an 
email to time-nuts-le...@lists.febo.com
To unsubscribe, go to and follow the instructions there.


[time-nuts] Re: Simple simulation model for an OCXO?

2022-05-10 Thread Carsten Andrich

First, thanks to everyone who chimed in on this highly interesting topic.

On 04.05.22 18:49, Attila Kinali wrote:

FFT based systems take a white, normal distributed noise source,
Fourier transform it, filter it in frequency domain and transform
it back. Runtime is dominated by the FFT and thus O(n*log(n)).
There was a nice paper by either Barnes or Greenhall (or both?)
on this, which I seem currently unable to find. This is also the
method employed by the bruiteur tool from sigma-theta.

Biggest disadvantage of this method is, that it operates on the
whole sample length multiple times. I.e it becomes slow very
quickly, especially when the whole sample length is larger
than main memory. But they deliver exact results with exactly
the spectrum / time-correlation you want.


If you happen to find the paper, please share a reference. I'm curious 
about implementation details and side-effects, e.g., whether 
implementing the filter via circular convolution (straightforward 
multiplication in frequency-domain) carries any penalties regarding 
stochastic properties due to periodicity of the generated noise.


Also, any reason to do this via forward and inverse FFT? AFAIK the 
Fourier transform of white noise is white noise, because the underlying 
Gaussian is an Eigenfuntion of the transform. Generating in time-domain 
as follows (Python code using NumPy)


N = int(1e6) # number of samples
A = 1e-9 # Allan deviation for tau = 1 sec
# generate white noise in time-domain
X = np.fft.rfft(np.random.normal(0, A * 3**-0.5, N))
# multiply with frequency response of desired power-law noise and apply inverse 
Fourier transform
# NOTE: implements circular convolution
x = np.fft.irfft(X * H)

should yield the same properties as generating the white noise directly 
in frequency-domain (there may be an off-by-one-or-two in there 
regarding variance scaling), but the latter will halve the computational 
cost:


# generate white noise directly in frequency-domain
# NOTE: imaginary components at DC and Nyquist are discarded by irfft()
X = np.random.normal(0, A * 6**-0.5 * N**0.5, N+2).view(np.complex128())
# multiply with frequency response of desired power-law noise and apply inverse 
Fourier transform
# NOTE: implements circular convolution
x = np.fft.irfft(X * H)


On 05.05.22 18:34, Magnus Danielson via time-nuts wrote:
Both is being revisioned and 1139 just went out for re-balloting 
process after receiving ballotting comments and 1193 is just to get 
approved to be sent to balloting.
Any details you can share regarding the changes over the current 
version? Are drafts publicly available?



Best regards,
Carsten
___
time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe send an 
email to time-nuts-le...@lists.febo.com
To unsubscribe, go to and follow the instructions there.


[time-nuts] Re: What time difference to expect from two clocks using internal GPS receivers?

2022-05-01 Thread Carsten Andrich
In late 2019 we successfully employed 4 SRS FS740 (with Rb option; GNSS 
receiver: Trimble RES SMT 360) to synchronize spatially distributed SDR 
receivers over distances of 1~2.5 km for the purpose of locating RF 
emitters via time difference of arrival. As a side product of that 
measurement campaign we managed to assess the accuracy of the time 
synchronization of the FS740, which was about 5 ns over the course of 4 
hours with a little post-processing relying on log data from the FS740. 
We circumvented the issues mentioned by Bob via a reference measurement 
with known emitter location and line of sight to all receivers.


If you're interested in details, I'd refer you to a paper we published 
on the measurement [1].


Best regards,
Carsten

[1] https://ieeexplore.ieee.org/document/9128562 (behind IEEE paywall; I 
can send you a personal copy of the paper upon request)


On 01.05.22 02:50, Bob kb8tq wrote:

Hi

If you are looking at time ( = the absolute offset from GPS’s version of UTC) 
then
there are a number of issues.

The antenna you use will have a delay and it may well vary more than a bit. The
cable to the antenna is in the same category. If both your modules run off a 
power
splitter then those will not show up in an A-B comparison.

The modules themselves likely have SAW filters in them. These have group delay
just like any other bandpass filter. The tolerance on this is likely in the 
10’s of ns
module to module. There are other bit and pieces that can contribute at the 
“nanoseconds”
level.

A typical set of modules from a good supplier should come in to a +/- 20 ns 
sort of
window for 2/3 of the parts ( = 1 sigma).

Geometry errors are fairly simple. A meter is 3 ns in free space. Each meter you
are off from “correct” will add 3 ns of “wobble” in the results. Just how this 
shows
up is very dependent on the direction of the error an what sort of satellite 
view you
happen to have.

Ionosphere can ( in high sunspot years) contribute 50 ns or more to timing 
errors.
Tropospheric issues can also get into the mix at a bit lower level. You might 
think
these would wash out on co-located units. Unfortunately they are not going to
start /stop using this or that sat at exactly the same time.

Lots of fun stuff to look for ….

Bob


On Apr 30, 2022, at 6:41 AM, Erik Kaashoek  wrote:

Some more info
The two GPS do keep their phase stable vs a Rb within +/-10 ns. But the
absolute time difference of their PPS pulses  was, after a cold start,
stable within +/- 20ns but  the average value could be up to 100ns and
differed after every cold start.
The two GPS antenna cables had a length difference of 1 meter, but that
should cater for only 5 ns (?) One module is connected to the antenna with
only a C, the other has a 1 GHz CLC high pass filter between antenna and
module
Erik



Op za 30 apr. 2022 om 12:32 schreef Erik Kaashoek :


The PPS jitter of a cheap Chinese GPS module was measured at about +/-
10 ns.
But the phase of the PPS compared to a Rb varied substantial more.
To verify if this was possibly due to ionospheric or atmospheric
conditions the time difference between the PPS of two identical modules
using two identical rooftop antenna was measured. Both only used the GPS
constellation.
This showed difference of up to 100 ns. Switching to GPS+GLN did not
make a visible difference.
It was tried to set both GPS modules into fixed position mode but the
reported position still kept moving a bit (within 3 m) and the fixed
mode did not have a visible impact on the time difference variations.
Is a time difference of up to 100 ns to be expected when using two GPS
receivers or is this difference possibly due to bad application or
performance of the cheap Chinese GPS modules
Erik.


___
time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe send an 
email to time-nuts-le...@lists.febo.com
To unsubscribe, go to and follow the instructions there.

___
time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe send an 
email to time-nuts-le...@lists.febo.com
To unsubscribe, go to and follow the instructions there.


--
M.Sc. Carsten Andrich

Technische Universität Ilmenau
Fachgebiet Elektronische Messtechnik und Signalverarbeitung (EMS)
Helmholtzplatz 2
98693 Ilmenau
T +49 3677 69-4269
___
time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe send an 
email to time-nuts-le...@lists.febo.com
To unsubscribe, go to and follow the instructions there.

[time-nuts] Re: GPSDO Control loop autotuning

2022-04-21 Thread Carsten Andrich
__
time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe 
send

an email to time-nuts-le...@lists.febo.com
To unsubscribe, go to and follow the instructions there.

___
time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe 
send an email to time-nuts-le...@lists.febo.com

To unsubscribe, go to and follow the instructions there.

___
time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe 
send an email to time-nuts-le...@lists.febo.com

To unsubscribe, go to and follow the instructions there.


--
M.Sc. Carsten Andrich

Technische Universität Ilmenau
Fachgebiet Elektronische Messtechnik und Signalverarbeitung (EMS)
Helmholtzplatz 2
98693 Ilmenau
T +49 3677 69-4269
___
time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe send an 
email to time-nuts-le...@lists.febo.com
To unsubscribe, go to and follow the instructions there.

[time-nuts] Re: 100 MHz Low Phase Noise Mobile GPSDO/GNSSDO?

2022-04-20 Thread Carsten Andrich

Hi Markus,

On 20.04.22 08:24, Markus Kleinhenz via time-nuts wrote:

Am 19.04.2022 um 18:51 schrieb Carsten Andrich:

Thanks for the suggestion. I've had a quick look at the RCM.
Unfortunately, its "1PPS synchronization counter resolution" is
±2.5ns, which is below what a ZED-F9T can do with pulse quantization
correction (~4e-10 ADEV @ 1s) [1]. I presume a short PLL time constant
and therefore high resolution are key here to keep the OCXO within 1
ns of the GNSS despite environmental disturbances (temperature,
acceleration, vibration). I think I'll have to realize the 1PPS
tracking and OCXO disciplining myself with a sufficiently accurate
time interval counter (e.g., TI TDC7200, which has ~50 ps resolution).

The concept of most GNSSDOs is to "flywheel" the 1PPS generation using a
stable local OCXO for tau <100s. This would allow for your spec of ADEV
<1e-10@1s. That in turn would mean long time constants for the PLL and
your receivers wouldn't track the same disturbances.


That's also what I had in mind for generating a stable 1PPS output. For 
first locking the OCXO to the GNSS' jittery 1PPS, a high resolution time 
interval counter is required, so the measurement jitter is significantly 
below the 1PPS jitter. Certainly, finding the right tradeoff for the 
choice of PLL time constant will not be trivial. A dynamic solution that 
responds faster to local disturbances would be desirable.



On 20.04.22 08:24, Markus Kleinhenz via time-nuts wrote:


Another big challenge will be the 1ns relative accuracy between multiple
(moving!) devices. Without communication between devices this should not
be possible.

We've conducted RF measurements with a bunch of stationary(!), but
spatially distributed (1~2 km) SRS FS740 GNSSDOs (with Rb option) back
in 2019 and have achieved better than 5 ns synchronization accuracy
(verified using line-of-sight RF measurements) without communication
between the FS70 [2], simply because the FS740 does not support that.
Of course that's not really comparable to 1 ns with moving GNSSDOs,
but is already pretty decent for the FS740s' single-band GNSS receiver
with 15 ns 1PPS timing accuracy (likely Trimble RES SMT 360).

I would love to read that Paper, that sounds impressive.
As Jim wrote, I think it hinges on the fact that all receivers see the
same sats. Dual-band mainly eliminates ionospheric errors but those are
pretty much the same if all receivers are in the same area.


I've sent you the paper privately. Unfortunately, even for the 
stationary use case, a common satellite view for all GNSSDOs cannot be 
guaranteed. It only gets worse for mobile applications where the 
obstructions and therefore satellites in view change rapidly. This is 
where I'd expect dual-band to excel, because I'd assume ionospheric 
conditions differ substantially when the receivers view a disjoint set 
of set of satellites.



On 20.04.22 08:24, Markus Kleinhenz via time-nuts wrote:


On 19.04.22 15:49, Lux, Jim wrote:

I think that 1 ns might be achievable, if the receivers are in the
same general area, so they see the same propagation, but perhaps not
as an "off the shelf" device.

That's where the ZED-F9T's dual-band reception and differential timing
feature come into play, which improve the time pulse accuracy to 2.5
ns. It's similar to real-time kinematic positioning (DGNSS on
steroids) by distributing a correction signal to multiple receivers.


Does the RTCM feature expect one fixed base station?


I think so. The ZED-F9T's datasheet specifies an RTCM 1005 message as 
the base station information [1], which AFAIK does not include the 
information required for moving baseline corrections [2]. However, you 
wouldn't necessarily have to operate a separate base station, as regular 
RTK correction services should also work (haven't verified with the 
ZED-F9T). The German state of Thuringia (and some others), provide these 
RTCM streams via Ntrip free of charge [3].


Best regards,
Carsten

[1] 
https://content.u-blox.com/sites/default/files/ZED-F9T-00B_DataSheet_UBX-18053713.pdf#page=6
[2] 
https://content.u-blox.com/sites/default/files/ZED-F9P-MovingBase_AppNote_(UBX-19009093).pdf#page=10

[3] https://sapos.thueringen.de/
___
time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe send an 
email to time-nuts-le...@lists.febo.com
To unsubscribe, go to and follow the instructions there.

[time-nuts] Re: 100 MHz Low Phase Noise Mobile GPSDO/GNSSDO?

2022-04-19 Thread Carsten Andrich

Hi Markus, Jim,

thank you for your responses!

On 19.04.22 11:53, Markus Kleinhenz via time-nuts wrote:

I believe you will have a hard time finding a COTS solution that fits
most of your requirements.

You will likely have to split your signal chain into multiple devices:

1. UBlox ZED-F9T based GPS-Receiver with 1PPS out
2. Something like a JacksonLabs RCM (a ULN Oscillator that locks to a
externally provided 1PPS)
3. Distribution Unit

So you can spread your requirements.
Thanks for the suggestion. I've had a quick look at the RCM. 
Unfortunately, its "1PPS synchronization counter resolution" is ±2.5ns, 
which is below what a ZED-F9T can do with pulse quantization correction 
(~4e-10 ADEV @ 1s) [1]. I presume a short PLL time constant and 
therefore high resolution are key here to keep the OCXO within 1 ns of 
the GNSS despite environmental disturbances (temperature, acceleration, 
vibration). I think I'll have to realize the 1PPS tracking and OCXO 
disciplining myself with a sufficiently accurate time interval counter 
(e.g., TI TDC7200, which has ~50 ps resolution).

Another big challenge will be the 1ns relative accuracy between multiple
(moving!) devices. Without communication between devices this should not
be possible.
We've conducted RF measurements with a bunch of stationary(!), but 
spatially distributed (1~2 km) SRS FS740 GNSSDOs (with Rb option) back 
in 2019 and have achieved better than 5 ns synchronization accuracy 
(verified using line-of-sight RF measurements) without communication 
between the FS70 [2], simply because the FS740 does not support that. Of 
course that's not really comparable to 1 ns with moving GNSSDOs, but is 
already pretty decent for the FS740s' single-band GNSS receiver with 15 
ns 1PPS timing accuracy (likely Trimble RES SMT 360).


On 19.04.22 15:49, Lux, Jim wrote:
I think that 1 ns might be achievable, if the receivers are in the 
same general area, so they see the same propagation, but perhaps not 
as an "off the shelf" device.
That's where the ZED-F9T's dual-band reception and differential timing 
feature come into play, which improve the time pulse accuracy to 2.5 ns. 
It's similar to real-time kinematic positioning (DGNSS on steroids) by 
distributing a correction signal to multiple receivers.
We are getting <1ns with post processing using GIPSYx in a weak signal 
environment with generally poor geometry from GNSS standpoint (we're 
going to be in GEO, above the constellation, so the signals we see are 
on the other side of Earth).


Unfortunately, post-processing is not really an option for me, as long 
as I can avoid it. I think the ZED-F9T is as good as it gets in terms of 
value-for-money. I'll keep you updated when I make any progress on 
wiring up a proof-of-concept.


Best regards,
Carsten

[1] 
https://hamsci.org/sites/default/files/publications/2020_TAPR_DCC/N8UR_GPS_Evaluation_August2020.pdf#page=25
[2] https://ieeexplore.ieee.org/document/9128562 <--- Behind IEEE 
"paywall"; I can send you a personal copy of the paper upon request

___
time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe send an 
email to time-nuts-le...@lists.febo.com
To unsubscribe, go to and follow the instructions there.

[time-nuts] 100 MHz Low Phase Noise Mobile GPSDO/GNSSDO?

2022-04-17 Thread Carsten Andrich

Fellow timing enthusiasts,

for RF up-down-converters up to 40 GHz I require highly stable, 
synchronized reference signals for multiple, spatially distributed RF 
synthesizers like the TI LMX2595.


Do any of you know COTS GNSSDOs that meet (at least some of) the 
following requirements?:


 * 100 MHz rectangular high slew rate (>2V/ns) output (no sinusoid;
   min. +13 dBm into 50 Ohms)
 * Low phase noise: <-130 dBc/Hz @ 100 Hz; <-140 dBc/Hz @ 1 kHz; <-150
   dBc @ 10 kHz
 * Suitable for mobile use (at least 50 m/s absolute speed) with ADEV <
   1e-10 @ 1 s (better preferred)
 * 1PPS (or preferably fully configurable timepulse signal usable as
   PLL SYSREF) locked to 100 MHz with better than 1 ns relative
   accuracy (between multiple receivers of the same type; not absolute
   accuracy wrt TAI)
 * Fast settling time after power up (preferably 10~30 min) to 1 ns
   synchronization of 100 MHz phase and 1PPS between multiple,
   spatially distributed GNSSDOs
 * Optional: 19" rack mount or desktop enclosure with SMA connectors
 * Optional: Dual-band GNSS receiver for improved GNSS timepulse ADEV
   performance [1]
   (that should enable a shorter time constant for disciplining the
   local oscillator and therefore improve compensation of disturbances
   like acceleration or temperature changes)
 * Optional: Differential timing GNSS receiver via RTCM feed (e.g.,
   u-blox ZED-F9T [2])
 * Optional: Multiple phase matched outputs (preferably at least 4)
 * Optional: 10 MHz outputs (divided from 100 MHz) for legacy
   measurement equipment

Regarding 100 MHz output GNSSDOs, I've only found the Jackson Labs 
ULN-1100 [3]. Unfortunately, it doesn't meet my phase noise requirements 
and its use of a single-band GNSS receiver is not state-of-the-art.


Best regards,
Carsten

[1] 
https://hamsci.org/sites/default/files/publications/2020_TAPR_DCC/N8UR_GPS_Evaluation_August2020.pdf#page=25
[2] 
https://content.u-blox.com/sites/default/files/ZED-F9T-00B_DataSheet_UBX-18053713.pdf#page=6

[3] https://www.jackson-labs.com/index.php/products/uln_1100


- APPENDIX -

Read only if you're interested in my reasoning behind some of above 
requirements.


# Why 100 MHz rectangular output?

## 1. Phase noise scaling

The primary reason to not use a 10 MHz reference signal is phase noise 
scaling. Taking the LMX 2595 as an example, its typical closed-loop 
phase noise at 10 GHz output [4, p. 15] is (averaged between 9 and 11 
GHz and then coarsely rounded down to add a safety margin):


dBc/Hz @ Off  : 100 Hz  1 kHz   10 kHz  100 kHz
LMX @ 10 GHz  : -90 -100-110-112
Scaled 100 MHz: -130-140-150-152
Scaled 10 MHz : -150-160-170-172

Additionally, I've added the phase noise scaled down to 100/10 MHz to 
determine the theoretical requirements for a reference oscillator 
operating at the respective frequency. Checking out AXTAL (AXIOM*ULN) 
and Wenzel (HF ONYX IV), the lower bound for compact 10 MHz OCXO phase 
noise at both 10 kHz and 100 kHz appears to be -165 dBc/Hz. Therefore, 
using a 10 MHz reference would deteriorate the LMX' RF phase noise by ~5 
dB. Also, even at +10 dBm OCXO output power, -170 dBc/Hz would be barely 
14 dB over the thermal noise floor, raising noise and interference 
requirements regarding signal distribution and amplification. 
Admittedly, 10 MHz OCXOs do outperform 100 MHz OCXOs regarding the 10 Hz 
offset phase noise, but for typical RF applications, e.g., OFDM 
communication systems, channel estimation and correction typically 
handle time-variant effects below 100 Hz.


## 2. Phase noise figure of merit

Most datasheets I've read, particularly TI LMX, show typical closed-loop 
performance for 100 or even 200 MHz reference oscillators. The HMC835 -- 
while certainly not representative -- is a noteworthy example I've 
stumbled over that actually illustrates the effect of different 
reference signals on the phase noise figure of merit [5, pp. 9 f.]. 
Going for anything below 100 MHz for the reference oscillator seems not 
to be encouraged by more or less modern RF synthesizers.


## 3. Slew rate

Many RF synthesizers, e.g., the LMX2595, generally recommend a "high 
slew rate" for their reference inputs [4, p. 61]. The LMX2820 datasheet 
illustrates its phase noise degradation vs. slew rate, requiring >0.8 
V/ns for optimal performance [6, p. 11]. A 2 Vpp 10 MHz sine has only 
0.062 V/ns slew rate, so a 100 MHz sine is still insufficient. As a 
safety margin the GNSSDO's output slew rate shouldn't be lower than 2 V/ns.


[4] https://www.ti.com/lit/ds/symlink/lmx2595.pdf
[5] 
https://www.analog.com/media/en/technical-documentation/data-sheets/hmc835.pdf

[6] https://www.ti.com/lit/ds/symlink/lmx2820.pdf
___
time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe send an 
email to time-nuts-le...@lists.febo.com
To unsubscribe, go to and follow the instructions there.


[time-nuts] Re: Question about GPS 1PPS ADEV

2022-04-16 Thread Carsten Andrich

Hello Matthias,

provided your OCXO is sufficiently stable, i.e., better stability than 
the 1PPS, I agree that you should see said "bulge". Judging from the DAC 
plot, the EFC voltage is being adjusted within the tau range in which 
you expect the NEO-M8T bulge (10~100 s), so I'd expect that to have an 
effect on the TIC ADEV. Could you measure in holdover mode with fixed 
EFC voltage?


Best regards,
Carsten

On 16.04.22 15:52, Matthias Welwarsky wrote:

I
reason that, were the LO more stable, more loosely coupled to the GNSS, I
should see the bulge from figure 26. Would you agree?

___
time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe send an 
email to time-nuts-le...@lists.febo.com
To unsubscribe, go to and follow the instructions there.


[time-nuts] Re: The STM32 GPSDO, a short presentation

2022-04-14 Thread Carsten Andrich

Hello Erik,

could you elaborate on your setup? Which oscillator (OCXO?) are you 
using to drive the STM32's PLL?


I'm currently toying around with a (presumarly?) similar configuration. 
An RCB-F9T's 1PPS fed into an STM32G4's 32-bit timer capture to 
reference the 1PPS to a local oscillator with ~6 ns resolution, 
subsequently generating a stabilized 1PPS using another output channel 
of the same timer. The STM32's PLL is still using a cheap chrystal, but 
I'm currently working on replacing that with an OCXO.


Best regards,
Carsten

On 01.04.22 18:19, erik at kaashoek.com (Erik Kaashoek) wrote:

Nice, I'm trying to do something similar. But without the PICdiv or the
TIC measurement. Only the GPS PPS into the STM32 and the stabilized PPS
is generated by a timer in the STM32
First step was to measure against the running average of the GPS PPS.
As can be seen in attached Timeplot measurement the phase error is (when
temperatures stabilized) in the order of 10ns.
Erik.

___
time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe send an 
email to time-nuts-le...@lists.febo.com
To unsubscribe, go to and follow the instructions there.