summaryrefslogtreecommitdiffstats
path: root/lab_control/frequency_response.py
diff options
context:
space:
mode:
Diffstat (limited to 'lab_control/frequency_response.py')
-rw-r--r--lab_control/frequency_response.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/lab_control/frequency_response.py b/lab_control/frequency_response.py
new file mode 100644
index 0000000..ca2002e
--- /dev/null
+++ b/lab_control/frequency_response.py
@@ -0,0 +1,25 @@
+from lab_control.function_generator import FunctionGenerator
+from lab_control.oscilloscope import Oscilloscope
+
+class FrequencyResponseMeasurement:
+ def __init__(self):
+ self.minFrequency = None
+ self.maxFrequency = None
+ self.steps = None
+ self.functionGeneratorChannel = None
+ self.oscilloscopeChannel = None
+ self.measurementDone = False
+ self.data = None
+
+ def measure(self, osc: Oscilloscope, fg: FunctionGenerator) -> None:
+ frequencyRange = self.maxFrequency - self.minFrequency
+ self.data = []
+
+ for i in range(0, self.steps):
+ frequency = self.minFrequency + i * frequencyRange / (self.steps - 1)
+ fg.setFrequency(self.functionGeneratorChannel, frequency)
+ response = osc.measureAmplitude(self.oscilloscopeChannel)
+ self.data.append((frequency, response))
+
+ self.measurementDone = True
+