/**********************************************************************
predlms()
***********************************************************************
This star implements a multichannel input/output FIR predictor, which
is adapted using the power normalized LMS algorithm.
It can be used as an equalizer, FSE, DFE, or echo canceller.
An arbitrary number p input channels are transversal filtered
to produce an arbitrary number q output estimate signals.
Note: each output buffer connected to this star implies a separate
output channel, and identically numbered error input channel.
Input signal channels are then connected to higher numbered buffers.
It is assumed that the estimate error is computed externally.
Do NOT implement an external (causality) unit-delay from
output estimate to input error; this delay is handled automatically.
Param. 1 - Name of ASCII input specification file. Filter orders
and initial tap values are given. default => prfile
The proper specification file format is:
(int) # output channels, q
(int) # input channels, p
(int) order of in ch.#1 . . . (int) order of in ch.#p
(float) ch.#1, tap 1 . . . (float) ch.#1, tap last
. {output ch.1}
.
(float) ch.#p, tap 1 . . . (float) ch.#p, tap last
.
.
.
(float) ch.#1, tap 1 . . . (float) ch.#1, tap last
. {output ch.q}
.
(float) ch.#p, tap 1 . . . (float) ch.#p, tap last
Param. 2 - Name of output file, for final adapted filter values.
default => prfileo. The file is written in proper
input-file format. This file can then be used to initialize
the filter for the next run, if desired.
It is assumed that each output prediction filter will create one
estimate output for EACH input sample/error sample pair.
Any decimation, etc. must occur externally.
Param. 3 - (float) lambda. It is a multiplicative factor to
control adaptation rate. default => 1.0
Param. 4 - (float) delta. Tap leakage factor. default => 1.0
Default implies no tap leakage occurs.
5 - (int) wait. number of samples to skip before starting
adaptation. The predictor still inputs samples, and
outputs a zero estimate. default => 0
6 - (int) adapt. number of samples to adapt filter. After
this number, filter taps are fixed, and estimates are still
produced. default => -1 (implies always adapt)
predlms
This star implements a multichannel input/output FIR predictor, which
is adapted using the power normalized LMS algorithm.
It can be used as an equalizer, FSE, DFE, or echo canceller.
An arbitrary number p input channels are transversal filtered
to produce an arbitrary number q output estimate signals.
Note: each output buffer connected to this star implies a separate
output channel, and identically numbered error input channel.
Input signal channels are then connected to higher numbered buffers.
It is assumed that the estimate error is computed externally.
Do NOT implement an external (causality) unit-delay from
output estimate to input error; this delay is handled automatically.
Param. 1 - Name of ASCII input specification file. Filter orders
and initial tap values are given. default => prfile
The proper specification file format is:
(int) # output channels, q
(int) # input channels, p
(int) order of in ch.#1 . . . (int) order of in ch.#p
(float) ch.#1, tap 1 . . . (float) ch.#1, tap last
. {output ch.1}
.
(float) ch.#p, tap 1 . . . (float) ch.#p, tap last
.
.
.
(float) ch.#1, tap 1 . . . (float) ch.#1, tap last
. {output ch.q}
.
(float) ch.#p, tap 1 . . . (float) ch.#p, tap last
Param. 2 - Name of output file, for final adapted filter values.
default => prfileo. The file is written in proper
input-file format. This file can then be used to initialize
the filter for the next run, if desired.
It is assumed that each output prediction filter will create one
estimate output for EACH input sample/error sample pair.
Any decimation, etc. must occur externally.
Param. 3 - (float) lambda. It is a multiplicative factor to
control adaptation rate. default => 1.0
Param. 4 - (float) delta. Tap leakage factor. default => 1.0
Default implies no tap leakage occurs.
5 - (int) wait. number of samples to skip before starting
adaptation. The predictor still inputs samples, and
outputs a zero estimate. default => 0
6 - (int) adapt. number of samples to adapt filter. After
this number, filter taps are fixed, and estimates are still
produced. default => -1 (implies always adapt)
Programmer: L.J. Faber
Date: April 1988
Modified: May 1988 add multichannel output
Modified: June 1988 estimate-referenced prediction energy
Modified: Aug 1988 est. input power. new parameter delta.
Modified: Sept 1988 add parameters 5,6 and associated.
*/