Calibration
Calibration Introduction
Calibration Modes
Depending on the measurement mode either Gain or Impedance calibration can be performed.
Measurement Mode | Calibration Mode |
---|---|
S21 | Gain |
GainPhase | Gain |
Impedance One Port | Impedance |
Impedance Adapter | Impedance |
Impedance External Bridge | Impedance |
S11 One Port | Impedance |
S11 External Coupler | Impedance |
Impedance Voltage Current Gain | Multi Mode (Thru or Open, Short, Load) |
Impedance Shunt Thru | Multi Mode (Thru or Open, Short, Load) |
Impedance Series Thru | Multi Mode (Thru or Open, Short, Load) |
Full / User Range
The Full Range Calibration calibrates over the full frequency range while user range calibrates the Bode 100 in a user defined range.
The Full Range Calibration calibrates over the full frequency range of the Bode 100 at predefined frequency points.
Calibration values between these frequency points are calculated by linear interpolation.
Advantage:
Measurement frequency points can be changed without loosing the calibration.
The User Range calibration calibrates exactly at frequency points currently configured in the measurement.
Therefore a measurement has to be configured before a User Range calibration can be performed.
Advantage:
No interpolation is needed.
Note
Changing the measurement frequencies will reject the User Range Calibration.
Calibration Examples
Note
The following examples are written in C#.
Gain Thru Calibration
Initialize a S21 Measurement Mode
BodeAutomationInterface auto = new BodeAutomation(); BodeDevice bode = auto.Connect(); S21Measurement s21Measurement = bode.Transmission.CreateS21Measurement();
Perform User Range Calibration
//After configuring measurement you can execute the user calibration s21Measurement.ConfigureSweep(100, 200000, 201, SweepMode.Linear); ExecutionState state = s21Measurement.Calibration.UserRange.ExecuteThru();
Or perform Full Range Calibration
//After configuring measurement you can execute the full calibration ExecutionState state = s21Measurement.Calibration.FullRange.ExecuteThru();
Check if the User Range calibration is active
//Check if the calibration is active. if(!s21Measurement.Calibration.UserRange.IsActive) { //Something strange happened. return; }
Impedance Open Short Load Calibration
Initialize a measurement
BodeAutomationInterface auto = new BodeAutomation(); BodeDevice bode = auto.Connect(); OnePortMeasurement onePortMeasurement = bode.Impedance.CreateOnePortMeasurement();
Perform User Range Calibrations
onePortMeasurement.ConfigureSweep(100, 200000, 201, SweepMode.Linear); //Open Calibration ExecutionState state = onePortMeasurement.Calibration.UserRange.ExecuteOpen(); //Short Calibration ExecutionState state = onePortMeasurement.Calibration.UserRange.ExecuteShort(); //Load Calibration ExecutionState state = onePortMeasurement.Calibration.UserRange.ExecuteLoad();
Perform Full Range Calibrations
//Open Calibration ExecutionState state = onePortMeasurement.Calibration.FullRange.ExecuteOpen(); //Short Calibration ExecutionState state = onePortMeasurement.Calibration.FullRange.ExecuteShort(); //Load Calibration ExecutionState state = onePortMeasurement.Calibration.FullRange.ExecuteLoad();
Check if the Full Range calibration is active
//Check if the calibration is active. if(!onePortMeasurement.Calibration.FullRange.IsActive) { //Something strange happened. return; }
Load Save Calibration From File
You can either save the calibration in an external file like demonstrated in this example or keep it in memory during runtime.
When saving in a file the Calibration will be saved as a ".mcalx" file.
A calibration will only be loaded if the configured measurement points and the
measurement points from the calibration file match. The Load and Save functions are returning true or false, indicating if the process was successful or not.
Note
The extension ".mcalx" is required when calibration files are saved or loaded.
Example:
Perform User Range Calibration
BodeAutomationInterface auto = new BodeAutomation(); BodeDevice bode = auto.Connect(); S21Measurement s21Measurement = bode.Transmission.CreateS21Measurement(); s21Measurement.ConfigureSweep(100, 200000, 201, SweepMode.Linear); ExecutionState state = s21Measurement.Calibration.UserRange.ExecuteThru();
Save Calibration
//Save the calibration to a file called "myCalibration" if(!s21Measurement.Calibration.SaveCalibration("myCalibration.mcalx")) { //Error return; }
Load User Range Calibration
//Load the user range calibration from the external file called "myCalibration" if(!s21Measurement.Calibration.UserRange.LoadCalibration("myCalibration.mcalx")) { //Error return; }