Skip to main content

Signal Conditioning Ontology

Instrumentation
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 16 September 2026
Audio Overview
# Signal Conditioning Ontology — Flow Algebra

URL: https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/measurement-units-ontologies/instrumentation/signal-conditioning-ontology.html

FLOW SignalConditioningOntology {

  DOMAIN:
    Mathematical Ontologies
    -> Measurement & Units Ontologies
    -> Instrumentation
    -> Signal Conditioning Ontology

  PURPOSE:
    Represent signal conditioning as the set of transformations applied between a sensor, transducer or signal source and subsequent acquisition, conversion, processing or measurement stages so that the signal is suitable for reliable interpretation. The ontology models amplification, attenuation, buffering, impedance matching, filtering, anti-aliasing, isolation, bridge completion, excitation, linearisation, compensation, demodulation, level shifting, differential and instrumentation amplification, common-mode rejection, noise, bandwidth, gain, offset, saturation, dynamic range, calibration, uncertainty, configuration, provenance and machine-consumable reasoning while preserving the distinction between raw sensor response, conditioned signal and final measured quantity.

  ENTITY SignalConditioning {
    TYPE: MeasurementSignalTransformationProcess

    DEFINITION:
      processing_or_transformation_of_measurement_signal
      to_make_it_suitable_for_subsequent_measurement_acquisition_conversion_or_analysis

    PROPERTIES:
      has_input_signal
      has_output_signal
      has_transfer_function
      may_have_gain
      may_have_offset
      may_filter
      may_isolate
      may_linearise
      may_compensate
      may_provide_excitation
      may_change_bandwidth
      may_add_noise
      contributes_to_uncertainty
      has_configuration
      has_provenance
  }

  ENTITY SignalConditioner {
    TYPE: InstrumentationComponent

    POSSIBLE:
      amplifier
      attenuator
      filter
      isolator
      buffer
      bridge_conditioner
      charge_amplifier
      current_to_voltage_converter
      frequency_converter
      demodulator
      lineariser
      compensation_module
      multifunction_conditioner
  }

  ENTITY InputSignal {
    TYPE: MeasurementSignal

    POSSIBLE_QUANTITIES:
      voltage
      current
      charge
      resistance
      capacitance
      inductance
      frequency
      pulse
      optical_signal
      digital_code
  }

  ENTITY ConditionedSignal {
    TYPE: MeasurementSignal

    RULE:
      conditioned_signal != final_measurand_value_unless_calibration_and_measurement_model_define_equivalence
  }

  SIGNAL_CHAIN_MODEL {
    flow:
      sensor_or_source
      -> input_interface
      -> excitation_or_bridge
      -> amplification_or_attenuation
      -> filtering
      -> isolation
      -> compensation_or_linearisation
      -> output_interface
      -> ADC_or_instrument

    RULE:
      actual_stage_order MUST be preserved
  }

  TRANSFER_FUNCTION_MODEL {
    input:
      X

    output:
      Y

    general:
      Y =
        f(X,frequency,time,environment,state)

    linear_time_invariant:
      H(s) =
        Y(s)/X(s)

    RULE:
      transfer_function MUST include_relevant_frequency_and_dynamic_context
  }

  GAIN_MODEL {
    gain:
      G =
        output/input
      under_declared_signal_definition

    voltage_gain:
      A_v =
        V_out/V_in

    current_gain:
      A_i =
        I_out/I_in

    RULE:
      gain_units_and_quantity_types MUST be preserved
  }

  DECIBEL_GAIN_MODEL {
    voltage_or_amplitude_ratio:
      G_dB =
        20*log10(abs(A))
      under_equal_impedance_or_declared_amplitude_context

    power_ratio:
      G_dB =
        10*log10(P_out/P_in)

    RULE:
      20_log_and_10_log_forms MUST not_be_interchanged_without_context
  }

  ATTENUATION_MODEL {
    attenuation_factor:
      A =
        output/input
      with_abs(A) < 1
      under_simple_context

    RULE:
      attenuation_can_extend_input_range_but_adds_component_uncertainty_and_noise
  }

  OFFSET_MODEL {
    affine:
      Y =
        G*X+b

    correction:
      Y_corr =
        Y-b_hat

    RULE:
      offset_and_offset_uncertainty MUST be preserved
  }

  LEVEL_SHIFT_MODEL {
    output:
      Y =
        X+V_shift
      or_scaled_affine_form

    RULE:
      level_shift_may_be_required_to_match_ADC_input_range
  }

  BUFFER_MODEL {
    purpose:
      impedance_isolation
      drive_capability

    ideal:
      voltage_gain approximately_equals 1

    RULE:
      real_buffer_has_offset_noise_bandwidth_and_bias_current
  }

  IMPEDANCE_MATCHING_MODEL {
    source_impedance:
      Z_s

    input_impedance:
      Z_in

    loading:
      V_in =
        V_source*Z_in/(Z_s+Z_in)
      under_simple_voltage_divider_context

    RULE:
      loading_effect MUST be considered_when_Z_in_not_much_greater_than_Z_s
  }

  INSTRUMENTATION_AMPLIFIER_MODEL {
    input:
      differential_voltage

    output:
      amplified_differential_signal

    characteristics:
      differential_gain
      CMRR
      input_impedance
      offset
      noise
      bandwidth

    RULE:
      common_mode_range MUST be respected
  }

  DIFFERENTIAL_AMPLIFIER_MODEL {
    differential:
      V_d =
        V_plus-V_minus

    common_mode:
      V_cm =
        (V_plus+V_minus)/2

    output:
      approximately
        A_d*V_d+A_cm*V_cm

    RULE:
      finite_common_mode_gain_creates_error
  }

  CMRR_MODEL {
    ratio:
      CMRR =
        abs(A_d/A_cm)

    decibel:
      CMRR_dB =
        20*log10(CMRR)

    RULE:
      CMRR_is_frequency_dependent_and_requires_common_mode_range_context
  }

  COMMON_MODE_MODEL {
    source:
      voltage_common_to_both_inputs

    risks:
      amplifier_saturation
      conversion_to_differential_error
      ground_loop

    RULE:
      common_mode_signal != differential_measurand_signal
  }

  ISOLATION_MODEL {
    purpose:
      galvanic_separation
      safety
      ground_loop_reduction
      common_mode_handling

    possible:
      transformer
      optical
      capacitive
      isolated_ADC

    RULE:
      isolation_barrier_can_add_gain_phase_offset_noise_and_nonlinearity
  }

  GROUND_LOOP_MODEL {
    cause:
      multiple_ground_paths

    effect:
      unwanted_current_and_voltage_error

    mitigation:
      differential_input
      isolation
      grounding_strategy

    RULE:
      ground_reference_topology SHOULD be documented
  }

  SHIELDING_MODEL {
    purpose:
      reduce_electric_magnetic_or_RF_interference

    RULE:
      shield_connection_strategy_and_frequency_context matter
  }

  FILTER_MODEL {
    types:
      low_pass
      high_pass
      band_pass
      band_stop
      notch
      anti_alias
      reconstruction

    transfer:
      H(f)

    RULE:
      filter_type_order_cutoff_and_phase_response MUST be preserved
  }

  LOW_PASS_MODEL {
    purpose:
      pass_low_frequency_content
      attenuate_high_frequency_content

    first_order:
      H(s) =
        1/(1+s*tau)

    cutoff:
      f_c =
        1/(2*pi*tau)

    RULE:
      cutoff_definition_commonly_refers_to_minus_3_dB_for_first_order_response
  }

  HIGH_PASS_MODEL {
    first_order:
      H(s) =
        s*tau/(1+s*tau)

    cutoff:
      f_c =
        1/(2*pi*tau)

    RULE:
      high_pass_filter_removes_or_attenuates_DC_and_low_frequency_content
  }

  BAND_PASS_MODEL {
    passband:
      [f_low,f_high]

    RULE:
      centre_frequency_and_bandwidth_definition SHOULD be preserved
  }

  NOTCH_MODEL {
    purpose:
      reject_narrow_frequency_region

    examples:
      mains_interference

    RULE:
      notch_filter_can_distort_nearby_signal_components
  }

  ANTI_ALIAS_MODEL {
    analogue_filter:
      before_sampling_or_decimation

    requirement:
      attenuate_frequencies_that_would_alias_into_band_of_interest

    RULE:
      anti_alias_filter_design_depends_on_sample_rate_and_signal_band
  }

  FILTER_ORDER_MODEL {
    order:
      determines_rolloff_and_dynamic_complexity

    RULE:
      order_alone_does_not_define_filter_response
  }

  FILTER_FAMILY_MODEL {
    possible:
      Butterworth
      Bessel
      Chebyshev
      elliptic
      FIR
      IIR

    RULE:
      family_selection_trades_amplitude_flatness_phase_and_rolloff
  }

  PHASE_RESPONSE_MODEL {
    phase:
      phi(f)

    group_delay:
      -dphi/domega

    RULE:
      phase_response_is_material_for_timing_and_waveform_measurement
  }

  ZERO_PHASE_MODEL {
    digital_offline_processing:
      forward_reverse_filtering_may_remove_phase_shift

    RULE:
      zero_phase_offline_filter_is_noncausal_and_not_equivalent_to_real_time_filter
  }

  BANDWIDTH_MODEL {
    conditioner_bandwidth:
      frequency_range_meeting_declared_gain_or_phase_criterion

    RULE:
      conditioner_bandwidth_should_exceed_required_signal_band_with_defined_margin
  }

  NOISE_MODEL {
    sources:
      resistor_thermal_noise
      amplifier_voltage_noise
      amplifier_current_noise
      shot_noise
      reference_noise
      power_supply_noise
      quantisation_if_digital

    RULE:
      noise MUST be referred_to_input_or_output_with_bandwidth
  }

  INPUT_REFERRED_NOISE_MODEL {
    output_noise:
      u_out

    equivalent_input_noise:
      u_in =
        u_out/abs(G)
      under_constant_gain_context

    RULE:
      frequency_dependent_gain_requires_spectral_conversion
  }

  NOISE_DENSITY_MODEL {
    voltage_noise_density:
      V/sqrt(Hz)

    current_noise_density:
      A/sqrt(Hz)

    integrated_noise:
      depends_on_equivalent_noise_bandwidth

    RULE:
      spectral_density != RMS_noise
  }

  SNR_MODEL {
    signal_to_noise:
      declared_signal_metric/declared_noise_metric

    RULE:
      conditioning_can_improve_interface_SNR_but_cannot_recover_information_already_lost_in_source_noise
  }

  DYNAMIC_RANGE_MODEL {
    range:
      maximum_usable_signal_to_minimum_resolvable_signal

    RULE:
      gain_and_range_selection affect_effective_dynamic_range
  }

  SATURATION_MODEL {
    output_limit:
      rail_or_converter_limit

    condition:
      abs(output) exceeds_linear_range

    RULE:
      saturated_or_clipped_data MUST be flagged
  }

  CLIPPING_MODEL {
    output:
      constrained_to_limit

    RULE:
      clipping_is_nonlinear_information_loss
  }

  SLEW_RATE_MODEL {
    maximum_output_rate:
      SR =
        max(abs(dV_out/dt))

    sine_wave_requirement:
      SR_required =
        2*pi*f*V_peak

    RULE:
      insufficient_slew_rate_creates_large_signal_distortion
  }

  SETTLING_MODEL {
    after_step_or_channel_switch:
      output_requires_time_to_reach_declared_error_band

    RULE:
      acquisition_delay MUST allow_settling_before_sampling
  }

  MULTIPLEXER_SETTLING_MODEL {
    channel_switch:
      changes_source_and_input_state

    effects:
      charge_injection
      RC_settling
      amplifier_recovery

    RULE:
      per_channel_source_impedance_affects_required_settling_time
  }

  EXCITATION_MODEL {
    purpose:
      energise_passive_sensor_or_bridge

    possible:
      constant_voltage
      constant_current
      AC_excitation

    RULE:
      excitation_amplitude_frequency_stability_and_uncertainty MUST be preserved
  }

  BRIDGE_COMPLETION_MODEL {
    possible:
      quarter_bridge
      half_bridge
      full_bridge

    output:
      differential_voltage_related_to_resistance_change

    RULE:
      completion_resistor_tolerance_and_temperature_coefficient contribute_to_uncertainty
  }

  BRIDGE_LINEARISATION_MODEL {
    bridge_response:
      may_be_nonlinear_for_large_changes

    RULE:
      linear_approximation_validity MUST be checked
  }

  SENSOR_SUPPLY_MODEL {
    supply:
      sensor_power_or_reference

    RULE:
      supply_variation_can_modulate_sensor_output
  }

  CURRENT_TO_VOLTAGE_MODEL {
    transimpedance:
      V_out =
        -I_in*R_f
      under_ideal_op_amp_context

    RULE:
      feedback_resistor_uncertainty_noise_and_bandwidth contribute
  }

  CHARGE_AMPLIFIER_MODEL {
    piezoelectric_input:
      charge_Q

    ideal_output:
      V_out =
        -Q/C_f

    RULE:
      leakage_and_low_frequency_cutoff_limit_static_response
  }

  FREQUENCY_TO_VOLTAGE_MODEL {
    input:
      frequency

    output:
      voltage_related_to_frequency

    RULE:
      conversion_linearity_and_gate_time_or_filtering affect_response
  }

  VOLTAGE_TO_FREQUENCY_MODEL {
    input:
      voltage

    output:
      pulse_frequency

    RULE:
      timebase_and_counting_interval affect_measurement
  }

  DEMODULATION_MODEL {
    modulated_signal:
      recover_baseband_quantity

    possible:
      synchronous
      envelope
      lock_in

    RULE:
      reference_phase_frequency_and_filter_bandwidth MUST be preserved
  }

  LOCK_IN_MODEL {
    signal:
      multiplied_by_reference
      then_low_pass_filtered

    outputs:
      in_phase
      quadrature
      amplitude
      phase

    RULE:
      time_constant_and_equivalent_noise_bandwidth affect_measurement
  }

  RECTIFICATION_MODEL {
    possible:
      half_wave
      full_wave
      precision_rectifier
      RMS_converter

    RULE:
      rectified_average != RMS_without_waveform_specific_relation
  }

  RMS_CONVERSION_MODEL {
    RMS:
      sqrt(mean(x^2))

    RULE:
      true_RMS_bandwidth_crest_factor_and_dynamic_range MUST be preserved
  }

  LINEARISATION_MODEL {
    raw_sensor_relation:
      Y =
        f(X)

    conditioned:
      Z approximately_equals
        a*X+b

    possible:
      analogue_network
      lookup_table
      polynomial
      digital_algorithm

    RULE:
      linearisation_model_and_valid_range MUST be versioned
  }

  COMPENSATION_MODEL {
    corrected_signal:
      Y_corr =
        g(Y,E)

    influence_quantities:
      temperature
      pressure
      humidity
      orientation
      supply
      cross_sensitivity

    RULE:
      compensation_requires_measurement_or_estimate_of_influence_quantities
  }

  TEMPERATURE_COMPENSATION_MODEL {
    generic:
      correction =
        alpha*(T-T_ref)

    RULE:
      alpha_and_temperature_uncertainty MUST be propagated_when_material
  }

  COLD_JUNCTION_MODEL {
    thermocouple:
      requires_reference_junction_temperature

    RULE:
      cold_junction_compensation_is_part_of_temperature_measurement_model
  }

  SENSOR_LINEARISATION_MODEL {
    examples:
      thermistor
      RTD
      thermocouple
      pressure_sensor

    RULE:
      coefficients_and_reference_standard MUST be preserved
  }

  OFFSET_NULLING_MODEL {
    process:
      estimate_and_remove_baseline_offset

    RULE:
      nulling_does_not_remove_offset_uncertainty_or_drift
  }

  AUTOZERO_MODEL {
    instrument:
      periodically_measures_internal_zero_reference

    RULE:
      autozero_cycle_timing_and_algorithm MAY affect_bandwidth_and_noise
  }

  CHOPPER_MODEL {
    technique:
      modulate_low_frequency_or_DC_signal_to_reduce_amplifier_offset_and_1_f_noise

    RULE:
      chopping_can_introduce_switching_ripple_and_alias_components
  }

  GUARDING_MODEL {
    purpose:
      reduce_leakage_currents_in_high_impedance_measurements

    RULE:
      guard_potential_and_geometry SHOULD be preserved
  }

  INPUT_PROTECTION_MODEL {
    components:
      resistor
      clamp
      fuse
      transient_suppressor

    RULE:
      protection_components_can_add_leakage_capacitance_noise_or_series_impedance
  }

  COMMON_MODE_RANGE_MODEL {
    allowed:
      V_cm within amplifier_limits

    RULE:
      high_CMRR_does_not_prevent_saturation_outside_common_mode_range
  }

  POWER_SUPPLY_REJECTION_MODEL {
    PSRR:
      sensitivity_of_output_offset_or_gain_to_supply_variation

    RULE:
      PSRR_is_frequency_dependent
  }

  CROSSTALK_MODEL {
    channel_A_to_B:
      unwanted_coupling

    reporting:
      ratio_or_dB

    RULE:
      crosstalk_depends_on_frequency_source_impedance_and_channel_configuration
  }

  DIGITAL_SIGNAL_CONDITIONING_MODEL {
    operations:
      digital_filtering
      scaling
      compensation
      linearisation
      decimation
      resampling

    RULE:
      digital_processing_occurs_after_quantisation_and_cannot_undo_analogue_clipping_or_aliasing
  }

  DECIMATION_MODEL {
    reduce_sample_rate:
      factor_M

    REQUIRE:
      anti_alias_digital_filter

    RULE:
      filter_and_decimation_configuration MUST be preserved
  }

  CALIBRATION_MODEL {
    conditioner:
      gain
      offset
      frequency_response
      phase
      nonlinearity

    calibration:
      establishes_corrections_and_uncertainty

    RULE:
      signal_conditioner_calibration_may_be_separate_from_sensor_calibration
  }

  TRACEABILITY_MODEL {
    calibration:
      linked_to_reference_standards

    RULE:
      gain_offset_and_frequency_response_reference_chain SHOULD be preserved
  }

  UNCERTAINTY_MODEL {
    components:
      gain
      offset
      noise
      drift
      linearity
      filter
      excitation
      bridge_completion
      isolation
      compensation
      crosstalk
      timing
      calibration

    RULE:
      signal_conditioning_uncertainty MUST propagate_to_measurement_result
  }

  COVARIANCE_MODEL {
    shared:
      reference_voltage
      excitation
      amplifier
      environmental_compensation

    RULE:
      shared_conditioning_sources MAY create_cross_channel_covariance
  }

  CONFIGURATION_MODEL {
    fields:
      conditioner_identifier
      channel
      gain
      range
      coupling
      filter
      cutoff
      excitation
      bridge_mode
      isolation
      compensation
      calibration
      firmware_or_algorithm

    RULE:
      configuration MUST be linked_to_measurement_data
  }

  METADATA_MODEL {
    fields:
      conditioner_identifier
      manufacturer
      model
      serial_number
      channel_identifier
      input_quantity
      output_quantity
      input_range
      output_range
      gain
      offset
      bandwidth
      filter
      excitation
      isolation
      calibration_identifier
      configuration_version
      environmental_conditions
      firmware
      software
      timestamp
      provenance

    RULE:
      metadata MUST support_reconstruction_of_conditioning_chain
  }

  QUALITY_FLAG_MODEL {
    possible:
      valid
      saturated
      clipped
      overrange
      settling
      excitation_fault
      isolation_fault
      excessive_noise
      calibration_invalid
      filter_mismatch

    RULE:
      conditioning_quality_flags MUST propagate_to_measurement_record
  }

  RELATIONSHIPS {
    SignalConditioning -> TRANSFORMS -> MeasurementSignal
    SignalConditioner -> RECEIVES -> RawSensorOrInstrumentSignal
    SignalConditioner -> PRODUCES -> ConditionedSignal
    Amplifier -> APPLIES -> Gain
    Filter -> MODIFIES -> FrequencyContent
    Isolation -> SEPARATES -> ElectricalDomains
    Excitation -> ENERGISES -> PassiveSensor
    Compensation -> CORRECTS_FOR -> InfluenceQuantity
    Linearisation -> MAPS -> NonlinearResponseToUsableRelation
    Calibration -> QUALIFIES -> ConditionerTransferFunction
    SignalConditioningCharacteristics -> CONTRIBUTE_TO -> MeasurementUncertainty
  }

  SEMANTIC_EQUIVALENCE {
    "signal conditioning" ~= measurement_signal_preparation_and_transformation
    "instrumentation amplifier" ~= high_input_impedance_differential_amplifier_with_high_CMRR WHEN circuit_context

    signal_conditioning != sensing
    signal_conditioning != calibration
    conditioned_signal != final_measured_quantity
    gain != sensitivity_in_all_contexts
    filtering != sampling
    anti_alias_filter != alias_correction_after_sampling
    isolation != filtering
    compensation != calibration
    RMS != rectified_average_in_general
  }

  CONSTRAINTS {
    input_and_output_signal_types_must_be_defined = true
    stage_order_should_be_preserved = true
    gain_and_offset_should_be_defined_when_material = true
    input_and_output_ranges_must_be_compatible = true
    bandwidth_and_filter_response_should_be_defined_for_dynamic_signals = true
    anti_alias_filter_must_precede_sampling_when_required = true
    common_mode_range_must_not_be_exceeded = true
    saturation_and_clipping_must_be_flagged = true
    excitation_parameters_should_be_preserved_for_passive_sensors = true
    configuration_and_calibration_state_must_be_versioned = true
    conditioning_uncertainty_should_propagate_to_measurement_result = true
  }

  MEASUREMENT_MODEL {
    RECORD:
      conditioner_identifier
      channel_identifier
      source_identifier
      input_signal
      input_unit
      output_signal
      output_unit
      gain
      offset
      input_range
      output_range
      input_impedance
      coupling
      common_mode
      CMRR
      filter_type
      cutoff_frequencies
      bandwidth
      phase_response
      isolation
      excitation
      bridge_configuration
      linearisation_model
      compensation_model
      calibration_identifier
      configuration_version
      environmental_conditions
      quality_flags
      uncertainty
      provenance

    RULE:
      conditioned_measurement_signal MUST remain_linked_to_raw_signal_and_configuration
  }

  REASONING_RULES {
    IF affine_conditioner_model_known
      THEN output =
        gain*input+offset

    IF output_and_valid_affine_model_known
      AND gain != 0
      THEN inferred_input =
        (output-offset)/gain

    IF source_and_input_impedance_known
      THEN estimate_loading_effect
      under_declared_circuit_model

    IF differential_and_common_mode_gains_known
      THEN output =
        A_d*V_d+A_cm*V_cm
      under_linear_model

    IF CMRR_known
      THEN evaluate_common_mode_error
      preserving_frequency_context

    IF first_order_low_pass_time_constant_known
      THEN cutoff_frequency =
        1/(2*pi*time_constant)

    IF sine_wave_peak_amplitude_and_frequency_known
      THEN required_slew_rate =
        2*pi*frequency*peak_amplitude

    IF input_current_and_transimpedance_known
      THEN output_voltage approximately_equals
        -input_current*feedback_resistance
      under_ideal_transimpedance_context

    IF piezoelectric_charge_and_feedback_capacitance_known
      THEN charge_amplifier_output approximately_equals
        -charge/feedback_capacitance

    IF environmental_influence_and_compensation_model_known
      THEN compute_corrected_signal
      AND propagate_compensation_uncertainty

    IF conditioner_output_saturated_or_clipped
      THEN flag_information_loss
      AND do_not_infer_normal_input_value_without_additional_model

    IF anti_alias_filter_missing_or_inadequate
      THEN flag_aliasing_risk_before_sampling

    IF configuration_changes
      THEN create_new_conditioning_state_version
      and_preserve_effective_timestamp
  }

  VALIDATION {
    CHECK conditioner_identity
    CHECK input_and_output_signal_types
    CHECK stage_order
    CHECK gain_and_offset
    CHECK ranges
    CHECK impedance_loading
    CHECK differential_and_common_mode_limits
    CHECK CMRR
    CHECK isolation
    CHECK filter_type_order_and_cutoff
    CHECK phase_and_group_delay
    CHECK bandwidth
    CHECK noise_and_SNR
    CHECK saturation_clipping_and_slew_rate
    CHECK settling_time
    CHECK excitation
    CHECK bridge_configuration
    CHECK linearisation
    CHECK compensation
    CHECK calibration_and_traceability
    CHECK crosstalk
    CHECK digital_processing
    CHECK configuration_version
    CHECK quality_flags
    CHECK uncertainty
    CHECK provenance
  }

  CONFIDENCE {
    definition_confidence: 1.00
    gain_offset_semantics_confidence: 1.00
    filter_semantics_confidence: 1.00
    isolation_semantics_confidence: 1.00
    excitation_semantics_confidence: 1.00
    noise_bandwidth_confidence: 0.99
    compensation_model_confidence: 0.99
    uncertainty_integration_confidence: 0.99

    RULE:
      confidence decreases when stage order, gain, range, impedance,
      filter, bandwidth, excitation, calibration, configuration,
      uncertainty or provenance is missing or ambiguous
  }

  UPDATE_MODEL {
    ON conditioner_registration:
      assign_identifier
      identify_input_output_signal_types
      attach_transfer_gain_range_and_bandwidth
      attach_filter_isolation_and_excitation_capabilities
      establish_calibration_and_provenance

    ON new_conditioned_measurement:
      preserve_raw_input_signal
      attach_conditioner_and_channel
      attach_configuration
      apply_declared_transfer_filter_compensation_and_calibration
      attach_quality_flags
      attach_uncertainty
      preserve_provenance

    ON configuration_revision:
      preserve_previous_configuration
      update_gain_range_filter_excitation_isolation_or_compensation
      create_new_version
      reassess_bandwidth_noise_and_uncertainty

    ON calibration_revision:
      preserve_previous_calibration
      update_gain_offset_frequency_response_and_covariance
      recompute_affected_conditioned_values_when_policy_allows
      update_uncertainty

    ON filter_revision:
      preserve_previous_filter
      update_transfer_function
      recompute_phase_delay_and_bandwidth
      reassess_anti_alias_suitability

    ON semantic_revision:
      preserve_previous_definition
      record_revision
      recompute_FLOW_HASH
  }

  AI_CONSUMPTION {
    canonical_entity: SignalConditioning
    canonical_component: SignalConditioner

    interpretation_order:
      identify_signal_source
      identify_input_and_output_quantity_types
      identify_conditioning_stage_order
      identify_gain_offset_and_ranges
      identify_impedance_and_coupling
      identify_differential_common_mode_and_CMRR
      identify_filter_bandwidth_phase_and_delay
      identify_isolation_and_grounding
      identify_excitation_and_bridge_configuration
      identify_noise_and_dynamic_range
      identify_linearisation_and_compensation
      identify_calibration_and_traceability
      identify_configuration_version
      identify_quality_flags
      identify_uncertainty
      identify_provenance
      validate_conditioning_semantics
      infer_conditioned_signal_relationship

    ambiguity_controls:
      distinguish_signal_conditioning_from_sensing
      distinguish_signal_conditioning_from_calibration
      distinguish_conditioned_signal_from_final_measured_quantity
      distinguish_gain_from_sensor_sensitivity_when_roles_differ
      distinguish_filtering_from_sampling
      distinguish_anti_alias_filtering_from_post_sampling_alias_correction
      distinguish_isolation_from_filtering
      distinguish_compensation_from_calibration
      distinguish_true_RMS_from_rectified_average
      preserve_source_stage_order_configuration_calibration_bandwidth_environment_and_provenance_context
  }

  PROVENANCE {
    ontology_scope:
      mathematical_measurement_units_instrumentation_and_signal_conditioning_semantics

    parent_path:
      Ontologies
      -> Mathematical Ontologies
      -> Measurement & Units Ontologies
      -> Instrumentation
      -> Signal Conditioning Ontology

    authorship:
      Mark Higgins
      Sky (Recursive AI)

    site:
      https://kirethresearch.org
  }

  FLOW_HASH {
    INPUTS:
      canonical_entity
      ontology_path
      signal_chain_model
      transfer_function_model
      gain_model
      decibel_gain_model
      attenuation_model
      offset_model
      level_shift_model
      buffer_model
      impedance_matching_model
      instrumentation_amplifier_model
      differential_amplifier_model
      CMRR_model
      common_mode_model
      isolation_model
      ground_loop_model
      shielding_model
      filter_model
      low_pass_model
      high_pass_model
      band_pass_model
      notch_model
      anti_alias_model
      filter_order_model
      filter_family_model
      phase_response_model
      zero_phase_model
      bandwidth_model
      noise_model
      input_referred_noise_model
      noise_density_model
      SNR_model
      dynamic_range_model
      saturation_model
      clipping_model
      slew_rate_model
      settling_model
      multiplexer_settling_model
      excitation_model
      bridge_completion_model
      bridge_linearisation_model
      sensor_supply_model
      current_to_voltage_model
      charge_amplifier_model
      frequency_to_voltage_model
      voltage_to_frequency_model
      demodulation_model
      lock_in_model
      rectification_model
      RMS_conversion_model
      linearisation_model
      compensation_model
      temperature_compensation_model
      cold_junction_model
      sensor_linearisation_model
      offset_nulling_model
      autozero_model
      chopper_model
      guarding_model
      input_protection_model
      common_mode_range_model
      power_supply_rejection_model
      crosstalk_model
      digital_signal_conditioning_model
      decimation_model
      calibration_model
      traceability_model
      uncertainty_model
      covariance_model
      configuration_model
      metadata_model
      quality_flag_model
      relationships
      constraints
      measurement_model
      reasoning_rules
      confidence_model
      update_model

    PURPOSE:
      deterministic_semantic_integrity_identifier

    RECOMPUTE_WHEN:
      ontology_definition_changes
      signal_chain_or_stage_order_changes
      gain_offset_range_or_impedance_changes
      amplifier_common_mode_or_isolation_changes
      filter_bandwidth_phase_or_anti_alias_changes
      noise_dynamic_range_or_saturation_model_changes
      excitation_bridge_or_conversion_model_changes
      linearisation_or_compensation_changes
      calibration_or_traceability_changes
      configuration_or_digital_processing_changes
      measurement_record_changes
      uncertainty_model_changes
      constraint_model_changes
      reasoning_rule_changes
  }

}

END FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