# Discrete Zero-Pole

Model system defined by zeros and poles of discrete transfer function

Discrete

## Description

The Discrete Zero-Pole block models a discrete system defined by the zeros, poles, and gain of a z-domain transfer function. This block assumes that the transfer function has the following form:

`$H\left(z\right)=K\frac{Z\left(z\right)}{P\left(z\right)}=K\frac{\left(z-{Z}_{1}\right)\left(z-{Z}_{2}\right)...\left(z-{Z}_{m}\right)}{\left(z-{P}_{1}\right)\left(z-{P}_{2}\right)...\left(z-{P}_{n}\right)},$`

where Z represents the zeros vector, P the poles vector, and K the gain. The number of poles must be greater than or equal to the number of zeros (n ≥ m). If the poles and zeros are complex, they must be complex conjugate pairs.

The block displays the transfer function depending on how the parameters are specified. See Zero-Pole for more information.

## Data Type Support

The Discrete Zero-Pole block accepts and outputs real signals of type `double` and `single`. For more information, see Data Types Supported by Simulink in the Simulink® documentation.

## Parameters

Zeros

Specify the matrix of zeros. The default is `[1]`.

Poles

Specify the vector of poles. The default is `[0 0.5]`.

Gain

Specify the gain. The default is `1`.

Sample time

Specify the time interval between samples. See Specifying Sample Time.

State name

Use this parameter to assign a unique name to the block state. The default is `' '`. When this field is blank, no name is assigned. When using this parameter, remember these considerations:

• A valid identifier starts with an alphabetic or underscore character, followed by alphanumeric or underscore characters.

• The state name applies only to the selected block.

This parameter enables State name must resolve to Simulink signal object when you click Apply.

State name must resolve to Simulink signal object

Select this check box to require that the state name resolve to a Simulink signal object. This check box is cleared by default.

State name enables this parameter. This parameter appears only if you set the model configuration parameter Signal resolution to a value other than `None`.

Selecting this check box disables Code generation storage class.

Signal object class

Choose a custom storage class package by selecting a signal object class that the target package defines. For example, to apply custom storage classes from the built-in package `mpt`, select `mpt.Signal`. Unless you use an ERT-based code generation target with Embedded Coder®, custom storage classes do not affect the generated code.

If the class that you want does not appear in the list, select ```Customize class lists```. For instructions, see Apply Custom Storage Classes Directly to Signal Lines, Block States, and Outport Blocks.

To programmatically set this parameter, use `StateSignalObject`.

For information about storage classes, see Control Signals and States in Code by Applying Storage Classes. For information about custom storage classes, see Control Data Representation by Applying Custom Storage Classes.

Code generation storage class

Select state storage class for code generation.

Default: `Auto`

`Auto`

`Auto` is the appropriate storage class for states that you do not need to interface to external code.

`StorageClass`

Applies the storage class or custom storage class that you select from the list. For information about storage classes, see Control Signals and States in Code by Applying Storage Classes. For information about custom storage classes, see Control Data Representation by Applying Custom Storage Classes.

Use Signal object class to select custom storage classes from a package other than `Simulink`.

State name enables this parameter.

To programmatically set this parameter, use `StateStorageClass` or `StateSignalObject`. See Control Signals and States in Code by Applying Storage Classes.

TypeQualifier
 Note:   TypeQualifier will be removed in a future release. To apply storage type qualifiers to data, use custom storage classes and memory sections. Unless you use an ERT-based code generation target with Embedded Coder, custom storage classes and memory sections do not affect the generated code.

Specify a storage type qualifier such as `const` or `volatile`.

Setting Code generation storage class to `ExportedGlobal`, `ImportedExtern`, `ImportedExternPointer`, or `SimulinkGlobal` enables this parameter. This parameter is hidden unless you previously set its value.

During simulation, the block uses the following values:

• The initial value of the signal object to which the state name is resolved

• Min and Max values of the signal object

## Characteristics

 Data Types Double | Single Sample Time Specified in the Sample time parameter Direct Feedthrough Yes, if the number of zeros and poles are equal Multidimensional Signals No Variable-Size Signals No Zero-Crossing Detection No Code Generation Yes