Main Content

makepassive

Enforce passivity of rationalfit output or a rational object

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)

Figure contains an axes object. The axes object with title F i t blank n o t blank p a s s i v e , blank H indexOf infinity baseline blank n o r m blank i s blank 1 blank + blank 1 . 7 9 1 e - 0 2 blank a t blank 1 7 . 6 8 1 6 blank G H z . contains 4 objects of type line.

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)

Figure contains an axes object. The axes object with title F i t blank p a s s i v e , blank H indexOf infinity baseline blank n o r m blank i s blank 1 blank - blank 5 . 7 2 2 e - 0 7 blank a t blank 3 6 8 . 2 3 7 blank M H z . contains an object of type line.

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.

Introduced in R2019a