NAME
LP - NMRPipe Complex Linear Prediction
SYNOPSIS
nmrPipe -fn LP [-pred predPts] [-x1 dataStart] [-xn dataEnd]
[-ord order] [-f | -b | -fb] [-before | -after] [-nofix |
-fix] [-fixMode fm] [-ps90-180 | -ps0-0]
EXPERIMENTAL OPTIONS
nmrPipe -fn LP [-pca] [-extra xOrd] [-sig sigCount] [-auto]
[-min nmin] [-max nmax] [-nw nw] [-dw dw] [-nf nf] [-sf sf]
[-fr hf]
SPECIAL NOTE
The current implementation of Linear Prediction (LP)
replaces both previous functions LP and LPC.
DESCRIPTION
LP is an implementation of Linear Prediction for complex
data which has been designed for high stability. As a
result, it may be slower than other implementations of
Linear Prediction, but perhaps more robust. LP is used pri-
marily to extend time-domain data. By extending the data,
Fourier truncation artifacts become less severe, and line
broadening due to use of window functions on short data vec-
tors will be less pronounced. LP can also be used to
replacing missing or distorted points at the beginning or
interior of time-domain data. LP is usually most effective
when used on time-domain data vectors which are not decayed
substantially, relatively short (~8-256 complex points) and
with a small number of signals (~0-8 peaks per vector).
However, LP can still be useful in cases with a larger
number of signals, since it can often reduce the truncation
artifacts of the largest peaks which might otherwise obscure
smaller peaks.
Linear Prediction makes a model of a given complex data
region; this model can then be used to predict points
immediately after the data region (points in the future) or
to predict points immediately before the data region (points
in the past). In the model, a set of coefficients is found
such that linear combination of a group of points predicts
the next point in the series. A single set of coefficients
is determined by considering each successive overlapping
group of points in the data region. The number of coeffi-
cients extracted is called the linear prediction order,
which determines how many NMR signals (damped sinusoids) can
be predicted by the model.
There are three ways of doing the modeling to establish the
LP coefficients. In one method, the points immediately
after each group are predicted; this is called forward
linear prediction. In the second method, the points immedi-
ately before each group are predicted; this is called back-
ward linear prediction. In the third method, called
forward-backward linear prediction, the results from
separate forward- and backward-linear prediction calcula-
tions are combined. Forward-backward linear prediction is
more time-consuming because it requires two LP calculations,
but it often gives better results. Regardless of which
modeling method is used, the coefficients can still be used
(either directly or in modified form) to predict past or
future points.
Once the model is created, it can be applied to predict a
new synthetic point by using a group of existing points from
the original data. The new point can then be used along
with a group from the original data to predict yet another
new point. This process can be continued indefinitely, but
in practice it becomes more unstable as additional points
are predicted from previous synthetic ones. Therefore, LP
is usually limited to extending data to about twice its ori-
ginal size.
Most LP applications will involve setting the following
parameters, or using their default values:
1. Linear prediction order.
(-ord lpOrder)
Default: order 8.
2. Use of forward, backward, or forward-backward LP.
(-f -b or -fb)
Default: forward.
3. Location and size of data region.
(-x1 firstPoint and -xn lastPoint)
Default: all points 1 to SIZE.
4. Number of points to predict.
(-pred predPointCount)
Default: size of original data.
5. Whether to predict past or future data.
(-before or -after)
Default: future.
In addition, some data may allow use of Mirror Image LP; in
this case, there are two possible modes, described in more
detail later:
1. Mirror Image for data with no acquisition delay.
(-ps0-0)
2. Mirror Image for data with a 1/2 dwell delay.
(-ps90-180)
LP ORDER
The linear prediction order defines the number of points in
each successive group used to build the LP model. Since
several successive groups must be analyzed to build a reli-
able model, the LP order is usually much smaller than the
size of the modeled region, and no larger than half the
modeled region. But, the number of signals which can be
extracted by LP is limited by the LP order itself. So,
there is a trade-off; the LP order must be as large as the
number of signals to extract, but smaller than half the ori-
ginal data size. Therefore, cases of very small data size
cause a problem, but in some situations this can be solved
by Mirror Image LP (see below).
PARAMETERS FOR PREDICTION AFTER
By default, LP is set up to work like zero filling; this
means that it will double the size of the data by predicting
future points using all of the original data in the model.
For example, starting with data of 64 complex points, LP
with no arguments:
nmrPipe -fn LP
is equivalent to:
nmrPipe -fn LP -x1 1 -xn 64 -ord 8 -f -pred 64 -after
which means "use data region of points 1->64 and an order=8
forward linear prediction to predict 64 more points immedi-
ately after the data region". Another way would be to use
forward-backward LP instead:
nmrPipe -fn LP -fb
which is the same as:
nmrPipe -fn LP -x1 1 -xn 64 -ord 8 -fb -pred 64 -after
PARAMETERS FOR PREDICTION BEFORE
When LP is used with the "-before" argument, it will work by
replacing points before the selected data region, but it
will not increase the size of the data (Note: this may
change in later implementations). Therefore, in order to
extend the data vectors by adding points at the beginning,
the data size must first be adjusted "manually" by zero fil-
ling and right-shifting. For example, if we start with 100
data points, and want to create 6 additional points before
them:
| nmrPipe -fn ZF -pad 6 \
| nmrPipe -fn RS -rs 6 -sw \
| nmrPipe -fn LP -before -x1 7 -xn 106 -pred 6 \
When the -before option is used, the default value for the
-x1 parameter is set to 1 plus the -pred value. So, the
following LP scheme is equivalent to the one above:
| nmrPipe -fn ZF -pad 6 \
| nmrPipe -fn RS -rs 6 -sw \
| nmrPipe -fn LP -before -pred 6 \
these each mean "make room for 6 new points, move the origi-
nal data over by 6 points, predict 6 new points before the
original data which is now at points 7->106".
MIRROR IMAGE LP
In order for LP to analyze NMR data correctly, the data must
have uniform sampling, i.e. the time increment must be the
same between all points. Furthermore, the signals are
assumed to be exponentially damped or undamped sinusoids,
with uniform noise.
In the case of constant-time data, the signals have no
exponential dampening. So, we can sometimes artificially
extend this data temporarily by adding the data's mirror
image complex conjugate (imaginary is negated) before LP,
then discarding the mirror image after LP. By extending the
data this way, we can use larger than usual LP order parame-
ters, and thus have an opportunity to reconstruct more sig-
nals. Furthermore, since the original data points are used
in both forward and reverse order, mirror image LP provides
the stability advantage of forward-backward LP.
Note that mirror-image LP will usually only be an advantage
when there are a small number of original data points; in
cases with larger number of data points (> 32-64),
forward-backward LP may be just as good, and it has the
added advantage of no special restrictions on delay-time or
decay. So, before using mirror-image LP, be sure that the
circumstances are appropriate, as described below.
When we create a mirror image for LP use, we have to be sure
that the extended data still has a uniform time increment
between each point. In the case of data with no delay, the
original points are (t=0 t=1 t=2 ... t=n), and they are the
same as hypothetical points at "negative time" (t=0 t=-1
t=-2 ... t=-n) since cos(t) = cos(-t).
We can append the mirror image as:
mirror
image
plane
|
t=-n . . t=-2 t=-1 t=0 t=1 t=2 . . t=n
|
and we still have uniform increments between all points; the
new data has N-1 reflected points, followed by N original
points.
If the data have a half-point delay, we can still make a
mirror image, but we have to do it a little differently. We
start with the original data, which are (t=0.5 t=1.5 t=2.5
... t=n+0.5). They are the same as the negative time data
(t=-0.5 t=-1.5 t=-2.5 ...) so the mirror image is:
mirror
image
plane
|
t=-(n+0.5) ... t=-1.5 t=-0.5 | t=0.5 t=1.5 ... t=(n+0.5)
|
and again, there are uniform time increments between all
points; this time, the new data has N reflected points fol-
lowed by N original points.
These two cases can be selected by using the options -ps0-0
or -ps90-180. This will automatically build the mirror
image, do the LP, and discard the mirror image automati-
cally. By default, both cases will double the number of
original data points, as with ordinary LP. For example:
nmrPipe -fn LP -ps0-0 -ord 12
means "build the mirror image suitable for data with no
acquisition delay, extend it LP using a 12-point order, then
discard the mirror image part".
However, if the data have more than one point delay, then
appending the mirror image will result in data that have a
"gap" -- that is the two points on either side of the mirror
image plane will not be separated by one time increment.
For instance, if there is a two-point delay, there will be a
three-point gap:
mirror
image
plane
|
t=-n . . t=-2 ----gap---- t=2 . . t=n
|
Therefore, data with a 1 or more than 1-point acquisition
delay can not be used directly for mirror image LP.
Instead, the missing first points must be replaced before
using mirror image LP. It may be possible in these cases to
use LP with the -before option to replace the missing
points, then later use LP with the -ps0-0 option to do mir-
ror image as usual.
For example, if there are 30 original points with a three
point delay:
| nmrPipe -fn ZF -pad 3 \
| nmrPipe -fn RS -rs 3 -sw \
| nmrPipe -fn LP -before -pred 3 \
| nmrPipe -fn LP -ps0-0 \
means "make room for the three missing points, shift the
data by three points, create the three missing points by LP,
use mirror-image LP to create 33 additional points by
extending the data.
DATA WITH 1-DWELL DELAY
Data acquired with a 1-point delay can be thought if as
zero-delay data which have been left-shifted by one point.
We try to compensate for this shift by phase correction;
each one-point shift adds a 360 degree first order correc-
tion (P1=360).
However, a P1=360 in the frequency-domain does not
correspond to exactly to a simple one-point shift in the
time-domain; rather, it is equivalent to a circular shift in
the time-domain. So, it is as if the missing first point of
the FID is replaced by the last original point of the FID
(or by zero if the data has been zero filled).
Fourier theory tells us that the amplitude of the first
point in the FID is the integral of all points in the
frequency-domain; therefore, if the value of the first
time-domain point is incorrect, there will be an offset
error (constant baseline distortion) in the corresponding
spectrum. Clearly, the last point in an FID is not a good
substitute for the missing point; so as a result, data pro-
cessed with P1=360 will have baseline problems.
If we want to avoid baseline problems in this case, we must
find a way to replace the missing first point accurately.
LP can be used for this task, but it is time consuming and
sometimes unstable.
A faster and more stable approach takes advantage of the
fact that adjustment of the first time-domain point
corresponds to adding a constant in the frequency-domain, as
mentioned above. So, we can do the equivalent of replacing
the first time-domain point by performing a zero-order base-
line correction in the frequency domain. In cases with 64
or more data points and spectra which are not too crowded,
automated zero-order baseline correction can be faster and
more stable than LP. Therefore, the baseline correction
approach is often a better one.
In a small test-case, the first plane of an 15N-NOE experi-
ment (F3=HN F1=H plane, 512* by 128* points) was processed
using different approaches for the F1 dimension, which was
acquired with a 1-dwell delay:
oooooooooooooooooooo ooooooooooooooo
Method Time (Sparc 10)
oooooooooooooooooooo ooooooooooooooo
Ordinary FT/Phase 14 Sec
Automated Baseline 18 Sec
Linear Prediction 58 Sec
The baseline correction method was not only faster, but it
gave a much better result in this case than LP. The three
processing macros used are given in the EXAMPLES section
below. In both the LP and baseline correction schemes, the
F1 data is first zero-filled by one point, then
right-shifted by one point; this is done to "make room" for
the missing point which will be predicted.
Both of these procedures increase the number of time-domain
points by 1. This can be potentially awkward for subsequent
zero-filling and FT steps, since data which start out with a
power-of-two size will no longer have a power-of-two size
(e.g. 64 versus 65 points). As an alternative, the
one-point zero fill can be omitted; this will retain the
original size of the data at the expense of losing the last
point in each vector.
STRATEGIES FOR USE OF LP
LP will work best when the time-domain vectors to extend
have the fewest possible signals. In order to achieve this,
all of the other dimensions of the spectrum should be
Fourier Transformed first; this will localize the spectral
signals in the transformed dimensions and simplify the
remaining time-domain dimension. This means that inverse
processing schemes will be required for cases where LP will
be used in two of the spectral dimensions. Inverse process-
ing will usually involve the following steps to retore a
spectrum to its original time-domain form:
If the imaginary data was deleted previously, reconstruct
it using the Hilbert Transform (HT).
Remove the phase correction which was applied previously,
using the negative of the original phase values P0 and
P1.
Apply an inverse Fourier Transform to restore the data to
the time domain.
Remove the zeros which were appended by previous zero
filling.
Divide the data by the window and first point scale used
previously during forward processing.
When creating inverse processing schemes, the following
should be considered:
Zero Filling: in order to reconstruct imaginary data
correctly using the Hilbert Transform (HT), the original
data must have been zero-filled to at least twice its
original size.
Acquisition Delay: the Hilbert Transform will only pro-
duce ideal reconstruction of imaginary data in two cases:
an ordinary HT can be used for data with no acquisition
delay (P1=0); a mirror-image HT can be used for data with
a half-dwell delay (P1=180). In all other cases, the HT
may introduce distortions at the edges of the spectrum,
but these may only be serious in cases where the data
size is small or where signals of interest lie at the
edges of the spectrum.
Window Function: inverse processing will require dividing
the data by the original window function. This means
that the original window function should be chosen so
that none of the window values are close to or equal to
zero.
OPTIONS
The LP command-line options are detailed below; use the com-
mand nmrPipe -fn LP -help to generate a complete list of
options and their default values.
-pred predPts
Specifies the number of complex points to predict. In
the -after mode (default), the predicted points will be
placed after the selected data region, replacing any
existing points, and extending the size of the data
automatically if needed. When the -after mode is used,
the default number of points to predict is set to the
original size of the data, so that the data size will
be doubled by prediction. If the -before mode is used,
the given number of predicted points will be placed
before the selected data region, however the size of
the data will not be adjusted. When the -before mode is
selected, the default number of predicted points is 1,
so that the first point of the FID will be replaced.
-x1 dataStart
Specifies the first complex point in the range of
points from the original data which will be used to
generate the LP model. In the -after mode (default),
the default value is 1, which means the region of data
to model will start at the first point of the FID. In
the -before mode, the default value is set to 1 plus
the number of points to predict (-pred predPts), which
means the first points of the FID will be replaced by
LP.
-xn dataEnd
Specifies the last complex point in the range of points
from the original data which will be used to generate
the LP model. The default value is set to the original
size, which means that the region to model will extend
to the last point of the original data.
-ord order
Specifies the LP order, the number of complex coeffi-
cients which will be extracted by the LP model. The LP
order can be no larger than half the number of points
in the data region to model. The LP order also deter-
mines the maximum number of NMR signals (damped
sinusoids) which can be represented by the model.
-f When this flag is used, LP coefficients will be
extracted using forward-mode equations (default).
-b When this flag is used, LP coefficients will be
extracted using backward-mode equations.
-fb When this flag is used, LP coefficients will be
extracted using both forward- and backward-mode equa-
tions, and the two sets of coefficients are then aver-
aged for enhanced stability.
-before
When this flag is used, the LP predicted points will be
placed before the modeled data region.
-after
When this flag is used, the LP predicted points will be
placed after the modeled data region (default).
-nofix
This flag turns off the LP root reflection procedure.
This procedure adjusts the LP coefficients to suppress
creation of signals which do not have the desired
exponential envelope.
-fix This flag enables the LP root reflection procedure.
This procedure adjusts the LP coefficients to suppress
creation of signals which do not have the desired
exponential envelope.
-fixMode fm
Specifies the type of root reflection to use. The
options are:
-1 Suppress Decreasing Exponentials (default for
-before)
0 No Adjustment
1 Suppress Increasing Exponentials (default for
-after)
-ps90-180
This flag performs mirror-image LP for data with a
half-dwell delay (i.e., data that require P0=-90,P1=180
phasing). It is intended for use with data having lit-
tle or no dampening.
-ps0-0
This flag performs mirror-image LP for data with no
acquisition delay (i.e., data that require P0=0,P1=0
phasing). It is intended for use with data having lit-
tle or no dampening.
EXPERIMENTAL OPTIONS
The following are options under development, and thus should
not be relied on; the descriptions are included for develop-
ment purposes. Facilities under consideration include 2D LP
using Principal Component Analysis, and automatic signal
count estimation.
-pca Sets the LP order to the Y-Axis size; this assumes that
the data set is actually a matrix decomposition result
created by the Principal Component Analysis (PCA) pro-
gram pcaNMR(1).
-extra xOrd
The LP order established by PCA will be increased by
the value given here. This is used to insure a minimum
reasonable LP order.
-sig sigCount
Specifies the number of signals to reconstruct, in case
this should be less than the LP order.
-auto
This flag enables automatic signal count estimation,
which will adjust the LP order on a vector-by-vector
basis.
-min nmin
The minimum allowable number of signals for automatic
signal count estimation.
-max nmax
The minimum allowable number of signals for automatic
signal count estimation.
-nw nw
Specifies the cell size in points for noise determina-
tion.
-dw dw
Specifies the +/- width in points for signal detection.
-nf nf
Specifies the noise threshold factor for signal detec-
tion.
-sf sf
Specifies the signal count factor.
-fr hf
Specifies the minimum fraction of data considered to
belong to baseline.
EXAMPLES
The following example shows conventional processing of a
data plane with a 1-dwell delay in the indirect dimension.
This requires a phase correction of P0=-180,P1=360 which
leads to baseline distortions. Compare this scheme to the
following two alternative schemes.
#!/bin/csh
nmrPipe -in fid/test001.fid \
| nmrPipe -fn SOL \
| nmrPipe -fn SP -off 0.35 -end 0.99 -pow 2 -c 0.5 \
| nmrPipe -fn ZF -auto \
| nmrPipe -fn FT \
| nmrPipe -fn PS -p0 0.0 -p1 0.0 -di \
| nmrPipe -fn EXT -x1 5ppm -xn 10.5ppm -sw -verb \
| nmrPipe -fn TP \
| nmrPipe -fn SP -off 0.45 -end 0.95 -pow 1 \
| nmrPipe -fn ZF -auto \
| nmrPipe -fn FT \
| nmrPipe -fn PS -p0 -180 -p1 360 -di \
-out test.ps.ft2 -ov -verb
In the following scheme, the data above are processed with a
one-point shift followed by Linear Prediction to replace the
missing first point caused by the 1-dwell delay. The
right-shift also removes the need for a phase-correction.
#!/bin/csh
nmrPipe -in fid/test001.fid \
| nmrPipe -fn SOL \
| nmrPipe -fn SP -off 0.35 -end 0.99 -pow 2 -c 0.5 \
| nmrPipe -fn ZF -auto \
| nmrPipe -fn FT \
| nmrPipe -fn PS -p0 0.0 -p1 0.0 -di \
| nmrPipe -fn EXT -x1 5ppm -xn 10.5ppm -sw -verb \
| nmrPipe -fn TP \
| nmrPipe -fn ZF -pad 1 \
| nmrPipe -fn RS -rs 1 -sw \
| nmrPipe -fn LP -before -pred 1 \
| nmrPipe -fn SP -off 0.45 -end 0.95 -pow 1 \
| nmrPipe -fn ZF -auto \
| nmrPipe -fn FT \
| nmrPipe -fn PS -p0 0.0 -p1 0.0 -di \
-out test.lp.ft2 -ov -verb
In the following scheme, the data above are processed with a
one-point shift and automated zero-order baseline correc-
tion. This has the same effect as replacing the missing
first point caused by the 1-dwell delay. As noted previ-
ously, this method is often faster and more reliable than
the LP method given above.
#!/bin/csh
nmrPipe -in fid/test001.fid \
| nmrPipe -fn SOL \
| nmrPipe -fn SP -off 0.35 -end 0.99 -pow 2 -c 0.5 \
| nmrPipe -fn ZF -auto \
| nmrPipe -fn FT \
| nmrPipe -fn PS -p0 0.0 -p1 0.0 -di \
| nmrPipe -fn EXT -x1 5ppm -xn 10.5ppm -sw -verb \
| nmrPipe -fn TP \
| nmrPipe -fn ZF -pad 1 \
| nmrPipe -fn RS -rs 1 -sw \
| nmrPipe -fn SP -off 0.45 -end 0.95 -pow 1 \
| nmrPipe -fn ZF -auto \
| nmrPipe -fn FT \
| nmrPipe -fn PS -p0 0.0 -p1 0.0 -di \
| nmrPipe -fn POLY -auto -ord 0 \
-out test.poly.ft2 -ov -verb
Both of the above two schemes increase the time-domain size
by one point. This can sometimes be awkward; on the one
hand, it is desirable to double the data size by zero fil-
ling; if this is done, an HT can be used later to recon-
struct imaginary data if needed. In addition, it is also
desirable to zero fill to yield a data size which is a power
of two, so that the following FT steps will operate most
quickly, since FT of other data sizes can be extremely slow.
There are several possible compromises, which follow. The
examples are based on an original time-domain size of 32
complex points. In the first example, the time-domain size
is increased by 1 point to 33 points, and the zero fill
options double the size then round it up to the nearest
power of two, yielding a spectrum of 128 points. Since the
data size was more than doubled by ZF, this scheme permits
accurate reconstruction of imaginary data later if needed.
But, since the data size is rounded up to a power of two, in
some cases this scheme may make the result inconveniently
large:
| nmrPipe -fn ZF -pad 1 \
| nmrPipe -fn RS -rs 1 -sw \
| nmrPipe -fn LP -before -pred 1 \
| nmrPipe -fn SP -off 0.45 -end 0.95 -pow 1 \
| nmrPipe -fn ZF -auto \
| nmrPipe -fn FT \
In the example, the time-domain size is not increased by one
point; instead, the last point of the original data is lost
during the right-shift.
| nmrPipe -fn RS -rs 1 -sw \
| nmrPipe -fn LP -before -pred 1 \
| nmrPipe -fn SP -off 0.45 -end 0.95 -pow 1 \
| nmrPipe -fn ZF -auto \
| nmrPipe -fn FT \
In this example, the data size is increased by one point to
33 points, then doubled by zero fill but not rounded to a
power of two, so that the final size is 66 points. Since
the data size was doubled by ZF, this scheme permits accu-
rate reconstruction of imaginary data later if needed. But
the FT time may be inconveniently slow.
| nmrPipe -fn ZF -pad 1 \
| nmrPipe -fn RS -rs 1 -sw \
| nmrPipe -fn LP -before -pred 1 \
| nmrPipe -fn SP -off 0.45 -end 0.95 -pow 1 \
| nmrPipe -fn ZF \
| nmrPipe -fn FT \
In this example, the data size is increased by one point to
33 points, but zero filled only to 64 points. Since this
scheme does not double the data size by ZF, imaginary data
cannot be reconstructed perfectly later if needed. But, the
final size has the advantage of being relatively small, and
also a power of two.
| nmrPipe -fn ZF -pad 1 \
| nmrPipe -fn RS -rs 1 -sw \
| nmrPipe -fn LP -before -pred 1 \
| nmrPipe -fn SP -off 0.45 -end 0.95 -pow 1 \
| nmrPipe -fn ZF -size 64 \
| nmrPipe -fn FT \
The following script demonstrates an LP scheme which was
used to repair bad 1D vectors in a 2D States-Mode FID. The
defects occurred in 1D vectors 9-12 in the raw data, which
contained 128 total 1D vectors (64 complex points in the Y-
Axis). The defects were found by graphical inspection of
the FID using the nmrDraw program. Since the 1D vectors in
the FID represent interleaved real and imaginary points, the
bad vectors correspond to complex points 5 and 6 in the Y-
Axis. Since the bad points lie near the beginning of the
FID, LP is used in the -before mode, to predict the two bad
points before the good points 7-64. Note: to find the com-
plex point corresponding to interleaved point N, use the
formula int[(N-1)/2] + 1.
#!/bin/csh
nmrPipe -in hcabgco2d.fid \
| nmrPipe -fn GM -g1 10 -g2 30 -c 0.5 \
| nmrPipe -fn ZF -size 1024 \
| nmrPipe -fn FT \
| nmrPipe -fn PS -p0 206.4 -p1 0.0 \
| nmrPipe -fn EXT -x1 1.0ppm -xn 6.0ppm -sw -verb \
| nmrPipe -fn PS -p0 0 -p1 0 -di \
| nmrPipe -fn TP \
| nmrPipe -fn LP -before -x1 7 -pred 2 -ord 16 \
| nmrPipe -fn GM -g1 10 -g2 30 \
| nmrPipe -fn ZF -size 512 \
| nmrPipe -fn FT \
| nmrPipe -fn PS -p0 217 -p1 159 -di \
| nmrPipe -fn TP \
| nmrPipe -fn POLY -auto \
-out hcabgco2d.ft2 -verb -ov
The following scheme demonstrates LP used to repair bad data
planes within a 3D spectrum. In this example, planes 58 and
59 in the original FID were corrupted during acquisition.
The complete FID consisted of 64 planes. Since the FID
planes represent alternating real and imaginary points in
the Z-Axis, plane 58 corresponds to the imaginary part of
complex point 29, and plane 59 corresponds to the real part
of complex point 30. Therefore, points 29 and 30 must be
replaced in the Z-Axis. In this case, since the bad data is
towards the end of the FID, LP is used in the -after mode
(default), to replace the two bad points after points 1-28.
Note that the LP is not applied until after the other dimen-
sions have been transformed.
#!/bin/csh
xyz2pipe -in fid/test%03d.fid -x -verb \
| nmrPipe -fn SP -off .35 -end .95 -pow 2 -c 0.5 \
| nmrPipe -fn ZF -auto \
| nmrPipe -fn FT \
| nmrPipe -fn PS -p0 -112.0 -p1 0.0 -di \
| nmrPipe -fn TP \
| nmrPipe -fn SP -off .35 -end 1.0 -pow 1 -c 1.0 \
| nmrPipe -fn ZF -auto \
| nmrPipe -fn FT \
| nmrPipe -fn PS -p0 -90.0 -p1 180.0 -di \
| nmrPipe -fn TP \
| nmrPipe -fn POLY -auto \
| pipe2xyz -out ft/test%03d.ft2 -x -ov
xyz2pipe -in ft/test%03d.ft2 -z -verb \
| nmrPipe -fn LP -xn 28 -pred 2 -ord 12 \
| nmrPipe -fn SP -off .35 -end 1.0 -pow 1 -c 1.0 \
| nmrPipe -fn ZF -auto \
| nmrPipe -fn FT \
| nmrPipe -fn PS -p0 -90.0 -p1 180.0 -di \
| pipe2xyz -out ft/test%03d.ft3 -z -ov
The following scheme illustrates LP used in the two indirect
dimensions of a constant-time 3D CBCANH experiment. The
scheme is arranged so that the 1D time-domain vectors to be
extended by LP are as simple as possible (i.e. have the
fewest possible signals). To achieve this, LP is only used
on a given dimension when all the remaining dimensions have
been processed. This localizes the spectral signals as much
as possible, since in the time-domain, a given signal can
extend significantly across the spectrum, but in the
frequency-domain the signal will be "concentrated" into a
peak.
In this example, the HN and N dimensions are transformed,
then the CACB dimension is Linear Predicted and then
transformed. Finally, the N dimension is inverse
transformed, Linear Predicted, then re-transformed. Note
the use of "-inv" to undo the effects of not only the
Fourier Transform, but also the phasing (if any), the zero
filling, and the window function. Note also that the
forward-backward LP option -fb could be used as an alterna-
tive to the mirror-image options -ps0-0 and -ps90-180:
#!/bin/csh
xyz2pipe -in fid/test%03d.fid -x -verb \
| nmrPipe -fn SOL \
| nmrPipe -fn SP -off 0.5 -end 0.98 -pow 2 -c 0.5 \
| nmrPipe -fn ZF -auto \
| nmrPipe -fn FT \
| nmrPipe -fn PS -p0 43 -p1 0.0 -di \
| nmrPipe -fn EXT -left -sw \
| pipe2xyz -out lp/test%03d.ft3 -x
xyz2pipe -in lp/test%03d.ft3 -z -verb \
| nmrPipe -fn SP -off 0.5 -end 0.95 -pow 1 -c 0.5 \
| nmrPipe -fn ZF -auto \
| nmrPipe -fn FT \
| nmrPipe -fn PS -p0 0.0 -p1 0.0 -di \
| pipe2xyz -out lp/test%03d.ft3 -z -inPlace
xyz2pipe -in lp/test%03d.ft3 -y -verb \
| nmrPipe -fn LP -ps90-180 -ord 10 \
| nmrPipe -fn SP -off 0.5 -end 0.98 -pow 1 -c 1.0 \
| nmrPipe -fn ZF -auto \
| nmrPipe -fn FT \
| nmrPipe -fn PS -p0 -90 -p1 180 -di \
| pipe2xyz -out lp/test%03d.ft3 -y -inPlace
xyz2pipe -in lp/test%03d.ft3 -z -verb \
| nmrPipe -fn HT -auto \
| nmrPipe -fn PS -inv -hdr \
| nmrPipe -fn FT -inv \
| nmrPipe -fn ZF -inv \
| nmrPipe -fn SP -inv -hdr \
| nmrPipe -fn LP -ps0-0 \
| nmrPipe -fn SP -hdr \
| nmrPipe -fn ZF -auto \
| nmrPipe -fn FT \
| nmrPipe -fn PS -hdr -di \
| pipe2xyz -out lp/test%03d.ft3 -z -inPlace
SEE ALSO
nmrPipe(1), xyz2pipe(1), fdatap(1), HT(1), POLY(1), RS(1),
SP(1), ZF(1)
HEADER VALUES
LP updates the recorded time-domain sizes (NDAPOD and
NDTDSIZE), so that window functions applied after data
extension via LP will automatically extend to the correct
number of points to cover both the original data and the
predicted points.
LP also updates some chemical shift calibration information
(NDCENTER and NDORIG) to accommodate the new position of the
zero-frequency point which is anticipated for the
corresponding spectrum.
BUGS
LP used in the -before mode will not increase the data size
automatically. This may change in future implementations.
Using LP to back-predicting missing or distorted points at
the start of an FID is often unreliable.
LP is often not effective on data with many signals, data
with high dynamic range, data with low signal-to-noise
ratios, or heavily damped data.