skrf.circuit.Circuit.s
- property Circuit.s: ndarray
Return the global scattering parameters of the circuit.
Return the scattering parameters of both “inner” and “outer” ports.
Note
The original implementation of this method calculated the S-parameters [S] using the global scattering matrix [C] and the concatenated intersection matrix [X] by solving the equation: [S] = [X] @ ([E] - [C] @ [X])^-1
where [E] is the identity matrix. However, this approach is computationally inefficient for large networks due to its numerical bottlenecks.
The current implementation optimizes the calculation by leveraging matrix algebra to simplify the relationship between the incident {a} and reflected {b} power waves. The key steps are as follows:
- Define the relationship between {b} and {a} using [X] and [C]:
{b} = [X] @ ([E] - [C] @ [X])^-1 @ {a}
- Simplify the relationship between {a} and {b}:
- {a} = ([X] @ ([E] - [C] @ [X])^-1)^-1 @ {b}
= ([E] - [C] @ [X]) @ [X]^-1 @ {b} = ([X]^-1 - [C] @ [X] @ [X]^-1) @ {b} = ([X]^-1 - [C]) @ {b}
- Derive the S-parameters matrix [S] from the simplified relationship:
[S] = ([X]^-1 - [C])^-1
- Leverage the property of the concatenated intersection matrix [X]:
- [X] is a block diagonal matrix composed of individual intersection matrices [X]_k:
[X] = diag([X_1], [X_2], …, [X_n]).
- Each [X]_k represents an ideal lossless power splitter, which is unitary:
[X]_k^H @ [X]_k = I, where [X]_k^H is the conjugate transpose of [X]_k.
- Due to reciprocity, the inverse of [X]_k is its conjugate:
[X]_k^-1 = [X]_k^*.
- Substitute the property into the S-parameters equation:
[S] = ([X^T]^* - [C])^-1
This approach avoids the explicit computation of [X]^-1, significantly improving computational efficiency for large-scale networks.
- Returns:
S – global scattering parameters of the circuit.
- Return type: