Creates an FIR filter that can be used as a Wiener filter; single precision.
- iOS 4.0+
- macOS 10.4+
- Mac Catalyst 13.0+
- tvOS 9.0+
- watchOS 2.0+
Desired FIR filter length.
Single-precision real input vector: autocorrelation of a given signal.
Single-precision real input vector: cross-correlation of signal and observation.
Single-precision real output vector: FIR filter.
Single-precision real output vector: performance index. See Discussion below.
Not currently used, pass zero.
Performs the following operation:
to solve a set of single-channel normal equations described by:
where matrix A contains elements of the symmetric Toeplitz matrix shown below. This function can only be done out of place.
Note that A[-n] is considered to be equal to A[n].
v solves this set of simultaneous equations using a recursive method described by Levinson. See Robinson, E.A., Multichannel Time Series Analysis with Digital Computer Programs. San Francisco: Holden-Day, 1967, pp. 43-46.
Typical methods for solving N equations in N unknowns have execution times proportional to N3, and memory requirements proportional to N2. By taking advantage of duplicate elements, the recursion method executes in a time proportional to N2 and requires memory proportional to N. The Wiener-Levinson algorithm recursively builds a solution by computing the m+1 matrix solution from the m matrix solution.
With successful completion,
v returns zero in error flag
IERR indicates in which pass the failure occurred.
The solution, left in F, can be used as a Wiener filter.