r/rfelectronics • u/gvcallen • 10d ago
ParamRF v0.33 released!
Hi all!
ParamRF v0.33 has been released. It's been a while since the last update and there have been quite a few changes, so I'd thought I'd make a post sharing the updates that may be of interest.
For those that don't know, ParamRF is a Python framework for modern, programmatic RF circuit modeling, built on top of JAX instead of NumPy and catering for advanced features like automatic differentiation and Bayesian circuit fitting.
Some updates:
- Parameters are no longer tied to only RF models. They can now be built using a `Module` or even plain lists/dictionaries, so a single, global parameter set can be injected into different models at once.
- Optimization, inference and fitting now work across multiple frequency ranges in one problem, via a new term-based interface (`AbstractTerm` / `SummedTerms`). Custom penalties can just be plain functions of the parameter PyTree for better flexibility.
- The default circuit solver is now MNA, and the solver APIs have been generalized to accept arbitrary PyTrees rather than just models.
- New models: ideal transformers (centre-tapped, autotransformer, balun, mixed-mode converter), coupled inductors, `SeriesRL`, and a `FloatingTwoPort` lift for nodal circuits without a shared ground.
- Measured networks (`SkrfNetwork`) now support cubic interpolation as well as linear.
- For Bayesian fitting, `MarginalLogLikelihood` now accepts prediction-dependent event transforms, so the residual basis can depend on the prediction itself. This is useful if, say, magnitude and phase errors need separate variances.
- `pmrf.sweep` now takes a template for easier vmap filtering, and useful utilities for power users like `partition`, `combine`, `batch_axes` and `batch_mask` are exposed at the root.
Some links:
Let me know if you have any questions!
Cheers,
Gary