psi.controller.calibration package
Submodules
psi.controller.calibration.acquire module
psi.controller.calibration.api module
psi.controller.calibration.calibrate module
psi.controller.calibration.chirp module
- psi.controller.calibration.chirp.chirp_power(engines, ao_channel_name, ai_channel_names, start_frequency=500, end_frequency=50000, gain=0, vrms=1, repetitions=64, duration=0.02, iti=0.001, debug=False)[source]
Given a single output, measure response in multiple input channels using chirp.
- Parameters:
TODO
- Returns:
result – Dataframe will be indexed by output channel name and frequency. Columns will be rms (in V), snr (in DB) and thd (in percent).
- Return type:
pandas DataFrame
psi.controller.calibration.click module
- psi.controller.calibration.click.click_power(engines, ao_channel_name, ai_channel_names, gain=0, vrms=1, discard=2, repetitions=10, min_snr=None, duration=0.0001, iti=0.01, trim=0, debug=False)[source]
Given a single output, measure response in multiple input channels.
- Returns:
result – Dataframe will be indexed by output channel name. Columns will be rms (in V), snr (in DB) and thd (in percent).
- Return type:
pandas DataFrame
- psi.controller.calibration.click.click_sens(gain=-40, vrms=1, duration=0.0001, iti=0.001, **kwargs)[source]
Given a single output, measure sensitivity of output based on multiple input channels for a click.
- Parameters:
TODO
- Returns:
result – Dataframe will be indexed by output channel name and frequency. Columns will be rms (in V), snr (in DB), thd (in percent), spl (measured dB SPL according to the input calibration) norm_spl (the output, in dB SPL, that would be generated assuming the click is 1 VRMS and gain is 0) and sens (sensitivity of output in dB(V/Pa)). These values are reported separately for each input. Although the dB SPL, normalized SPL and sensitivity of the output as measured by each input should agree, there will be some equipment error. So, either average them together or choose the most trustworthy input.
- Return type:
pandas DataFrame
- psi.controller.calibration.click.click_spl(engines, *args, **kwargs)[source]
Given a single output, measure resulting SPL in multiple input channels.
- Parameters:
TODO
- Returns:
result – Dataframe will be indexed by output channel name and frequency. Columns will be rms (in V), snr (in DB), thd (in percent) and spl (measured dB SPL according to the input calibration).
- Return type:
pandas DataFrame
psi.controller.calibration.plugin module
psi.controller.calibration.tone module
- psi.controller.calibration.tone.tone_power(engines, frequencies, ao_channel_name, ai_channel_names, gains=0, vrms=1, repetitions=2, min_snr=None, max_thd=None, thd_harmonics=3, duration=0.1, trim=0.01, iti=0.01, debug=False)[source]
Given a single output, measure response in multiple input channels.
- Parameters:
TODO
- Returns:
result – Dataframe will be indexed by output channel name and frequency. Columns will be rms (in V), snr (in DB) and thd (in percent).
- Return type:
pandas DataFrame
- psi.controller.calibration.tone.tone_sens(engines, frequencies, gains=-40, vrms=1, **kwargs)[source]
Given a single output, measure sensitivity of output based on multiple input channels.
- Parameters:
TODO
- Returns:
result – Dataframe will be indexed by output channel name and frequency. Columns will be rms (in V), snr (in DB), thd (in percent), spl (measured dB SPL according to the input calibration) norm_spl (the output, in dB SPL, that would be generated assuming the tone is 1 VRMS and gain is 0) and sens (sensitivity of output in dB(V/Pa)). These values are reported separately for each input. Although the dB SPL, normalized SPL and sensitivity of the output as measured by each input should agree, there will be some equipment error. So, either average them together or choose the most trustworthy input.
- Return type:
pandas DataFrame
- psi.controller.calibration.tone.tone_spl(engines, *args, **kwargs)[source]
Given a single output, measure resulting SPL in multiple input channels.
- Parameters:
TODO
- Returns:
result – Dataframe will be indexed by output channel name and frequency. Columns will be rms (in V), snr (in DB), thd (in percent) and spl (measured dB SPL according to the input calibration).
- Return type:
pandas DataFrame