# invfreqz

Compute digital filter coefficients from frequency response values.

## Syntax

[b,a] = invfreqz(h,f,nb,na)

[b,a] = invfreqz(h,f,nb,na,w)

## Inputs

`h`- The complex frequency response values.
`f`- The frequencies corresponding to
`h`. The values in Hz must be normalized relative to fs/(2*pi), where fs is the sampling frequency, so that the Nyquist frequency corresponds to a value of pi. `nb`- The filter numerator polynomial order.
`na`- The filter denominator polynomial order.
`w`- Optional weights applied to achieve a weighted fitting of the response values.

## Outputs

`b`- The estimated numerator polynomial coefficients of the filter.
`a`- The estimated denominator polynomial coefficients of the filter.

## Example

Recover coefficients from the output of a digital Chebyshev I filter.

```
order = 3;
fc = 200;
fs = 1000;
[b1,a1] = cheby1(order, 1, fc/(fs/2), 'z')
f = [0:0.2:2] * fc;
h = freqz(b1,a1,f,fs);
[b2,a2] = invfreqz(h,pi*f/(fs/2),order,order)
```

```
b1 = [Matrix] 1 x 4
0.07360 0.22079 0.22079 0.07360
a1 = [Matrix] 1 x 4
1.00000 -0.97613 0.85676 -0.29186
b2 = [Matrix] 1 x 4
0.07360 0.22079 0.22079 0.07360
a2 = [Matrix] 1 x 4
1.00000 -0.97613 0.85676 -0.29186
```

## Comments

It is recommended to use freqz to assess the quality of the fitted filter coefficients.