Re: [time-nuts] sub harmonic VCO locking

2020-07-31 Thread Attila Kinali
On Thu, 30 Jul 2020 21:56:42 +1000
glen english LIST  wrote:

> - a double-double-double could work, but my experience is for x2 x2 x2 I 
> really need to filter well at each stage to avoid sum and difference 
> products.. which might be OK for this application , especially if I 
> filter really well after the first x2 . but avoid if I can. filters at 
> 908 MHz need space, and shield cans where it is going.

Frequency multiplying would be probably the easiest to get low noise,
followed by a well designed PLL system. Though -115dBc spurs is tough,

 
> - and I dont know too much about phase noise and SRD or varactor 
> multipliers. but maybe that's an option.

SDR are prety low noise. From NLTLs we know that varactor systems can
exhibit increased flicker noise levels (probably due to bias point
instability).

 
> - onboard VCO chip/PLLs have all sorts of unrelated spurs in the output.
> 
> - sure I can use a good PLL and a external VCO, but if my N value is 
> fixed, and I can use injection locking, why bother with the PLL chip 
> that is likely to introduce PD related spurs anyway.

The generic way in this case is to build a PLL using frequency multiplier
for the reference and a narrow loop filter after the phase detector.
Placing zeros at the multiples of the (unmultiplied) reference frequency
in the loop filter will reduce the spurs quite considerably.


Injection locking is finicky. To injection lock, the resonator has to be
pretty much on frequency to begin with, and kept that way. But unlike with
other systems, you have no feedback system where get information how far
off you are to control the frequency. Unless you build a hybrid system
of an oscialltor with a Pound lock[5,6] (e.g. like cryogenic sapphire 
oscillators use[7]) 
You want to read Adler's paper[1] at the very least before you start. 
A look at the work byHuntoon/Weiss[2] and Kurokawa[3,4] is probably also 
beneficial.


Attila Kinali

[1] "A Study of Locking Phenomena in oscillators", by Robert Adler, 1946 
(reprinted 1973)

[2] "Synchornization of Ocillators", By Huntoon and Weiss, 1947

[3] "Injection Locking of Microwave Solid-State Oscillators", by Kurokawa, 1973

[4] "Noise in Synchronized Oscillators", by Kurokawa, 1968

[5] "Electronic Frequency Stabilization of Microwave Oscillators", by Pound, 
1946
http://dx.doi.org/10.1063/1.1770414

[6] "Frequency-Stabilized Oscillator  Unit Notes and Instructions", by 
Lawrance, 1946
https://dspace.mit.edu/bitstream/handle/1721.1/5024/1/RLE-TR-022-14254857.pdf

[7] "An Ultra-Low Noise Microwave Oscillator Based on a High-Q Liquid Nitrogen 
Cooled
Sapphire Resonator", by Woode, Tobar, Ivanov, 1995


-- 
Science is made up of so many things that appear obvious 
after they are explained. -- Pardot Kynes

___
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe, go to 
http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com
and follow the instructions there.


Re: [time-nuts] WWVB PM Time Questions

2020-07-31 Thread Poul-Henning Kamp

Bob kb8tq writes:

> It also *very* much depends on the stability of your local reference and the 
> stability of the ionosphere. Unless both are 'pretty darn good' a hundred 
> second
> integration is utter nonsense 

This is why Loran-C was so superior to any and all CW based modulations.

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
p...@freebsd.org | TCP/IP since RFC 956
FreeBSD committer   | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.

___
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe, go to 
http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com
and follow the instructions there.


Re: [time-nuts] WWVB PM Time Questions

2020-07-31 Thread Bob kb8tq
Hi

It also *very* much depends on the stability of your local reference and the 
stability of the ionosphere. Unless both are “pretty darn good” a hundred second
integration is utter nonsense 

Bob

> On Jul 31, 2020, at 5:00 PM, Poul-Henning Kamp  wrote:
> 
> 
> Bob kb8tq writes:
> 
>> The WWVB modulation is *very* predictable. Once you have lock, 
>> you can guess just about every phase reversal you will see.
>> [...]
>> The point of this being that you *could* pre-flip the data before it
>> went into a buffer. That way the buffer integration time constant 
>> could be quite long. 
> 
> I would just use two buffers and decide which one based on the
> prediction, that way DC-offsets will not cause trouble.
> 
> -- 
> Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
> p...@freebsd.org | TCP/IP since RFC 956
> FreeBSD committer   | BSD since 4.3-tahoe
> Never attribute to malice what can adequately be explained by incompetence.


