Re: [time-nuts] sub harmonic VCO locking
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
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
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"
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
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
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
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
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
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.