Fix impedance renormalization + add unit tests

This commit is contained in:
Jan Käberich 2025-02-09 12:59:11 +01:00
parent 523946447a
commit 50bde261af
9 changed files with 114 additions and 2 deletions

View file

@ -3,6 +3,7 @@
#include "ui_impedancenormalizationdialog.h"
#include "Tools/parameters.h"
#include "appwindow.h"
#include "Util/util.h"
#include <complex>
@ -44,9 +45,11 @@ void ImpedanceRenormalization::transformDatapoint(DeviceDriver::VNAMeasurement &
name = "S"+QString::number(ports+1)+QString::number(ports+1);
}
for(auto i=1;i<=ports;i++) {
// handle reflection parameters
auto S11name = "S"+QString::number(i)+QString::number(i);
auto S11 = p.measurements[S11name];
transformed[S11name] = Sparam(ABCDparam(Sparam(S11, 0.1, 0.1, 1.0), p.Z0), impedance).m11;
transformed[S11name] = Util::ImpedanceToSparam(Util::SparamToImpedance(S11, p.Z0), impedance);
// handle transmission parameters
for(auto j=i+1;j<=ports;j++) {
auto S12name = "S"+QString::number(i)+QString::number(j);
auto S21name = "S"+QString::number(j)+QString::number(i);