# makepassive

Enforce passivity of `rationalfit` output or a rational object

## Syntax

``pfit = makepassive(fit,s)``
``pfit = makepassive(fit,s,'Display','on')``

## Description

example

````pfit = makepassive(fit,s)` produces a passive fit by modifying the input, `fit` while optimally matching the data of S-parameter input, `s`. `makepassive` function does modifies the residues of the `fit` to make it passive.```
````pfit = makepassive(fit,s,'Display','on')` solves as above, but turns on the display of iteration information. The default for `'Display'` is `'off'`.```

## Examples

collapse all

Read a file named `passive.s2p` and fit the 2x2 S-parameters.

``` S = sparameters('passive.s2p'); fit = rationalfit(S);```

Plot the passivity of the 2x2 fit, noting the violations.

``` figure passivity(fit)``` Optimize residues to produce a passive fit still close to S.

` pfit = makepassive(fit,S)`
```pfit = 2x2 rfmodel.rational array with properties: A C D Delay Name ```

To display iteration information:

` pfit = makepassive(fit,S,'Display','on' )`
```ITER H-INFTY NORM FREQUENCY ERRDB CONSTRAINTS 0 1 + 1.791e-02 17.6816 GHz -40.4702 1 1 + 2.878e-04 275.337 MHz -40.9167 5 2 1 + 9.291e-05 365.528 MHz -40.9092 7 3 1 - 5.722e-07 368.237 MHz -40.9061 9 ```
```pfit = 2x2 rfmodel.rational array with properties: A C D Delay Name ```

Plot the passivity of the new fit.

``` figure passivity(pfit)``` ## Input Arguments

collapse all

N-by-N array, specified as a a `rfmodel.rational` objects returned by `rationalfit` or a `rational` object.

S-parameters, specified as an RF Toolbox™ network parameter object. To create this type of object, use the `sparameters` function.

## Output Arguments

collapse all

`rfmodel.rational` objects, returned as N-by-N array.