makepassive

Enforce passivity of a rationalfit output

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=2×2 object
  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.327  MHz	-40.9167	5
2		1 + 9.233e-05	365.865  MHz	-40.9092	7
3		1 - 3.541e-07	368.137  MHz	-40.906 	9
pfit=2×2 object
  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 rfmodel.rational objects returned by rationalfit.

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.

Introduced in R2019a