pyRFtk 2.0.6__tar.gz → 2.0.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyrftk-2.0.6 → pyrftk-2.0.8}/PKG-INFO +13 -1
- {pyrftk-2.0.6 → pyrftk-2.0.8}/README.md +12 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/pyproject.toml +3 -1
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/ReadTSF.py +10 -6
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/WriteTSF.py +4 -3
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/__init__.py +2 -2
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/config.py +16 -1
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/plotVSWs.py +1 -1
- pyrftk-2.0.6/docs/Makefile +0 -20
- pyrftk-2.0.6/docs/build/.buildinfo +0 -4
- pyrftk-2.0.6/docs/build/.doctrees/Arcs.doctree +0 -0
- pyrftk-2.0.6/docs/build/.doctrees/Deembedding.doctree +0 -0
- pyrftk-2.0.6/docs/build/.doctrees/Examples.doctree +0 -0
- pyrftk-2.0.6/docs/build/.doctrees/Installation.doctree +0 -0
- pyrftk-2.0.6/docs/build/.doctrees/Introduction.doctree +0 -0
- pyrftk-2.0.6/docs/build/.doctrees/Logging.doctree +0 -0
- pyrftk-2.0.6/docs/build/.doctrees/Touchstone.doctree +0 -0
- pyrftk-2.0.6/docs/build/.doctrees/Tutorials.doctree +0 -0
- pyrftk-2.0.6/docs/build/.doctrees/backup.doctree +0 -0
- pyrftk-2.0.6/docs/build/.doctrees/environment.pickle +0 -0
- pyrftk-2.0.6/docs/build/.doctrees/index.doctree +0 -0
- pyrftk-2.0.6/docs/build/.doctrees/modules.doctree +0 -0
- pyrftk-2.0.6/docs/build/.doctrees/pyRFtk.doctree +0 -0
- pyrftk-2.0.6/docs/build/.nojekyll +0 -0
- pyrftk-2.0.6/docs/build/Arcs.html +0 -103
- pyrftk-2.0.6/docs/build/Deembedding.html +0 -192
- pyrftk-2.0.6/docs/build/Examples.html +0 -105
- pyrftk-2.0.6/docs/build/Installation.html +0 -140
- pyrftk-2.0.6/docs/build/Introduction.html +0 -199
- pyrftk-2.0.6/docs/build/Logging.html +0 -103
- pyrftk-2.0.6/docs/build/Touchstone.html +0 -191
- pyrftk-2.0.6/docs/build/Tutorials.html +0 -127
- pyrftk-2.0.6/docs/build/_downloads/b90e652aafe314ced71820d596828aed/Tomas-Ref_geo-R=200-Diel_eps=0500.s2p +0 -1010
- pyrftk-2.0.6/docs/build/_downloads/bf8243189246eb0547daf197b1578bac/tomas_icrh_linear_2017-vacuum.s2p +0 -1014
- pyrftk-2.0.6/docs/build/_images/RLC.png +0 -0
- pyrftk-2.0.6/docs/build/_images/RLCSC.png +0 -0
- pyrftk-2.0.6/docs/build/_images/SC.png +0 -0
- pyrftk-2.0.6/docs/build/_images/SimpleCircuit.png +0 -0
- pyrftk-2.0.6/docs/build/_images/TomasCircuit.png +0 -0
- pyrftk-2.0.6/docs/build/_sources/Arcs.rst.txt +0 -2
- pyrftk-2.0.6/docs/build/_sources/Deembedding.rst.txt +0 -91
- pyrftk-2.0.6/docs/build/_sources/Examples.rst.txt +0 -5
- pyrftk-2.0.6/docs/build/_sources/Installation.rst.txt +0 -23
- pyrftk-2.0.6/docs/build/_sources/Introduction.rst.txt +0 -101
- pyrftk-2.0.6/docs/build/_sources/Logging.rst.txt +0 -5
- pyrftk-2.0.6/docs/build/_sources/Touchstone.rst.txt +0 -85
- pyrftk-2.0.6/docs/build/_sources/Tutorials.rst.txt +0 -7
- pyrftk-2.0.6/docs/build/_sources/backup.rst.txt +0 -84
- pyrftk-2.0.6/docs/build/_sources/index.rst.txt +0 -24
- pyrftk-2.0.6/docs/build/_sources/modules.rst.txt +0 -7
- pyrftk-2.0.6/docs/build/_sources/pyRFtk.rst.txt +0 -245
- pyrftk-2.0.6/docs/build/_static/_sphinx_javascript_frameworks_compat.js +0 -123
- pyrftk-2.0.6/docs/build/_static/alabaster.css +0 -703
- pyrftk-2.0.6/docs/build/_static/basic.css +0 -925
- pyrftk-2.0.6/docs/build/_static/classic.css +0 -269
- pyrftk-2.0.6/docs/build/_static/css/badge_only.css +0 -1
- pyrftk-2.0.6/docs/build/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
- pyrftk-2.0.6/docs/build/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
- pyrftk-2.0.6/docs/build/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
- pyrftk-2.0.6/docs/build/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
- pyrftk-2.0.6/docs/build/_static/css/fonts/fontawesome-webfont.eot +0 -0
- pyrftk-2.0.6/docs/build/_static/css/fonts/fontawesome-webfont.svg +0 -2671
- pyrftk-2.0.6/docs/build/_static/css/fonts/fontawesome-webfont.ttf +0 -0
- pyrftk-2.0.6/docs/build/_static/css/fonts/fontawesome-webfont.woff +0 -0
- pyrftk-2.0.6/docs/build/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
- pyrftk-2.0.6/docs/build/_static/css/fonts/lato-bold-italic.woff +0 -0
- pyrftk-2.0.6/docs/build/_static/css/fonts/lato-bold-italic.woff2 +0 -0
- pyrftk-2.0.6/docs/build/_static/css/fonts/lato-bold.woff +0 -0
- pyrftk-2.0.6/docs/build/_static/css/fonts/lato-bold.woff2 +0 -0
- pyrftk-2.0.6/docs/build/_static/css/fonts/lato-normal-italic.woff +0 -0
- pyrftk-2.0.6/docs/build/_static/css/fonts/lato-normal-italic.woff2 +0 -0
- pyrftk-2.0.6/docs/build/_static/css/fonts/lato-normal.woff +0 -0
- pyrftk-2.0.6/docs/build/_static/css/fonts/lato-normal.woff2 +0 -0
- pyrftk-2.0.6/docs/build/_static/css/theme.css +0 -4
- pyrftk-2.0.6/docs/build/_static/custom.css +0 -1
- pyrftk-2.0.6/docs/build/_static/doctools.js +0 -156
- pyrftk-2.0.6/docs/build/_static/documentation_options.js +0 -13
- pyrftk-2.0.6/docs/build/_static/file.png +0 -0
- pyrftk-2.0.6/docs/build/_static/groundwork.css +0 -720
- pyrftk-2.0.6/docs/build/_static/gw_logo.png +0 -0
- pyrftk-2.0.6/docs/build/_static/jquery.js +0 -2
- pyrftk-2.0.6/docs/build/_static/js/badge_only.js +0 -1
- pyrftk-2.0.6/docs/build/_static/js/html5shiv-printshiv.min.js +0 -4
- pyrftk-2.0.6/docs/build/_static/js/html5shiv.min.js +0 -4
- pyrftk-2.0.6/docs/build/_static/js/theme.js +0 -1
- pyrftk-2.0.6/docs/build/_static/language_data.js +0 -199
- pyrftk-2.0.6/docs/build/_static/minus.png +0 -0
- pyrftk-2.0.6/docs/build/_static/plus.png +0 -0
- pyrftk-2.0.6/docs/build/_static/pygments.css +0 -75
- pyrftk-2.0.6/docs/build/_static/searchtools.js +0 -574
- pyrftk-2.0.6/docs/build/_static/sidebar.js +0 -70
- pyrftk-2.0.6/docs/build/_static/small_groundwork.css +0 -102
- pyrftk-2.0.6/docs/build/_static/sphinx_highlight.js +0 -154
- pyrftk-2.0.6/docs/build/backup.html +0 -178
- pyrftk-2.0.6/docs/build/doctrees/Deembedding.doctree +0 -0
- pyrftk-2.0.6/docs/build/doctrees/Examples.doctree +0 -0
- pyrftk-2.0.6/docs/build/doctrees/Installation.doctree +0 -0
- pyrftk-2.0.6/docs/build/doctrees/Introduction.doctree +0 -0
- pyrftk-2.0.6/docs/build/doctrees/TOMAS.doctree +0 -0
- pyrftk-2.0.6/docs/build/doctrees/Touchstone.doctree +0 -0
- pyrftk-2.0.6/docs/build/doctrees/Tutorials.doctree +0 -0
- pyrftk-2.0.6/docs/build/doctrees/backup.doctree +0 -0
- pyrftk-2.0.6/docs/build/doctrees/environment.pickle +0 -0
- pyrftk-2.0.6/docs/build/doctrees/index.doctree +0 -0
- pyrftk-2.0.6/docs/build/doctrees/modules.doctree +0 -0
- pyrftk-2.0.6/docs/build/doctrees/pyRFtk.doctree +0 -0
- pyrftk-2.0.6/docs/build/doctrees/usage.doctree +0 -0
- pyrftk-2.0.6/docs/build/genindex.html +0 -759
- pyrftk-2.0.6/docs/build/html/.buildinfo +0 -4
- pyrftk-2.0.6/docs/build/html/.nojekyll +0 -0
- pyrftk-2.0.6/docs/build/html/Deembedding.html +0 -174
- pyrftk-2.0.6/docs/build/html/Examples.html +0 -90
- pyrftk-2.0.6/docs/build/html/Installation.html +0 -147
- pyrftk-2.0.6/docs/build/html/Introduction.html +0 -192
- pyrftk-2.0.6/docs/build/html/TOMAS.html +0 -102
- pyrftk-2.0.6/docs/build/html/Touchstone.html +0 -183
- pyrftk-2.0.6/docs/build/html/Tutorials.html +0 -119
- pyrftk-2.0.6/docs/build/html/_images/RLC.png +0 -0
- pyrftk-2.0.6/docs/build/html/_images/RLCSC.png +0 -0
- pyrftk-2.0.6/docs/build/html/_images/SC.png +0 -0
- pyrftk-2.0.6/docs/build/html/_images/SimpleCircuit.pdf +0 -0
- pyrftk-2.0.6/docs/build/html/_images/SimpleCircuit.png +0 -0
- pyrftk-2.0.6/docs/build/html/_images/TOMAS_ICRH_Antenna.png +0 -0
- pyrftk-2.0.6/docs/build/html/_images/TOMAS_ICRH_Circuit.png +0 -0
- pyrftk-2.0.6/docs/build/html/_images/TomasCircuit.png +0 -0
- pyrftk-2.0.6/docs/build/html/_sources/Deembedding.rst.txt +0 -90
- pyrftk-2.0.6/docs/build/html/_sources/Examples.rst.txt +0 -5
- pyrftk-2.0.6/docs/build/html/_sources/Installation.rst.txt +0 -33
- pyrftk-2.0.6/docs/build/html/_sources/Introduction.rst.txt +0 -101
- pyrftk-2.0.6/docs/build/html/_sources/TOMAS.rst.txt +0 -13
- pyrftk-2.0.6/docs/build/html/_sources/Touchstone.rst.txt +0 -84
- pyrftk-2.0.6/docs/build/html/_sources/Tutorials.rst.txt +0 -7
- pyrftk-2.0.6/docs/build/html/_sources/backup.rst.txt +0 -84
- pyrftk-2.0.6/docs/build/html/_sources/index.rst.txt +0 -24
- pyrftk-2.0.6/docs/build/html/_sources/modules.rst.txt +0 -7
- pyrftk-2.0.6/docs/build/html/_sources/pyRFtk.rst.txt +0 -245
- pyrftk-2.0.6/docs/build/html/_sources/usage.rst.txt +0 -176
- pyrftk-2.0.6/docs/build/html/_static/alabaster.css +0 -703
- pyrftk-2.0.6/docs/build/html/_static/basic.css +0 -925
- pyrftk-2.0.6/docs/build/html/_static/classic.css +0 -269
- pyrftk-2.0.6/docs/build/html/_static/custom.css +0 -1
- pyrftk-2.0.6/docs/build/html/_static/doctools.js +0 -156
- pyrftk-2.0.6/docs/build/html/_static/documentation_options.js +0 -13
- pyrftk-2.0.6/docs/build/html/_static/file.png +0 -0
- pyrftk-2.0.6/docs/build/html/_static/language_data.js +0 -199
- pyrftk-2.0.6/docs/build/html/_static/minus.png +0 -0
- pyrftk-2.0.6/docs/build/html/_static/plus.png +0 -0
- pyrftk-2.0.6/docs/build/html/_static/pygments.css +0 -75
- pyrftk-2.0.6/docs/build/html/_static/searchtools.js +0 -574
- pyrftk-2.0.6/docs/build/html/_static/sidebar.js +0 -70
- pyrftk-2.0.6/docs/build/html/_static/sphinx_highlight.js +0 -154
- pyrftk-2.0.6/docs/build/html/backup.html +0 -165
- pyrftk-2.0.6/docs/build/html/genindex.html +0 -738
- pyrftk-2.0.6/docs/build/html/index.html +0 -147
- pyrftk-2.0.6/docs/build/html/modules.html +0 -305
- pyrftk-2.0.6/docs/build/html/objects.inv +0 -0
- pyrftk-2.0.6/docs/build/html/py-modindex.html +0 -238
- pyrftk-2.0.6/docs/build/html/pyRFtk.html +0 -1581
- pyrftk-2.0.6/docs/build/html/search.html +0 -102
- pyrftk-2.0.6/docs/build/html/searchindex.js +0 -1
- pyrftk-2.0.6/docs/build/html/usage.html +0 -267
- pyrftk-2.0.6/docs/build/index.html +0 -142
- pyrftk-2.0.6/docs/build/modules.html +0 -320
- pyrftk-2.0.6/docs/build/objects.inv +0 -0
- pyrftk-2.0.6/docs/build/py-modindex.html +0 -259
- pyrftk-2.0.6/docs/build/pyRFtk.html +0 -1377
- pyrftk-2.0.6/docs/build/search.html +0 -119
- pyrftk-2.0.6/docs/build/searchindex.js +0 -1
- pyrftk-2.0.6/docs/make.bat +0 -35
- pyrftk-2.0.6/docs/source/Arcs.rst +0 -2
- pyrftk-2.0.6/docs/source/Deembedding.rst +0 -91
- pyrftk-2.0.6/docs/source/Drawings/SimpleCircuit.odg +0 -0
- pyrftk-2.0.6/docs/source/Examples.rst +0 -5
- pyrftk-2.0.6/docs/source/Files/Tomas-Ref_geo-R=200-Diel_eps=0500.s2p +0 -1010
- pyrftk-2.0.6/docs/source/Files/tomas_icrh_linear_2017-vacuum.s2p +0 -1014
- pyrftk-2.0.6/docs/source/Images/RLC.png +0 -0
- pyrftk-2.0.6/docs/source/Images/RLCSC.png +0 -0
- pyrftk-2.0.6/docs/source/Images/SC.png +0 -0
- pyrftk-2.0.6/docs/source/Images/SimpleCircuit.pdf +0 -0
- pyrftk-2.0.6/docs/source/Images/SimpleCircuit.png +0 -0
- pyrftk-2.0.6/docs/source/Images/TOMAS_ICRH_Antenna.png +0 -0
- pyrftk-2.0.6/docs/source/Images/TOMAS_ICRH_Circuit.png +0 -0
- pyrftk-2.0.6/docs/source/Images/TomasCircuit.png +0 -0
- pyrftk-2.0.6/docs/source/Installation.rst +0 -23
- pyrftk-2.0.6/docs/source/Introduction.rst +0 -101
- pyrftk-2.0.6/docs/source/Logging.rst +0 -5
- pyrftk-2.0.6/docs/source/Touchstone.rst +0 -85
- pyrftk-2.0.6/docs/source/Tutorials.rst +0 -7
- pyrftk-2.0.6/docs/source/backup.rst +0 -84
- pyrftk-2.0.6/docs/source/conf.py +0 -28
- pyrftk-2.0.6/docs/source/index.rst +0 -24
- pyrftk-2.0.6/docs/source/modules.rst +0 -7
- pyrftk-2.0.6/docs/source/pyRFtk.rst +0 -245
- pyrftk-2.0.6/tests/WEST_TWA_7s_4_No_FS_protruding.s7p +0 -3256
- pyrftk-2.0.6/tests/rfCommon.log +0 -100
- pyrftk-2.0.6/tests/routine.sh +0 -3
- pyrftk-2.0.6/tests/tests.py +0 -433
- {pyrftk-2.0.6 → pyrftk-2.0.8}/.gitignore +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/LICENCE +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/logo/logo.pdf +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/logo/logo.png +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/logo/logo.svg +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/rfCommon.log +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/.gitignore +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/ConvertGeneral.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/ReadDictData.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/S_from_VI.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/S_from_Y.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/S_from_Z.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/Y_from_S.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/Z_from_S.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/_check_3D_shape_.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/circuit.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/codebase.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/compareSs.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/findpath.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/getlines.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/maxfun.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/printMatrices.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/resolveTLparams.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/rfArcObj.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/rfBase.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/rfCircuit.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/rfCoupler.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/rfGTL.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/rfObject.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/rfRLC.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/rfTRL.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/str_dict.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/tictoc.py +0 -0
- {pyrftk-2.0.6 → pyrftk-2.0.8}/src/pyRFtk/whoami.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyRFtk
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.8
|
|
4
4
|
Summary: Design tool for RF antennae networks
|
|
5
5
|
Project-URL: Homepage, https://lpp-erm-kms.github.io/pyrftk/
|
|
6
6
|
Author-email: Frederic Durodie <frederic.durodie@rma.ac.be>, Arthur Adriaens <arthur.adriaens@mil.be>
|
|
@@ -23,7 +23,19 @@ you can:
|
|
|
23
23
|
- Detect Arcs
|
|
24
24
|
- Deembed systems
|
|
25
25
|
- ...
|
|
26
|
+
|
|
27
|
+
## Installation
|
|
28
|
+
pyRFtk is available as a pip package:
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
pip install pyRFtk
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Or using your favorite distribution platform
|
|
26
35
|
|
|
27
36
|
## Authors
|
|
28
37
|
The code was developed by RF-engineer Frederic Durodie and later
|
|
29
38
|
on refactored, packaged and documented by Arthur Adriaens
|
|
39
|
+
|
|
40
|
+
## Example usage
|
|
41
|
+
This code was extensively used for the paper [An automatic matching system for the ICRF antenna at TOMAS: Development and experimental proof](https://doi.org/10.1016/j.fusengdes.2025.114840), the code for which may be found in the examples folder.
|
|
@@ -11,7 +11,19 @@ you can:
|
|
|
11
11
|
- Detect Arcs
|
|
12
12
|
- Deembed systems
|
|
13
13
|
- ...
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
pyRFtk is available as a pip package:
|
|
17
|
+
|
|
18
|
+
```sh
|
|
19
|
+
pip install pyRFtk
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Or using your favorite distribution platform
|
|
14
23
|
|
|
15
24
|
## Authors
|
|
16
25
|
The code was developed by RF-engineer Frederic Durodie and later
|
|
17
26
|
on refactored, packaged and documented by Arthur Adriaens
|
|
27
|
+
|
|
28
|
+
## Example usage
|
|
29
|
+
This code was extensively used for the paper [An automatic matching system for the ICRF antenna at TOMAS: Development and experimental proof](https://doi.org/10.1016/j.fusengdes.2025.114840), the code for which may be found in the examples folder.
|
|
@@ -3,7 +3,7 @@ requires = ["hatchling","numpy","matplotlib","logging"]
|
|
|
3
3
|
build-backend = "hatchling.build"
|
|
4
4
|
[project]
|
|
5
5
|
name = "pyRFtk"
|
|
6
|
-
version = "2.0.
|
|
6
|
+
version = "2.0.8"
|
|
7
7
|
authors = [
|
|
8
8
|
{ name="Frederic Durodie", email="frederic.durodie@rma.ac.be" },
|
|
9
9
|
{ name="Arthur Adriaens", email="arthur.adriaens@mil.be" },
|
|
@@ -17,3 +17,5 @@ classifiers = [
|
|
|
17
17
|
]
|
|
18
18
|
[project.urls]
|
|
19
19
|
"Homepage" = "https://lpp-erm-kms.github.io/pyrftk/"
|
|
20
|
+
[tool.hatch.build]
|
|
21
|
+
exclude = ["docs", "tests", "examples"]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
__updated__ = "
|
|
1
|
+
__updated__ = "2025-01-21 15:58:36"
|
|
2
2
|
|
|
3
3
|
import numpy as np
|
|
4
4
|
import re
|
|
@@ -94,6 +94,7 @@ def ReadTSF(src, **kwargs):
|
|
|
94
94
|
)
|
|
95
95
|
|
|
96
96
|
if not got_marker:
|
|
97
|
+
# we effectively started reading the numerical data
|
|
97
98
|
comments.append('*** DATA MARKER ***')
|
|
98
99
|
got_marker = len(comments)
|
|
99
100
|
|
|
@@ -107,7 +108,7 @@ def ReadTSF(src, **kwargs):
|
|
|
107
108
|
|
|
108
109
|
# analyse the format string:
|
|
109
110
|
# for unnormalized data (R missing) Zbase is set to None
|
|
110
|
-
items = tformat[1:].upper().split()[::-1]
|
|
111
|
+
items = tformat[1:].upper().split()[::-1] # note we reverse the order here
|
|
111
112
|
datatype, datafmt, funit, Zbase = 'S', 'MA', 'GHZ', None
|
|
112
113
|
while len(items):
|
|
113
114
|
kw = items.pop()
|
|
@@ -131,17 +132,19 @@ def ReadTSF(src, **kwargs):
|
|
|
131
132
|
Zbase = Zlist[0]
|
|
132
133
|
|
|
133
134
|
elif NZ > 1:
|
|
134
|
-
debug and tLogger.debug(
|
|
135
|
+
debug and tLogger.debug(
|
|
136
|
+
ident(f'Zbase [{len(Zlist)}] {", ".join([str(z) for z in Zlist])}'))
|
|
135
137
|
Zbase = Zlist
|
|
136
138
|
|
|
137
139
|
else:
|
|
138
140
|
# this should be flagged as an error in the touchstone
|
|
139
141
|
Zbase = 50. if TZbase is None else TZbase
|
|
140
|
-
debug and tLogger.debug(
|
|
142
|
+
debug and tLogger.debug(
|
|
143
|
+
ident(f'Zbase not specified in R [ERROR]: set to {Zbase}'))
|
|
141
144
|
else:
|
|
142
145
|
raise ValueError('Unrecognized format specification: %r' % kw)
|
|
143
146
|
|
|
144
|
-
#
|
|
147
|
+
# process special comments
|
|
145
148
|
ports = None
|
|
146
149
|
part = None
|
|
147
150
|
numbering = None
|
|
@@ -345,7 +348,8 @@ def ReadTSF(src, **kwargs):
|
|
|
345
348
|
pass
|
|
346
349
|
|
|
347
350
|
## do some checking
|
|
348
|
-
|
|
351
|
+
nZcs, nZbase = 0, 0
|
|
352
|
+
if len(Zcs) and (nZcs := Zcs.shape[1]):
|
|
349
353
|
# Zcs (and probably gammas) were present in the file
|
|
350
354
|
if Zbase is not None:
|
|
351
355
|
# there was also a R ... in the format
|
|
@@ -95,6 +95,7 @@ def WriteTSF(object, path2tsf=None,
|
|
|
95
95
|
num_format = ('8.4f', '10.7f', '10.7f')
|
|
96
96
|
|
|
97
97
|
tnumfmt = f'%{num_format[1]} %{num_format[2]} '
|
|
98
|
+
leadspaces = ' '*(1 + int(num_format[0].split('.')[0]))
|
|
98
99
|
|
|
99
100
|
for k,fk in enumerate(fs):
|
|
100
101
|
s += (f'%{num_format[0]}' % (fk / fscale)) + ' '
|
|
@@ -106,7 +107,7 @@ def WriteTSF(object, path2tsf=None,
|
|
|
106
107
|
s += tnumfmt % (np.real(dij),np.imag(dij))
|
|
107
108
|
|
|
108
109
|
elif fmt == 'DB':
|
|
109
|
-
s += tnumfmt% (20.*np.log10(np.abs(dij)),
|
|
110
|
+
s += tnumfmt % (20.*np.log10(np.abs(dij)),
|
|
110
111
|
np.angle(dij,1))
|
|
111
112
|
|
|
112
113
|
else: # can only be MA
|
|
@@ -115,12 +116,12 @@ def WriteTSF(object, path2tsf=None,
|
|
|
115
116
|
if (kc % 4 == 3) and (kc is not nports-1):
|
|
116
117
|
if kc == 3:
|
|
117
118
|
s += ' ! row %d' % (kr+1)
|
|
118
|
-
s += '\n'+
|
|
119
|
+
s += '\n' + leadspaces
|
|
119
120
|
|
|
120
121
|
if nports > 2:
|
|
121
122
|
s += '\n'
|
|
122
123
|
if kr != nports-1:
|
|
123
|
-
s +=
|
|
124
|
+
s += leadspaces
|
|
124
125
|
|
|
125
126
|
s += '\n'
|
|
126
127
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
__updated__ = "
|
|
1
|
+
__updated__ = "2025-01-24 07:58:36"
|
|
2
2
|
|
|
3
|
-
print('\n*** using local copy of pyRFtk ***\n')
|
|
3
|
+
# print('\n*** using local copy of pyRFtk ***\n')
|
|
4
4
|
|
|
5
5
|
from .config import tLogger, setLogLevel, logit, ident, _newID, logident
|
|
6
6
|
from .rfBase import rfBase
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
__updated__ = "
|
|
1
|
+
__updated__ = "2025-01-16 08:40:30"
|
|
2
2
|
|
|
3
3
|
import time
|
|
4
4
|
import string
|
|
@@ -7,6 +7,8 @@ import logging
|
|
|
7
7
|
import inspect
|
|
8
8
|
|
|
9
9
|
import os
|
|
10
|
+
import sys
|
|
11
|
+
import traceback
|
|
10
12
|
import atexit
|
|
11
13
|
|
|
12
14
|
LOGFILE = 'rfCommon.log'
|
|
@@ -53,6 +55,8 @@ def setLogLevel(level):
|
|
|
53
55
|
#=-----------------------------------------------------------------------------#
|
|
54
56
|
|
|
55
57
|
setLogLevel(logging.CRITICAL)
|
|
58
|
+
sys_excepthook = sys.excepthook
|
|
59
|
+
# print(f'sys.excepthook = {sys_excepthook}')
|
|
56
60
|
|
|
57
61
|
def CleanUpLogFile():
|
|
58
62
|
try:
|
|
@@ -65,7 +69,18 @@ def CleanUpLogFile():
|
|
|
65
69
|
except FileNotFoundError:
|
|
66
70
|
pass
|
|
67
71
|
|
|
72
|
+
def CleanUpLogFile1(type, value, tb):
|
|
73
|
+
print('calling pyRFtk.CleanUpLogFile after program crash')
|
|
74
|
+
CleanUpLogFile()
|
|
75
|
+
traceback_details = "\n".join(traceback.extract_tb(tb).format())
|
|
76
|
+
|
|
77
|
+
msg = f"caller: {type}: {value}\n{traceback_details}"
|
|
78
|
+
print(msg)
|
|
79
|
+
sys.excepthook = sys_excepthook
|
|
80
|
+
|
|
81
|
+
|
|
68
82
|
atexit.register(CleanUpLogFile)
|
|
83
|
+
sys.excepthook = CleanUpLogFile1
|
|
69
84
|
|
|
70
85
|
#=-----------------------------------------------------------------------------#
|
|
71
86
|
|
|
@@ -101,7 +101,7 @@ def plotVSWs(VSWs, maxlev=4, Id = None, **kwargs):
|
|
|
101
101
|
|
|
102
102
|
#= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
|
|
103
103
|
|
|
104
|
-
def find(BLK, VSW, curdist2=np.
|
|
104
|
+
def find(BLK, VSW, curdist2=np.inf, curBLK='', curUp=yp, curX=xp):
|
|
105
105
|
_debug_ and tLogger.debug(ident(
|
|
106
106
|
f'> [find] BLK= {BLK}, '
|
|
107
107
|
f'VSW= {[_ for _ in VSW] if isinstance(VSW, dict) else type(VSW)}, '
|
pyrftk-2.0.6/docs/Makefile
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# Minimal makefile for Sphinx documentation
|
|
2
|
-
#
|
|
3
|
-
|
|
4
|
-
# You can set these variables from the command line, and also
|
|
5
|
-
# from the environment for the first two.
|
|
6
|
-
SPHINXOPTS ?=
|
|
7
|
-
SPHINXBUILD ?= sphinx-build
|
|
8
|
-
SOURCEDIR = source
|
|
9
|
-
BUILDDIR = build
|
|
10
|
-
|
|
11
|
-
# Put it first so that "make" without argument is like "make help".
|
|
12
|
-
help:
|
|
13
|
-
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
14
|
-
|
|
15
|
-
.PHONY: help Makefile
|
|
16
|
-
|
|
17
|
-
# Catch-all target: route all unknown targets to Sphinx using the new
|
|
18
|
-
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
|
19
|
-
%: Makefile
|
|
20
|
-
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html class="writer-html5" lang="en" >
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
|
|
5
|
-
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
-
<title>Arc Detection — pyRFtk 2.0.0 documentation</title>
|
|
8
|
-
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
|
9
|
-
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
|
10
|
-
<!--[if lt IE 9]>
|
|
11
|
-
<script src="_static/js/html5shiv.min.js"></script>
|
|
12
|
-
<![endif]-->
|
|
13
|
-
|
|
14
|
-
<script src="_static/jquery.js?v=5d32c60e"></script>
|
|
15
|
-
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
16
|
-
<script src="_static/documentation_options.js?v=51b770b3"></script>
|
|
17
|
-
<script src="_static/doctools.js?v=888ff710"></script>
|
|
18
|
-
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
|
19
|
-
<script src="_static/js/theme.js"></script>
|
|
20
|
-
<link rel="index" title="Index" href="genindex.html" />
|
|
21
|
-
<link rel="search" title="Search" href="search.html" />
|
|
22
|
-
</head>
|
|
23
|
-
|
|
24
|
-
<body class="wy-body-for-nav">
|
|
25
|
-
<div class="wy-grid-for-nav">
|
|
26
|
-
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
|
27
|
-
<div class="wy-side-scroll">
|
|
28
|
-
<div class="wy-side-nav-search" >
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<a href="index.html" class="icon icon-home">
|
|
33
|
-
pyRFtk
|
|
34
|
-
</a>
|
|
35
|
-
<div role="search">
|
|
36
|
-
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
|
37
|
-
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
|
38
|
-
<input type="hidden" name="check_keywords" value="yes" />
|
|
39
|
-
<input type="hidden" name="area" value="default" />
|
|
40
|
-
</form>
|
|
41
|
-
</div>
|
|
42
|
-
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
|
43
|
-
<ul>
|
|
44
|
-
<li class="toctree-l1"><a class="reference internal" href="Tutorials.html">Tutorials</a></li>
|
|
45
|
-
</ul>
|
|
46
|
-
|
|
47
|
-
</div>
|
|
48
|
-
</div>
|
|
49
|
-
</nav>
|
|
50
|
-
|
|
51
|
-
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
|
52
|
-
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
53
|
-
<a href="index.html">pyRFtk</a>
|
|
54
|
-
</nav>
|
|
55
|
-
|
|
56
|
-
<div class="wy-nav-content">
|
|
57
|
-
<div class="rst-content">
|
|
58
|
-
<div role="navigation" aria-label="Page navigation">
|
|
59
|
-
<ul class="wy-breadcrumbs">
|
|
60
|
-
<li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
|
|
61
|
-
<li class="breadcrumb-item active">Arc Detection</li>
|
|
62
|
-
<li class="wy-breadcrumbs-aside">
|
|
63
|
-
<a href="_sources/Arcs.rst.txt" rel="nofollow"> View page source</a>
|
|
64
|
-
</li>
|
|
65
|
-
</ul>
|
|
66
|
-
<hr/>
|
|
67
|
-
</div>
|
|
68
|
-
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
|
69
|
-
<div itemprop="articleBody">
|
|
70
|
-
|
|
71
|
-
<section id="arc-detection">
|
|
72
|
-
<h1>Arc Detection<a class="headerlink" href="#arc-detection" title="Link to this heading"></a></h1>
|
|
73
|
-
</section>
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
</div>
|
|
77
|
-
</div>
|
|
78
|
-
<footer>
|
|
79
|
-
|
|
80
|
-
<hr/>
|
|
81
|
-
|
|
82
|
-
<div role="contentinfo">
|
|
83
|
-
<p>© Copyright 2023, Frederic Durodie and Arthur Adriaens.</p>
|
|
84
|
-
</div>
|
|
85
|
-
|
|
86
|
-
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
|
87
|
-
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
|
88
|
-
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
</footer>
|
|
92
|
-
</div>
|
|
93
|
-
</div>
|
|
94
|
-
</section>
|
|
95
|
-
</div>
|
|
96
|
-
<script>
|
|
97
|
-
jQuery(function () {
|
|
98
|
-
SphinxRtdTheme.Navigation.enable(true);
|
|
99
|
-
});
|
|
100
|
-
</script>
|
|
101
|
-
|
|
102
|
-
</body>
|
|
103
|
-
</html>
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html class="writer-html5" lang="en" >
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
|
|
5
|
-
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
-
<title>Deembedding — pyRFtk 2.0.0 documentation</title>
|
|
8
|
-
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
|
9
|
-
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
|
10
|
-
<!--[if lt IE 9]>
|
|
11
|
-
<script src="_static/js/html5shiv.min.js"></script>
|
|
12
|
-
<![endif]-->
|
|
13
|
-
|
|
14
|
-
<script src="_static/jquery.js?v=5d32c60e"></script>
|
|
15
|
-
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
16
|
-
<script src="_static/documentation_options.js?v=51b770b3"></script>
|
|
17
|
-
<script src="_static/doctools.js?v=888ff710"></script>
|
|
18
|
-
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
|
19
|
-
<script src="_static/js/theme.js"></script>
|
|
20
|
-
<link rel="index" title="Index" href="genindex.html" />
|
|
21
|
-
<link rel="search" title="Search" href="search.html" />
|
|
22
|
-
<link rel="prev" title="Touchstone files" href="Touchstone.html" />
|
|
23
|
-
</head>
|
|
24
|
-
|
|
25
|
-
<body class="wy-body-for-nav">
|
|
26
|
-
<div class="wy-grid-for-nav">
|
|
27
|
-
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
|
28
|
-
<div class="wy-side-scroll">
|
|
29
|
-
<div class="wy-side-nav-search" >
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
<a href="index.html" class="icon icon-home">
|
|
34
|
-
pyRFtk
|
|
35
|
-
</a>
|
|
36
|
-
<div role="search">
|
|
37
|
-
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
|
38
|
-
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
|
39
|
-
<input type="hidden" name="check_keywords" value="yes" />
|
|
40
|
-
<input type="hidden" name="area" value="default" />
|
|
41
|
-
</form>
|
|
42
|
-
</div>
|
|
43
|
-
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
|
44
|
-
<ul class="current">
|
|
45
|
-
<li class="toctree-l1 current"><a class="reference internal" href="Tutorials.html">Tutorials</a><ul class="current">
|
|
46
|
-
<li class="toctree-l2"><a class="reference internal" href="Installation.html">Installation</a></li>
|
|
47
|
-
<li class="toctree-l2"><a class="reference internal" href="Introduction.html">Introduction</a></li>
|
|
48
|
-
<li class="toctree-l2"><a class="reference internal" href="Touchstone.html">Touchstone files</a></li>
|
|
49
|
-
<li class="toctree-l2 current"><a class="current reference internal" href="#">Deembedding</a></li>
|
|
50
|
-
</ul>
|
|
51
|
-
</li>
|
|
52
|
-
</ul>
|
|
53
|
-
|
|
54
|
-
</div>
|
|
55
|
-
</div>
|
|
56
|
-
</nav>
|
|
57
|
-
|
|
58
|
-
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
|
59
|
-
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
60
|
-
<a href="index.html">pyRFtk</a>
|
|
61
|
-
</nav>
|
|
62
|
-
|
|
63
|
-
<div class="wy-nav-content">
|
|
64
|
-
<div class="rst-content">
|
|
65
|
-
<div role="navigation" aria-label="Page navigation">
|
|
66
|
-
<ul class="wy-breadcrumbs">
|
|
67
|
-
<li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
|
|
68
|
-
<li class="breadcrumb-item"><a href="Tutorials.html">Tutorials</a></li>
|
|
69
|
-
<li class="breadcrumb-item active">Deembedding</li>
|
|
70
|
-
<li class="wy-breadcrumbs-aside">
|
|
71
|
-
<a href="_sources/Deembedding.rst.txt" rel="nofollow"> View page source</a>
|
|
72
|
-
</li>
|
|
73
|
-
</ul>
|
|
74
|
-
<hr/>
|
|
75
|
-
</div>
|
|
76
|
-
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
|
77
|
-
<div itemprop="articleBody">
|
|
78
|
-
|
|
79
|
-
<section id="deembedding">
|
|
80
|
-
<h1>Deembedding<a class="headerlink" href="#deembedding" title="Link to this heading"></a></h1>
|
|
81
|
-
<dl>
|
|
82
|
-
<dt><strong>De-embedding</strong></dt><dd><p>“De-embedding is a post-measurement process to minimize errors and reveal information about the device under test. When there is a composite measurement of a device under test or fixture combination, you can use de-embedding to isolate the performance of the fixture and extract (de-embed) the fixture from the measurements.”</p>
|
|
83
|
-
<p>“De-embedding is mathematically removing the measurements affected by the fixture leaving only the behavior of the device under test. This is commonly used when there are non-coaxial connection from the VNA to the DUT, and it is used on circuit board traces, backplane channels, semiconductor packages, connectors or other discrete components.”</p>
|
|
84
|
-
<p>-Andreas Henkel, Product Management for Network Analysis - Rohde & Schwarz</p>
|
|
85
|
-
</dd>
|
|
86
|
-
</dl>
|
|
87
|
-
<p>What this means in the context of our software is the following:</p>
|
|
88
|
-
<p>Say we have a circuit structure as follows:</p>
|
|
89
|
-
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">+-------------------------------------------------+</span>
|
|
90
|
-
<span class="o">|</span> <span class="n">Sexternal</span> <span class="o">|</span>
|
|
91
|
-
<span class="o">|</span> <span class="o">|</span>
|
|
92
|
-
<span class="o">|</span> <span class="o">+-------------+</span> <span class="o">|</span>
|
|
93
|
-
<span class="o">|</span> <span class="o">|</span> <span class="n">Sinternal</span> <span class="o">|</span> <span class="o">|</span>
|
|
94
|
-
<span class="o">|</span> <span class="o">|</span> <span class="p">(</span> <span class="p">)</span><span class="o">----------------------------</span><span class="p">(</span> <span class="p">)</span>
|
|
95
|
-
<span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="p">:</span> <span class="o">|</span>
|
|
96
|
-
<span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="p">:</span> <span class="o">|</span>
|
|
97
|
-
<span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="p">:</span> <span class="o">|</span>
|
|
98
|
-
<span class="o">|</span> <span class="o">|</span> <span class="p">(</span> <span class="p">)</span><span class="o">----------------------------</span><span class="p">(</span> <span class="p">)</span>
|
|
99
|
-
<span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="o">|</span>
|
|
100
|
-
<span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="o">+---------+</span> <span class="o">|</span>
|
|
101
|
-
<span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="n">Deembed</span> <span class="o">|</span> <span class="o">|</span>
|
|
102
|
-
<span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="o">|</span>
|
|
103
|
-
<span class="o">|</span> <span class="o">|</span> <span class="p">(</span> <span class="p">)</span><span class="o">-------</span><span class="p">(</span> <span class="p">)</span> <span class="p">(</span> <span class="p">)</span><span class="o">--------</span><span class="p">(</span> <span class="p">)</span>
|
|
104
|
-
<span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="p">:</span> <span class="o">|</span> <span class="o">|</span> <span class="p">:</span> <span class="o">|</span>
|
|
105
|
-
<span class="o">|</span> <span class="o">|</span> <span class="n">ip</span> <span class="o">|</span> <span class="p">:</span> <span class="o">|</span> <span class="n">dpi</span> <span class="n">dpe</span> <span class="o">|</span> <span class="p">:</span> <span class="o">|</span> <span class="n">ep</span>
|
|
106
|
-
<span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="p">:</span> <span class="o">|</span> <span class="o">|</span> <span class="p">:</span> <span class="o">|</span>
|
|
107
|
-
<span class="o">|</span> <span class="o">|</span> <span class="p">(</span> <span class="p">)</span><span class="o">-------</span><span class="p">(</span> <span class="p">)</span> <span class="p">(</span> <span class="p">)</span><span class="o">--------</span><span class="p">(</span> <span class="p">)</span>
|
|
108
|
-
<span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="o">|</span> <span class="o">|</span>
|
|
109
|
-
<span class="o">|</span> <span class="o">+-------------+</span> <span class="o">+---------+</span> <span class="o">|</span>
|
|
110
|
-
<span class="o">|</span> <span class="o">|</span>
|
|
111
|
-
<span class="o">+-------------------------------------------------+</span>
|
|
112
|
-
</pre></div>
|
|
113
|
-
</div>
|
|
114
|
-
<p>Here we know the scatter matrices Sexternal (SE) and Deembed (SD), and we want to find the scatter matrix of the internal
|
|
115
|
-
component: Sinternal (SI).</p>
|
|
116
|
-
<p>IntPorts = {dpi:ip, …}
|
|
117
|
-
ExtPorts = {dpe:ep, …}</p>
|
|
118
|
-
<p>We may use the ‘deembed’ function in the rfCircuit object to solve for</p>
|
|
119
|
-
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">+-------------+</span>
|
|
120
|
-
<span class="o">|</span> <span class="n">Sinternal</span> <span class="o">|</span>
|
|
121
|
-
<span class="o">|</span> <span class="p">(</span> <span class="p">)</span>
|
|
122
|
-
<span class="o">|</span> <span class="o">|</span>
|
|
123
|
-
<span class="o">|</span> <span class="o">|</span>
|
|
124
|
-
<span class="o">|</span> <span class="o">|</span>
|
|
125
|
-
<span class="o">|</span> <span class="p">(</span> <span class="p">)</span>
|
|
126
|
-
<span class="o">|</span> <span class="o">|</span>
|
|
127
|
-
<span class="o">|</span> <span class="o">|</span>
|
|
128
|
-
<span class="o">|</span> <span class="o">|</span>
|
|
129
|
-
<span class="o">|</span> <span class="o">|</span>
|
|
130
|
-
<span class="o">|</span> <span class="p">(</span> <span class="p">)</span>
|
|
131
|
-
<span class="o">|</span> <span class="o">|</span>
|
|
132
|
-
<span class="o">|</span> <span class="n">ip</span> <span class="o">|</span>
|
|
133
|
-
<span class="o">|</span> <span class="o">|</span>
|
|
134
|
-
<span class="o">|</span> <span class="p">(</span> <span class="p">)</span>
|
|
135
|
-
<span class="o">|</span> <span class="o">|</span>
|
|
136
|
-
<span class="o">+-------------+</span>
|
|
137
|
-
</pre></div>
|
|
138
|
-
</div>
|
|
139
|
-
<p>As an example we’ll use the TOMAS ICRH system again,
|
|
140
|
-
the strap of the antenna has been
|
|
141
|
-
<a class="reference download internal" download="" href="_downloads/b90e652aafe314ced71820d596828aed/Tomas-Ref_geo-R%3D200-Diel_eps%3D0500.s2p"><code class="xref download docutils literal notranslate"><span class="pre">measured</span></code></a>
|
|
142
|
-
together with two pieces of TL, we can deembed it as follows:</p>
|
|
143
|
-
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">A2Ca1_L</span> <span class="o">=</span> <span class="mf">0.1715</span>
|
|
144
|
-
<span class="n">A2Ca1_Z</span> <span class="o">=</span> <span class="mi">50</span>
|
|
145
|
-
<span class="n">T2Cs1_L</span> <span class="o">=</span> <span class="mf">0.121</span>
|
|
146
|
-
<span class="n">T2Cs1_Z</span> <span class="o">=</span> <span class="mi">50</span>
|
|
147
|
-
|
|
148
|
-
<span class="n">tsStrap</span> <span class="o">=</span> <span class="s1">'Tomas-Ref_geo-R=200-Diel_eps=0500.s2p'</span>
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
<span class="n">strap</span> <span class="o">=</span> <span class="n">rfObject</span><span class="p">(</span><span class="n">touchstone</span><span class="o">=</span><span class="n">tsStrap</span><span class="p">,</span> <span class="n">ports</span><span class="o">=</span><span class="p">[</span><span class="s1">'cap'</span><span class="p">,</span><span class="s1">'t'</span><span class="p">])</span>
|
|
152
|
-
|
|
153
|
-
<span class="k">if</span> <span class="n">strap</span><span class="o">.</span><span class="n">fs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="mf">0.</span><span class="p">:</span>
|
|
154
|
-
<span class="n">strap</span><span class="o">.</span><span class="n">fs</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="mf">1e-3</span> <span class="c1"># avoid divisions by 0 at 0 Hz in deembed</span>
|
|
155
|
-
|
|
156
|
-
<span class="n">strap</span><span class="o">.</span><span class="n">deembed</span><span class="p">({</span><span class="s1">'cap'</span><span class="p">:(</span><span class="n">A2Ca1_L</span><span class="p">,</span> <span class="n">A2Ca1_Z</span><span class="p">),</span>
|
|
157
|
-
<span class="s1">'t'</span> <span class="p">:(</span><span class="n">T2Cs1_L</span><span class="p">,</span> <span class="n">T2Cs1_Z</span><span class="p">)})</span>
|
|
158
|
-
</pre></div>
|
|
159
|
-
</div>
|
|
160
|
-
</section>
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
</div>
|
|
164
|
-
</div>
|
|
165
|
-
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
|
166
|
-
<a href="Touchstone.html" class="btn btn-neutral float-left" title="Touchstone files" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
|
167
|
-
</div>
|
|
168
|
-
|
|
169
|
-
<hr/>
|
|
170
|
-
|
|
171
|
-
<div role="contentinfo">
|
|
172
|
-
<p>© Copyright 2023, Frederic Durodie and Arthur Adriaens.</p>
|
|
173
|
-
</div>
|
|
174
|
-
|
|
175
|
-
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
|
176
|
-
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
|
177
|
-
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
</footer>
|
|
181
|
-
</div>
|
|
182
|
-
</div>
|
|
183
|
-
</section>
|
|
184
|
-
</div>
|
|
185
|
-
<script>
|
|
186
|
-
jQuery(function () {
|
|
187
|
-
SphinxRtdTheme.Navigation.enable(true);
|
|
188
|
-
});
|
|
189
|
-
</script>
|
|
190
|
-
|
|
191
|
-
</body>
|
|
192
|
-
</html>
|