Engee documentation

Levinson-Durbin

Solving a system of linear equations using Levinson—Durbin recursion.

blockType: LevinsonDurbin

Path in the library:

/Signal Operations/Math Functions/Matrices and Linear Algebra/Linear System Solvers/Levinson-Durbin

Description

Block Levinson-Durbin solves a system of linear equations - th order

Where

  • — Hermitian positive definite Toeplitz matrix;

  • — matches the first column , shifted by one element and having the opposite sign:

    .

The unit can output polynomial coefficients A, reflection coefficients K and prediction error power P in various combinations.

Application

One of the applications of the Levinson—Durbin formula implemented in this block is the autoregressive (AR) Yule—Walker problem, which consists in modeling an unknown system as an AR process. Such a process can be modeled as the output of an all-pole IIR filter with white Gaussian noise at the input. In the Yule—Walker problem, the usage of the autocorrelation sequence of the signal to obtain an optimal estimate leads to the equation of the above kind, which is most efficiently solved using Levinson—Durbin recursion. In this case, the block input is an autocorrelation sequence, and — A value with zero delay. The output signal on the A port of the block contains the coefficients of the AP process that optimally simulates the system. The coefficients are ordered in descending order of degrees , and the AR process itself has a minimum phase. Prediction error determines the gain for an unknown system:

The output signal on port K contains the corresponding reflection coefficients for the lattice implementation of this IIR filter.

Another common application of the Levinson—Durbin algorithm is linear predictive coding, the purpose of which is to find the coefficients of the moving average (CC) process (or FIR filter) predicting the next signal value based on the current signal sample and a finite number of past samples. In this case, the input of the block is an autocorrelation sequence of the signal, where — a value with zero delay, and the output on port A contains the coefficients of the predictive MA process (in descending order of degree ).

These coefficients solve the following optimization problem:

б

The output K contains the corresponding reflection coefficients, , for the lattice implementation of this FIR filter.

The algorithm

The algorithm requires operations for each input signal. Therefore, this implementation for large much more efficient than the standard Gaussian elimination method, requiring operations for each signal.

Ports

Input

# IN_1 — The input signal
vector | the matrix

Details

Block entry , specified as a vector or matrix. If there is a matrix at the input, then the block considers each column as an independent channel and solves it separately. Each input channel contains delays of the autocorrelation sequence from before which are present in the matrix .

Data types

Float32, Float64, Int8, Int16, Int32

Complex numbers support

No

Output

# K — reflection coefficients
vector | the matrix

Details

Reflection coefficients , returned as a vector or matrix. The output K has the same dimension as the input IN_1, minus one element.

For each channel, port K outputs , which contains reflection coefficients.

The scalar input signal causes an error when using the K port. Reflection coefficients can be used to implement a lattice representation of the AR process. For more information, see Application.

Dependencies

To use this port, set the parameter Output(s) meaning K or A and K.

Data types

Float32, Float64, Int8, Int16, Int32

Complex numbers support

No

# A — the coefficient model
vector | the matrix

Details

The coefficient model , returned as a vector or matrix. The output A has the same dimension as the input IN_1

For each channel, port A outputs is the solution of the Levinson—Durbin equation. The elements of each output signal can also be considered as coefficients of the AR process. - th order.

Dependencies

To use this port, set the parameter Output(s) meaning A or A and K.

Data types

Float32, Float64, Int8, Int16, Int32

Complex numbers support

No

# P — prediction error power
vector

Details

Prediction error output power , returned as a vector of length equal to the number of input channels. Each element of the vector represents the prediction error power for each channel.

For each channel represents the output power of the FIR filter with coefficients and the input autocorrelation described by , where it is a predictive error filter, and — block entrance. In this case — this is a bleaching filter. contains one element for each input channel.

Dependencies

To use this port, check the box Output prediction error power (P).

Data types

Float32, Float64, Int8, Int16, Int32

Complex numbers support

No

Parameters

Main

# Output(s) — type of data output
A and K | A | K

Details

Specify which representation of the solution output should be:

  • A — for each signal, port A outputs is the solution of the Levinson—Durbin equation. A has the same dimension as the input. The elements of each output signal can also be considered as coefficients of the AR process. - th order.

  • K — for each signal, port K outputs , which contains reflection coefficients and has the same dimension as the input, minus one element. A scalar input signal causes a selection error. K. Reflection coefficients can be used to implement a lattice representation of the AR process.

  • A and K — the block outputs both options to the corresponding ports. A scalar input signal causes an error when selecting a value A and K.

If the input is a scalar or a string vector, you must set this parameter to A.

Values

A and K | A | K

Default value

K

Program usage name

Outputs

Tunable

No

Evaluatable

No

# Output prediction error power (P) — output the power of the prediction error
Logical

Details

Select the Output prediction error power (P) checkbox to output the prediction error power for each signal to port P. For each signal, P represents the output power of the FIR filter with coefficients A and input autocorrelation r, where A represents the prediction error filter and r is the input of the block. In this case, A is a separation filter. P has one element for each input signal.

Default value

false (switched off)

Program usage name

OutputPredictionErrorPower

Tunable

No

Evaluatable

No

# If the value of lag 0 is zero, A=[1 zeros], K=[zeros],P=0 — the behavior of the block when the first entry element is zero
Logical

Details

If the checkbox is checked and the first entry element is selected , then the block outputs the following vectors, respectively:

  • ;

  • ;

  • .

If you uncheck this box, then for each signal for which the element , the block outputs a vector NaN.

Default value

true (switched on)

Program usage name

IfValueOfLag

Tunable

No

Evaluatable

No

Literature

  1. Golub, G. H. and C. F. Van Loan. Sect. 4.7 in Matrix Computations. 3rd ed. Baltimore, MD: Johns Hopkins University Press, 1996.

  2. Ljung, L. System Identification: Theory for the User. Englewood Cliffs, NJ: Prentice Hall, 1987. Pgs. 278–280.

  3. Kay, Steven M. Modern Spectral Estimation: Theory and Application. Englewood Cliffs, NJ: Prentice Hall, 1988.