Skip to content

Releases: Sparamix/octave-rf

rf 0.1.1

Choose a tag to compare

@dracid dracid released this 26 Jul 06:55

rf 0.1.1

Bug-fix release. All users of cascadesparams, deembedsparams, embedsparams, or sparameters(s_obj, z0_new) should update.

Bug fixes

  • Struct returns now carry the complete sparameters object surface (Parameters, Frequencies, Impedance, NumPorts). Previously cascadesparams/deembedsparams/embedsparams returned only the first two fields, which broke MATLAB-written code reading .NumPorts on a cascade result (e.g. IEEE P370 IEEEP370Zc2xThru.m). Fixes #2.
  • Reference impedance is validated and propagated. Cascading or de-embedding structs referenced to different impedances now raises an error instead of silently producing a mislabeled (and mathematically invalid) result, matching MATLAB RF Toolbox behavior. The common reference propagates to the output.
  • sparameters(s_obj, z0_new) renormalizes from the stored .Impedance instead of a hardcoded 50 ohm. Chained renormalizations (50 -> 75 -> 60) now equal the direct path to machine precision.

New

  • ifft shim accepting MATLAB's ifft(x, 'symmetric') flag.

Verification

  • Seven new BIST regression tests; full BIST 114/114 pass.
  • 21-scenario impedance stress test (40/50/60/75 ohm): label propagation, renorm commutation, embed/de-embed round-trips, mismatch detection.
  • Cold-install verified: pkg install + pkg test rf clean on Octave 11.1.

Install

pkg install 'https://github.com/Sparamix/octave-rf/releases/download/v0.1.1/rf-0.1.1.tar.gz'
pkg load rf

SHA256 (rf-0.1.1.tar.gz): e2e7aa007370cc219b3809de61e047ae808dce7f693581d035bff3a9468fc41f

rf 0.1.0

Choose a tag to compare

@dracid dracid released this 22 Apr 01:15

Version 0.1.0 (2026-04-17)

Initial release.

Functions (26 total)

S-parameter objects:

  • sparameters โ€” S-parameter struct constructor; supports sparameters(filename) for Touchstone file reading (MATLAB-compatible), sparameters(P, f), sparameters(P, f, z0), and sparameters(obj, z0_new) for renormalization. Struct includes .Parameters, .Frequencies, .Impedance, .NumPorts.
  • rfparam โ€” extract single S-parameter element by port indices

Chain scattering (T) parameters: s2t, t2s (MATLAB-compatible element ordering)

Network operations: cascadesparams, deembedsparams, embedsparams

Parameter conversions (2-port and N-port): s2z/z2s, s2y/y2s, s2abcd/abcd2s, s2h/h2s, s2g/g2s

Mixed-mode (differential pairs): s2sdd, s2scc, s2smm (supports [Sdd,Sdc,Scd,Scc] = s2smm(S) 4-output form), smm2s

Port operations: snp2smp (incl. 4-arg snp2smp(S,z0,order,z0_term)), renormsparams

I/O: fromtouchn โ€” Touchstone file reader (S1Pโ€“S99P, Touchstone 1.0)

MATLAB compatibility shims: ifft_symmetric, round(x, n)

Validation

  • 100 built-in self-tests (BIST), 0 failures
  • Cross-validated against MATLAB R2025b RF Toolbox and scikit-rf 1.11.0 to floating-point precision (108/108 pair-wise tests pass)
  • Backwards-compatibility cross-validated against MATLAB R2020b (9.9.0.2037887, RF Toolbox) โ€” 36/36 pair-wise tests pass (144/144 total across all comparison pairs; see doc/VALIDATION_REPORT_MATLAB_R2020b.md)
  • All textbook references verified against physical books (Pozar, Pupalaikis, Hall & Heck)

Install

pkg install 'https://github.com/Sparamix/octave-rf/releases/download/v0.1.0/rf-0.1.0.tar.gz'
pkg load rf

After gnu-octave/packages accepts the registration PR: pkg install -forge rf.