Fast Transient Imaging
A Python framework revolving around reconstruction of impulse responses from AMCW lidar measurements.
LevinsonAlgorithm.fx File Reference
#include "ComplexAlgebra.fx"
Include dependency graph for LevinsonAlgorithm.fx:
This graph shows which files directly or indirectly include this file:

Macros

#define TOEPLITZ_SIZE   2
 
#define TOEPLITZ_SIZE   3
 
#define TOEPLITZ_SIZE   4
 
#define TOEPLITZ_SIZE   5
 
#define TOEPLITZ_SIZE   6
 
#define TOEPLITZ_SIZE   7
 
#define TOEPLITZ_SIZE   8
 
#define TOEPLITZ_SIZE   9
 

Functions

void SolveCanonicalToeplitzEquation (out float2 OutSolution[TOEPLITZ_SIZE], float2 FirstColumn[TOEPLITZ_SIZE])
 

Detailed Description

This header implements Levinson's algorithm.

Macro Definition Documentation

#define TOEPLITZ_SIZE   2
#define TOEPLITZ_SIZE   3
#define TOEPLITZ_SIZE   4
#define TOEPLITZ_SIZE   5
#define TOEPLITZ_SIZE   6
#define TOEPLITZ_SIZE   7
#define TOEPLITZ_SIZE   8
#define TOEPLITZ_SIZE   9

Function Documentation

void SolveCanonicalToeplitzEquation ( out float2  OutSolution[TOEPLITZ_SIZE],
float2  FirstColumn[TOEPLITZ_SIZE] 
)

This function solves a special system of linear equations. The equations are defined by a hermitean Toeplitz matrix. The right hand side of the equations is defined by the first canonical basis vector, i.e. the equation defined by the first row has to yield one and all other equations have to yield zero.

Parameters
OutSolutionThe solution to the system of linear equations. This is a column vector holding complex values.
FirstColumnThis array has to provide the complex entries of the first column of the Toeplitz matrix. Since the matrix is hermitean and Toeplitz all other entries follow. Note that the first entry in this array must be real, i.e. FirstColumn[0].y==0.0f.
Note
The function implements the Levinson algorithm and takes time O(TOEPLITZ_SIZE*TOEPLITZ_SIZE).