Fix detection of reflection/transmission measurement for touchstone files with more than two ports

This commit is contained in:
Jan Käberich 2022-07-09 21:58:02 +02:00
parent 2e055bb55d
commit 3af9b735ba

View File

@ -158,22 +158,14 @@ void Trace::fillFromTouchstone(Touchstone &t, unsigned int parameter)
d.y = t.point(i).S[parameter];
addData(d, DataType::Frequency);
}
// check if parameter is square (e.i. S11/S22/S33/...)
parameter++;
bool isSquare = false;
for (unsigned int i = 1; i * i <= parameter; i++) {
// If (i * i = n)
if ((parameter % i == 0) && (parameter / i == i)) {
isSquare = true;
// check if parameter is a reflection measurement (e.i. S11/S22/S33/...)
reflection = false;
for (unsigned int i = 0; i * i <= parameter; i++) {
if (parameter == i * t.ports() + i) {
reflection = true;
break;
}
}
if(isSquare == 1) {
reflection = true;
} else {
reflection = false;
}
createdFromFile = true;
reference_impedance = t.getReferenceImpedance();
emit typeChanged(this);