Skip to content

REQ-DEM-052: 'LMS within 1 dB of least squares' cannot hold on a noiseless signal #435

Description

@TGoodhew

Found while closing #163. REQ-DEM-052's criterion reads:

LMS mode converges on the same channel to within 1 dB of the least-squares EVM.

It holds on any measurement whose EVM is set by something real, and it cannot hold on a noiseless
synthetic. Implemented the first way; the measurements and the alternative are here.

Measured, on a 6 dB tilt, 42 taps, everything else at its default

Signal Least squares LMS (µ = 0.01) Apart
noiseless 0.0174 %rms 0.0328 %rms 5.53 dB
40 dB SNR 0.5336 0.5878 0.84 dB
30 dB SNR 1.6852 1.8505 0.81 dB
25 dB SNR 2.9970 3.2874 0.80 dB
20 dB SNR 5.3289 5.8363 0.79 dB

At 25 dB with µ = 0.003 it is 0.24 dB, and normalised LMS at µ̃ = 0.1 is 0.21 dB.

Why the noiseless case is different in kind

On a noiseless signal the least-squares solution reaches the chain's own residual intersymbol
interference
— the truncation and Tukey tapering of its measurement and reference filters, which
#433 measured at 0.0287 %rms uncorrected and 0.0164 corrected. That residual is a linear channel like
any other and the exact solution removes it. A gradient method does not, and the reason is
structural rather than a matter of patience:

  • The correction lives in the directions the input has least energy in, and a gradient method
    converges in each direction at a rate proportional to that energy.
  • Measured: µ = 0.003 over 1000 sweeps — half a million updates — still left 4.83 dB. Neither a
    smaller step nor twenty times the sweeps closes it.
  • Started from the least-squares solution instead of a unit impulse, LMS stays at 0.0186 %rms
    (0.6 dB). So it is not that the fixed point is wrong; it is that a finite budget cannot travel
    the last part of the distance from a cold start.
  • A leak was tried, on the theory that the unit impulse's content in the unconstrained directions
    was the problem. It is not: every leak from 0.3 to 30 e-foldings made the result worse
    (0.026 %rms at best, 3.7 at worst), which says those directions carry signal the solution needs
    rather than noise it should shed.

So the LMS mode lands, to a few per cent, on the unequalised clean-signal floor: it removes the
injected impairment and leaves the chain's own. That is exactly what a fractionally-spaced gradient
equaliser does, and it is why REQ-DEM-052 makes the one-shot solution the default in the first
place.

Implemented

EqualiserAlgorithmTests.LmsConvergesToWithinADecibelOfTheLeastSquaresSolution makes the comparison
at 25 dB SNR — an ordinary measurement — and at a step size whose own excess error leaves room
inside the decibel. The test's comment carries the table above and the misadjustment relationship
µ·L·Pₓ/2, so the number is explained rather than merely asserted, and the help page states it for
users choosing a step size.

The alternative

Read the clause as applying to the noiseless synthetic too. Then it cannot be met by an LMS mode at
all, and one of these would have to give:

  • Drop the "within 1 dB" figure to something a gradient method can reach cold — 6 dB would do
    it, and would be a fair description of what an incremental equaliser is for.
  • Seed the gradient modes from the least-squares solution. They then start 0.6 dB away and stay
    there. It also makes the mode a fiction: the answer would be the exact one, refined by a method
    that cannot improve it.
  • Remove the chain's own residual ISI at source, so that a noiseless measurement has nothing for
    the exact solution to find that the gradient one misses. That is REQ-DEM-050 and REQ-DEM-053: two acceptance clauses that cannot both be met as written #433's second alternative and it
    is a change to the filter design, not to the equaliser.

To adopt any of them: the comparison lives in one test method and one constant
(EqualiserAlgorithmTests.SignalToNoiseDb); nothing in GradientEqualiser depends on the reading.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    deferred:revisitClosed to keep the backlog at zero; revisit once the rest of the product is complete

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions