Replaced RFTools.normalize50 by Datapoint method

pull/97/head
Holger Mueller 2019-11-17 14:13:37 +01:00
rodzic 10399ad8c4
commit 6b2506ff4b
4 zmienionych plików z 21 dodań i 24 usunięć

Wyświetl plik

@ -1007,14 +1007,12 @@ class SimplePeakSearchAnalysis(Analysis):
suffix = " \N{OHM SIGN}"
data = []
for d in self.app.data:
re, im = RFTools.normalize50(d)
data.append(re)
data.append(d.impedance().real)
elif self.rbtn_data_reactance.isChecked():
suffix = " \N{OHM SIGN}"
data = []
for d in self.app.data:
re, im = RFTools.normalize50(d)
data.append(im)
data.append(d.impedance().imag)
elif self.rbtn_data_s21_gain.isChecked():
suffix = " dB"
data = []

Wyświetl plik

@ -2580,7 +2580,8 @@ class RealImaginaryChart(FrequencyChart):
max_real = 0
max_imag = -1000
for d in self.data:
re, im = RFTools.normalize50(d)
imp = d.impedance()
re, im = imp.real, imp.imag
if re > max_real:
max_real = re
if re < min_real:
@ -2592,7 +2593,8 @@ class RealImaginaryChart(FrequencyChart):
for d in self.reference: # Also check min/max for the reference sweep
if d.freq < fstart or d.freq > fstop:
continue
re, im = RFTools.normalize50(d)
imp = d.impedance()
re, im = imp.real, imp.imag
if re > max_real:
max_real = re
if re < min_real:
@ -2792,11 +2794,11 @@ class RealImaginaryChart(FrequencyChart):
self.drawMarker(x, y_im, qp, m.color, self.markers.index(m)+1)
def getImYPosition(self, d: Datapoint) -> int:
_, im = RFTools.normalize50(d)
im = d.impedance().imag
return self.topMargin + round((self.max_imag - im) / self.span_imag * self.chartHeight)
def getReYPosition(self, d: Datapoint) -> int:
re, _ = RFTools.normalize50(d)
re = d.impedance().real
return self.topMargin + round((self.max_real - re) / self.span_real * self.chartHeight)
def valueAtPosition(self, y) -> List[float]:
@ -3179,8 +3181,7 @@ class MagnitudeZChart(FrequencyChart):
@staticmethod
def magnitude(p: Datapoint) -> float:
re, im = RFTools.normalize50(p)
return math.sqrt(re**2 + im**2)
return abs(p.impedance())
def copy(self):
new_chart: LogMagChart = super().copy()
@ -3282,7 +3283,8 @@ class PermeabilityChart(FrequencyChart):
min_val = 1000
max_val = -1000
for d in self.data:
re, im = RFTools.normalize50(d)
imp = d.impedance()
re, im = imp.real, imp.imag
re = re * 10e6 / d.freq
im = im * 10e6 / d.freq
if re > max_val:
@ -3296,7 +3298,8 @@ class PermeabilityChart(FrequencyChart):
for d in self.reference: # Also check min/max for the reference sweep
if d.freq < fstart or d.freq > fstop:
continue
re, im = RFTools.normalize50(d)
imp = d.impedance()
re, im = imp.real, imp.imag
re = re * 10e6 / d.freq
im = im * 10e6 / d.freq
if re > max_val:
@ -3461,7 +3464,7 @@ class PermeabilityChart(FrequencyChart):
self.drawMarker(x, y_im, qp, m.color, self.markers.index(m)+1)
def getImYPosition(self, d: Datapoint) -> int:
_, im = RFTools.normalize50(d)
im = d.impedance().imag
im = im * 10e6 / d.freq
if self.logarithmicY:
min_val = self.max - self.span
@ -3474,7 +3477,7 @@ class PermeabilityChart(FrequencyChart):
return self.topMargin + round((self.max - im) / self.span * self.chartHeight)
def getReYPosition(self, d: Datapoint) -> int:
re, _ = RFTools.normalize50(d)
re = d.impedance().real
re = re * 10e6 / d.freq
if self.logarithmicY:
min_val = self.max - self.span

Wyświetl plik

@ -306,7 +306,8 @@ class Marker(QtCore.QObject):
def updateLabels(self, s11data: List[Datapoint], s21data: List[Datapoint]):
if self.location != -1:
re50, im50 = RFTools.normalize50(s11data[self.location])
imp = s11data[self.location].impedance()
re50, im50 = imp.real, imp.imag
vswr = s11data[self.location].vswr
if re50 > 0:
rp = (re50 ** 2 + im50 ** 2) / re50

Wyświetl plik

@ -62,11 +62,11 @@ class Datapoint(NamedTuple):
return math.inf
return (1 + mag) / (1 - mag)
def to_impedance(self, ref_impedance: float = 50) -> complex:
def impedance(self, ref_impedance: float = 50) -> complex:
return ref_impedance * ((-self.z - 1) / (self.z - 1))
def q_factor(self, ref_impedance: float = 50) -> float:
imp = self.to_impedance(ref_impedance)
imp = self.impedance(ref_impedance)
if imp.real == 0.0:
return -1
return abs(imp.imag / imp.real)
@ -74,7 +74,7 @@ class Datapoint(NamedTuple):
def to_capacitive_equivalent(self, ref_impedance: float = 50) -> float:
if self.freq == 0:
return math.inf
imp = self.to_impedance(ref_impedance)
imp = self.impedance(ref_impedance)
if imp.imag == 0:
return math.inf
return -(1 / (self.freq * 2 * math.pi * imp.imag))
@ -82,18 +82,13 @@ class Datapoint(NamedTuple):
def to_inductive_equivalent(self, ref_impedance: float = 50) -> float:
if self.freq == 0:
return math.inf
imp = self.to_impedance(ref_impedance)
imp = self.impedance(ref_impedance)
if imp.imag == 0:
return 0
return imp.imag * 1 / (self.freq * 2 * math.pi)
class RFTools:
@staticmethod
def normalize50(data: Datapoint):
result = data.to_impedance()
return result.real, result.imag
@staticmethod
def capacitanceEquivalent(im50, freq) -> str:
if im50 == 0 or freq == 0: