BACKGROUND OF THE INVENTION

[0001]
We disclose a new method and apparatus for encoding and decoding signals and for performing high resolution spectral estimation. Many devices used in communications employ such devices for data compression, data transmission and for the analysis and processing of signals. The basic capabilities of the invention pertain to all areas of signal processing, especially for spectral analysis based on short data records or when increased resolution over desired frequency bands is required. One such filter frequently used in the art is the Linear Predictive Code (LPC) filter. Indeed, the use of LPC filters in devices for digital signal processing (see, e.g., U.S. Pat. Nos. 4,209,836 and 5,048,088 and D. Quarmby, Signal Processing Chips, Prentice Hall, 1994, and L. R. Rabiner, B. S. Atal, and J. L. Flanagan, Current methods of digital speech processing, Selected Topics in Signal Processing (S. Haykin, editor), Prentice Hall, 1989, 112132) is pertinent prior art to the alternative which we shall disclose.

[0002]
We now describe this available art, the difference between the disclosed invention and this prior art, and the principal advantages of the disclosed invention. FIG. 1 depicts the power spectrum of a sample signal, plotted in logarithmic scale.

[0003]
We have used standard methods known to those of ordinary skill in the art to develop a 4th order LPC filter from a finite window of this signal. The power spectrum of this LPC filter is depicted in FIG. 2.

[0004]
One disadvantage of the prior art LPC filter is that its power spectral density cannot match the “valleys,” or “notches,” in a power spectrum, or in a periodogram. For this reason encoding and decoding devices for signal transmission and processing which utilize LPC filter design result in a synthesized signal which is rather “flat,” reflecting the fact that the LPC filter is an “allpole model.” Indeed, in the signal and speech processing literature it is widely appreciated that regeneration of human speech requires the design of filters having zeros, without which the speech will sound flat or artificial; see, e.g., [C. G. Bell, H. Fujisaaki, J. M. Heinz, K. N. Stevons and A. S. House, Reduction of Speech Spectra by AnalysisbySynthesis Techniques, J. Acoust. Soc. Am. 33 (1961), page 1726], [J. D. Markel and A. H. Gray, Linear Prediction of Speech, Springer Verlag, Berlin, 1976, pages 271272], [L. R. Rabiner and R. W. Schafer, Digital Processing of Speech Signals, PrenticeHall, Englewood Cliffs, N.J., 1978, pages 105, 7678]. Indeed, while all pole filters can reproduce much of human speech sounds, the acoustic theory teaches that nasals and fricatives require both zeros and poles [J. D. Markel and A. H. Gray, Linear Prediction of Speech, Springer Verlag, Berlin, 1976, pages 271272], [L. R. Rabiner and R. W. Schafer, Digital Processing of Speech Signals, PrenticeHall, Englewood Cliffs, N.J., 1978, page 105]. This is related to the technical fact that the LPC filter only has poles and has no transmission zeros. To say that a filter has a transmission zero at a frequency ζ is to say that the filter, or corresponding circuit, will absorb damped periodic signals which oscillate at a frequency equal to the phase of ζ and with a damping factor equal to the modulus of ζ. This is the wellknown blocking property of transmission zeros of circuits, see for example [L. O. Chua, C. A. Desoer and E. S. Kuh, Linear and Nonlinear Circuits, McGrawHill, 1989, page 659]. This is reflected in the fact, illustrated in FIG. 2, that the power spectral density of the estimated LPC filter will not match the power spectrum at “notches,” that is, frequencies where the observed signal is at its minimum power. Note that in the same figure the true power spectrum is indicated by a dotted line for comparison.

[0005]
Another feature of linear predictive coding is that the LPC filter reproduces a random signal with the same statistical parameters (covariance sequence) estimated from the finite window of observed data. For longer windows of data this is an advantage of the LPC filter, but for short data records relatively few of the terms of the covariance sequence can be computed robustly. This is a limiting factor of any filter which is designed to match a window of covariance data. The method and apparatus we disclose here incorporates two features which are improvements over these prior art limitations: The ability to include “notches” in the power spectrum of the filter, and the design of a filter based instead on the more robust sequence of first covariance coefficients obtained by passing the observed signal through a bank of first order filters. The desired notches and the sequence of (firstorder) covariance data uniquely determine the filter parameters. We refer to such a filter as a tunable high resolution estimator, or THREE filter, since the desired notches and the natural frequencies of the bank of first order filters are tunable. A choice of the natural frequencies of the bank of filters correspond to the choice of a band of frequencies within which one is most interested in the power spectrum, and can also be automatically tuned. FIG. 3 depicts the power spectrum estimated from a particular choice of 4th order THREE filter for the same data used to generate the LPC estimate depicted in FIG. 2, together with the true power spectrum, depicted in FIG. 1, which is marked with a dotted line.

[0006]
We expect that this invention will have application as an alternative for the use of LPC filter design in other areas of signal processing and statistical prediction. In particular, many devices used in communications, radar, sonar and geophysical seismology contain a signal processing apparatus which embodies a method for estimating how the total power of a signal, or (stationary) data sequence, is distributed over frequency, given a finite record of the sequence. One common type of apparatus embodies spectral analysis methods which estimate or describe the signal as a sum of harmonics in additive noise [P. Stoica and R. Moses, Introduction to Spectral Analysis, PrenticeHall, 1997, page 139]. Traditional methods for estimating such spectral lines are designed for either white noise or no noise at all and can illustrate the comparative effectiveness of THREE filters with respect to both nonparametric and parametric based spectral estimation methods for the problem of line spectral estimation. FIG. 4 depicts five runs of a signal comprised of the superposition of two sinusoids with colored noise, the number of sample points for each being 300. FIG. 5 depicts the five corresponding periodograms computed with stateoftheart windowing technology. The smooth curve represents the true power spectrum of the colored noise, and the two vertical lines the position of the sinusoids.

[0007]
[0007]FIG. 6 depicts the five corresponding power spectra obtained through LPC filter design, while FIG. 7 depicts the corresponding power spectra obtained through the THREE filter design. FIGS. 8, 9 and 10 show similar plots for power spectra estimated using stateoftheart periodogram, LPC, and our invention, respectively. It is apparent that the invention disclosed herein is capable of resolving the two sinusoids, clearly delineating their position by the presence of two peaks. We also disclose that, even under ideal noise conditions the periodogram cannot resolve these two frequencies. In fact, the theory of spectral analysis [P. Stoica and R. Moses, Introduction to Spectral Analysis, PrenticeHall, 1997, page 33] teaches that the separation of the sinusoids is smaller than the theoretically possible distance that can be resolved by the periodogram using a 300 point record under ideal noise conditions, conditions which are not satisfied here. This example represents a typical situation in applications.

[0008]
The broader technology of the estimation of sinusoids in colored noise has been regarded as difficult [B. Porat, Digital Processing of Random Signals, PrenticeHall, 1994, pages 285286]. The estimation of sinusoids in colored noise using autoregressive movingaverage filters, or ARMA models, is desirable in the art. As an ARMA filter, the THREE filter therefore possesses “superresolution” capabilities [P. Stoica and R. Moses, Introduction to Spectral Analysis, PrenticeHall, 1997, page 136].

[0009]
We therefore disclose that the THREE filter design leads to a method and apparatus, which can be readily implemented in hardware or hardware/software with ordinary skill in the art of electronics, for spectral estimation of sinusoids in colored noise. This type of problem also includes time delay estimation [M. A. Hasan and M. R. AsimiSadjadi, Separation of multiple time delays in using new spectral estimation schemes, IEEE Transactions on Signal Processing 46 (1998), 26182630] and detection of harmonic sets [M. Zeytino{haeck over (g)}lu and K. M. Wong, Detection of harmonic sets, IEEE Transactions on Signal Processing 43 (1995), 26182630], such as in identification of submarines and aerospace vehicles. Indeed, those applications where tunable resolution of a THREE filter will be useful include radar and sonar signal analysis, and identification of spectral lines in dopplerbased applications [P. Stoica and R. Moses, Introduction to Spectral Analysis, PrenticeHall, 1997, page 248]. Other areas of potential importance include identification of formants in speech, data decimation [M. A. Hasan and M. R. AzimiSadjadi, Separation of multiple time delays using new spectral estimation schemes, IEEE Transactions on Signal Processing 46 (1998), 26182630], and nuclear magnetic resonance.

[0010]
We also disclose that the basic invention could be used as a part of any system for speech compression and speech processing. In particular, in certain applications of speech analysis, such as speaker verification and speech recognition, high quality spectral analysis is needed [Joseph P. Campbell, Jr., Speaker Recognition: A tutorial, Proceedings of the IEEE 85 (1997), 14361463], [Jayant M. Naik, Speaker Verification: A tutorial, IEEE Communications Magazine, January 1990, 4248], [Sadaoki Furui, Recent advances in Speaker Recognition, Lecture Notes in Computer Science 1206, 1997, 237252], [Hiroaki Sakoe and Seibi Chiba, Dynamic Programming Altorithm Optimization for Spoken Word Recognition, IEEE Transactions on Acoustics, Speech and Signal Processing ASSP26 (1978), 4349]. The tuning capabilities of the device should prove especially suitable for such applications. The same holds for analysis of biomedical signals such as EMG and EKG signals.
BRIEF DESCRIPTION OF THE DRAWINGS

[0011]
[0011]FIG. 1 is a graphical representation of the power spectrum of a sample signal;

[0012]
[0012]FIG. 2 is a graphical representation of the spectral estimate of the sample signal depicted in FIG. 1 as best matched with an LPC filter;

[0013]
[0013]FIG. 3 is a graphical representation of the spectral estimate of the sample signal with true spectrum shown in FIG. 1 (and marked with dotted line here for comparison), as produced with the invention;

[0014]
[0014]FIG. 4 is a graphical representation of five sample signals comprised of the superposition of two sinusoids with colored noise;

[0015]
[0015]FIG. 5 is a graphical representation of the five periodograms corresponding to the sample signals of FIG. 4;

[0016]
[0016]FIG. 6 is a graphical representation of the five corresponding power spectra obtained through LPC filter design for the five sample signals of FIG. 4;

[0017]
[0017]FIG. 7 is a graphical representation of the five corresponding power spectra obtained through the invention filter design;

[0018]
[0018]FIG. 8 is a graphical representation of a power spectrum estimated from a time signal with two closely spaced sinusoids (marked by vertical lines), using periodogram;

[0019]
[0019]FIG. 9 is a graphical representation of a power spectrum estimated from a time signal with two closely spaced sinusoids (marked by vertical lines), using LPC design;

[0020]
[0020]FIG. 10 is a graphical representation of a power spectrum estimated from a time signal with two closely spaced sinusoids (marked by vertical lines), using the invention;

[0021]
[0021]FIG. 11 is a schematic representation of a latticeladder filter in accordance with the present invention;

[0022]
[0022]FIG. 12 is a block diagram of a signal encoder portion of the present invention;

[0023]
[0023]FIG. 13 is a block diagram of a signal synthesizer portion of the present invention;

[0024]
[0024]FIG. 14 is a block diagram of a spectral analyzer portion of the present invention;

[0025]
[0025]FIG. 15 is a block diagram of a bank of filters, preferably first order filters, as utilized in the encoder portion of the present invention;

[0026]
[0026]FIG. 16 is a graphical representation of a unit circle indicating the relative location of poles for one embodiment of the present invention;

[0027]
[0027]FIG. 17 is a block diagram depicting a speaker verification enrollment embodiment of the present invention;

[0028]
[0028]FIG. 18 is a block diagram depicting a speaker verification embodiment of the present invention;

[0029]
[0029]FIG. 19 is a block diagram of a speaker identification embodiment of the present invention;

[0030]
[0030]FIG. 20 is a block diagram of a dopplerbased speed estimator embodiment of the present invention; and

[0031]
[0031]FIG. 21 is a block diagram for a time delay estimator embodiment of the present invention.

[0032]
The present invention of a THREE filter design retains two important advantages of linear predictive coding. The specified parameters (specs) which appear as coefficients (linear prediction coefficients) in the mathematical description (transfer function) of the LPC filter can be computed by optimizing a (convex) entropy functional. Moreover, the circuit, or integrated circuit device, which implements the LPC filter is designed and fabricated using ordinary skill in the art of electronics (see, e.g., U.S. Pat. Nos. 4,209,836 and 5,048,088) on the basis of the specified parameters (specs). For example, the expression of the specified parameters (specs) is often conveniently displayed in a lattice filter representation of the circuit, containing unit delays z^{−1}, summing junctions, and gains. The design of the associated circuit is well within the ordinary skill of a routineer in the art of electronics. In fact, this filter design has been fabricated by Texas Instruments, starting from the lattice filter representation (see, e.g., U.S. Pat. No. 4,344,148), and is used in the LPC speech synthesizer chips TMS 5100, 5200, 5220 (see e.g. D. Quarmby, Signal Processing Chips, PrenticeHall, 1994, pages 2729).

[0033]
In order to incorporate zeros as well as poles into digital filter models, it is customary in the prior art to use alternative architectures, for example the latticeladder architecture [K. J. Åström, Evaluation of quadratic loss functions for linear systems, in Fundamentals of Discretetime systems: A tribute to Professor Eliahu I. Jury, M. Jamshidi, M. Mansour, and B.D.O. Anderson (editors), IITSI Press, Albuquerque, N. Mex., 1993, pp. 4556] depicted in FIG. 11.

[0034]
As for the lattice representation of the LPC filter, the latticeladder filter consists of gains, which are the parameter specs, unit delays z^{−1}, and summing junctions and therefore can be easily mapped onto a custom chip or onto any programmable digital signal processor (e.g., the Intel 2920, the TMS 320, or the NEC 7720) using ordinary skill in the art; see, e.g. D. Quarmby, Signal Processing Chips, PrenticeHall, 1994, pages 2729. We observe that the latticeladder filter representation is an enhancement of the lattice filter representation, the difference being the incorporation of the spec parameters denoted by β, which allow for the incorporation of zeros into the filter design. In fact, the lattice filter representation of an allpole filter can be designed from the latticeladder filter architecture by setting the parameter specifications: β_{0}=r_{n} ^{−½}, β_{1}=β_{2}=. . . =β_{n}=0 and α_{k}=γ_{k }for k=0, 1, . . . , n−1 . We note that, in general, the parameters α_{0}, α_{1}, . . . , α_{n−1 }are not the reflection coefficients (PARCOR parameters).

[0035]
As part of this disclosure, we disclose a method and apparatus for determining the gains in a ladderlattice embodiment of THREE filter from a choice of notches in the power spectrum and of natural frequencies for the bank of filters, as well as a method of automatically tuning these notches and the natural frequencies of the filter bank from the observed data. Similar to the case of LPC filter design, the specs, or coefficients, of the THREE filter are also computed by optimizing a (convex) generalized entropy functional. One might consider an alternative design using adaptive linear filters to tune the parameters in the latticeladder filter embodiment of an autoregressive movingaverage (ARMA) model of a measured inputoutput history, as has been done in [M. G. Bellanger, Computational complexity and accuracy issues in fast least squares algorithms for adaptive filtering, Proc. 1988 IEEE International Symposium on Circuits and Systems, Espoo, Finland, Jun. 79, 1988] for either lattice or ladder filter tuning. However, one should note that the input string which might generate the observed output string is not necessarily known, nor is it necessarily available, in all situations to which THREE filter methods apply (e.g., speech synthesis). For this reason, one might then consider developing a tuning method for the latticeladder filter parameters using a system identification scheme based on an autoregressive movingaverage with exogenous variables (ARMAX). However, the theory of system identification teaches that these optimization schemes are nonlinear but nonconvex [T. Söderström and P. Stoica, Systems Identification, PrenticeHall, New York, 1989, page 333, equations (9.47), and page 334, equations (9.48)]. Moreover, the theory teaches that there are examples where global convergence of the associated algorithms may fail depending on the choice of certain design parameters (e.g., forgetting factors) in the standard algorithm [T. Söderström and P. Stoica, op. cit., page 340, Example 9.6]—in sharp contrast to the convex minimization scheme we disclose for the latticeladder parameters realizing a THREE filter. In addition, ARMAX schemes will not necessarily match the notches of the power spectrum. Finally, we disclose here that our extensive experimentation with both methods for problems of formant identification show that ARMAX methods require significantly higher order filters to begin to identify formants, and also lead to the introduction of spurious formants, in cases where THREE filter methods converge quite quickly and reliably.

[0036]
We now disclose a new method and apparatus for encoding and reproducing time signals, as well as for spectral analysis of signals. The method and apparatus, which we refer to as the Tunable High Resolution Estimator (THREE), is especially suitable for processing and analyzing short observation records.

[0037]
The basic parts of the THREE are: the Encoder, the Signal Synthesizer, and the Spectral Analyzer. The Encoder samples and processes a time signal (e.g., speech, radar, recordings, etc.) and produces a set of parameters which are made available to the Signal Synthesizer and the Spectral Analyzer. The Signal Synthesizer reproduces the time signal from these parameters. From the same parameters, the Spectral Analyzer generates the power spectrum of the timesignal.

[0038]
The design of each of these components is disclosed with both fixedmode and tunable features. Therefore, an essential property of the apparatus is that the performance of the different components can be enhanced for specific applications by tuning two sets of tunable parameters, referred to as the filterbank poles p=(p_{0}, p_{1}, . . . , p_{n}) and the MA parameters r=(r_{1}, r_{2}, . . . , r_{n}) respectively. In this disclosure we shall teach how the value of these parameters can be (a) set to fixed “default” values, and (b) tuned to give improved resolution at selected portions of the power spectrum, based on a priori information about the nature of the application, the time signal, and statistical considerations. In both cases, we disclose what we believe to be the preferred embodiments for either setting or tuning the parameters.

[0039]
As noted herein, the THREE filter is tunable. However, in its simplest embodiment, the tunable feature of the filter may be eliminated so that the invention incorporates in essence a high resolution estimator (HREE) filter. In this embodiment the default settings, or a priori information, is used to preselect the frequencies of interest. As can be appreciated by those of ordinary skill in the art, in many applications this a priori information is available and does not detract from the effective operation of the invention. Indeed the tunable feature is not needed for these applications. Another advantage of not utilizing the tunable aspect of the invention is that faster operation is achieved. This increased operational speed may be more important for some applications, such as those which operate in real time, rather than the increased accuracy of signal reproduction expected with tuning. This speed advantage is expected to become less important as the electronics available for implementation are further improved.

[0040]
The intended use of the apparatus is to achieve one or both of the following objectives: (1) a time signal is analyzed by the Encoder and the set of parameters are encoded, and transmitted or stored. Then the Signal Synthesizer is used to reproduce the time signal; and/or (2) a time signal is analyzed by the Encoder and the set of parameters are encoded, and transmitted or stored. Then the Spectral Analyzer is used to identify the power spectrum of time signal over selected frequency bands.

[0041]
These two objectives could be achieved in parallel, and in fact, data produced in conjunction with (2) may be used to obtain more accurate estimates of the MA parameters, and thereby improve the performance of the time synthesizer in objective (1). Therefore, a method for updating the MA parameters online is also disclosed.

[0042]
The Encoder. Long samples of data, as in speech processing, are divided into windows or frames (in speech typically a few 10 ms.), on which the process can be regarded as being stationary. The procedure of doing this is wellknown in the art [T. P. Barnwell III, K. Nayebi and C. H. Richardson, Speech Coding: A Computer Laboratory Textbook, John Wiley & Sons, New York, 1996]. The time signal in each frame is sampled, digitized, and detrended (i.e., the mean value subtracted) to produce a (stationary) finite time series

y(0),y(1), . . . , y(N). (2.1)

[0043]
This is done in the box designated as A/D in FIG. 12. This is standard in the art [T. P. Barnwell III, K. Nayebi and C. H. Richardson,
Speech Coding: A Computer Laboratory Textbook, John Wiley & Sons, New York, 1996]. The separation of window frames is decided by the Initializer/Resetter, which is Component
3 in FIG. 12. The central component of the Encoder is the Filter Bank, given as component
1. This consists of a collection of n+1 loworder filters, preferably first order filters, which process the observed time series in parallel. The output of the Filter Bank consists of the individual outputs compiled into a time sequence of vectors
$\begin{array}{cc}[\text{\hspace{1em}}\ue89e\begin{array}{c}{u}_{0}\ue8a0\left({t}_{0}\right)\\ {u}_{1}\ue8a0\left({t}_{0}\right)\\ \vdots \\ {u}_{n}\ue8a0\left({t}_{0}\right)\end{array}\ue89e\text{\hspace{1em}}],[\text{\hspace{1em}}\ue89e\begin{array}{c}{u}_{0}\ue8a0\left({t}_{0}+1\right)\\ {u}_{1}\ue8a0\left({t}_{0}+1\right)\\ \vdots \\ {u}_{n}\ue8a0\left({t}_{0}+1\right)\end{array}\ue89e\text{\hspace{1em}}],\dots \ue89e\text{\hspace{1em}},[\text{\hspace{1em}}\ue89e\begin{array}{c}{u}_{0}\ue8a0\left(N\right)\\ {u}_{1}\ue8a0\left(N\right)\\ \vdots \\ {u}_{n}\ue8a0\left(N\right)\end{array}\ue89e\text{\hspace{1em}}]& \left(2.2\right)\end{array}$

[0044]
The choice of starting point t_{0 }will be discussed in the description of Component 2.

[0045]
As will be explained in the description of Component 7, the Filter Bank is completely specified by a set p=(p_{0}, p_{1}, . . . , p_{n}) of complex numbers. As mentioned above, these numbers can either be set to default values, determined automatically from the rules disclosed below, or tuned to desired values, using an alternative set of rules which are also disclosed below. Component 2 in FIG. 12, indicated as Covariance Estimator, produces from the sequence u(t) in (2.2) a set of n+1 complex numbers

w=(w_{0}, w_{1}, . . . , w_{n}) (2.3)

[0046]
which are coded and passed on via a suitable interface to the Signal Synthesizer and the Spectral Analyzer. It should be noted that both sets p and w are selfconjugate. Hence, for each of them, the information of their actual values is carried by n+1 real numbers.

[0047]
Two additional features which are optional, are indicated in FIG. 12 by dashed lines. First, Component 5, designated as Excitation Signal Selection, refers to a class of procedures to be discussed below, which provide the modeling filter (Component 9) of the signal Synthesizer with an appropriate input signal. Second, Component 6, designated as MA Parameters in FIG. 12, refers to a class of procedures for determining n real numbers

r=(r_{1}, r_{2}, . . . , r_{n}), (2.4)

[0048]
the socalled MA parameters, to be defined below.

[0049]
The Signal Synthesizer. The core component of the Signal Synthesizer is the Decoder, given as Component 7 in FIG. 13, and described in detail below. This component can be implemented in a variety of ways, and its purpose is to integrate the values w, p and r into a set of n+1 real parameters

a=(a_{0}, a_{1}, . . . , a_{n}), (2.5)

[0050]
called the AR parameters. This set along with parameters r are fed into Component 8, called Parameter Transformer in FIG. 13, to determine suitable ARMA parameters for Component 9, which is a standard modeling filter to be described below. The modeling filter is driven by an excitation signal produced by Component 5′.

[0051]
The Spectral Analyzer. The core component of the Spectral Analyzer is again the Decoder, given as Component 7 in FIG. 14. The output of the Decoder is the set of AR parameters used by the ARMA modeling filter (Component 10) for generating the power spectrum. Two optional features are driven by the Component 10. Spectral estimates can be used to identify suitable updates for the MA parameters and/or updates of the Filter Bank parameters. The latter option may be exercised when, for instance, increased resolution is desired over an identified frequency band.

[0052]
Components. Now described in detail are the key components of the parts and their function. They are discussed in the same order as they have been enumerated in FIGS. 1214.

[0053]
Bank of Filters. The core component of the Encoder is a bank of n+1 filters with transfer functions
${G}_{k}\ue89e\left(z\right)=\frac{z}{z{p}_{k}},\text{\hspace{1em}}\ue89ek=0,1,2,\dots \ue89e\text{\hspace{1em}},$

[0054]
where the filterbank poles p_{0}, p_{1}, . . . , p_{n}) are available for tuning. The poles are taken to be distinct and one of them, p_{0 }at the origin, i.e. p_{0}=0. As shown in FIG. 15, these filters process in parallel the input time series (2.1), each yielding an output U_{k }satisfying the recursion

u _{k}(t)=p _{k} u _{k}(t−1)+y(t). (2.6)

[0055]
Clearly, u_{0}=y. If p_{k }is a real number, this is a standard firstorder filter. If p_{k }is complex,

u _{k}(t):=ξ_{k}(t)+iη _{k}(t)

[0056]
can be obtained via the second order filter
$\begin{array}{cc}[\text{\hspace{1em}}\ue89e\begin{array}{c}{\xi}_{k}\ue8a0\left(t\right)\\ {\eta}_{k}\ue8a0\left(t\right)\end{array}\ue89e\text{\hspace{1em}}]=\left[\begin{array}{cc}a& b\\ b& a\end{array}\right][\text{\hspace{1em}}\ue89e\begin{array}{c}{\xi}_{k}\ue8a0\left(t1\right)\\ {\eta}_{k}\ue8a0\left(t1\right)\end{array}\ue89e\text{\hspace{1em}}]+[\text{\hspace{1em}}\ue89e\begin{array}{c}1\\ 0\end{array}\ue89e\text{\hspace{1em}}]\ue89ey\ue8a0\left(t\right),& \left(2.7\right)\end{array}$

[0057]
where p_{k}=a+ib . Since complex filterbank poles occur in conjugate pairs a±ib, and since the filter with the pole p_{l}=a−ib produces the output

u _{k}(t):=ξ_{k}(t)−iη _{k}(t)

[0058]
the same second order filter (2.7) replaces two complex oneorder filters. We also disclose that for tunability of the apparatus to specific applications there may also be switches at the input buffer so that one or more filters in the bank can be turned off. The hardware implementation of such a filter bank is standard in the art.

[0059]
The key theoretical idea on which our design relies, described in C. I. Byrnes, T. T. Georgiou, and A. Lindquist, A new approach to Spectral Estimation: A tunable highresolution spectral estimator, preprint, is the following: Given the unique proper rational function f(z) with all poles in the unit disc {zz<1} such that

Φ(e ^{iθ}):=ƒ(e ^{iθ})+ƒ(e ^{−i θ}), −π≦θ≦π (2.8)

[0060]
is the power spectrum of y, it can be shown that
$\begin{array}{cc}f\ue8a0\left({p}_{k}^{1}\right)=\frac{1}{2}\ue89e\left(1{p}_{k}^{2}\right)\ue89eE\ue89e\left\{{{u}_{k}\ue8a0\left(t\right)}^{2}\right\},\text{\hspace{1em}}\ue89et\ge {t}_{0},& \left(2.9\right)\end{array}$

[0061]
where E{•} is mathematical expectation, provided t_{0 }is chosen large enough for the filters to have reached steady state so that (2.2) is a stationary process; see C. I. Byrnes, T. T. Georgiou, and A. Lindquist, A new approach to Spectral Estimation: A tunable highresolution spectral estimator, preprint. The idea is to estimate the variances

c_{0}(u_{k}):=E{u_{k}(t)^{2}}, k=0, 1, . . . , n

[0062]
from output data, as explained under point 2 below, to yield interpolation conditions

ƒ(Z_{k})=w_{k}, k=0, 1, . . . , n where z_{k}=p_{k} ^{−1}

[0063]
from which the function f(z), and hence the power spectrum Φ can be determined. The theory described in C. I. Byrnes, T. T. Georgiou, and A. Lindquist, A new approach to Spectral Estimation: A tunable highresolution spectral estimator, preprint teaches that there is not a unique such f(z), and our procedure allows for making a choice which fulfills other design specifications.

[0064]
Covariance Estimator. Estimation of the variance

c_{0}(ν):=E{ν(t)^{2 }}

[0065]
of a stationary stochastic process v(t) from an observation record

ν_{0}, ν_{1}, ν_{2}, . . . , ν_{N}

[0066]
can be done in a variety of ways. The preferred procedure is to evaluate
$\begin{array}{cc}{\hat{c}}_{0}\ue8a0\left(v\right):=\frac{1}{N+1}\ue89e\sum _{t=0}^{N}\ue89e\text{\hspace{1em}}\ue89e{v}_{t}^{2}& \left(2.10\right)\end{array}$

[0067]
over the available frame.

[0068]
In the present application, the variances ĉ
_{0 }(u
_{0}), ĉ
_{0 }(u
_{1}). . . , ĉ
_{0 }(u
_{n}) are estimated and the numbers (2.3) are formed as
$\begin{array}{cc}{w}_{k}:=\frac{1}{2}\ue89e\left(1{p}_{k}^{2}\right)\ue89e{\hat{c}}_{0}\ue8a0\left({u}_{k}\right),\text{\hspace{1em}}\ue89ek=0,1,\dots \ue89e\text{\hspace{1em}},n.& \left(2.11\right)\end{array}$

[0069]
Complex arithmetic is preferred, but, if real filter parameters are desired, the output of the secondorder filter (2.7) can be processed by noting that

c _{0}(u _{k}):=c _{0}(ξ_{k})−c _{0}(η_{k})+2i cov(ξ_{k},η_{k}),

[0070]
where cov(ξ_{k},η_{k}):=E{ξ(t)η_{k}(t)} is estimated by a mixed ergodic sum formed in analogy with (2.10).

[0071]
Before delivering w=(w
_{0}, w
_{1}, . . . , w
_{n}) as the output, check that the Pick matrix
$P={\left[\frac{{w}_{j}+{\stackrel{\_}{w}}_{k}}{1{p}_{j}\ue89e{\stackrel{\_}{p}}_{k}}\right]}_{j,k=0}^{n}$

[0072]
is positive definite. If not, exchange w
_{k }for w
_{k}+λ for k=0, 1, . . . , n, where λ is larger than the absolute value of the smallest eigenvalue of PP
_{0} ^{−1 }where
${P}_{0}={\left[\frac{2}{1{p}_{j}\ue89e{\stackrel{\_}{p}}_{k}}\right]}_{j,k=0}^{n}$

[0073]
Initializer/Resetter. The purpose of this component is to identify and truncate portions of an incoming time series to produce windows of data (2.1), over which windows the series is stationary. This is standard in the art [T. P. Barnwell III, K. Nayebi and C. H. Richardson, Speech Coding: A Computer Laboratory Textbook, John Wiley & Sons, New York, 1996]. At the beginning of each window it also initializes the states of the Filter Bank to zero, as well as resets summation buffers in the Covariance Estimator (Component 2).

[0074]
Filter Bank Parameters. The theory described in C. I. Byrnes, T. T. Georgiou, and A. Lindquist, A new approach to Spectral Estimation: A tunable highresolution spectral estimator, preprint, requires that the pole of one of the filters in the bank be at z=0 for normalization purposes; we take this to be p_{0}. The location of the poles of the other filters in the bank represents a design tradeoff. The presence of Filter Bank poles close to a selected arc {e^{iθ}θ∈[θ_{1}, θ_{2}]} of the unit circle, allows for high resolution over the corresponding frequency band. However, proximity of the poles to the unit circle may be responsible for deterioration of the variability of the covariance estimates obtained by Component 2.

[0075]
There are two observations which are useful in addressing the design tradeoff. First, the size n of the data bank is dictated by the quality of the desired reproduction of the spectrum and the expected complexity of it. For instance, if the spectrum is expected to have k spectral lines or formants within the targeted frequency band, typically, a filter of order n=2k+2 is required for reasonable reproduction of the characteristics.

[0076]
Second, if N is the length of the window frame, a useful rule of thumb is to place the poles within
$\uf603p\uf604<{10}^{\frac{10}{N}}.$

[0077]
This guarantees that the output of the filter bank attains stationarity in about {fraction (1/10)} of the length of the window frame. Accordingly the Covariance Estimator may be activated to operate on the later 90% stationary portion of the processed window frame. Hence, t
_{0 }in (2.2) can be taken to be the smallest integer larger than
$\frac{N}{10}.$

[0078]
This typically gives a slight improvement as compared to the Covariance Estimator processing the complete processed window frame.

[0079]
There is a variety of ways to take advantage of the design tradeoffs. We now disclose what we believe are the best available rules to automatically determine a default setting of the bank of filter poles, as well as to automatically determine the setting of the bank of filter poles given a priori information on a bandwidth of frequencies on which higher resolution is desired.

[0080]
Default Values.

[0081]
(a) One pole is chosen at the origin,

[0082]
(b) choose one or two real poles at
$p=\pm {10}^{\frac{10}{N}}$

[0083]
(c) choose an even number of equally spaced poles on the circumference of a circle with radius
${10}^{\frac{10}{N}},$

[0084]
in a Butterworthlike pattern with angles spanning the range of frequencies where increased resolution is desired.

[0085]
The total number of elements in the filter bank should be at least equal to the number suggested earlier, e.g., two times the number of formants expected in the signal plus two.

[0086]
In the tunable case, it may be necessary to switch off one or more of the filters in the bank.

[0087]
As an illustration, take the signal of two sinusoidal components in colored noise depicted in FIG. 4. More specifically, in this example,

y(t)=0.5 sin (ω_{1} t+φ_{1})+0.5 sin (ω_{2} t+φ_{2})+z(t)t=0,1,2, . . . ,

z(t)=0.8z(t−1)+0.5ν(t)+0.25ν(t−1)

