Found while closing the MSK EVM instability. REQ-DEM-036 owns what happens when a measurement
cannot acquire; this is a specific, measured case of it.
What happens
Step 3 declines to estimate a carrier offset for the MSK family — correctly, because raising a
constant-envelope waveform to a power leaves its own deviation lines rather than a carrier line, and
reporting one puts the offset a quarter of a symbol rate out. The whole carrier estimate therefore
rests on step 8's pull-in.
Measured against an E4438C transmitting MSK at 500 ksym/s with a real offset of about 54 Hz —
comfortably inside anything step 8 should manage — six acquisitions were each demodulated at four
internal rates. One of the twenty-four failed completely:
block 2, 16 points/symbol: EVM 117.16 %rms, carrier -306.9 Hz, NOT CONVERGED, NOT LOCKED
block 2, 4 points/symbol: EVM 5.50 %rms, carrier 53.9 Hz, locked
block 2, 8 points/symbol: EVM 3.47 %rms, carrier 54.5 Hz, locked, not converged
block 2, 32 points/symbol: EVM 1.21 %rms, carrier 53.9 Hz, locked
The same samples at three other rates were fine, so it is step 8 landing in a wrong basin rather
than anything about the block. The measurement says it did not lock, so nothing false is reported —
it is a robustness gap, not a correctness one.
What was tried, and why it is not in the build
The power centroid of the spectrum. A constant-envelope spectrum is symmetric about its carrier,
so the centroid should be it. It is not: the centroid is the mean instantaneous frequency, which for
MSK is a quarter of the symbol rate multiplied by the data's own imbalance. Measured on a
4000-symbol block with no carrier offset at all: −2.483 kHz on a 1 Msym/s signal, consistently,
and the demodulation that followed read 105 %rms.
That is worse than declining in the way that matters most — it is wrong on every block instead of
one in twenty-four, and it is wrong in a way that looks like an answer. Reverted, with the numbers
recorded at the point in CoarseCarrierStep where somebody will next have the same idea.
What should work
The midpoint of the two deviation humps. MSK's spectrum has two lobes a quarter of a symbol rate
either side of the carrier, and unlike their heights, their positions do not move with the data —
the imbalance that defeats the centroid changes only how tall each one is. So: find the two lobes,
take the mean of their positions, and the data cancels out by construction.
Worth doing with the failing block in hand: --msk-probe in OpenVSA.Verify reproduces the setup,
and a fixture that reproduces the failure without the bench would be better still.
Found while closing the MSK EVM instability.
REQ-DEM-036owns what happens when a measurementcannot acquire; this is a specific, measured case of it.
What happens
Step 3 declines to estimate a carrier offset for the MSK family — correctly, because raising a
constant-envelope waveform to a power leaves its own deviation lines rather than a carrier line, and
reporting one puts the offset a quarter of a symbol rate out. The whole carrier estimate therefore
rests on step 8's pull-in.
Measured against an E4438C transmitting MSK at 500 ksym/s with a real offset of about 54 Hz —
comfortably inside anything step 8 should manage — six acquisitions were each demodulated at four
internal rates. One of the twenty-four failed completely:
The same samples at three other rates were fine, so it is step 8 landing in a wrong basin rather
than anything about the block. The measurement says it did not lock, so nothing false is reported —
it is a robustness gap, not a correctness one.
What was tried, and why it is not in the build
The power centroid of the spectrum. A constant-envelope spectrum is symmetric about its carrier,
so the centroid should be it. It is not: the centroid is the mean instantaneous frequency, which for
MSK is a quarter of the symbol rate multiplied by the data's own imbalance. Measured on a
4000-symbol block with no carrier offset at all: −2.483 kHz on a 1 Msym/s signal, consistently,
and the demodulation that followed read 105 %rms.
That is worse than declining in the way that matters most — it is wrong on every block instead of
one in twenty-four, and it is wrong in a way that looks like an answer. Reverted, with the numbers
recorded at the point in
CoarseCarrierStepwhere somebody will next have the same idea.What should work
The midpoint of the two deviation humps. MSK's spectrum has two lobes a quarter of a symbol rate
either side of the carrier, and unlike their heights, their positions do not move with the data —
the imbalance that defeats the centroid changes only how tall each one is. So: find the two lobes,
take the mean of their positions, and the data cancels out by construction.
Worth doing with the failing block in hand:
--msk-probeinOpenVSA.Verifyreproduces the setup,and a fixture that reproduces the failure without the bench would be better still.