I know this response is some eight months late now but I thought I'd explain my vote of thanks anyway.
Having seen just how much I have written below (TL:DR), I'll summarise by saying that you've shown rather neatly in graphical form just why you can't just simply take the 10MHz output from a NEO-M8N directly for use as a reference other than as quick 'n' dirty substitute for the 10MHz WWV broadcasts which, outside of the USA, are virtually impossible to receive due to the non-existent propagation conditions that prevail during this current period of Sunspot minima.
The 60KHz and 198KHz frequency standard broadcasts that can be received here in the UK, are inconveniently too low for direct use as calibration references, needing to be multiplied up which is a project of difficulty on a par with that of constructing a GPSDO in itself. Those graphs demonstrate just why you need the expense and complication of (typically) an OCXO to turn a GPS receiver into a stable frequency reference that can be used by high grade test and communications equipment where stability and low phase noise is of paramount importance.
The following is effectively my 'back story' in how I came to appreciate those graphs you made of the NEO-M8N's performance as a jittery 10MHz reference source. Whilst this is probably a story you've heard many times over, others more fresh to the subject, might be able to get something useful out of it.
I didn't join the eevblog community until just over six months ago when a posting in sed mentioned the ultra low cost of Chinese test gear, notably Feeltech's ridiculously priced FY6600 (circa $100 at that time - I paid just £75.66 for my, now very much modified, 60MHz version after reading all 69 pages of the FY6600 thread twice over as a result of my purchasing a Siglent SDS1202X-E the week before, also prompted by what I'd read in that thread).
As they say, "One thing leads to another..." and here I am with a revived interest in hobby level electronics, only this time with ambitions of building stuff with three or more magnitudes of calibration accuracy than I could ever have hoped to achieve three decades ago.
For the past couple of months, my timing accuracy mods to the AWG and my fledgling GPSDO project have taken on the character of an "Arms Race" since they complement each other's development. Initially, I'd upgraded the cheap 'n' nasty SMD XO chip that Feeltech had cursed their FY6600 with to a 0.1ppm 50MHz TCXO oscillator board which has in turn since been usurped by a CQE 10MHz OCXO with a 3N502 clock multiplier which is now, for the time being, running around 30ppt adrift from another CQE 10MHz OCXO currently being disciplined by a fake M8N module. I have another five of these CQE OCXOs to hand, thanks to a chance purchase of a 5 volt 13MHz CQE OCXO at a hamfest over seven weeks ago (my searching for manufacturer's data had led me to the chance discovery of a very cheap source for the 10MHz units, hence the "Lifetime's Supply").
One of the earliest conclusions about the nature of the 10MHz output from the M8N module was that it didn't really make any real difference overall whether an even integer[1] divider ratio was chosen over any non-integer ratio simply because the effects of the sawtooth adjustments against the 48MHz TCXO couldn't be escaped, only masked at best. Your test results very nicely and formally confirmed what I'd already managed to conclude simply by gathering the evidence of my ears by monitoring the effects with 25 year old Kenwood HF transceiver.
It was so refreshing to see this point about the NEO M8N being made by such a well respected expert as yourself.
At the end of the day, the random phase shifting due to the satellite signals having to traverse an ionosphere of varying electron density makes such short term variations pale into insignificance, disappearing below the noise level after the necessary hours long averaging to attenuate this final system deficiency has extended to weeks and then ultimately to years.
I find all mention of these "non-integer division jitter" and "sawtooth adjustments" 'defects' with any GPS receiver capable of offering a 10MHz or other frequency alternative to the PPS output rather irritating when it should be blindingly obvious that these are side effects that have little to zero detriment to the basic navigational function of the GPS system.
Utilising the long term accuracy of the PPS feature embedded within virtually every GPS receiver, simply requires the use of very long integration periods to average or filter out the effects of jitter and sawtooth noise from the long term timing accuracy of the system to translate it into a an extremely accurate low phase noise frequency reference courtesy of a quality design of GPSDO whether a commercial ready made unit or a DIY fabrication.
I have to say, in the four months since I purchased that first M8N module (a genuine u-blox module BTW, now sadly unable to output anything on its PPS line thanks to rank carelessness on my part in an experiment involving a 12v OCXO), I've learnt an awful lot about the issues involved in utilising a GPS receiver to discipline a high quality OCXO into a trustworthy low phase noise frequency reference. I've no doubt that there's yet more to learn, especially once I've actually committed my basic breadboard layout to a soldered up PCB (most likely a dead bug on groundplane bodge) fitted into a cheap metal enclosure.
When I first availed myself of the 'luxury' of getting a "10MHz reference" directly out of the M8N module, I did question the need for a 10MHz XO of any sort at all. A few weeks of experimentation later and my question was answered. Now, I realise that unless you're after a quick 'n' dirty alternative to the 10MHz WWV broadcasts, the first priority of any DIY GPSDO project is an electrically tunable XO, preferably an OCXO over a(n electrically tunable) TCXO (but
any electrically tunable XO will do for an initial attempt).
As far as building "Your Very First GPSDO" goes, almost any GPS reciever with an accessible PPS signal can be pressed into such service given enough determination to lock a 10MHz oscillator to a 1Hz reference. However, a word of warning, if you choose one of those cheap £/$4.00 NEO-6Ms, there's a chance you might get one which whittles its PPS down to nothing before immediately reincarnating itself as the full fat pulse you'd initially programmed.
The symptoms had been so confusing, it nearly drove me right round the bend... bibble bibble bibble...
It hadn't helped that I'd had to divide an OCXO with a tuning range of just 1ppm down by a factor of ten thousand. Getting a phase lock at 1KHz becomes a rather glacial process on the order of 15 to 30 minutes, plenty of time for the PPS to disappear up its own backside two or three times and cause disruption to the phase locking process.
My example with a 1KHz squarewave setting would run at the programmed 50/50 ratio for the first 5 to 7 minutes of a 10 to 14 minute cycle before starting to narrow down, eventually to disappear up its own fundament to then instantly reincarnate as a 50/50 squarewave pulse again. The timing of this cycle seemed to be tied to a bug related to the sawtooth adjustments used to keep the rising edge synced to the nearest 48MHz rising clock edge.
I tried reprogramming this pulse to the narrowest possible (1μs on a 1ms interval - the only way I could get a 1KHz PPS) and use the PD2 output from the 4046 I was using in the hope the phase/frequency detector could tolerate such insults. Zooming in on the 'scope trace to see the final second of the pulse's disappearing act revealed it literally vanishing altogether, albeit briefly (at a guess, for a whole one millisecond) which not even the PD2 circuit could tolerate. So it was "Goodbye NEO-6N" and "Hello (fake) NEO-M8N" a week or so later.
It's just possible that this is an effect that only shows as a result of programming a higher frequency pulse. Leaving it set to the default 1 PPS 10ms wide pulse may avoid this issue but I haven't tested for this possibility. It just might prove to be fine at the default setting when I do eventually find the time to test this hypothesis.
[1] I specifically mentioned "even" since odd divisors such as 3 (16MHz output), 5, 7 and 9 (I didn't bother going any further down this particular rabbit hole) result in a 1:2 mark/space ratio which alternates on every sawtooth alignment to a conveniently placed 48MHz clock edge.
Quite frankly, in view of the sawtooth jitter, there's little point in worrying about using a non-integer divider ratio to get a 10MHz (or 100KHz in my case) unless nice clean 'scope traces are your over-riding objective. It all comes out in the wash anyway, once you've applied some filtering to the PD's output (typically a CR based LPF with a cut off in the region of a few milli Hertz to be followed by a DSP LPF with a cut off frequency of that's gradually reduced to a micro Hertz or so to filter out the GPS/GLONASS system errors - ionospheric variations etc).
JBG