next up previous print clean
Next: Comparison of Wilson-Burg and Up: Multidimensional recursive filter preconditioning Previous: Multidimensional recursive filter preconditioning

Wilson-Burg spectral factorization

Spectral factorization constructs a minimum-phase signal from its spectrum. The algorithm, suggested by (), approaches this problem directly with Newton's iterative method. In a Z-transform notation, Wilson's method implies solving the equation  
 \begin{displaymath}
S(Z) = A(Z)\bar{A}(1/Z)\end{displaymath} (7)
for a given spectrum S(Z) and unknown minimum-phase signal A(Z) with an iterative linearization
   \begin{eqnarray}
\nonumber
S(Z) & = & A_t(Z)\bar A_t(1/Z)+
 A_t( Z)[\bar A_{t+1}...
 ...bar A_{t+1}(1/Z) + \bar A_t(1/Z) A_{t+1}
- A_t(Z)\bar A_t(1/Z)
\;,\end{eqnarray}
(8)
where At(Z) denotes the signal estimate at iteration t. Starting from some initial estimate A0(Z), such as A0(Z)=1, one iteratively solves the linear equation (8) for the updated signal At+1(Z). Wilson presents a rigorous proof that iteration (8) operates with minimum-phase signals provided that the initial estimate A0(Z) is minimum-phase.

Burg (1998, personal communication) recognized that dividing both sides of equation (8) by $\bar A_t(1/Z) A_t(Z)$ leads to a particularly convenient form, where the terms on the left are symmetric, and the two terms on the right are correspondingly strictly causal and anticausal:  
 \begin{displaymath}
1 \ +\ {S(Z) \over \bar A_t(1/Z)\ A_t(Z)} =
{A_{t+1}(Z) \over A_t(Z)}
\ +\
{\bar A_{t+1}(1/Z) \over \bar A_t(1/Z)}\end{displaymath} (9)

Equation (9) leads to the Wilson-Burg algorithm, which accomplishes spectral factorization by a recursive application of convolution (polynomial multiplication) and deconvolution (polynomial division). The algorithm proceeds as follows:

1.
Compute the left side of equation (9) using forward and adjoint polynomial division.
2.
Abandon negative lags, to keep only the causal part of the signal, and also keep half of the zero lag. This gives us At+1(Z)/At(Z).
3.
Multiply out (convolve) the denominator At(Z). Now we have the desired result At+1(Z).
4.
Iterate until convergence.


 
Table 1: Example convergence of the Wilson-Burg iteration
iter a0 a1 a2 a3
  1.000000 0.000000 0.000000 0.000000
1 36.523964 23.737839 6.625787 0.657103
2 26.243151 25.726116 8.471050 0.914951
3 24.162354 25.991493 8.962727 0.990802
4 24.001223 25.999662 9.000164 0.999200
5 24.000015 25.999977 9.000029 0.999944
6 23.999998 26.000002 9.000003 0.999996
7 23.999998 26.000004 9.000001 1.000000
8 23.999998 25.999998 9.000000 1.000000
9 24.000000 26.000000 9.000000 1.000000

An example of the Wilson-Burg convergence is shown in Table 1 on a simple 1-D signal. The autocorrelation S(Z) in this case is $1334 + 867 \left(Z + 1/Z\right) + 242
\left(Z^2 + 1/Z^2\right) + 24 \left(Z^3 + 1/Z^3\right)$, and the corresponding minimum-phase signal is A(Z) = (2+Z)(3+Z)(4+Z) = 24 + 26 Z + 9 Z2 + Z3. A quadratic rate of convergence is visible from the table. The convergence slows down for signals whose polynomial roots are close to the unit circle ().



 
next up previous print clean
Next: Comparison of Wilson-Burg and Up: Multidimensional recursive filter preconditioning Previous: Multidimensional recursive filter preconditioning
Stanford Exploration Project
12/30/2000