[0088]
with ω_{1}=0.42,ω_{2}=0.53, and φ_{1}, φ_{2 }and ν(t) independent N(0,1) random variables, i.e., with zero mean and unit variance. The squares in FIG. 16 indicate suggested position of filter bank poles in order to attain sufficient resolution over the frequency band [0.4 0.5] so as to resolve spectral lines situated there and indicated by 0. The position of the poles on the circle z=0.9 is dictated by the length N˜300 for the time series window.

[0089]
A THREE filter is determined by the choice of filterbank poles and a choice of MA parameters. The comparison of the original line spectra with the power spectrum of the THREE filter determined by these filterbank poles and the default value of the MA parameters, discussed below, is depicted in FIG. 7.

[0090]
Excitation Signal Selection. An excitation signal is needed in conjunction with the time synthesizer and is marked as Component 5′. For some applications the generic choice of white noise may be satisfactory, but in general, and especially in speech it is a standard practice in vocoder design to include a special excitation signal selection. This is standard in the art [T. P. Barnwell III, K. Nayebi and C. H. Richardson, Speech Coding: A Computer Laboratory Textbook, John Wiley & Sons, New York, 1996, page 101 and pages 129132] when applied to LPC filters and can also be implemented for general digital filters. The general idea adapted to our situation requires the following implementation.

[0091]
Component 5 in FIG. 12 includes a copy of the time synthesizer. That is, it receives as input the values w, p, and r, along with the time series y. It generates the coefficients a of the ARMA model precisely as the decoding section of the time synthesizer. Then it processes the time series through a filter which is the inverse of this ARMA modeling filter. The “approximately whitened” signal is compared to a collection of stored excitation signals. A code identifying the optimal matching is transmitted to the time synthesizer. This code is then used to retrieve the same excitation signal to be used as an input to the modeling filter (Component 9 in FIG. 13).

[0092]
Excitation signal selection is not needed if only the frequency synthesizer is used.

[0093]
MA Parameter Selection. As for the filterbank poles, the MA parameters can either be directly tuned using special knowledge of spectral zeros present in the particular application or set to a default value. However, based on available data (2.1), the MA parameter selection can also be done online, as described in Appendix A.

[0094]
There are several possible approaches to determining a default value. For example, the choice r_{1}=r_{2}=. . . =r_{n}=0 produces a purely autoregressive (AR) model which, however, is different from the LPC filter since it interpolates the filterbank data rather than matching the covariance lags of the original process.

[0095]
We now disclose what we believe is the best available method for determining the default values of the MA parameters. Choose r_{1}, r_{2}, . . . , r_{n }so that

z ^{n} +r _{1} z ^{n−1} + . . . +r=(z−p _{1})(z−p _{2}) . . . (z−p _{n}), (2.12)

[0096]
which corresponds to the central solution, described in Section 3. This setting is especially easily implemented, as disclosed below.

[0097]
Decoder. Given p, w, and r, the Decoder determines n+1 real numbers

a_{0}, a_{1}, a_{2}, . . . , a_{n}, (2.13)

[0098]
with the property that the polynomial

α(z):=a _{0} z ^{n} +a _{1} z ^{n−1} + . . . +a _{n}

[0099]
has all its roots less than one in absolute value. This is done by solving a convex optimization problem via an algorithm presented in papers C. I. Byrnes, T. T. Georgiou, and A. Lindquist, A generalized entropy criterion for NevanlinnaPick interpolation: A convex optimization approach to certain problems in systems and control, preprint, and C. I. Byrnes, T. T. Georgiou, and A. Lindquist, A new approach to Spectral Estimation: A tunable highresolution spectral estimator, preprint. While our disclosure teaches how to determine the THREE filter parameters online in the section on the Decoder algorithms, an alternative method and apparatus can be developed offline by first producing a lookup table. The online algorithm has been programmed in MATLAB, and the code is enclosed in the Appendix B.

[0100]
For the default choice (2.12) of MAparameters, a much simpler algorithm is available, and it is also presented in the section on the Decoder algorithms. The MATLAB code for this algorithm is also enclosed in the Appendix B.

[0101]
Parameter Transformer. The purpose of Component
8 in FIG. 13 is to compute the filter gains for a modeling filter with transfer function
$\begin{array}{cc}R\ue8a0\left(z\right)=\frac{{z}^{n}+{r}_{1}\ue89e{z}^{n1}+\dots +{r}_{n}}{{a}_{0}\ue89e{z}^{n}+{a}_{1}\ue89e{z}^{n1}+\dots +{a}_{n}},& \left(2.14\right)\end{array}$

[0102]
where r_{1}, r_{2}, . . . , r_{n }are the MA parameters delivered by Component 6 (as for the Signal Synthesizer) or Component 6′ (in the Spectral Analyzer) and a_{0}, a_{1}, . . . , a_{n }delivered from the Decoder (Component 7) This can be done in many different ways [L. A. Chua, C. A. Desoer and E. S. Kuh, Linear and Nonlinear Circuits, McGrawHill, 1989], depending on desired filter architecture.

[0103]
A filter design which is especially suitable for an apparatus with variable dimension is the latticeladder architecture depicted in FIG. 11. In this case, the gain parameters

α_{0}, α_{1}, . . . , α_{n−1 }and β_{0}, β_{1}, . . . , β_{n}

[0104]
are chosen in the following way. For k=n, n−1, . . . , 1, solve the recursions
$\begin{array}{cc}\{\begin{array}{c}{a}_{k1,j}={a}_{\mathrm{kj}}+{\alpha}_{k1}\ue89e{a}_{k,kj},{a}_{\mathrm{nj}}={a}_{j}\\ {\alpha}_{k1}=\frac{{a}_{\mathrm{kk}}}{{a}_{\mathrm{k0}}}\\ {r}_{k1,j}={r}_{\mathrm{kj}}{\beta}_{k}\ue89e{a}_{k,kj},{r}_{\mathrm{nj}}={r}_{j}\\ {\beta}_{k}=\frac{{r}_{\mathrm{kk}}}{{a}_{\mathrm{k0}}}\end{array}& \left(2.15\right)\end{array}$

[0105]
for j=0, 1, . . . , k, and set
${\beta}_{0}=\frac{{r}_{00}}{{a}_{00}}.$

[0106]
This is a wellknown procedure; see, e.g., K. J. Astrtöm, Introduction to stochastic realization theory, Academic Press, 1970; and K. J. Aström, Evaluation of quadratic loss functions of linear systems, in Fundamentals of Discretetime systems: A tribute to Professor Eliahu I. Jury, M. Jarnshidi, M. Mansour, and B. D. O. Anderson (editors), IITSI Press, Albuquerque, N. Mex., 1993, pp. 4556. The algorithm is recursive, using only ordinary arithmetic operations, and can be implemented with an MAC mathematics processing chip using ordinary skill in the art.

[0107]
ARMA filter. An ARMA modeling filter consists of gains, unit delays z^{−1}, and summing junctions, and can therefore easily be mapped onto a custom chip or any programmable digital signal processor using ordinary skill in the art. The preferred filter design, which easily can be adjusted to different values of the dimension n, is depicted in FIG. 11. If the AR setting r_{1}=r_{2}=. . . =r_{n}=0 of the MA parameters has been selected, β_{0}=r_{n} ^{−½}, β_{1}=β_{2}=. . . =β_{n}=0 and α_{k}=γ_{k }for k=0, 1, . . . , n−1, where γ_{k},k=0,1, . . . ,n−1, are the first n PARCOR parameters and the algorithm (2.15) reduces to the Levinson algorithm [B. Porat, digital Processing of Random Signals, PrenticeHall, 1994; and P. Stoica and R. Moses, Introduction to Spectral Analysis, PrenticeHall, 1997].

[0108]
Spectral plotter. The Spectral Plotter amounts to numerical implementation of the evaluation Φ(e^{iθ}):=R(e^{iθ})^{2}, where R(z) is defined by (2.14), and θ ranges over the desired portion of the spectrum. This evaluation can be efficiently computed using standard FFT transform [P. Stoica and R. Moses, Introduction to Spectral Anqalysis, PrenticeHall, 1997]. For instance, the evaluation of a polynomial (3.4) over a frequency range z=e^{iθ}, with θ∈{0, Δθ, . . . , 2π−Δθ} and Δθ=2π/M, can be conveniently computed by obtaining the discrete Fourier transform of

(a_{n}, . . . , a_{1},1, 0, . . . , 0).

[0109]
This is the coefficient vector padded with Mn1 zeros. The discrete Fourier transform can be implemented using the FFT algorithm in standard form.

[0110]
Decoder Algorithms. We now disclose the algorithms used for the Decoder. The input data consists of

[0111]
(i) the filterbank poles p=(p
_{0}, p
_{1}, . . . , p
_{n}), which are represented as the roots of a polynomial
$\begin{array}{cc}\tau \ue8a0\left(z\right)\ue89e\text{:}=\prod _{k=1}^{n}\ue89e\text{\hspace{1em}}\ue89e\left(z{p}_{k}\right)={z}^{n}+{\tau}_{1}\ue89e{z}^{n1}+\dots +{\tau}_{n1}\ue89ez+{\tau}_{n},& \left(3.1\right)\end{array}$

[0112]
(ii) the MA parameters r=(r_{1}, r_{2}, . . . , r_{n}), which are real numbers such that the polynomial

ρ(z)=z ^{n} +r _{1} z ^{n−1} + . . . +r _{n−1} z+r _{n} (3.2)

[0113]
has all its roots less than one in absolute value, and

[0114]
(iii) the complex numbers

w=(w_{0}, w_{1}, . . . , w_{n})

[0115]
determined as (2.11) in the Covariance Estimator.

[0116]
The problem is to find AR parameters a=(a_{0}, a_{1}, . . . , a_{n}), real numbers with the property that the polynomial

α(z)=a _{0} z ^{n} +a _{1} z ^{n−1} + . . . +a _{n−1} z+a _{n} (3.4)

[0117]
has all its roots less than one in absolute value, such that
${\uf603\frac{\rho \ue8a0\left({\uf74d}^{\mathrm{\uf74e\theta}}\right)}{\alpha \ue8a0\left({\uf74d}^{\mathrm{\uf74e\theta}}\right)}\uf604}^{2}$

[0118]
is a good approximation of the power spectrum Φ(e^{1θ}) of the process y in some desired part of the spectrum θ∈[−π,π]. More precisely, we need to determine the function f(z) in (2.8). Mathematically, this problem amounts to finding a polynomial (3.4) and a corresponding polynomial

β(z)=b _{0} z ^{n} +b _{1} z ^{n−1} + . . . +b _{n−1} z+b _{n}, (3.5)

[0119]
satisfying

α(z)β(z ^{−1})+β(z)α(z ^{−1})=ρ(z)ρ(z ^{−1}) (3.6)

[0120]
such that the rational function
$\begin{array}{cc}f\ue8a0\left(z\right)=\frac{\beta \ue8a0\left(z\right)}{\alpha \ue8a0\left(z\right)}& \left(3.7\right)\end{array}$

[0121]
satisfies the interpolation condition

ƒ(z_{k})=w_{k}, k=0, 1, . . . , n where z_{k}=p_{k} ^{−1}. (3.8)

[0122]
For this purpose the parameters p and r are available for tuning. If the choice of r corresponds to the default value, r_{k}=τ_{k }for k=1, 2, . . . , n (i.e., taking ρ(z)=τ(z)), the determination of the THREE filter parameters is considerably simplified. The default option is disclosed in the next subsection. The method for determining the THREE filter parameters in the tunable case is disclosed in the subsection following the next. Detailed theoretical descriptions of the method, which is based on convex optimization, are given in the papers [C. I. Byrnes, T. T. Georgiou, and A. Lindquist, A generalized entropy criterion for NevanlinnaPick interpolation: A convex optimization approach to certain problems in systems and control, preprint, and C. I. Byrnes, T. T. Georgiou, and A. Lindquist, A new approach to Spectral Estimation: A tunable highresolution spectral estimator, preprint].

[0123]
The central solution algorithm for the default filter. In the special case in which the MA parameters r=(r
_{1}, r
_{2}, . . . , r
_{n}) are set equal to the coefficients of the polynomial (3.1), i.e., when ρ(z)=τ(z), a simpler algorithm is available. Here we disclose such an algorithm which is particularly suited to our application. Given the filterbank parameters p
_{0}, p
_{1}, . . . , p
_{n }and the interpolation values w
_{0}, w
_{1}, . . . , w
_{n }determine two sets of parameters s
_{1}, s
_{2}, . . . , s
_{n }and ν
_{1}, ν
_{2}, . . . , ν
_{n }defined as
${s}_{k}=\frac{1{p}_{k}}{1+{p}_{k}}\ue89e\text{\hspace{1em}}\ue89e\mathrm{and}\ue89e\text{\hspace{1em}}\ue89e{v}_{k}=\frac{1{w}_{k}/{w}_{0}}{1+{w}_{k}/{w}_{0}}\ue89e\text{\hspace{1em}}\ue89ek=1,2,\cdots \ue89e\text{\hspace{1em}},n$

[0124]
and the coefficients σ_{1}, σ_{2}, . . . , σ_{n }of the polynomial

σ(s)=(s−s _{1})(s−s _{2}) . . . (s−s _{n})=s ^{n}+σ_{1} s ^{n−1}+ . . . +σ_{n}.

[0125]
We need a rational function
$p\ue8a0\left(s\right)\ue89e\text{:}=\frac{{x}_{1}\ue89e{s}^{n1}+\cdots +{x}_{n}}{{s}^{n}+{\sigma}_{1}\ue89e{s}^{n1}+\cdots +{\sigma}_{n}}$

[0126]
such that

p(s_{k})=ν_{k}k=1, 2, . . . , n,

[0127]
and a realization p(z)=c(sI−A)
^{−1}b, where
$A=\left[\begin{array}{ccccc}{\sigma}_{1}& {\sigma}_{2}& \cdots & {\sigma}_{n1}& {\sigma}_{n}\\ 1& 0& \cdots & 0& 0\\ 0& 1& \cdots & 0& 0\\ \vdots & \vdots & \u22f0& \vdots & \vdots \\ 0& 0& \cdots & 1& 0\end{array}\right],\text{}\ue89ec=\left[0\ue89e\text{\hspace{1em}}\ue89e0\ue89e\text{\hspace{1em}}\ue89e\cdots \ue89e\text{\hspace{1em}}\ue89e0\ue89e\text{\hspace{1em}}\ue89e1\right]$

[0128]
and the nvector b remains to be determined. To this end, choose a (reindexed) subset s
_{1}, s
_{2}, . . . , s
_{m }of the parameters s
_{1},s
_{2}, . . . , s
_{n}, including one and only one s
_{k }from each complex pair (s
_{k},{overscore (s)}
_{k}), and decompose the following complex Vandermonde matrix and complex vector into their real and imaginary parts:
$\left[\begin{array}{cccc}{s}_{1}^{n1}& {s}_{1}^{n2}& \cdots & 1\\ {s}_{2}^{n1}& {s}_{2}^{n2}& \cdots & 1\\ \vdots & \vdots & \u22f0& \vdots \\ {s}_{m}^{n1}& {s}_{m}^{n2}& \cdots & 1\end{array}\right]={U}_{r}+{\mathrm{iU}}_{i},\left[\begin{array}{c}{v}_{1}\ue89e\sigma \ue8a0\left({s}_{1}\right)\\ {v}_{2}\ue89e\sigma \ue8a0\left({s}_{2}\right)\\ \vdots \\ {v}_{m}\ue89e\sigma \ue8a0\left({s}_{m}\right)\end{array}\right]={u}_{r}+{\mathrm{iu}}_{i}.$

[0129]
Then, remove all zero rows from u
_{i }and u
_{i }to obtain U
_{t }and U
_{t}, respectively, and solve the n×n system
$\left[\begin{array}{c}{U}_{r}\\ {U}_{t}\end{array}\right]\ue89ex=\left[\begin{array}{c}{u}_{r}\\ {u}_{t}\end{array}\right]$

[0130]
for the nvector x with components x
_{1}, x
_{2}, . . . , x
_{n}. Then, padding x with a zero entry to obtain the (n+1)vector
$\left[\begin{array}{c}0\\ x\end{array}\right],$

[0131]
the required b is obtained by removing the last component of the (n+1)vector
${R}^{1}\ue8a0\left[\begin{array}{c}0\\ x\end{array}\right],$

[0132]
where R is the triangular (n+1)×(n+1)matrix
$R=\left[\begin{array}{ccccc}\text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}& 1\\ \text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}& 1& {\sigma}_{1}\\ \text{\hspace{1em}}& \text{\hspace{1em}}& 1& {\sigma}_{1}& {\sigma}_{2}\\ \text{\hspace{1em}}& \ddots & \ddots & \ddots & \vdots \\ 1& {\sigma}_{1}& {\sigma}_{2}& \cdots & {\sigma}_{n}\end{array}\right],$

