# zpk

Zero-pole-gain conversion of discrete-time filter System object

## Syntax

``[z,p,k] = zpk(sysobj)``
``[z,p,k] = zpk(sysobj,'Arithmetic',arithType)``

## Description

example

````[z,p,k] = zpk(sysobj)` returns the zeros, poles, and gain corresponding to the filter System object™ in vector `z`, vector `p`, and scalar `k`, respectively.```
````[z,p,k] = zpk(sysobj,'Arithmetic',arithType)` analyzes the filter System object based on the arithmetic specified in `arithType`.For more input options, see `zpk` in Signal Processing Toolbox™.```

## Examples

collapse all

Compute the zero-pole-gain form of the highpass filter using the `zpk` function.

Design a minimum order highpass FIR filter with a passband frequency of 75 kHz and passband ripple of 0.2 dB. Specify a sample rate of 200 kHz.

`hFilt = dsp.HighpassFilter('PassbandFrequency',75e3,'PassbandRipple',0.2,'SampleRate',200e3)`
```hFilt = dsp.HighpassFilter with properties: FilterType: 'FIR' DesignForMinimumOrder: true StopbandFrequency: 8000 PassbandFrequency: 75000 StopbandAttenuation: 80 PassbandRipple: 0.2000 SampleRate: 200000 Show all properties ```

Find the zeros, poles, and the gain of the designed filter using the `zpk` function.

`[z,p,k] = zpk(hFilt)`
```z = 8×1 complex 17.2236 + 0.0000i -3.0709 + 0.0000i 0.9732 + 0.2300i 0.9732 - 0.2300i 0.9954 + 0.0957i 0.9954 - 0.0957i -0.3256 + 0.0000i 0.0581 + 0.0000i ```
```p = 8×1 0 0 0 0 0 0 0 0 ```
```k = -0.0023 ```

## Input Arguments

collapse all

Arithmetic used in the filter analysis, specified as `'double'`, `'single'`, or `'Fixed'`. When the arithmetic input is not specified and the filter System object is unlocked, the analysis tool assumes a double-precision filter. When the arithmetic input is not specified and the System object is locked, the function performs the analysis based on the data type of the locked input.

The `'Fixed'` value applies to filter System objects with fixed-point properties only.

When the `'Arithmetic'` input argument is specified as `'Fixed'` and the filter object has the data type of the coefficients set to `'Same word length as input'`, the arithmetic analysis depends on whether the System object is unlocked or locked.

• unlocked –– The analysis object function cannot determine the coefficients data type. The function assumes that the coefficients data type is signed, has a 16-bit word length, and is auto scaled. The function performs fixed-point analysis based on this assumption.

• locked –– When the input data type is `'double'` or `'single'`, the analysis object function cannot determine the coefficients data type. The function assumes that the data type of the coefficients is signed, has a 16-bit word length, and is auto scaled. The function performs fixed-point analysis based on this assumption.

To check if the System object is locked or unlocked, use the `isLocked` function.

When the arithmetic input is specified as `'Fixed'` and the filter object has the data type of the coefficients set to a custom numeric type, the object function performs fixed-point analysis based on the custom numeric data type.

## Output Arguments

collapse all

Zeros of the filter, returned as a column vector.

Data Types: `double`
Complex Number Support: Yes

Poles of the filter, returned as a column vector.

Data Types: `double`
Complex Number Support: Yes

Gain of the filter, returned as a real scalar.

Data Types: `double`

## Version History

Introduced in R2011a