mirror of
https://github.com/jankae/LibreVNA.git
synced 2025-12-06 07:12:10 +01:00
45 lines
1.3 KiB
C++
45 lines
1.3 KiB
C++
#include "impedancerenormalizationtests.h"
|
|
|
|
ImpedanceRenormalizationTests::ImpedanceRenormalizationTests()
|
|
{
|
|
renorm = new ImpedanceRenormalization();
|
|
|
|
// set it up to normalize to 75 Ohm
|
|
nlohmann::json j;
|
|
j["impedance"] = 75;
|
|
renorm->fromJSON(j);
|
|
}
|
|
|
|
ImpedanceRenormalizationTests::~ImpedanceRenormalizationTests()
|
|
{
|
|
delete renorm;
|
|
}
|
|
|
|
void ImpedanceRenormalizationTests::OnePortTests()
|
|
{
|
|
// Create dummy measurements
|
|
DeviceDriver::VNAMeasurement measShort;
|
|
measShort.pointNum = 0;
|
|
measShort.Z0 = 50.0;
|
|
measShort.measurements["S11"] = -1.0;
|
|
|
|
auto measLoad = measShort;
|
|
measLoad.measurements["S11"] = 0.0;
|
|
|
|
auto measOpen = measShort;
|
|
measOpen.measurements["S11"] = 0.9999999999999999; // using exactly 1.0 runs into inf problems
|
|
|
|
// perform renormalization
|
|
renorm->transformDatapoint(measShort);
|
|
renorm->transformDatapoint(measLoad);
|
|
renorm->transformDatapoint(measOpen);
|
|
|
|
QVERIFY(measShort.measurements["S11"] == -1.0);
|
|
// a Ohm load renormalized to 75 Ohm impedance has a reflection coefficient of -0.2
|
|
QVERIFY(qFuzzyCompare(measLoad.measurements["S11"].real(), -0.2));
|
|
QVERIFY(qFuzzyCompare(measLoad.measurements["S11"].imag(), 0.0));
|
|
QVERIFY(qFuzzyCompare(measOpen.measurements["S11"].real(), 1.0));
|
|
QVERIFY(qFuzzyCompare(measOpen.measurements["S11"].imag(), 0.0));
|
|
}
|
|
|