Filter order estimation

Assume some unknown but small and finite number of poles and zeros in the complex Z plane, all with complex conjugates, producing some response. Strictly from the absolute value of a set of equally spaced points around the unit circle, say greater than 2X the number of poles and zeros, of that response, is it possible to estimate or compute the number of poles and zeros which produced that sampled magnitude response?

Added: Are more than 2X sample points required to determine the number of poles and zeros? (when given that the total is less than X).

Added: If there is more than one solution, can a minimum solution (as in the minimum number of total poles and zeros) be found or estimated?

• This is a much easier problem with no poles. That would essentially become the algorithm in the matlab/octave firls command. Jun 19 '12 at 12:53
• I wonder if you could analyze the numerator and denominator of the frequency response in terms of the generalized eigenvalue problem. You'd probably need to assume phase (linear for starters) Jun 19 '12 at 12:56
• I guess allpass filters are ruled out! If poles and zeros are 'close enough' I think you will have problems when samples of the response are equally spaced. Anyway, let's say you have a response that is flat except for a small bump somewhere not too low in frequency. Depending on your preference you can then model that using a biquad (2 zeros and 2 poles) or you could model it using 4 to 6 zeros instead. A related question is: given a set of poles and zeros, what is the minimum number of points of the magnitude response required in order to precisely compute the number of poles and zeros. Jun 19 '12 at 20:09
• I think the problem, as stated, isn't solvable. You could take any arbitrary system and cascade it with one or more allpass filters; this would not affect its magnitude response but it would change how many poles/zeros the cascade has. For a given magnitude response, then, there would be infinitely many numbers of corresponding poles and zeros. It might be a different story if you had access to the system's phase response. Failing that, you could definitely estimate the system order (using some unspecified scheme). Nice problem to think about. Jun 19 '12 at 21:44
• Fixed the question to remove an infinite zoo of allpass filters from the solution. Jun 19 '12 at 22:21

Let's consider this in polynomial space. For a filter of order N you have 2*N+1 independent variables (N for the denominator and N+1 for the numerator). Let's look an arbitrary point $z_{k}$ in the z-plane and let's say the value of the transfer function at this point is H($z_{k}$). The relationship between the transfer function and all the filter coefficients can be written as equation that's linear in all filter coefficients as follows: $$\sum_{n=0}^{2*N}b_{n}\cdot z_{k}^{-n} - H(z_{k})\cdot \sum_{n=1}^{2*N}a_{n}\cdot z_{k}^{-n}=H(z_{k})$$ So if you pick M different frequencies $z_{k}$ you'll end up with a set of M complex linear equations or 2*M real equations. Since your number of unknowns is odd (2*N+1) you probably always want to pick one frequency where z is real, i.e z = 1 or $\omega$ = 0.