___
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe, go to 
http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com
and follow the instructions there.


[time-nuts] "The Penultimate HP5065 A15"

2020-07-31 Thread Poul-Henning Kamp
The A15 board in one of my 5065s is in bad shape, and I have started
to look at designing a plug-compatible replacement board.

The main reason I dont just repair/replace the A15 is that 
I want to find out how much instability the PSU contributes.

The outline idea currently is:

LM399 self-biased voltage reference
(See: Linear app-note 42, fig 72)

The ultimate board would use LTZ1000, but I have not quite
convinced myself yet, even if it would be cute to have a
HP5065 which delivered both precise frequency and voltage :-)

Op-amp based C-field driver

Vishay SMR1DZ resistors for VREF/C-field stability

C-field polarity switch.  An experiment.  If nothing else
I will be able to measure the residual magnetic field.

Optional adjustable C-field.  Optional because the pot may
degrade the C-field stability.

Two +20V on-board LM317-style linear regulators, one for
the lamp, one for the rest.  Split for noise reasons and
to be able to play with the lamp voltage/power.

One or two pre-regulator current measurement shunts.

DC/DC-brick switchmode -20V supply with brutal filtering.

The downside of the two linear +20V regulators is that even with a
heatsink, they will probably get hot-ish if the internal DC bus is
too much over 24VDC.  For this reason, and because I may simply run
out of PCB space, I may leave the bridge rectifier out, so it will
only works with EXT-DC.

I'll post kicad schematic once I get further.

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
p...@freebsd.org | TCP/IP since RFC 956
FreeBSD committer   | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.

___
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe, go to 
http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com
and follow the instructions there.


Re: [time-nuts] WWVB PM Time Questions

2020-07-31 Thread Poul-Henning Kamp

Bob kb8tq writes:

>The WWVB modulation is *very* predictable. Once you have lock, 
>you can guess just about every phase reversal you will see.
>[...]
>The point of this being that you *could* pre-flip the data before it
>went into a buffer. That way the buffer integration time constant 
>could be quite long. 

I would just use two buffers and decide which one based on the
prediction, that way DC-offsets will not cause trouble.

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
p...@freebsd.org | TCP/IP since RFC 956
FreeBSD committer   | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.

___
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe, go to 
http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com
and follow the instructions there.


Re: [time-nuts] WWVB PM Time Questions

2020-07-31 Thread Scud West
The coloring is from matplotlib.  Sometimes I forget what's what. I'm
really not using pandas for much here.  Most of the code in plotting a
minute of data is in making it look fancy.


import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as tkr
import matplotlib.mlab as mlab
import pandas as pd

sFile = 'out.txt'  # in current directory, or give full path

df = pd.read_csv(sFile, header=None,
 names=['sample_time', 'amplitude', 'phase'],
 sep=' ', index_col=0)

phase_deg = np.rad2deg(df_phase.phase)   # phase_deg is a series


plt.subplots(figsize=(15, 3))
ax = plt.subplot(1,1,1)
plt.title('WWVB Phase5 - 70 sec')

ax.plot(phase_deg.clip(-120, 120), lw=0.4)

plt.xlim(6, 71)
plt.ylim(-150, 150)

ax.fill_between(phase_deg.index,
0,
phase_deg.clip(-120, 120), where=phase_deg>=0,
color='green', alpha=0.15)

ax.fill_between(phase_deg.index,
0,
phase_deg.clip(-120, 120), where=phase_deg<0,
color='red', alpha=0.15)


ax.xaxis.set_major_locator(tkr.MaxNLocator(8))
ax.xaxis.set_minor_locator(tkr.AutoMinorLocator(n=10))
ax.grid(b=True, which='major', c='g', linestyle='-', linewidth=0.7)
ax.grid(b=True, which='minor', c='g', linestyle='-', linewidth=0.2)

sSave = 'wwvb_phase_5_70.png'
plt.savefig(sSave, bbox_inches='tight', transparent=False, dpi=100)


Rob

