Public Documentation
Documentation for TouchstoneParser.jl public interface.
Contents
Index
TouchstoneParser.NoiseDataTouchstoneParser.TSParserTouchstoneParser.comments_after_option_lineTouchstoneParser.g2sTouchstoneParser.h2gTouchstoneParser.h2sTouchstoneParser.read_touchstoneTouchstoneParser.s2gTouchstoneParser.s2hTouchstoneParser.s2yTouchstoneParser.s2zTouchstoneParser.s2z_alternativeTouchstoneParser.simvariablesTouchstoneParser.write_touchstoneTouchstoneParser.y2sTouchstoneParser.y2s_alternativeTouchstoneParser.z2s
Public Interface
TouchstoneParser.read_touchstone — Functionread_touchstone(file)Read a Touchstone file with version 1.0, 1.1, 2.0 or 2.1.
Returns a struct TSParser with the data.
TouchstoneParser.write_touchstone — Functionwrite_touchstone(filename, F, A, z0; kwargs...)Write a Touchstone file named “filename” using the format specified in the name or in the keyword version.
Arguments
- filename: name of the file.
- F: Vector of frequencies.
- A: Data to write on the Touchstone. Can be a Vector{Matrix{ComplexF64}} or a Array{ComplexF64, 3}
- z0: Number of Vector of numbers of length equal to the number of ports.
Keywords
- version: Default to
"". Must be a string like"1.0","1.1","2.0"or"2.1". - default_comments: Default to
true. Write the comment! Touchstone file created with TouchstoneParser.jl - default_date: Default to
true. Add the Date to the file as a comment. - funit: Default to
:GHz. Must be a Symbol. - ptype: Default to
:S. Must be a Symbol. - matrixformat: Default to
:FULL. Can also be:UPPERor:LOWER. - twoportorder: Default to
"12_21. The other option is "21_12". - noise_f: Default to
nothing. Should be a Vector for each noise data. - noise_data: Default to
nothing. Should be the noise data. - mixedmodeorder: Default to
"".
TouchstoneParser.TSParser — TypeTSParserStruct containing the data of the parsed Touchstone file.
File name
filename::StringSettings
version::String
n_ports::IntOption line field
type::Symbol
format::Symbol
resistance::Vector{Float64}
units::SymbolKeyword Options
n_freqs::Int
n_noisefreqs::Int
references::Vector{Float64}
twoport_order::String
mixed_mode_order::String
matrixformat::Symbol
info::Vector{String}Data
frequency::Vector{Float64}
data::Array{ComplexF64, 3}
noise_frequency::Vector{Float64}
noise_data::Vector{NoiseData}
z0::Matrix{ComplexF64}HFSS version: This section uses # https://github.com/scikit-rf/scikit-rf/blob/master/skrf/io/ts.py as reference.
hfss_data_type::Symbol
hfss_gamma::Vector{ComplexF64}
hfss_impedance::Vector{ComplexF64}
gamma::Matrix{ComplexF64}Comments
comments::Vector{Tuple{Int,String}}debug and utils
port_names::Vector{String}
pstate::TouchstoneParser.ParserStateTouchstoneParser.NoiseData — TypeNoiseDataFields
min_noise_figure::Float64 in dB
reflection::Complex{Float64}
Reff::Float64TouchstoneParser.simvariables — Functionsimvariables(ts::TSParser) -> Dict{String,String}Parse simulation variables from the comment section of a Touchstone file.
This function is able to extract parameter definitions from the comment styles used by softwares:
- Sonnet style:
"""
!< p1 = 1.00
!< p2 = 2.00
!< p3 = 3
!< p4 = 4.0 um
!< ...
"""- HFSS style:
"""
! p1 = 1units
! p2 = 2.0units
! p3 = 3.0units
! ...
"""- CST style:
"""
! Parameters = {p1 = 1.0; p2 = 2.0, p3 = 3.0, ...}
"""Arguments
ts::TSParser
Notes
- For HFSS and Sonnet variables with units. Because of this, the function returns a Dict{String, String}.
Examples
using TouchstoneParser: read_touchstone
ts = TouchstoneParser.read_touchstone(path)
v = simvariables(ts)TouchstoneParser.comments_after_option_line — Functioncomments_after_option_line(ts::TSParser)Returns a Vector of Tuples{Int, String} where the Integer represents the line where the comment appears.
TouchstoneParser.s2h — Functions2h(H)Converts hybrid S parameters to impedance H parameters.
Arguments
H::Matrix{ComplexF64}: 2×2 S parameter matrixZ0::NumberorVector: Reference characteristic impedance(s).
Returns
Matrix{ComplexF64}: 2×2 impedance parameter matrix
TouchstoneParser.s2g — Functions2g(H)Converts S parameters to G parameters.
Arguments
H::Matrix{Complex}: 2×2 hybrid parameter matrix.Z0::NumberorVector: Reference characteristic impedance(s).
Returns
Matrix{ComplexF64}: 2×2 S parameter matrix
TouchstoneParser.h2s — Functions2h(H)Converts hybrid H parameters to impedance S parameters.
Arguments
H::Matrix{ComplexF64}: 2×2 hybrid parameter matrixZ0::NumberorVector: Reference characteristic impedance(s).
Returns
Matrix{ComplexF64}: 2×2 matrix
TouchstoneParser.g2s — Functions2h(H)Converts hybrid G parameters to impedance S parameters.
Arguments
H::Matrix{ComplexF64}: 2×2 hybrid parameter matrixZ0::NumberorVector: Reference characteristic impedance(s).
Returns
Matrix{ComplexF64}: 2×2 S parameter matrix
TouchstoneParser.h2g — Functionh2g(H)Converts H parameters to G parameters.
TouchstoneParser.s2y — Functions2y(S, Z0)Converts scattering parameters S to admittance parameters Y in a numerically stable way.
Arguments
S::Matrix{Complex}: n×n scattering parameter matrix.Z0::NumberorVector: Reference characteristic impedance(s).
Formula
$Y = Z_0^{-1/2} ((I + S) \ (I - S)) Z_0^{-1/2}$
TouchstoneParser.y2s — Functiony2s(Y, Z0)Converts admittance parameters Y to scattering parameters S in a numerically stable way.
Arguments
Y::Matrix{Complex}: n×n admittance parameter matrix.Z0::NumberorVector: Reference characteristic impedance(s).
Formula
$S = \left( I + \sqrt{Z_0} Y \sqrt{Z_0} \right)^{-1} \left( I - \sqrt{Z_0} Y \sqrt{Z_0} \right)$
TouchstoneParser.s2z — Functions2z(S, Z0)Converts scattering parameters S to impedance parameters Z in a numerically stable way.
Arguments
S::Matrix{Complex}: n×n scattering parameter matrix.Z0::NumberorVector: Reference characteristic impedance(s).
Formula
$Z = Z_0^{1/2} ((I - S) \ (I + S)) Z_0^{1/2}$
TouchstoneParser.z2s — Functionz2s(Z, Z0)Converts impedance parameters Z to scattering parameters S.
Arguments
Z::Matrix{Complex}: n×n impedance parameter matrix.Z0::NumberorVector: Reference characteristic impedance(s).
Formula
$S = \left( Z Z_0^{-1/2} + Z_0^{1/2} \right)^{-1} \left( Z Z_0^{-1/2} - Z_0^{1/2} \right)$
TouchstoneParser.y2s_alternative — Functiony2s_alternative(Y, Z0)Alternative version of y_to_s using diagonal scaling factors.
Arguments
Y::Matrix{Complex}: n×n admittance parameter matrix.Z0::NumberorVector: Reference characteristic impedance(s).
Formula
$S = \left( Z_0^{-1/2} + Y Z_0^{1/2} \right)^{-1} \left( Z_0^{-1/2} - Y Z_0^{1/2} \right)$
TouchstoneParser.s2z_alternative — Functions2z_alternative(S, Z0)Conversion from S to Z.
Arguments
S::Matrix{Complex}: n×n scattering parameter matrix.Z0::NumberorVector: Reference characteristic impedance(s).
Formula
$Z = Z_0^{1/2} (I + S) / (I - S) Z_0^{1/2}$
Better stability than the direct version:
$Z = Z_0^{1/2} (I + S) * inv(I - S) Z_0^{1/2}$