[0133]
where empty matrix entries denote zeros.

[0134]
Next, with prime (′) denoting transposition, solve the Lyapunov equations

P_{o}A+A′P_{0}=c′c

(A−P_{o} ^{−1}c′c)P_{c}+P_{c}(A−P_{o} ^{−1}c′c)′=bb′

[0135]
which is a standard routine, form the matrix

N=(I−P_{o}P_{c})^{−1},

[0136]
and compute the (n+1)vectors h^{(1)},h^{(2)},h^{(3) }and h^{(4) }with components

[0137]
h_{0} ^{(1)}=1, h_{k} ^{(1)}=cA^{k−1}P_{o} ^{−1}Nc′, k=1, 2, . . . , n

[0138]
h_{0} ^{(2)}=0, h_{k} ^{(2)}=cA^{k−1}N′b, k=1, 2, . . . , n

[0139]
h_{0} ^{(3)}=0, h_{k} ^{(3)}=−b′P_{o}A^{k−1}P_{o} ^{−1}Nc′, k=1, 2, . . . , n

[0140]
h_{1} ^{(4)}=1, h_{k} ^{(4)}=−b′P_{o}A^{k−1}N′b, k=1, 2, . . . , n.

[0141]
Finally, compute the (n+1)vectors

[0142]
y^{(j)}=TRh^{(j)}, j=1,2,3,4

[0143]
with components y_{0} ^{(j)}, y_{1} ^{(j)}, . . , y_{n} ^{(j)}, j=1,2,3,4, where T is the (n+1)×(n+1) matrix, the k: th column of which is the vector of coefficients of the polynomial

(s+1)^{n−k}(s−1)^{k}, for k=0, 1, . . . , n,

[0144]
starting with the coefficient of S
^{n }and going down to the constant term, and R is the matrix defined above. Now form
${\hat{\alpha}}_{k}=\frac{1}{\sqrt{1{\mu}^{2}}}\ue8a0\left[\mu \ue8a0\left({y}_{k}^{\left(3\right)}+{y}_{k}^{\left(1\right)}\right)+\left({y}_{k}^{\left(4\right)}+{y}_{k}^{\left(2\right)}\right)\right],k=0,1,\cdots \ue89e\text{\hspace{1em}},n,\text{}\ue89e{\hat{\beta}}_{k}=\frac{{w}_{0}}{\sqrt{1{\mu}^{2}}}\ue8a0\left[\mu \ue8a0\left({y}_{k}^{\left(3\right)}{y}_{k}^{\left(1\right)}\right)+\left({y}_{k}^{\left(4\right)}{y}_{k}^{\left(2\right)}\right)\right],k=0,1,\cdots \ue89e\text{\hspace{1em}},n,\text{}\ue89e\mathrm{where}$ $\mu =\frac{{y}_{0}^{\left(2\right)}}{{y}_{0}^{\left(1\right)}}.$

[0145]
The (central) interpolant (3.7) is then given by
$f\ue8a0\left(z\right)=\frac{\hat{\beta}\ue8a0\left(z\right)}{\hat{\alpha}\ue8a0\left(z\right)},$

[0146]
where {circumflex over (α)}(z) and {circumflex over (β)}(z) are the polynomials

{circumflex over (α)}(z)={circumflex over (α)}_{0} z ^{n}+{circumflex over (α)}_{1} z ^{n−1}+ . . . +{circumflex over (α)}_{n},

{circumflex over (β)}(z)={circumflex over (β)}_{0} z ^{n}+{circumflex over (β)}_{1} z ^{n−1}+ . . . +{circumflex over (β)}_{n}.

[0147]
However, to obtain the α(z) which matches the MA parameters r=τ, {circumflex over (α)}(z) needs to be normalized by setting
$\alpha \ue8a0\left(z\right)=\frac{1+{\tau}_{1}^{2}+\cdots +{\tau}_{n}^{2}}{2\ue89e\left({\hat{\alpha}}_{0}\ue89e{\hat{\beta}}_{0}+{\hat{\alpha}}_{1}\ue89e{\hat{\beta}}_{1}+{\hat{\alpha}}_{n}\ue89e{\hat{\beta}}_{n}\right)}\ue89e\hat{\alpha}\ue8a0\left(z\right).$

[0148]
This is the output of the central solver.

[0149]
Convex optimization algorithm for the tunable filter. To initiate the algorithm, one needs to choose an initial value for a, or, equivalently, for α(z), to be recursively updated. We disclose two methods of initialization, which can be used if no other guidelines, specific to the application, are available.

[0150]
Initialization method 1. Given the solution of the Lyapunov equation
$\begin{array}{cc}S={A}^{\prime}\ue89e\mathrm{SA}+{c}^{\prime}\ue89ec,\text{}\ue89e\mathrm{where}& \left(3.9\right)\\ A=\left[\begin{array}{ccccc}{\tau}_{1}& {\tau}_{2}& \cdots & {\tau}_{n1}& {\tau}_{n}\\ 1& 0& \cdots & 0& 0\\ 0& 1& \cdots & \vdots & \vdots \\ \vdots & \vdots & \u22f0& \vdots & \vdots \\ 0& 0& \cdots & 1& 0\end{array}\right],& \left(3.10\right)\\ c=\left[0\ue89e\text{\hspace{1em}}\ue89e0\ue89e\text{\hspace{1em}}\ue89e\cdots \ue89e\text{\hspace{1em}}\ue89e0\ue89e\text{\hspace{1em}}\ue89e1\right],\text{}\ue89e\mathrm{form}\ue89e\text{}\ue89e\kappa ={y}^{\prime}\ue8a0\left[\begin{array}{cc}S& 0\\ 0& 1\end{array}\right]\ue89ey,y={L}_{n}^{1}\ue89er,& \left(3.11\right)\end{array}$

[0151]
where r is the column vector having the coefficients 1, r
_{1}, . . . , r
_{n }of (3.2) as components and where
$\begin{array}{cc}{L}_{n}=\left[\begin{array}{ccccc}\text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}& 1\\ \text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}& 1& {\tau}_{1}\\ \text{\hspace{1em}}& \text{\hspace{1em}}& 1& {\tau}_{1}& {\tau}_{2}\\ \text{\hspace{1em}}& \ddots & \ddots & \ddots & \vdots \\ 1& {\tau}_{1}& {\tau}_{2}& \cdots & {\tau}_{n}\end{array}\right].\text{}\ue89e\mathrm{Then}\ue89e\text{\hspace{1em}}\ue89e\mathrm{take}\ue89e\text{}\ue89e\alpha \ue8a0\left(z\right)=\sqrt{\frac{\kappa}{2\ue89e{w}_{0}}}\ue89e\tau \ue8a0\left(z\right)& \left(3.12\right)\end{array}$

[0152]
as initial value.

[0153]
Initialization method 2. Take
$\alpha \ue89e\left(z\right)=\uf603\frac{1+{r}_{1}+\dots +{r}_{n}}{1+{\tau}_{1}+\dots +{\tau}_{n}}\uf604\ue89e{\alpha}_{c}\ue89e\left(z\right),$

[0154]
where α_{c}(Z) is the αpolynomial obtained by first running the algorithm for the central solution described above.

[0155]
Algorithm. Given the initial (3.4) and (3.1), solve the linear system of equations
$\left(\left[\begin{array}{ccccc}1& \cdots & {\tau}_{n2}& {\tau}_{n1}& {\tau}_{n}\\ {\tau}_{1}& \cdots & {\tau}_{n1}& {\tau}_{n}& \text{\hspace{1em}}\\ {\tau}_{2}& \cdots & {\tau}_{n}& \text{\hspace{1em}}& \text{\hspace{1em}}\\ \vdots & \ddots & \text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}\\ {\tau}_{n}& \text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}\end{array}\right]+\left[\begin{array}{ccccc}1& {\tau}_{1}& {\tau}_{2}& \cdots & {\tau}_{n}\\ \text{\hspace{1em}}& 1& {\tau}_{1}& \cdots & {\tau}_{n1}\\ \text{\hspace{1em}}& \text{\hspace{1em}}& 1& \cdots & {\tau}_{n2}\\ \text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}& \u22f0& \vdots \\ \text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}& 1\end{array}\right]\right)\ue89e\hspace{1em}\left[\begin{array}{c}{s}_{0}\\ {s}_{1}\\ {s}_{2}\\ \vdots \\ {s}_{n}\end{array}\right]=\left[\begin{array}{c}{a}_{0}^{2}+{a}_{1}^{2}+{a}_{2}^{2}+\cdots +{a}_{n}^{2}\\ {a}_{0}\ue89e{a}_{1}+{a}_{1}\ue89e{a}_{2}+{a}_{n1}\ue89e{a}_{n}\\ {a}_{0}\ue89e{a}_{2}+{a}_{1}\ue89e{a}_{3}+{a}_{n2}\ue89e{a}_{n}\\ \vdots \\ {a}_{0}\ue89e{a}_{n}\end{array}\right]$

[0156]
for the column vector S with components s_{0}, s_{1}, . . . , s_{n}. Then, with the matrix L_{n }given by (3.12), solve the linear system

L_{n}h=s

[0157]
for the vector
$\begin{array}{cc}h=\left[\begin{array}{c}{h}_{n}\\ {h}_{n1}\\ \vdots \\ {h}_{0}\end{array}\right]& \text{(3.13)}\end{array}$

[0158]
The components of h are the Markov parameters defined via the expansion
$\begin{array}{cc}q\ue8a0\left(z\right)=\frac{\sigma \ue8a0\left(z\right)}{\tau \ue8a0\left(z\right)}={h}_{0}+{h}_{1}\ue89e{z}^{1}+{h}_{2}\ue89e{z}^{2}+{h}_{3}\ue89e{z}^{3}+\cdots \ue89e\text{\hspace{1em}},\text{}\ue89e\text{where}\ue89e\text{}\ue89e\sigma \ue8a0\left(z\right):={s}_{0}\ue89e{z}^{n}+{s}_{1}\ue89e{z}^{n1}+\cdots +{s}_{n}.& \text{(3.14)}\end{array}$

[0159]
The vector (3.13) is the quantity on which iterations are made in order to update α(z). More precisely, a convex function J(q) presented in C. I. Byrnes, T. T. Georgiou, and A. Lindquist, A generalized entropy criterion for NevanlinaPick interpolation: A convex optimization approach to certain problems in systems and control, preprint, and C. I. Byrnes, T. T. Georgiou, and A. Lindquist, A new approach to spectral estimation: A tunable highresolution spectral estimator, preprint, is minimized recursively over the region where

q(e^{iθ})+q(e^{−iθ})>0, for −π≦θ≦π (3.15)

[0160]
This is done by upholding condition (3.6) while successively trying to satisfy the interpolation condition (3.8) by reducing the errors

e _{k} =w _{k}−ƒ(p _{k} ^{−1}), k=0, 1, . . . , n. (3.16)

[0161]
Each iteration of the algorithm consists of two steps. Before turning to these, some quantities, common to each iteration and thus computed offline, need to be evaluated.

[0162]
Given the MA parameter polynomial (3.2), let the real numbers π_{0}, π_{1}, . . . , π_{n }can be defined via the expansion

ρ(z)ρ(z ^{−1})=π_{0}+π_{1}(z+z^{−1})+π_{2}(z ^{2} +z ^{−2})+ . . . +π_{n}(z ^{n} +z ^{−n}).

[0163]
Moreover, given a subset p
_{1}, p
_{2}, . . . , p
_{m }of the filterbank poles p
_{1}, p
_{2}, . . . , p
_{n }obtained by only including one p
_{k }in each complex conjugate pair (p
_{k},{overscore (p)}
_{k}), form the corresponding Vandermonde matrix
$\begin{array}{cc}V:=\left[\begin{array}{ccccc}{p}_{1}^{\left(n1\right)}& {p}_{1}^{\left(n2\right)}& \cdots & {p}_{1}^{1}& 1\\ {p}_{2}^{\left(n1\right)}& {p}_{2}^{\left(n2\right)}& \cdots & {p}_{2}^{1}& 1\\ \vdots & \vdots & \u22f0& \vdots & \vdots \\ {p}_{m}^{\left(n1\right)}& {p}_{m}^{\left(n2\right)}& \cdots & {p}_{m}^{1}& 1\end{array}\right]={V}_{r}+{V}_{i},& \text{(3.18)}\end{array}$

[0164]
together with its real part V_{r }and imaginary part V_{i}. Moreover, given an arbitrary real polynomial

γ(z)=g _{0} z ^{m} +g _{1} z ^{m−1} + . . . +g _{m}, (3.19)

[0165]
define the (n+1)×(m+1) matrix
$\begin{array}{cc}M\ue8a0\left(\gamma \right):=\hspace{1em}\left[\begin{array}{cccccccccc}{g}_{0}& {g}_{1}& \cdots & {g}_{n}& {g}_{n+1}& \cdots & {g}_{m}& \text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}\\ \text{\hspace{1em}}& {g}_{0}& {g}_{1}& \cdots & {g}_{n}& {g}_{n+1}& \cdots & {g}_{m}& \text{\hspace{1em}}& \text{\hspace{1em}}\\ \text{\hspace{1em}}& \text{\hspace{1em}}& \u22f0& \u22f0& \text{\hspace{1em}}& \u22f0& \u22f0& \text{\hspace{1em}}& \u22f0& \text{\hspace{1em}}\\ \text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}& {g}_{0}& {g}_{1}& \cdots & {g}_{n}& {g}_{n+1}& \cdots & {g}_{m}\end{array}\right].& \text{(3.20)}\end{array}$

[0166]
We compute offline M(ρ), M(τ*ρ) and M(τρ), where ρ and τ are the polynomials (3.2) and (3.1) and τ*(z) is the reversed polynomial

τ*(z)=τ_{n} z ^{n}+τ_{n−1} z ^{n−1}+ . . . +τ_{1} z+1.

[0167]
Finally, we compute offline L_{n}, defined by (3.12), as well as the submatrix L_{n−1}.

[0168]
Step 1. In this step the search direction of the optimization algorithm is determined. Given α(z), first find the unique polynomial (3.5) satisfying (3.6). Identifying coefficients of z
^{k}, k=0, 1, . . . , n, this is seen to be a (regular) system of n+1 linear equations in the n+1 unknown b
_{0}, b
_{1}, . . . , b
_{n }namely
$\left(\left[\begin{array}{ccccc}{a}_{0}& \cdots & {a}_{n2}& {a}_{n1}& {a}_{n}\\ {a}_{1}& \cdots & {a}_{n1}& {a}_{n}& \text{\hspace{1em}}\\ {a}_{2}& \cdots & {a}_{n}& \text{\hspace{1em}}& \text{\hspace{1em}}\\ \vdots & \ddots & \text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}\\ {a}_{n}& \text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}\end{array}\right]+\left[\begin{array}{ccccc}{a}_{0}& {a}_{1}& {a}_{2}& \cdots & {a}_{n}\\ \text{\hspace{1em}}& {a}_{0}& {a}_{1}& \cdots & {a}_{n1}\\ \text{\hspace{1em}}& \text{\hspace{1em}}& {a}_{0}& \cdots & {a}_{n2}\\ \text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}& \u22f0& \vdots \\ \text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}& {a}_{0}\end{array}\right]\right)\ue89e\hspace{1em}\left[\begin{array}{c}{b}_{0}\\ {b}_{1}\\ {b}_{2}\\ \vdots \\ {b}_{n}\end{array}\right]=\left[\begin{array}{c}{\pi}_{0}\\ {\pi}_{1}\\ {\pi}_{2}\\ \vdots \\ {\pi}_{n}\end{array}\right],$

[0169]
where π
_{0}, π
_{1}, . . . , π
_{n }are given by (3.17). The coefficient matrix is a sum of a Hankel and a Toeplitz matrix and there are fast and efficient ways of solving such systems [G. Heinig, P. Jankowski and K. Rost,
Fast Inversion Algorithms of Toeplitz
plus
Hankel Matrices, Numerische Mathematik 52 (1988), 665682]. Next, form the function
$f\ue8a0\left(z\right)=\frac{\beta \ue8a0\left(z\right)}{\alpha \ue8a0\left(z\right)}.$

[0170]
This is a candidate for an approximation of the positive real part of the power spectrum Φ as in (2.8).

[0171]
Next, we describe how to compute the gradient ∇J. Evaluate the interpolation errors (3.16), noting that e
_{0}=w
_{0}−b
_{0}/a
_{0}, and decompose the complex vector
$\left[\begin{array}{c}\left({e}_{1}{e}_{0}\right)\ue89e\tau \ue8a0\left({p}_{1}^{1}\right)\\ \left({e}_{2}{e}_{0}\right)\ue89e\tau \ue8a0\left({p}_{2}^{1}\right)\\ \vdots \\ \left({e}_{n}{e}_{0}\right)\ue89e\tau \ue8a0\left({p}_{n}^{1}\right)\end{array}\right]={v}_{r}+{\mathrm{iv}}_{i}$