On Fri, Jul 31, 2020 at 1:15 PM jimlux  wrote:
>
> On 7/31/20 11:25 AM, Scud West wrote:
> > Back in December 2018 there was a WWVB thread.
> >
> >  From Poul-Henning's post on 2018-12-05 quoting John N8UR:
> >
> > "While everyone's been talking :-) , I recorded some WWVB IQ data for
> > folks to play with.  You can download it from
> >
> > http://febo.com/pages/wwvb/
> >
> > The receiver ran at 48 ksps and was centered on 80 kHz (to allow a 20
> > kHz IF to move away from 0 Hz crud).  The data was taken in early
> > afternoon in Dayton, Ohio.  WWVB was easily visible in an FFT."
> >
> >
> > I ran the python code posted by Poul-Henning with the WWVB IQ data.
> > The resulting file 'out.txt' has columns for sample time, amplitude,
> > and phase.  It was used for the plots below.  There is about 10
> > minutes of data.
> >
> > initial data: 
> > n8ur_rx_center=0.08MHz_rate=48ksps_start=2018.12.05.13.57.54.bin
> >   (236 MB)
> > plotted data: out.txt   (2.4 MB, 61,000 datapoints)
> >
> > I hadn't looked at phase data before, and it took a while to make any
> > sense of it.  It's surprising how well the bit per second data came
> > through, compared to amplitude modulation.  Different filtering will
> > likely improve the AM performance, but the phase plot looked good now,
> > so here it is.
> >
> > The first graph shows the +90 degree phase shift (top line) and -90
> > (bottom line).  The SDR clock appears relatively stable at first, but
> > drifts lower in frequency at a fairly steady rate until about 550
> > seconds, when it flattens out again.  Overall a bit over 180 degrees
> > more than expected.  A half cycle at 60 kHz, or about 8.3e-06 drift in
> > 10 minutes.  The unpleasantness at about 470 seconds is reflected in
> > the 10 minute plot during minute 7 (3 lines down from the top).  I
> > removed the 'drift' in a crude manner, and it's a wonder it worked as
> > well as it did.
> >
> > The middle two graphs are the same data at different time scales.  I'm
> > not sure if the short term phase variation has any meaning, or if it's
> > 'just noise' at this level.  The WWVB phase change actually takes
> > place 0.1 seconds after the start of the second, but it fit just right
> > for display as is.  The real minute begins at second 6, and this is
> > adjustment is made in the 10 minute waterfall plot.  The first few
> > seconds of data are at the bottom left corner.
> >
> > Green denotes binary 1, phase shift +90 degrees.
> > Red is binary 0, phase shift -90 degrees.
> >
> > A simplified description of WWVB phase-modulated time code:
> >
> > seconds  0 - 12  fixed sync  0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0
> > seconds 13 - 18  time parity (ECC)
> > seconds 19 - 46  binary minute of century
> > seconds 47 - 58  DST and leap sec
> > second  59   fixed sync  0
> >
> > these seconds are notable here:
> >
> > 43, 44, 45, 46 contain changing binary minutes 3, 2, 1, 0
> > 19  a copy of binary minute 0
> > 29, 39  Reserved, but also a copy of binary minute 0 in this sample.
> >
> >
> > I'm using python, numpy, matplotlib, and Pandas.  It all runs pretty
> > quick on my machine, only a few seconds to load, calculate, and
> > display the graphs.
> >
> > I'm going to try looking directly at John's IQ data to see the effect
> > of the larger dataset on results and calculation time.  It's a big
> > help knowing what the processed IQ should look like.  Thanks for the
> > data and code,
> >
> > Rob
> >
>
>
> Nice looking plots..Did you generate the colored red/green "fill to
> baseline" in matplotlib, or is that out of 

Re: [time-nuts] WWVB PM Time Questions

2020-07-31 Thread jimlux

On 7/31/20 11:25 AM, Scud West wrote:

Back in December 2018 there was a WWVB thread.

 From Poul-Henning's post on 2018-12-05 quoting John N8UR:

"While everyone's been talking :-) , I recorded some WWVB IQ data for
folks to play with.  You can download it from

http://febo.com/pages/wwvb/

The receiver ran at 48 ksps and was centered on 80 kHz (to allow a 20
kHz IF to move away from 0 Hz crud).  The data was taken in early
afternoon in Dayton, Ohio.  WWVB was easily visible in an FFT."


I ran the python code posted by Poul-Henning with the WWVB IQ data.
The resulting file 'out.txt' has columns for sample time, amplitude,
and phase.  It was used for the plots below.  There is about 10
minutes of data.

initial data: n8ur_rx_center=0.08MHz_rate=48ksps_start=2018.12.05.13.57.54.bin
  (236 MB)
plotted data: out.txt   (2.4 MB, 61,000 datapoints)

