Releases: scikit-rf/scikit-rf
v0.27.1
What's Changed
Important Changes in Media
The Media class has been refactored to simplify the API and avoid confusions related to the impedances. The z0
property now returns by default the Characteristic Impedance of the media (also available from z0_characteristic
) if the property z0_override
is defined, z0
returns z0_override
instead of the Characteristic Impedance.
The embed
argument and the parameters Z0
(capital) have been deprecated. If the property z0_port
is defined, all lines will be renormalized from z0
to z0_port
, like in a measurement with z0_port
. Please refer to the Media tutorial more additional information and a clear explanation of the different between port and characteristic impedances.
New Features
New properties have been added to a Network: maximum stable gain (max_stable_gain
), Maximum available power gain (max_gain
) and Mason's unilateral gain (unilateral_gain
)
Improvements
- Vectorize drop_non_monotonic_increasing by @eendebakpt in #882
- Improve performance network.copy by @eendebakpt in #875
Bug Fixes
- Make Network.copy also copy params dict by @cafeclimber in #887
- Fix incorrect z0 handling in SeriesImpedance and ShuntAdmittance by @Ttl in #885
- Handle non-zero length thru in TRL by @Ttl in #896
- Resolve singularities for matched thru and line in determine_reflect by @eendebakpt in #870
- Timescale by @FranzForstmayr in #900
- Allow NISTMultilineTRL to work with non-exact floats by @eendebakpt in #895
- Handle division by zero in stability by @Ttl in #910
Code Quality/CI
- Create dependabot.yml by @jhillairet in #898
- [pre-commit] ruff by @jhillairet in #892
- disable upper limits by @FranzForstmayr in #893
Documentation
- Prepare media tutorial for characteristic impedance implementation change by @mhuser in #888
- Fix doc links from Circuit tutorial to Circuit convenience methods by @caryan in #897
- just fixing a small typo I spotted :-) by @Patarimi in #876
- Fix docstring for Frequency.unit by @eendebakpt in #879
- URL updated. by @wollmich in #881
- Fix installation documentation by @jhillairet in #907
New Contributors
- @Patarimi made their first contribution in #876
- @wollmich made their first contribution in #881
- @caryan made their first contribution in #897
Full Changelog: v.0.26.0...v0.27.0
v0.26.0
New Features
- Add shunt_resistor by @jhillairet in #853
- Create variables to modify nudge_eig thresholds by @jhillairet in #859
Improvements
- Do not generate subnetworks all the time but provide them dynamically by @FranzForstmayr in #810
- improve performance of Coaxial.from_attenuation by @eendebakpt in #871
Bug Fix
- Fix CITI parser by @jhillairet in #854
- Fix division by zero warnings in determine_line by @eendebakpt in #868
- Fix reading/writing HFSS Touchstone files using the 'power' S-param definition by @jhillairet in #869
Community, Code Quality and Continuous Integration
- Adding issue templates by @jhillairet in #862
- [pre-commit] pre-commit configuration: blank lines and trailing spaces by @jhillairet in #863 and #873
- [pre-commit] trailing spaces and end lines by @jhillairet in #867
Documentation
- Remove duplicate files in documentation by @jhillairet in #861
Full Changelog: v0.25.0...v.0.26.0
v0.25.0
The release 0.25.0 of scikit-rf includes several new features, with for example:
- Calibrating multi-port (N>2) networks is now possible thanks to @Ttl. See Multi-port calibration documentation.
- Making copy of a Network is now 4 times faster than before thanks to @eendebakpt
- Adds an option for custom pole spacing in Vector Fitting thanks to @Vinc0110
The complete list of changes is found below. We welcome two new contributors @eendebakpt and @ericwrice for their work!
New Features
- Multi-port calibration by @Ttl in #818
- Vector Fitting: Custom pole initialization by @Vinc0110 in #845
Improvements
- Improve performance of Network.copy by @eendebakpt in #828
- Add name argument to two_port_reflect by @eendebakpt in #829
- Overlap dut and dummy networks in deembedding by @ericwrice in #834
- Adding parameter
draw_labels
toplot_smith()
. by @Vinc0110 in #826
Documentation
- Improve error message in NIST TRL calibration by @eendebakpt in #827
- Fix inductor units in media docstrings by @ericwrice in #835
Bug Fixes
- Fix get_sparameter_names order for two-port by @Ttl in #822
- Fix NetworkSet division by @cafeclimber in #843
- Fix shade_bands overwriting y_range (#742) by @ericwrice in #838
- Use fft_window when specified and not window by @FranzForstmayr in #802
Code Quality
- Add test for input networks of OnePort calibration by @eendebakpt in #844
- Misc fixes by @eendebakpt in #808
- Remove unneeded print by @FranzForstmayr in #801
- Fix Python 3.7 flake8 by @Ttl in #820
- Dynamically load version from init.py by @Vinc0110 in #837
- Small cleanup in calibration methods by @eendebakpt in #836
- Vector Fitting: Tests by @Vinc0110 in #850
- Increasing rtol for sweep type tests by @Vinc0110 in #847
New Contributors
- @eendebakpt made their first contribution in #808
- @ericwrice made their first contribution in #835
Full Changelog: v0.24.1...v0.25.0
v0.24.1
This release contains new features for time gating, make qtapps runable again and fixes related to matplotlib dependency.
Note that new warnings related to the default frequency and time unit are now generated if the frequency or time units are not explicitly passed. Indeed, SI units will used by default for frequency (Hz) and time (s) in future versions of scikit-rf, instead of GHz and ns as presently. It is thus recommended to pass explicitly the units in order to avoid surprises in future versions...
New Features
time.time_gate()
has a new parametermethod
added, to choose how to perform gating either by convolution, by FFT (band-pass mode), or by RFFT (low-pass mode). Defaults is FFT. Also, another parameterfft_window
is added, which enables frequency-domain windowing in case of FFT and RFFT mode. The default is a Hann window, but windowing can be disabled by settingfft_window=None
. by @Vinc0110 in #770- qtapps are now runable again by @FranzForstmayr in #790
Changes of behaviour
- Warn users about future change of the default frequency unit by @jhillairet in #792
- Time ns warning by @FranzForstmayr in #799
Fixes
- matplotlib as optional dependency by @FranzForstmayr in #785
Documentation
- Add warnings in the Circuit tutorial by @jhillairet in #798
Continuous Integration
- Update the checkout and setup-python GA versions by @jhillairet in #793
- update to pytest-cov ~=4.0 and drop the deprecation warning ignore by @altendky in #784
New Contributors
Full Changelog: v0.24.0...v0.24.1
v0.24.0
The version 0.24 of scikit-rf includes a lot of improvements and bug fixes.
Note that this version officially drops the support for Python 3.6. The minimum required python version is thus now Python 3.7.
Improvements and new features
- Improvement of the accurary of the OpenShort and ShortOpen de-embedding by @keikawa in #739.
- (Huge) Speed improvement in the
s2s
function, particularly useful when working with large matrices (>300 ports), by avoiding unecessary conversion of S-matrix definition by @qmfrf in #738 - Fix and Update methods in the virtual instrument module which called deprecated pyvisa methods by @cafeclimber in #409
- New time-domain gating implementation using time-domain multiplication instead of frequency-domain convolution. This gives a speed benefit of multiple orders of magnitude, depending on the number of samples by @Vinc0110 in #735
read_all
now sort files by default, to obtain a reproducible behaviour, by @xafra in #746- Important speed improvement in
network_2_dataframe
by @stevehamblin in #761 - Make vector fitting Spice output compatible to LTSpice by @FranzForstmayr in #760
- Added a new operator
>>
for 4-port network cascading with reversed indexing ("1=>2/3=>4" instead than "1=>3/2=>4") by @capn-freako in https://github.com/scikit
Documentation
- add a warning in the docstring to inform matlab users of the differences compared to matlab original implementation.
The differences are: i) FIX-2 is flipped (there is already a numbering diagram in docstring) and ii) Better root choice solution to avoid 180° phase jumps in certain circumstances (NZC methods only) by @mhuser in #781 - Updates the documentation to highlight importance of different offset and port impedances, followed by 3 usage examples, close #754. by @biergaizi in #779
- Fixing typo and reference in Qfactor example by @jhillairet in #767
Bug Fixes
- Fix
plot_s_polar()
for matplotlib version >=3.6 (#762) by @Vinc0110 in #765 - Vector Fitting: bugfix for data including dc samples by @Vinc0110 in #768
Code Quality Improvements and Continuous Integration
An important work has been made by @FranzForstmayr to improve the code quality and to move the codebase to the PEP 0621:
- Move requirements specification to PEP 0621 by @FranzForstmayr in #752
- Create codeql.yml by @FranzForstmayr in #772
- Treat all warnings in tests as errors by @FranzForstmayr in #771
- Try to fix rtd build by @FranzForstmayr in #775
- use pyupgrade for python3.7+ by @FranzForstmayr in #776
New Contributors
- @qmfrf made their first contribution in #738
- @cafeclimber made their first contribution in #409
- @capn-freako made their first contribution in #747
Full Changelog: v0.23.1...v0.24.0
v0.23.1
This minor release of scikit-rf contains in particular an important bug fix to the Touchstone's file writing function. In addition, this release includes some simplifications of the handling of the characteristic impedance and on an inconsistent behaviour when passing a network name as kwarg
. See below for the complete list of changes.`
Bug Fixes
write_touchstone
: don't writez_ref
in complex format if it's real, fix #724 by @biergaizi in #725- fix an
AttributeError
raised byNetwork.renormalize
by @mhuser in #723 - Fix IEEEP370 deembedding methods for dataset with existing DC point or interpolation required by @mhuser in #728
What's Changed
- Simplify
z0
handing by @FranzForstmayr in #720 - fix
media.line
andmedia.shunt_xxx
does not keep their network names by @mhuser in #732 - add
makeErrorbox_v8
and assymetric pullback to IEEEP370 by @mhuser in #719 - Sweep plan unit tests by @jjoonathan in #729
Full Changelog: v0.23.0...v0.23.1
v0.23.0
The version 0.23 of scikit-rf includes a lot of improvements and bug fixes (with a huge work from @Ttl , @mhuser and @biergaizi !)
This new release also includes a new feature, the Quality factor class Qfactor
, which allows determining the loaded and unloaded quality factors of a Network.
The development activity of scikit-rf continues to grow! The scikit-rf development team has been consolidated with additional collaborators: @Ttl , @mhuser, @FranzForstmayr and @Vinc0110. Welcome and thank you!
New Features
Improvements
Network and Media
- Add support for initializing network with different parameters by @Ttl in #657
- More accurate Coaxial resistance model by @Ttl in #649
- Z0 getter fix by @Ttl in #664
- Improve s2z, z2s, s2y and y2s accuracy by @Ttl in #661
- cpw warns if t < 3 * skin_depth by @mhuser in #665
- Consistent Network handling with different s_def by @Ttl in #655
- Refactor CPW media to fix #667 by @mhuser in #676
- Fixing unhandled corner case in Frequency by @jhillairet in #700
- Putting back temporarely .f and .npoints setter for warning users by @jhillairet in #714
- warns of future deprecation of media line parameter embed by @mhuser in #715
- Refactor MLine Media to follow qucs implementation by @mhuser in #650
Circuit
Instruments
- Fixed NanoVNA backend configuration for PyVISA-py by @Vinc0110 in #669
- Fix compatibility with python 3.10 by @jjoonathan in #674
- HP8510C Sweep Plan by @jjoonathan in #675
Touchstone, MDIF
- Fix
write_touchstone
with complex or non-equal z0 by @Ttl in #672 - Add
NetworkSet.write_mdif()
method to export NetworkSet to a generalized MDIF file by @jrmagers in #680
Calibration
- LRRM fix for unsymmetric thru, non-iterative lc fit by @Ttl in #682
- IEEEP370 Flip FIX-2 and minor improvements by @mhuser in #698
- Add forced_z11x to IEEEP370_SE_NZC_2xThru and correct typo by @mhuser in #708
Vector Fitting
- Vector Fitting: Some convenience updates by @Vinc0110 in #673
- Vector Fitting: Minor updates by @Vinc0110 in #706
Documentation
- Convert All Documentation Links to Relative Path Links by @biergaizi in #713
- Update logos by @jhillairet in #716
- New example: Defining SOLT calibration standards. by @biergaizi in #663
- Fix SOLT cal kit example HTML rendering by @Ttl in #686
- Adding the IEEEP370 deembedding methods to the docstring by @jhillairet in #689
- SOLT cal kit example: more formatting and typo fixes by @biergaizi in #690
- Minor changes in IEEE P370 doc by @jhillairet in #694
- New example: Defining SOLT calibration standards. by @biergaizi in #663
- Documentation updates by @jhillairet in #709
- Three Receivers Calibration: Add Reference to NanoVNA by @biergaizi in #712
- Three Receivers Calibration: clarify SOLT procedures and source port. by @biergaizi in #711
- Explain Isolation Calibration in SOLT calibration tutorial and example by @biergaizi in #710
- Add higher number of ports examples to se2gmm by @mhuser in #707
Bug fixes
- Avoid division by zero at 0 Hz in DistributedCircuit by @Ttl in #658
- Fix for #662 and other minor corrections by @Vinc0110 in #666
- fix #684 phase jumps in 2xthru deembedding by @mhuser in #687
- Remove comparison to CPW model from MTRL example by @Ttl in #695
- Vector Fitting: Bug fix for #677 and #702 by @Vinc0110 in #678
- drop_non_monotonic_increasing fix for 2D z0 shape by @Ttl in #705
Full Changelog: v0.22.1...v0.23.0
v0.22.1
Minor release, mostly to fix a #640
What's Changed
- fix #640 and add tests for non-uniform frequency array by @jhillairet in #641
- Keep port_names when using subnetwork by @jhillairet in #638
- Reduce various warnings in unit tests by @jhillairet in #639
Full Changelog: v0.22.0...v0.22.1
v0.22.0
Release 0.22 of scikit-rf includes a new feature and important bug fixes, as well as other improvements, new or improved documentation and bug fixes.
New Features
- Implement IEEEP370 NZC and ZC deembedding methods by @mhuser in #628
- Virtual Instruments: Adding NanoVNA V2 support by @Vinc0110 in #616
Improvements
- se2gmm z0 broadcasting, docstring and tests by @Ttl in #635
- Vector fitting: code reorganization + speed improvements by @Vinc0110 in #614
- Correct Network.f property return type-hint by @lstuemke in #612
- Forbid duplicates in Circuit connection description by @jhillairet in #619
Bug Fixes
- Fix gmm2se phase inversion by @Ttl in #632
- Fix#618 scipy.ndimage.filters namespace deprecation warning by @l-johnston in #620
- Bug Fix for Parser.py yaml.load deprecated by @xreymason in #621
- Fix numerical issue in TwoPortOnePath by @Ttl in #625
Documentation
- Fixing SOLT description and adding a SOLT calibration example by @jhillairet in #624
- SOLT calibration example: asymmetric case by @jhillairet in #627
- SOLT.ipynb example: suggests using nports=2. by @biergaizi in #630
- editorial changes to notebook only by @denzchoe in #633
We are very happy to welcome new contributors to the project 👍
New Contributors
- @lstuemke made their first contribution in #612
- @l-johnston made their first contribution in #620
- @xreymason made their first contribution in #621
- @biergaizi made their first contribution in #630
- @denzchoe made their first contribution in #633
Full Changelog: v0.21.0...v0.22.0
v0.21.0
This new release adds the following new features and improvements:
New Features or important improvements
- Interpolation improvements by @Ttl in #595
- MTRL fixes by @Ttl in #601 (and #602 and #603)
- multi-parameters NetworkSet and CITI and GMDIF file import by @jhillairet in #585 (see #584 for more details)
- HP8510C Drivers and VISA Bugfixes by @jjoonathan in #591
- Speed up Circuit class by @FranzForstmayr in #575
- Speed up vector fitting by @FranzForstmayr in #605
Bug fixes and other improvements
- Fix/dc extrapolation array by @FranzForstmayr in #571
- Correct error when asking db/ma from ri file by @edumur in #588
- Fix coefs_8term and coefs_12term by @Ttl in #589
- fix reading ISO-8859-1 encoded Touchstone file and add encoding param to Network() and Touchstone() by @jhillairet in #587
- Vector Fitting: Notation and other minor improvements by @Vinc0110 in #577
- Don't initialize z0 from str by @Ttl in #598
- Don't modify apply_cal input network by @Ttl in #602
- Remove confusing transposes by @Ttl in #603
Documentation
- Vector Fitting: Example notebooks and docstrings by @Vinc0110 in #567
- Documentation fixes by @jhillairet in #576
- Change syntax of the images from Markdown to HTML in the de-embedding tutorial by @keikawa in #580
- Add citation to the IEEE journal article by @temmeand in #581
- Fix citation formatting that was a run-on line by @temmeand in #582
- DOI hyperlink and minor fixes in docs by @Vinc0110 in #583
- Doc corrections & example snippets by @Vinc0110 in #599
CI
- Separate the test of the notebooks from the test of the code by @jhillairet in #578
- Try to fix coverall stats by @FranzForstmayr in #568
New Contributors
- @jjoonathan made their first contribution in #591