transfer_functions module

Define instruments transfer functions.

These are the funtions converting acquisition voltages into actual physical quantities.

current_probe(v_acq, a_probe)[source]

Convert acquisition voltage to multipactor current.

This is the transfer function of CurrentProbe.

\[i = a_\mathrm{probe} \times V_\mathrm{acq}\]
Parameters:
Return type:

ndarray[tuple[Any, ...], dtype[double]]

Returns:

\(i\) in \(\mathrm{\mu A}\), which should be the content of the NI9205_MPxl columns.

field_probe(v_acq, g_probe, a_rack, b_rack, z_0=50.0)[source]

Convert acquisition voltage to coaxial voltage.

This is the transfer function of FieldProbe.

\[V_\mathrm{coax} = \sqrt{2\times Z_0 \times 10^{-3} \times 10^{ \frac{ a_\mathrm{rack}V_\mathrm{acq} + b_\mathrm{rack} + G_\mathrm{probe} + 3\mathrm{dB} }{ 10 }}}\]
Parameters:
  • v_acq (ndarray[tuple[Any, ...], dtype[double]]) – Acquisition voltage in \([0, 10~\mathrm{V}]\).

  • g_probe (float) – Total attenuation. Probe specific, also depends on frequency.

  • a_rack (float) – Rack calibration slope in \(\mathrm{dBm/V}\).

  • b_rack (float) – Rack calibration constant in \(\mathrm{dBm}\).

  • z_0 (float, default: 50.0) – Line impedance in \(\mathrm{\Omega}\).

Return type:

ndarray[tuple[Any, ...], dtype[double]]

Returns:

\(V_\mathrm{coax}\) in \(\mathrm{V}\), which should be the content of the NI9205_Ex columns.

field_probe_inv(v_coax, g_probe, a_rack, b_rack, z_0=50.0)[source]

Convert coaxial voltage to acquisition voltage.

This is the inverse of the function that is implemented in LabViewer.

Parameters:
  • v_coax (ndarray[tuple[Any, ...], dtype[double]]) – \(V_\mathrm{coax}\) in \(\mathrm{V}\), which should be the content of the NI9205_Ex columns.

  • g_probe (float) – Total attenuation. Probe specific, also depends on frequency.

  • a_rack (float) – Rack calibration slope in \(\mathrm{dBm/V}\).

  • b_rack (float) – Rack calibration constant in \(\mathrm{dBm}\).

  • z_0 (float, default: 50.0) – Line impedance in \(\mathrm{\Omega}\).

Return type:

ndarray[tuple[Any, ...], dtype[double]]

Returns:

Acquisition voltage in \([0, 10~\mathrm{V}]\).

power(v_acq, a_calib, b_calib, ensure_no_negative=False)[source]

Convert acquisition voltage to power.

This is the transfer function of Power.

\[P = a_\mathrm{calib} \times V_\mathrm{acq} + b_\mathrm{calib}\]

Note

Original transfer function in LabView is:

\[P = |V_\mathrm{acq}| \times (``REC_LIM_UPP`` - ``REC_LIM_LOW``) + ``REC_LIM_LOW``.\]

We removed the absolute value; to avoid negative powers (should not appear), use ensure_no_negative=True.

Parameters:
  • v_acq (ndarray[tuple[Any, ...], dtype[double]]) – Acquisition voltage in \([0, 1~\mathrm{V}]\) (not \(10~\mathrm{V}\)!).

  • a_calib (float) – Calibration slope in \(\mathrm{W/V}\).

  • b_calib (float) – Calibration offset in \(\mathrm{W}\).

  • ensure_no_negative (bool, default: False) – Set negative powers to \(0~\mathrm{V}\).

Return type:

ndarray[tuple[Any, ...], dtype[double]]

Returns:

\(P\) in \(\mathrm{W}\), which should be the content of the NI9205_Powerx columns.

pressure(v_acq, a_calib, b_calib)[source]

Convert acquisition voltage to pressure.

This is the transfer function of Penning.

\[p = 10^{a_\mathrm{calib} \times V_\mathrm{acq} + b_\mathrm{calib}}\]
Parameters:
  • v_acq (ndarray[tuple[Any, ...], dtype[double]]) – Acquisition voltage in \([0, 10~\mathrm{V}]\).

  • a_calib (float) – Calibration slope in \(\mathrm{1/V}\).

  • b_calib (float) – Calibration offset.

Return type:

ndarray[tuple[Any, ...], dtype[double]]

Returns:

\(P\) in \(\mathrm{mbar}\), which should be the content of the NI9205_Penningx and NI9205_bayard-alpert columns.