[0172]
into its real part ν
_{r }and imaginary part ν
_{i }Let V
_{r }and V
_{i }be defined by (3.18). Remove all zero rows from V
_{i }and ν
_{i }to obtain V
_{t }and ν
_{t}. Solve the system
$\left[\begin{array}{c}{V}_{r}\\ {V}_{t}\end{array}\right]\ue89ex=\left[\begin{array}{c}{v}_{r}\\ {v}_{t}\end{array}\right]$

[0173]
for the column vector x and form the gradient as
$\begin{array}{cc}\nabla \text{\hspace{1em}}\ue89eJ=2\ue8a0\left[\begin{array}{c}{\mathrm{SL}}_{n1}^{1}\ue89ex\\ 2\ue89e{e}_{0}\end{array}\right],& \text{(3.21)}\end{array}$

[0174]
where S is the solution to the Lyapunov equation (3.9) and L_{n−1 }is given by (3.12).

[0175]
To obtain the search direction, using Newton's method, we need the Hessian. Next, we describe how it is computed. Let the 2n×2nmatrix {circumflex over (P)} be the solution to the Lyapunov equation

{circumflex over (P)}=Â′{circumflex over (P)}Â+ĉ′ĉ,

[0176]
where Â is the companion matrix (formed analogously to A in (3. 10)) of the polynomial α(z)^{2 }and ĉ is the 2n row vector (0, 0, . . . , 0, 1) . Analogously, determine the 3n×3n matrix {tilde over (P)} solving the Lyapunov equation

{tilde over (P)}=Ã′{tilde over (P)}Ã+{tilde over (c)}′{tilde over (c)},

[0177]
where Ã is the companion matrix (formed analogously to A in (3.10)) of the polynomial α(z)
^{2}τ(z) and {tilde over (c)} is the 3n row vector (0, 0, . . . , 0, 1). Then, the Hessian is
$\begin{array}{cc}H=2\ue89e{H}_{1}+{H}_{2}+{H}_{2}^{\prime}\ue89e\text{}\ue89e\text{where}& \text{(3.22)}\\ {H}_{1}={L}_{n}\ue89eM\ue8a0\left(\rho \right)\ue89e{L\ue8a0\left({\alpha}^{2}\right)}^{1}\ue8a0\left[\begin{array}{cc}\hat{P}& 0\\ 0& 1\end{array}\right]\ue89e{L\ue8a0\left({\alpha}^{2}\right)}^{1}\ue89e{M\ue8a0\left(\rho \right)}^{\prime}\ue89e{L}_{n}& \text{(3.23)}\\ {H}_{2}={L}_{n}\ue89eM\ue8a0\left(\tau *\rho \right)\ue89e{L\ue8a0\left({\alpha}^{2}\ue89e\tau \right)}^{1}\ue8a0\left[\begin{array}{cc}\stackrel{~}{P}& 0\\ 0& 1\end{array}\right]\ue89e{L\ue8a0\left({\alpha}^{2}\ue89e\tau \right)}^{1}\ue89e{M\ue8a0\left(\mathrm{\tau \rho}\right)}^{\prime}\ue89e{\stackrel{~}{L}}_{n}& \text{(3.24)}\end{array}$

[0178]
where the precomputed matrices L_{n }and {tilde over (L)}_{n }are given by (3.12) and by reversing the order of the rows in (3.12), respectively. Also M(ρ), M(τ*ρ) and M(τρ) are computed offline, as in (3.20), whereas L(α^{2})^{−1 }and L(α^{2}τ)^{−1 }are computed in the following way:

[0179]
For an arbitrary polynomial (3.19), determine λ_{0}, λ_{1}, . . . , λ_{m }such that

γ(z)(λ_{0} z ^{m}+λ_{1} z ^{m−1}+ . . . +λ_{m})=z ^{2m}+π(z),

[0180]
where π(z) is a polynomial of at most degree m−1. This yields m+1 linear equation for the m+1 unknowns λ
_{0}, λ
_{1}, . . . , λ
_{m}, from which we obtain
${L\ue8a0\left(\gamma \right)}^{1}=\left[\begin{array}{cccc}{\lambda}_{n}& \cdots & {\lambda}_{1}& {\lambda}_{0}\\ {\lambda}_{n1}& \cdots & {\lambda}_{0}& \text{\hspace{1em}}\\ \vdots & \ddots & \text{\hspace{1em}}& \text{\hspace{1em}}\\ {\lambda}_{0}& \text{\hspace{1em}}& \text{\hspace{1em}}& \text{\hspace{1em}}\end{array}\right].$

[0181]
Finally, the new search direction becomes

d=H^{−1}∇J. (3.25)

[0182]
Let d_{previous }denote the search direction d obtained in the previous iteration. If this is the first iteration, initialize by setting d_{previous}=0

[0183]
Step 2. In this step a line search in the search direction d is performed. The basic elements are as follows. Five constants c_{j},j=1,2,3,4,5, are specified with suggested default values C_{1}=10^{−10}, c_{2}=1.5, C_{3}=1.5, c_{4}=0.5, and c_{5}=0.001. If this is the first iteration, set λ=c_{5}.

[0184]
If d<c_{2}d_{previous}, increase the value of a parameter λ by a factor c_{3}. Otherwise, retain the previous value of λ. Using this λ, determine

h _{new} =h−λd. (3.26)

[0185]
Then, an updated value for a is obtained by determining the polynomial (3.4) with all roots less than one in absolute value, satisfying

α(z)α(z ^{−1})=σ(z)τ(z ^{−1})+σ(z ^{−1})τ(z)

[0186]
with σ(z) being the updated polynomial (3.14) given by

σ(z)=τ(z)q(z),

[0187]
where the updated q(z) is given by
$q\ue8a0\left(z\right)={c\ue8a0\left(\mathrm{zI}A\right)}^{1}\ue89eg+{h}_{0},g=\left[\begin{array}{c}{h}_{n}\\ \vdots \\ {h}_{1}\end{array}\right],$

[0188]
with h_{n}, h_{n−1}, . . . , h_{0 }being the components of h_{new}, A and C given by (3.10). This is a standard polynomial factorization problem for which there are several algorithms [F. L. Bauer, Ein direktes Iterationsverfahren zur HurwitzZerlegung eines Polynoms, Arch. Elek. Ubertragung, 9 (1955), 285290; Z. Vostrý, New algorithm for polynomial spectral factorization with quadratic convergence I, Kybernetika 77 (1975), 411418], using only ordinary arithmetic operations. Hence they can be implemented with an MAC mathematics processing chip using ordinary skill in the art. However, the preferred method is described below (see explanation of routine q2a).

[0189]
This factorization can be performed if and only if q(z) satisfies condition (3.15). If this condition fails, this is determined in the factorization procedure, and then the value of λ is scaled down by a factor of c_{4}, and (3.26) is used to compute a new value for h_{new }and then of q(z) successfully until condition (3.15) is met.

[0190]
The algorithm is terminated when the approximation error given in (3.16) becomes less than a tolerance level specified by c
_{1}, e.g., when
$\stackrel{n}{\sum _{0}}\ue89e{\left({e}_{k}\right)}^{2}<{c}_{1}.$

[0191]
Otherwise, set h equal to h_{new }and return to Step 1.

[0192]
Description of technical steps in the procedure. The MATLAB code for this algorithm is given in Appendix B. As an alternative a statespace implementation presented in C. I. Byrnes, T. T. Georgiou, and A. Lindquist, A generalized entropy criterion for NevanlinnaPick interpolation: A convex optimization approach to certain problems in systems and control, preprint, and C. I. Byrnes, T. T. Georgiou, and A. Lindquist, A new approach to spectral estimation: A tunable highresolution spectral estimator, preprint, may also be used. The steps are conveniently organized in four routines:

[0193]
(1) Routine pm, which computes the Pick matrix from the given data p=(p_{0}, p_{1}, . . . , p_{n}) and w=(w_{0}, w_{1}, . . . , w_{n})

[0194]
(2) Routine q2a which is used to perform the technical step of factorization described in Step 2. More precisely, given q(z) we need to compute a rational function a(z) such that

a(z)a(z ^{−1})=q(z)+q(z ^{−1})

[0195]
for the minimumphase solution a(z), in terms of which α(z)=τ(z)a(z). This is standard and is done by solving the algebraic Riccati equation

P−APA′−(g−APc′)(2h _{0} −cPc′)^{−1}(g−APc′)=0,

[0196]
for the stabilizing solution. This yields

a(z)=c(zI−A)^{−1}(g−APc′)/{square root}{square root over (2h _{0} −cPc′)}+. {square root}{square root over (2h _{0} −cPc′)}.

[0197]
This is a standard MATLAB routine [W. F. Arnold, III and A. J. Laub, Generalized Eigenproblem Algorithms and Software for Albebraic Riccati Equations, Proc. IEEE, 72 (1984), 17461754].

[0198]
(3) Routine central, which computes the central solution as described above.

[0199]
(4) Routine decoder which integrates the above and provides the complete function for the decoder of the invention.

[0200]
An application to speaker recognition. In automatic speaker recognition a person's identity is determined from a voice sample. This class of problems come in two types, namely speaker verification and speaker identification. In speaker verification, the person to be identified claims an identity, by for example presenting a personal smart card, and then speaks into an apparatus that will confirm or deny this claim. In speaker identification, on the other hand, the person makes no claim about his identity, and the system must decide the identity of the speaker, individually or as part of a group of enrolled people, or decide whether to classify the person as unknown.

[0201]
Common for both applications is that each person to be identified must first enroll into the system. The enrollment (or training) is a procedure in which the person's voice is recorded and the characteristic features are extracted and stored. A feature set which is commonly used is the LPC coefficients for each frame of the speech signal, or some (nonlinear) transformation of these [Jayant M. Naik, Speaker Verification: A tutorial, IEEE Communications Magazine, January 1990, page 43], [Joseph P. Campbell Jr., Speaker Recognition: A tutorial, Proceedings of the IEEE 85 (1997), 14361462], [Sadaoki Furui, recent advances in Speaker Recognition, Lecture Notes in Computer Science 1206, 1997, page 239]. The motivation for using these is that the vocal tract can be modeled using a LPC filter and that these coefficients are related to the anatomy of the speaker and are thus speaker specific. The LPC model assumes a vocal tract excited at a closed end, which is the situation only for voiced speech. Hence it is common that the feature selection only processes the voiced segments of the speech [Joseph P. Campbell Jr., Speaker Recognition: A tutorial, Proceedings of the IEEE 85 (1997), page 1455]. Since the THREE filter is more general, other segments can also be processed, thereby extracting more information about the speaker.

[0202]
Speaker recognition can further be divided into textdependent and textindependent methods. The distinction between these is that for textdependent methods the same text or code words are spoken for enrollment and for recognition, whereas for textindependent methods the words spoken are not specified.