I hadn't looked at phase data before, and it took a while to make any
sense of it.  It's surprising how well the bit per second data came
through, compared to amplitude modulation.  Different filtering will
likely improve the AM performance, but the phase plot looked good now,
so here it is.

The first graph shows the +90 degree phase shift (top line) and -90
(bottom line).  The SDR clock appears relatively stable at first, but
drifts lower in frequency at a fairly steady rate until about 550
seconds, when it flattens out again.  Overall a bit over 180 degrees
more than expected.  A half cycle at 60 kHz, or about 8.3e-06 drift in
10 minutes.  The unpleasantness at about 470 seconds is reflected in
the 10 minute plot during minute 7 (3 lines down from the top).  I
removed the 'drift' in a crude manner, and it's a wonder it worked as
well as it did.

The middle two graphs are the same data at different time scales.  I'm
not sure if the short term phase variation has any meaning, or if it's
'just noise' at this level.  The WWVB phase change actually takes
place 0.1 seconds after the start of the second, but it fit just right
for display as is.  The real minute begins at second 6, and this is
adjustment is made in the 10 minute waterfall plot.  The first few
seconds of data are at the bottom left corner.

Green denotes binary 1, phase shift +90 degrees.
Red is binary 0, phase shift -90 degrees.

A simplified description of WWVB phase-modulated time code:

seconds  0 - 12  fixed sync  0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0
seconds 13 - 18  time parity (ECC)
seconds 19 - 46  binary minute of century
seconds 47 - 58  DST and leap sec
second  59   fixed sync  0

these seconds are notable here:

43, 44, 45, 46 contain changing binary minutes 3, 2, 1, 0
19  a copy of binary minute 0
29, 39  Reserved, but also a copy of binary minute 0 in this sample.


I'm using python, numpy, matplotlib, and Pandas.  It all runs pretty
quick on my machine, only a few seconds to load, calculate, and
display the graphs.

I'm going to try looking directly at John's IQ data to see the effect
of the larger dataset on results and calculation time.  It's a big
help knowing what the processed IQ should look like.  Thanks for the
data and code,

Rob




Nice looking plots..Did you generate the colored red/green "fill to 
baseline" in matplotlib, or is that out of Pandas?


The stacked plot is also very nice.

Good looking plots really help to understand what's going on.

(and of course, a shout out to Edward Tufte, who I am often inspired by)

___
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe, go to 
http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com
and follow the instructions there.


Re: [time-nuts] WWVB PM Time Questions

2020-07-31 Thread paul swed
Ray Yes you have it correct. The flipper is bidirectional. It either adds
flips or removes them.
It does read the nema second per minute in the 59th second. Then depends on
the 1 pps for an accurate phase flip. The flip is 100 ms into the second
and by propagation delay to the east 5-7ms. Though the reality is if the
flips not exact the phase tracking receivers work just fine.
But beyond the simple reading of the nema sentence its the magical
conversion to the new wwvb message format thats quite difficult. Then they
turned on teh slow code and Rodger and I worked that issue. That actually
took some months to resolve the fast and slow code integration.
So as a transmitter put the software on an arduino or bluepill. Since you
are just doing work locally the nema sentence can be repeated over and over.
Regards
Paul
WB8TSL

On Fri, Jul 31, 2020 at 12:01 AM  wrote:

