Note: This page has been translated by MathWorks. Please click here

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

Identify discrete-time filter parameters from frequency response data

`[b,a]`

` = `

invfreqz(h,w,n,m)

[b,a]` = `

invfreqz(h,w,n,m,wt)

[b,a]` = `

invfreqz(h,w,n,m,wt,iter)

[b,a]` = `

invfreqz(h,w,n,m,wt,iter,tol)

[b,a]` = `

invfreqz(h,w,n,m,wt,iter,tol,'`trace`

')

[b,a]` = `

invfreqz(h,w,'`complex`

',n,m,...)

`invfreqz`

is the inverse
operation of `freqz`

; it finds
a discrete-time transfer function that corresponds to a given complex
frequency response. From a laboratory analysis standpoint, `invfreqz`

can
be used to convert magnitude and phase data into transfer functions.

`[b,a]`

returns
the real numerator and denominator coefficients in vectors ` = `

invfreqz(h,w,n,m)`b`

and `a`

of
the transfer function

$$H(z)=\frac{B(z)}{A(z)}=\frac{b(1)+b(2){z}^{-1}+\cdots +b(n+1){z}^{-n}}{a(1)+a(2){z}^{-1}+\cdots +a(m+1){z}^{-m}}$$

whose complex frequency response is given in vector `h`

at
the frequency points specified in vector `w`

. Scalars `n`

and `m `

specify
the desired orders of the numerator and denominator polynomials.

Frequency is specified in radians between 0 and π,
and the length of `h`

must be the same as the length
of `w`

. `invfreqz`

uses `conj`

`(h)`

at `-w`

to
ensure the proper frequency domain symmetry for a real filter.

`[b,a]`

weights
the fit-errors versus frequency, where ` = `

invfreqz(h,w,n,m,wt)`wt`

is a
vector of weighting factors the same length as `w`

.

`[b,a]`

and` = `

invfreqz(h,w,n,m,wt,iter)

`[b,a]`

provide
a superior algorithm that guarantees stability of the resulting linear
system and searches for the best fit using a numerical, iterative
scheme. The ` = `

invfreqz(h,w,n,m,wt,iter,tol)`iter`

parameter tells `invfreqz`

to
end the iteration when the solution has converged, or after `iter`

iterations,
whichever comes first. `invfreqz`

defines convergence
as occurring when the norm of the (modified) gradient vector is less
than `tol`

, where `tol`

is an optional
parameter that defaults to 0.01. To obtain a weight vector of all
ones, use

invfreqz(h,w,n,m,[],iter,tol)

`[b,a]`

displays
a textual progress report of the iteration.` = `

invfreqz(h,w,n,m,wt,iter,tol,'`trace`

')

`[b,a]`

creates
a complex filter. In this case no symmetry is enforced, and the frequency
is specified in radians between -π and π.` = `

invfreqz(h,w,'`complex`

',n,m,...)

[1] Levi, E. C. "Complex-Curve Fitting." *IRE
Transactions on Automatic Control*. Vol. AC-4,
1959, pp. 37–44.

[2] Dennis, J. E., Jr., and R. B. Schnabel. *Numerical
Methods for Unconstrained Optimization and Nonlinear Equations*.
Englewood Cliffs, NJ: Prentice-Hall, 1983.

Was this topic helpful?