Linear Prediction

Skip to first unread message

GB, author of iNMR

May 15, 2013, 5:34:47 AM5/15/13
to iNMR
The iNMR implementation of linear prediction has always been
confusing, probably because it's quite original.
Today I want to clarify a few simple points. Once you understand them,
there is nothing else to know.

Generally speaking, Linear Prediction (LP) represents an alternative
to Fourier Transform (FT). iNMR does not use LP in such a way, but as
an alternative to zero-filling (ZF) or as an alternative to baseline
correction. Each of the alternatives (LP and ZF) has its own virtues
and its defects. It's easy to choose the most appropriate. In normal
cases, where the signals have decayed by the end of the FID, zero-
filling is the only meaningful choice. In rare cases, when the signal
has been truncated either at the end or at the beginning, Linear
Prediction should be considered instead. You are free to use neither,
of course. While ZF can only be used to prolong the FID, LP can also
be used to recreate damaged or missing points at the start of it.
Prolonging the tail is called "Forward Linear Prediction". Adding
points before the beginning or correcting the first few points is
called "Backward Linear Prediction". The latter is an alternative to
baseline correction. Forward Prediction is relatively easier and more
frequently used. An example of Backward Prediction is described here:

The command is Process > Linear Prediction… If it is dimmed, use the
command File > Reload to make it active. Before opening the dialog,
you might want to change the scale unit to "points" (it's enough to
press "n"). In this way you can read the index of the first point of
the FID (usually zero) and the index of the last point. The latter can
also be calculated from the formula:

last index = number of points - 1 + first index

After you open the LP dialog, you must set 5 parameters.

1) First Predicted Point. If you are prolonging the FID, this must be
equal to the last index + 1.

2) Last Predicted Point. This must always be higher. Let's say, for
example, that the original FID goes from point 0 to point 1023. If you
want to add 1000 points to the tail, then set First Predicted Point =
1024 and Last Predicted Point = 2023. If, instead, you want to add 20
new points at the beginning, set First Predicted Point = -20 and Last
Predicted Point = -1.

3) Number of Signals (lines in the frequency domain spectrum). Can
only be estimated. After you eventually FT the FID, verify that your
guess was correct. If the result looks bad and the number of lines is
quite different from your initial guess, reload the spectrum and
attempt with a different value. The normal range is between 20 and
200. Avoid higher values in every way. The Fast algorithm is not
stable when the number of signals is higher than 24.

4) Points to Extrapolate From. This is not critical. Set between 10
and 100 times the number of signals.

5) Algorithm. Singular Value Decomposition is the best.

The FT dialog contains a check-box called "Use Linear
Prediction" (instead of Zero-Filling).
That's a shortcut useful in a single case only, that is in some HSQC
experiments. It's easy to understand why you shouldn't use it: you
can't set the parameters and you can't even read their values. There
is also another important reason. That checkbox will use the "Fast"
algorithm, which is not the best choice. The hidden parameters are:

First Predicted Point = last index + 1
Last Predicted Point = last index + the value selected in the FT size
menu (inside the FT dialog)
Number of Signals = 24 or FID size / 16 (the lesser of the two
Points to Extrapolate From = FID size - Number of Signals - 1.
Algorithm = Fast Linear Prediction.

Having said this, only use that check box for HSQC experiments.

You never find the expression "zero-filling" in the iNMR interface.
When you open the FT dialog (command Process > Fourier Transform), you
see a value labelled "FID size" and a menu called "FT size". If the
latter is higher than the former, iNMR is going to apply zero-filling.
K is a shortened form for 1024. For example 32 K = 32768 complex

Though there's not too much to remember, and though it looks simple
and natural, I think that you should digest it all if you want to use
LP successfully. It's open for discussion.
Reply all
Reply to author
0 new messages