> Paul,
>
> I wasn't talking about putting the d-psk-r software on the Blue Pill
> board. The d-psk-r software will be on the Arduino board.
>
> What I was thinking of doing was putting a single NEMA message on the
> Blue Pill board. Then connect the UART transmit line to the Arduino in
> place of the GPS UART line. That way I could send the same NEMA message
> without having it change every minute. I would count 60 (or maybe 62)
> pps coming from the GPS and I would know the Arduino was ready for the
> next NEMA message.
>
> Initially I will use the GPS UART transmit line to confirm the
> Arduino/GPS combo works. Then play with sending my own NEMA GPRMC
> message from the Blue Pill board.
>
>
> It appears your software simply reads the TX buffer of the GPS until it
> is empty once per minute and then proceeds to parse the NEMA time/date
> information out one bit per second. However, the La Crosse Ultratomic
> clock would not work with this data stream since you are stripping the
> phase reversals out. Is that correct?
>
> I want to extract the time information only. So I would feed the 60 kHz
> sine wave into the preamp wire on the flipper board. Is that correct?
>
> Ray,
> AB7HE
>
>  Original Message 
> Subject: Re: [time-nuts] WWVB PM Time Questions
> From: paul swed 
> Date: Thu, July 30, 2020 5:14 pm
> To: Discussion of precise time and frequency measurement
> 
>
> Ray
> Are you speaking to the d-psk-r software? Its quite a bit more involved
> than what you mentioned. Its in the coding sequence. But could it be put
> on
> a bluepill absolutely. Its worked on all of the arduinos we have tried.
> The
> other thing is that by feeding a 60 KHz CW signal into the d-psk-r
> modulator/flipper it turns the signal into a wwvb bpsk signal. No AM
> modulation. But for bench testing its a noise free signal.
> But I am interested in the approach you are trying to develop that I
> guess
> might be a SDR solution. Good luck looking forward to your success.
> Regards
> Paul.
>
> ___
> time-nuts mailing list -- time-nuts@lists.febo.com
> To unsubscribe, go to
> http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com
> and follow the instructions there.
>
> ___
> time-nuts mailing list -- time-nuts@lists.febo.com
> To unsubscribe, go to
> http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com
> and follow the instructions there.
>
___
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe, go to 
http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com
and follow the instructions there.


Re: [time-nuts] WWVB PM Time Questions

2020-07-31 Thread Bob kb8tq
Hi

Backing up a bit …..

The WWVB modulation is *very* predictable. Once you have lock, 
you can guess just about every phase reversal you will see. If you 
have an “approximate lock” ( = a time pre-load that is within a few
seconds) you can guess a lot of them. (There were a few aux data bits 
in the stream last time I looked).

In the case of the pre-load, you still need to get your local stream
lined up with reality. In all cases, the ionosphere will move things 
enough that some modest amount of servo would be needed.

The point of this being that you *could* pre-flip the data before it
went into a buffer. That way the buffer integration time constant 
could be quite long. 

The main penalty is a bit of work getting it all locked up in the first
place. If this is a precision timing receiver (as opposed to a wrist
watch) that may not be a problem. 

Bob

> On Jul 30, 2020, at 11:45 PM, rcb...@atcelectronics.com wrote:
> 
> Paul,
> 
> I wasn't talking about putting the d-psk-r software on the Blue Pill
> board. The d-psk-r software will be on the Arduino board.
> 
> What I was thinking of doing was putting a single NEMA message on the
> Blue Pill board. Then connect the UART transmit line to the Arduino in
> place of the GPS UART line. That way I could send the same NEMA message
> without having it change every minute. I would count 60 (or maybe 62)
> pps coming from the GPS and I would know the Arduino was ready for the
> next NEMA message.
> 
> Initially I will use the GPS UART transmit line to confirm the
> Arduino/GPS combo works. Then play with sending my own NEMA GPRMC
> message from the Blue Pill board.
> 
> 
> It appears your software simply reads the TX buffer of the GPS until it
> is empty once per minute and then proceeds to parse the NEMA time/date
> information out one bit per second. However, the La Crosse Ultratomic
> clock would not work with this data stream since you are stripping the
> phase reversals out. Is that correct?
> 
> I want to extract the time information only. So I would feed the 60 kHz
> sine wave into the preamp wire on the flipper board. Is that correct?
> 
> Ray,
> AB7HE
> 
>  Original Message 
> Subject: Re: [time-nuts] WWVB PM Time Questions
> From: paul swed 
> Date: Thu, July 30, 2020 5:14 pm
> To: Discussion of precise time and frequency measurement
> 
> 
> Ray
> Are you speaking to the d-psk-r software? Its quite a bit more involved
> than what you mentioned. Its in the coding sequence. But could it be put
> on
> a bluepill absolutely. Its worked on all of the arduinos we have tried.
> The
> other thing is that by feeding a 60 KHz CW signal into the d-psk-r
> modulator/flipper it turns the signal into a wwvb bpsk signal. No AM
> modulation. But for bench testing its a noise free signal.
> But I am interested in the approach you are trying to develop that I
> guess
> might be a SDR solution. Good luck looking forward to your success.
> Regards
> Paul.
> 
> ___
> time-nuts mailing list -- time-nuts@lists.febo.com
> To unsubscribe, go to
> http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com
> and follow the instructions there.
> 
> ___
> time-nuts mailing list -- time-nuts@lists.febo.com
> To unsubscribe, go to 
> http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com
> and follow the instructions there.


___
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe, go to 
http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com
and follow the instructions there.