[0203]
Depending on whether a textdependent or textindependent method is used, the pattern matching, the procedure of comparing the sequence of feature vectors with the corresponding one from the enrollment, is performed in different ways. The procedures for performing the pattern matching for textdependent methods can be classified into template models and stochastic models. In a template model as the Dynamic Time Warping (DTW) [Hiroaki Sakoe and Seibi Chiba, Dynamic Programming Algorithm Optimization for Spoken Word Recognition, IEEE Transactions on Acoustics, Speech and Signal Processing ASSP26 (1978), 4349] one assigns to each frame of speech to be tested a corresponding frame from the enrollment. In a stochastic model as the Hidden Markov Model (HMM) [L. R. Rabiner and B. H. Juang, An Introduction to Hidden Markov Models, IEEE ASSP Magazine, January 1986, 416] a stochastic model is formed from the enrollment data, and the frames are paired in such a way as to maximize the probability that the feature sequence is generated by this model.

[0204]
For textindependent speaker recognition the procedure can be used in a similar manner for speechrecognitionbased methods and textprompted recognition [Sadaoki Furui, Recent advances in Speaker Recognition, Lecture Notes in Computer Science 1206, 1997, page 241f] where the phonemes can be identified.

[0205]
Speaker verification. FIG. 17 depicts an apparatus for enrollment. An enrollment session in which certain code words are spoken by a person later to be identified produces via this apparatus a list of speech frames and their corresponding MA parameters r and AR parameters a, and these triplets are stored, for example, on a smart card, together with the filterbank parameters p used to produce them. Hence, the information encoded on the smart card (or equivalent) is speaker specific. When the identity of the person in question needs to be verified, the person inserts his smart card in a card reader and speaks the code words into an apparatus as depicted in FIG. 18. Here, in Box 12, each frame of the speech is identified. This is done by any of the pattern matching methods mentioned above. These are standard procedures known in the literature [Joseph P. Campbell Jr., Speaker Recognition: A tutorial, Proceedings of the IEEE 85 (1997), pages 14521454]. From the smart card the corresponding r, a and p are retrieved. The filterbank poles are transferred to the Bank of Filters and the Decoder. (Another p could be used, but the same has to be used in both Box 1 and Box 7.) The parameters r and a are also transferred to the Decoder. The AR parameters a are used as initial condition in the Decoder algorithm (unless the central solution is used in which case no initial condition is needed). Box 7 produces AR parameters â which hopefully are close to a. The error âa from each frame is compounded in a measure of goodnessoffit, and decision is finally made as to whether to accept or reject the person.

[0206]
Speaker identification. In speaker identification the enrollment is carried out in a similar fashion as for speaker verification except that the feature triplets are stored in a database. FIG. 19 depicts an apparatus for speaker identification. It works like that in FIG. 17 except that there is a frame identification box (Box 12) as in FIG. 18, the output of which together with the MA parameters a and AR parameters a are fed into a data base. The feature triplets are compared to the corresponding triplets for the population of the database and a matching score is given to each. On the basis of the (weighted) sum of the matching scores of each frame the identity of the speaker is decided.

[0207]
DopplerBased Applications and Measurement of TimeDelays. In communications, radar, sonar and geophysical seismology a signal to be estimated or reconstructed can often be described as a sum of harmonics in additive noise [P. Stoica and Ro. Moses, Introduction to Spectral Analysis, PrenticeHall, 1997, page 139]. While traditional methods are designed for either white noise or no noise at all, estimation of sinusoids in colored noise has been regarded as difficult problem [B. Porat, Digital Processing of Random Signals, PrenticeHall, 1994, pages 285286]. THREE filter design is particularly suited for the colored noise case, and as an ARMA method it offers “superresolution” capabilities [P. Stoica and Ro. Moses, Introduction to Spectral Analysis, PrenticeHall, 1997, page 136]. As an illustration, see the second example in the introduction.

[0208]
Tunable highresolution speed estimation by Doppler radar. We disclose an apparatus based on THREE filter design for determining the velocities of several moving objects. If we track m targets moving with constant radial velocities v
_{1}, v
_{2}, . . . , v
_{m}, respectively, by a pulseDoppler radar emitting a signal of wavelength λ, the backscattered signal measured by the radar system after reflection of the objects takes the form
$y\ue89e\left(t\right)=\sum _{k=1}^{m}\ue89e{\alpha}_{k}\ue89e{\uf74d}^{\uf74e\ue89e\text{\hspace{1em}}\ue89e{\theta}_{k}\ue89et}+v\ue89e\left(t\right),$

[0209]
where θ
_{1}, θ
_{2}, . . . , θ
_{m }are the Doppler frequencies, ν(t) is the measurement noise, and α
_{1}, α
_{2}, . . . , α
_{m }are (complex) amplitudes. (See, e.g., B. Porat,
Digital Processing of Random Signals, PrenticeHall, 1994, page 402] or [P. Stoica and Ro. Moses,
Introduction to Spectral Analysis, PrenticeHall, 1997, page 175].) The velocities can then be determined as
${v}_{k}=\frac{{\mathrm{\lambda \theta}}_{k}}{4\ue89e\pi \ue89e\text{\hspace{1em}}\ue89e\Delta}\ue89e\text{\hspace{1em}}\ue89ek=1,2,\dots \ue89e\text{\hspace{1em}},m,$

[0210]
where Δ is the pulse repetition interval, assuming onceperpulse coherent inphase/quadrature sampling.

[0211]
[0211]FIG. 20 illustrates a Doppler radar environment for our method, which is based on the Encoder and Spectral Analyzer components of the THREE filter. To estimate the velocities amounts to estimating the Doppler frequencies which appear as spikes in the estimated spectrum, as illustrated in FIG. 7. The device is tuned to give high resolution in the particular frequency band where the Doppler frequencies are expected.

[0212]
The only variation in combining the previously disclosed Encoder and Spectral Estimator lies in the use of dashed rather than solid communication links in FIG. 20. The dashed communication links are optional. When no sequence r of MA parameters is transmitted from Box 6 to Box 7′, Box 7′ chooses the default values r=(τ_{1}, τ_{2}, . . . , τ_{m}) , which are defined via (3.1) in terms of the sequence p of filterbank parameters, transmitted by Component 4 to Box 7′. In the default case, Box 7′ also transmits the default values r=τ to Box 10. For those applications when it is desirable to tune the MA parameters sequence r from the observed data stream, as disclosed above, the dotted lines can be replaced by solid (open) communication links, which then transmit the tuned values of the MA parameter sequence r from Box 6 to Box 7′ and Box 10.

[0213]
The same device can also be used for certain spatial dopplerbased applications [P. Stoica and Ro. Moses, Introduction to Spectral Analysis, PrenticeHall, 1997, page 248].

[0214]
Tunable highresolution timedelay estimator. The use of THREE filter design in line spectra estimation also applies to time delay estimation [M. A. Hasan and M. R. AzimiSadjadi, Separation of multiple time delays using new spectral estimation schemes, IEEE Transactions on Signal Processing 46 (1998), 26182630] [M. Zeytino{haeck over (g)}lu and K. M. Wong, Detection of harmonic sets, IEEE Transactions on Signal Processing 43 (1995), 26182630] in communication. Indeed, the tunable resolution of THREE filters can be applied to sonar signal analysis, for example the identification of timedelays in underwater acoustics [M. A. Hasan and M. R. AzimiSadjadi, Separation of multiple time delays using new spectral estimation schemes, IEEE Transactions on Signal Processing 46 (1998), 26182630].

[0215]
[0215]FIG. 21 illustrates a possible timedelay estimator environment for our method, which has precisely the same THREEfilter structure as in FIG. 20 except for the preprocessing of the signal. In fact, this adaptation of THREE filter design is a consequence of Fourier analysis, which gives a method of interchanging frequency and time. In more detail, if x(t) is the emitted signal, the backscattered signal is of the form
$z\ue89e\left(t\right)=\sum _{k=1}^{m}\ue89e{h}_{k}\ue89e\left(t\right)*x\ue89e\left(t{\delta}_{k}\right)+v\ue89e\left(t\right),$

[0216]
where the first term is a sum of convolutions of delayed copies of the emitted signal and v(t) represents ambient noise and measurement noise. The convolution kernels h
_{k}, k=1, 2, . . . , m, represent effects of media or reverberation [M. A. Hasan and M. R. AzimiSadjadi,
Separation of multiple time delays using new spectral estimation schemes, IEEE Transactions on Signal Processing 46 (1998), 26182630], but they could also be δfunctions with Fourier transforms H
_{k}(ω)≡1. Taking the Fourier transform, the signal becomes
$Z\ue89e\left(\omega \right)=\sum _{k=1}^{m}\ue89e{H}_{k}\ue89e\left(\omega \right)\ue89eX\ue89e\left(\omega \right)\ue89e{\uf74d}^{\uf74e\ue89e\text{\hspace{1em}}\ue89e{\mathrm{\omega \delta}}_{k}}+n\ue89e\left(\omega \right),$

[0217]
where the Fourier transform X(ω) of the original signal is known and can be divided off.

[0218]
It is standard in the art to obtain a frequencydependent signal from the timedependent signal by fast Fourier methods, e.g., FFT. Sampling the signal Z(w) at frequencies ω=τω_{0}, τ=0, 1, 2, . . . , N, and using our knowledge of the power spectrum X(ω) of the emitted signal, we obtain an observation record

[0219]
y_{0},y_{1}, y_{2}. . . , y_{N }

[0220]
of a time series
$y\ue89e\left(\tau \right)=\sum _{k=1}^{m}\ue89e{\alpha}_{k}\ue89e{\uf74d}^{\uf74e\ue89e\text{\hspace{1em}}\ue89e{\mathrm{\tau \theta}}_{k}}+v\ue89e\left(\tau \right),$

[0221]
where θ_{k}=ω_{0}δ_{k }and ν(τ) is the corresponding noise. To estimate spectral lines for this observation record is to estimate θ_{k}, and hence δ_{k }for k=1, 2, . . . , m. The method and apparatus described in FIG. 20 is then a THREE linespectra estimator as the one disclosed above and described in FIG. 20 with the modifications described here. In particular, the Transmitter/Receiver could be a sonar.

[0222]
Other Areas of Application. The THREE filter method and apparatus can be used in the encoding and decoding of signals more broadly in applications of digital signal processing. In addition to speaker identification and verification, THREE filter design could be used as a part of any system for speech compression and speech processing. The use of THREE filter design line spectra estimation also applies to detection of harmonic sets [M. Zeytino{haeck over (g)}lu and K. M. Wong, Detection of harmonic sets, IEEE Transactions on Signal Processing 43 (1995), 26182630]. Other areas of potential importance include identification of formants in speech and data decimation [M. A. Hasan and M. R. AzimiSadjadi, Separation of multiple time delays using new spectral estimation schemes, IEEE Transactions on Signal Processing 46 (1998), 26182630]. Finally, we disclose that the fixedmode THREE filter, where the values of the MA parameters are set at the default values determined by the filterbank poles also possesses a security feature because of its fixedmode feature: If both the sender and receiver share a prearranged set of filterbank parameters, then to encode, transmit and decode a signal one need only encode and transmit the parameters w generated by the bank of filters. Even in a public domain broadcast, one would need knowledge of the filterbank poles to recover the transmitted signal.

[0223]
Various changes may be made to the invention as would be apparent to those skilled in the art. However, the invention is limited only to the scope of the claims appended hereto, and their equivalents.