Skip to content
This documentation describes version 4.0.0, which is not released yet. The current version on PyPI is 3.3.0 and does not carry everything described here.

Microphone Calibration by Reciprocity (IEC 61094-2/-3)

Standards: IEC 61094ISO 9613

A laboratory standard microphone is calibrated without a reference microphone. Two microphones are coupled acoustically, one drives as a sound source and the other receives, and the electrical transfer impedance that is measured is the product of their two sensitivities times the acoustic transfer impedance of whatever couples them, which is computed:

In a coupler (IEC 61094-2) is the acoustic impedance of a small enclosed volume of gas; in a free field (IEC 61094-3) it is that of a spherical wave between the two acoustic centres. Three microphones measured in pairs give three products, and each sensitivity follows from them alone. The three modules of metrology that do this are reciprocity_coupler, reciprocity_free_field and reciprocity_calibration, which holds the result and the budget both share.

The readings on this page are synthetic: electrical transfer impedances built from three sensitivities the page knows, so every step can be checked against them.

Two panels against frequency. Left, the pressure sensitivity level of three LS1P microphones calibrated by reciprocity in a plane-wave coupler, 25 Hz to 10 kHz: flat near -26.1, -26.5 and -25.8 dB re 1 V/Pa up to 1 kHz, rising by about 1 dB to a peak near 5 kHz and falling to about -29 dB at 10 kHz; the expanded uncertainty, 0.015 dB to 0.064 dB, is a band hardly wider than the curves, and the legend states it. Right, the change of the acoustic transfer impedance of the pair 1-2 that each correction causes: heat conduction from -0.32 dB at 25 Hz to 0 dB near 8 kHz, the two capillary tubes from -0.42 dB at 25 Hz up to +0.14 dB near 150 Hz and back to 0, and both togetherTwo panels against frequency. Left, the pressure sensitivity level of three LS1P microphones calibrated by reciprocity in a plane-wave coupler, 25 Hz to 10 kHz: flat near -26.1, -26.5 and -25.8 dB re 1 V/Pa up to 1 kHz, rising by about 1 dB to a peak near 5 kHz and falling to about -29 dB at 10 kHz; the expanded uncertainty, 0.015 dB to 0.064 dB, is a band hardly wider than the curves, and the legend states it. Right, the change of the acoustic transfer impedance of the pair 1-2 that each correction causes: heat conduction from -0.32 dB at 25 Hz to 0 dB near 8 kHz, the two capillary tubes from -0.42 dB at 25 Hz up to +0.14 dB near 150 Hz and back to 0, and both together

Three LS1P microphones calibrated in a plane-wave coupler (left) and the corrections to the transfer impedance of one pair (right), from the results’ own .plot().

Both parts use three microphones, two of which must be reciprocal, or two microphones and an auxiliary sound source, one of which must be reciprocal (5.1.1). Each pair is measured in turn: one microphone is driven by a current, measured as the voltage across a calibrated impedance in series with it, and the other’s open-circuit voltage is read by the insert voltage technique (5.3). The quotient is the electrical transfer impedance. In a coupler the two face each other across a cavity of known shape; in a free field they face each other on their principal axes in an anechoic room.

The readings of a reciprocity calibration in two columns. Left, a pressure field in a coupler (IEC 61094-2, 5.3 to 5.7): two laboratory standard microphones face each other across a small cavity, the transmitter (1) driven by a current i_1 measured across a series impedance and the receiver (2) giving its voltage U_2 by the insert voltage technique, the pairs 1-2, 2-3 and 3-1 in turn; Formula (2) gives M_1 M_2 = Z_e,12 / Z_a,12 with Z_e,12 = U_2 / i_1 measured and Z_a,12 computed by Formula (3) or (4) and Annexes A and B, and Formula (7) gives M_1 = (P_12 P_31 / P_23) to the power one half, P_ij being the product M_i M_j of each pair. Right, the same pair face to face in a free field (IEC 61094-3, 5.5 to 5.7), with the distance d_m12 between the diaphragms and the shorter distance d_12 between the two acoustic centres, which lie in front of the diaphragms; Formula (7) gives M_1 M_2 = -j (2 d_12 / rho f)(U_2 / i_1) exp(j k d_12) exp(alpha d_m12), the phase and spreading taken over d_12 and the attenuation over d_m12, and Formula (8) gives M_1 from the three products as in the coupler. The footer says the free-field distance is above ten diameters (7.3) and the supports twenty diameters long (6.4)The readings of a reciprocity calibration in two columns. Left, a pressure field in a coupler (IEC 61094-2, 5.3 to 5.7): two laboratory standard microphones face each other across a small cavity, the transmitter (1) driven by a current i_1 measured across a series impedance and the receiver (2) giving its voltage U_2 by the insert voltage technique, the pairs 1-2, 2-3 and 3-1 in turn; Formula (2) gives M_1 M_2 = Z_e,12 / Z_a,12 with Z_e,12 = U_2 / i_1 measured and Z_a,12 computed by Formula (3) or (4) and Annexes A and B, and Formula (7) gives M_1 = (P_12 P_31 / P_23) to the power one half, P_ij being the product M_i M_j of each pair. Right, the same pair face to face in a free field (IEC 61094-3, 5.5 to 5.7), with the distance d_m12 between the diaphragms and the shorter distance d_12 between the two acoustic centres, which lie in front of the diaphragms; Formula (7) gives M_1 M_2 = -j (2 d_12 / rho f)(U_2 / i_1) exp(j k d_12) exp(alpha d_m12), the phase and spreading taken over d_12 and the attenuation over d_m12, and Formula (8) gives M_1 from the three products as in the coupler. The footer says the free-field distance is above ten diameters (7.3) and the supports twenty diameters long (6.4)

A pair of the triad in a coupler and in a free field: what is measured, what is computed and what each part’s formulas make of them.

RequirementValueClause
Reference conditions23,0 °C, 101,325 kPa, 50 % relative humidity61094-2 and 61094-3, 4
Polarizing voltage200,0 V recommended, and the one used reported61094-2, 6.2; 61094-3, 6.2
Plane-wave couplerDistance between the diaphragms 0,5 to 0,75 times the diameter, up to about 10 kHz (LS1P) and 20 kHz (LS2P)61094-2, C.2
Large-volume couplerLength to diameter about 0,3, up to about 2,5 kHz (LS1P) and 5 kHz (LS2P) with a wave-motion correction61094-2, C.3
Free-field distanceGreater than ten nominal diameters of the microphone61094-3, 7.3
Free-field mountingOn a cylinder of the microphone’s diameter at least twenty diameters long, tapered to its support61094-3, 6.4
Reported uncertaintyExpanded, with (61094-2) or for a 95 % coverage probability (61094-3), at each frequency61094-2, 7.5; 61094-3, 7.8

Each microphone enters the acoustic transfer impedance through its acoustic impedance and its front cavity. Annex E writes the impedance as a lumped compliance, mass and resistance, or equivalently as the equivalent volume at low frequencies, the resonance frequency and the loss factor; E.4 states the representation good to about 1,3 times the resonance frequency. The front cavity’s measured volume, depth and diameter come from E.2 and E.3. The coupler is either a plane-wave coupler of the diameter of the front cavities or a large-volume coupler, with the nominal dimensions of Tables C.1 and C.2 in metrology.IEC61094_2_TABLE_C1 and metrology.IEC61094_2_TABLE_C2. Figure C.2 draws each microphone of a large-volume coupler with its face a distance F back from the cavity, through a bore of the front-cavity diameter B: LargeVolumeCoupler takes that length as port_length_m, and the two bores of the LS1P coupler add 2,4 % to its volume, a tenth of a decibel on each sensitivity.

import numpy as np
from phonometry import fluids, metrology
mics = tuple(
metrology.ReciprocityMicrophone(
equivalent_volume_m3=v,
resonance_frequency_hz=f0,
loss_factor=d,
front_cavity_volume_m3=0.534e-6, # measured, E.3
front_cavity_depth_m=1.95e-3, # D of Table C.1
front_cavity_diameter_m=18.6e-3, # B of Table C.1
)
for v, f0, d in ((148e-9, 8200.0, 1.05), (141e-9, 8350.0, 1.00), (152e-9, 8050.0, 1.10))
)
coupler = metrology.PlaneWaveCoupler(
length_m=7.5e-3,
diameter_m=18.6e-3,
capillary=metrology.CapillaryTube(length_m=0.05, radius_m=0.2e-3, count=2),
)
conditions = {"temperature_c": 22.4, "static_pressure_pa": 100200.0, "relative_humidity_percent": 46.0}
f = metrology.exact_frequencies(20, 10000, fraction=3)
check = metrology.check_coupler(f, coupler, mics, **conditions)
print(check.passes, round(check.length_to_diameter_ratio, 3), check.ratio_recommended) # True 0.613 True
large = metrology.LargeVolumeCoupler(length_m=12.55e-3, diameter_m=42.88e-3, port_length_m=0.80e-3) # E, C, F of Table C.2
print(round(large.cavity_volume_m3 * 1e9), round(large.closed_volume_m3(mics[:2]) * 1e9)) # 18124 19626 (mm³)

check_coupler holds the coupler to what its formulas need: Formulas (A.3) and (A.4) “are valid for the frequency range given by ”, 3 Hz and 12 Hz for the LS1P and LS2aP couplers of Table C.1; the approximation (A.2) of a large-volume coupler to and ; and the conditions to the domain Annex F states for its air. Two things are reported without entering the verdict: the ratio C.2 recommends, 0,5 to 0,75 between the distance of the diaphragms and the diameter, and a frequency below 20 Hz with the approximation, where A.2 asks for the full solution “or the corresponding uncertainty component shall be increased accordingly” (full_solution_advised).

3. The acoustic transfer impedance and its corrections

Section titled “3. The acoustic transfer impedance and its corrections”

In the plane-wave coupler, Formula (4) treats the whole system as a transmission line of length between the diaphragms, the coupler plus the two front-cavity depths, terminated at each end by the microphone’s acoustic impedance in parallel with the excess volume of its front cavity (7.3.3.1):

The heat conduction and the viscous losses at the cylindrical wall enter through the propagation coefficient and wave impedance of Formulas (A.3) and (A.4), and the heat conduction at the two diaphragms through the admittance of Formula (A.5). In a large-volume coupler the gas is a pure compliance, Formula (3), and the heat conduction makes its volume look larger by the complex factor of Formula (A.1),

with Gerber’s temperature transfer function of the cylinder and its volume to surface ratio. The capillary tubes that equalise the static pressure shunt the cavity, and Formula (6) divides the transfer impedance by , with the input impedance of an open tube of Formulas (B.1) to (B.3).

pairs = ((0, 1), (1, 2), (2, 0))
za = [metrology.coupler_transfer_impedance(f, coupler, mics[i], mics[j], **conditions) for i, j in pairs]
print(za[0].heat_conduction_correction_db[[1, 16, 25]].round(3)) # [-0.287 -0.051 0.004]
print(za[0].capillary_correction_db[[1, 16, 25]].round(3)) # [-0.213 0.011 -0. ]

At 31,6 Hz the heat conduction lowers the transfer impedance by 0,29 dB and the two tubes by another 0,21 dB; at 1 kHz both are a few hundredths. The two annexes print tables meant for testing exactly this arithmetic. temperature_transfer_function sums the full solution of the annex’s reference [A.1], which A.2 requires below 20 Hz unless the uncertainty component is increased instead, and which gives every entry of Table A.1 to the 0,000 01 the annex states for them; Formula (A.2) is the approximation, accurate to 0,01 % in modulus for :

print(metrology.temperature_transfer_function(1.0, 100.0).round(5)) # (0.97179+0.02758j)
print(metrology.temperature_transfer_function(1.0, 100.0, method="approximation").round(5)) # (0.97179+0.02758j)
air = fluids.air(temperature_c=23.0, static_pressure_pa=101325.0, relative_humidity_percent=50.0)
tube = metrology.capillary_tube_impedance([20.0, 1000.0], length_m=0.05, radius_m=1 / 6000, gas=air)
print((tube.impedance_pa_s_m3 / 1e9).round(3)) # [3.015+0.097j 8.331+4.288j]

Table B.1 prints 3,015 and 8,331 GPa·s/m³ for this tube, Table B.2 0,097 and 4,287. The radius the table heads “0,1667 mm” is 1/6 mm: with 0,1667 mm the values come out 0,08 % low, beyond the last printed figure (an erratum). Even with 1/6 mm the air of Annex F does not give every entry to its last figure: the 186 complex entries come back within 0,002 GPa·s/m³, the residue reaching 0,0011 in the real part and 0,0018 in the imaginary near the resonances of the tubes, and 0,0005 and 0,0007 from 20 Hz to 250 Hz, as the 4,288 here shows.

Two panels against frequency. Left, the heat-conduction correction 20 lg|Delta_H| of the LS1P large-volume coupler of Table C.2 closed by two microphones, with the two bores of length F, R = 0.293 and l = 4.005 mm: 0.61 dB at 2.5 Hz falling smoothly to 0.01 dB at 10 kHz. Right, the real and imaginary parts of the input impedance of an open capillary tube 50 mm long and 1/6 mm in radius at the reference conditions, in GPa s per cubic metre, 20 Hz to 20 kHz: the real part near 3 up to 300 Hz, then six resonance peaks, 12.5 at 1.33 kHz, 8.3 at 4.5 kHz and 6.9, 6.3, 5.9 and 5.7 near 7.7, 11, 14.4 and 17.7 kHz, with troughs between rising from 2.6 to 4.2; the imaginary part rising from 0.1 at 20 Hz to 4.3 near 1 kHz, swinging to -5.6 at 1.7 kHz and oscillating about zero above with a shrinking swingTwo panels against frequency. Left, the heat-conduction correction 20 lg|Delta_H| of the LS1P large-volume coupler of Table C.2 closed by two microphones, with the two bores of length F, R = 0.293 and l = 4.005 mm: 0.61 dB at 2.5 Hz falling smoothly to 0.01 dB at 10 kHz. Right, the real and imaginary parts of the input impedance of an open capillary tube 50 mm long and 1/6 mm in radius at the reference conditions, in GPa s per cubic metre, 20 Hz to 20 kHz: the real part near 3 up to 300 Hz, then six resonance peaks, 12.5 at 1.33 kHz, 8.3 at 4.5 kHz and 6.9, 6.3, 5.9 and 5.7 near 7.7, 11, 14.4 and 17.7 kHz, with troughs between rising from 2.6 to 4.2; the imaginary part rising from 0.1 at 20 Hz to 4.3 near 1 kHz, swinging to -5.6 at 1.7 kHz and oscillating about zero above with a shrinking swing

The heat conduction in the large-volume coupler of Table C.2 (left) and the impedance of a capillary tube of Tables B.1 and B.2 at the reference conditions the tables are printed for (right).

Table C.3 prints the wave-motion corrections of the air-filled large-volume coupler for LS1P microphones, to be added to the sensitivity level when they are not determined for the individual coupler; in hydrogen C.3 scales the frequency by the ratio of the speeds of sound:

print(metrology.large_volume_wave_motion_correction([1000.0, 2000.0]).correction_db) # [-0.002 -0.06 ]

Formula (2) gives the product of each pair, and Formula (7) the three sensitivities from the three products:

true = [m0 * m.complex_equivalent_volume_m3(f) / m.equivalent_volume_m3 for m0, m in zip((0.0496, 0.0473, 0.0512), mics)]
ze = [true[i] * true[j] * z.transfer_impedance_pa_s_m3 for (i, j), z in zip(pairs, za)] # Formula (2)
c = metrology.pressure_reciprocity(f, ze, za)
print(c.sensitivity_level_db[:, 16].round(2)) # [-26.03 -26.44 -25.76]
print(c.sensitivity_mv_per_pa[:, 16].round(2)) # [49.93 47.64 51.51]
print(np.abs(c.sensitivity_v_per_pa - true).max() < 1e-15) # True

The phase comes from the same products: the complex sensitivity is solved, not only its modulus. A reciprocity measurement fixes products, and a product does not change when every sensitivity changes sign together, so the sign of the square root is a convention. The library takes the branch that is continuous in frequency with a non-negative real part at the lowest frequency, and phase_deg refers the phase to 0 to 360° as 5.7.1 of both parts asks. With two microphones and an auxiliary source, the ratio of their sensitivities measured against the source replaces the third pair, Formula (8):

pair = metrology.pressure_reciprocity_pair(f, ze[0], za[0], true[0] / true[1])
print(pair.sensitivity_level_db[:, 16].round(2)) # [-26.03 -26.44]

In a free field the transmitter is, seen from far enough, a simple source at its acoustic centre. The product of Formula (7) of IEC 61094-3 carries the distance between the acoustic centres, the density of the air, the phase of the spherical wave and its attenuation over the distance the wave travels between the diaphragms:

The attenuation is computed by the five steps of Annex B, ISO 9613-1 adjusted to the quantities of IEC 61094-2, and the wave number takes the speed of sound of IEC 61094-2 Annex F with the dispersion of its NOTE to F.3, which Annex B.1 points to.

ff = metrology.exact_frequencies(1000, 40000, fraction=3)
ffc = {"temperature_c": 23.1, "static_pressure_pa": 101100.0, "relative_humidity_percent": 52.0}
att = metrology.reciprocity_air_attenuation(ff, **ffc)
print(att.attenuation_db_per_m[[0, 10, 13, 15]].round(4)) # [0.0053 0.1348 0.4713 0.9877]

Three LS2aP microphones 0,25 m apart, with acoustic centres a few millimetres in front of their diaphragms that recede towards the diaphragm at high frequency (Annex A shows such curves; these are illustrative):

ratio = ff / 23000.0
true_ff = [m0 / (1.0 - ratio**2 + 1.3j * ratio) for m0 in (0.0128, 0.0124, 0.0131)]
centre = 4.5e-3 / (1.0 + (ff / 30000.0) ** 2)
ze_ff = [
metrology.free_field_transfer_impedance(
ff, true_ff[i], true_ff[j], diaphragm_distance_m=0.25, acoustic_centres_m=(centre, centre), **ffc
)
for i, j in pairs
] # Formula (D.1)
cf = metrology.free_field_reciprocity(
ff, ze_ff, diaphragm_distances_m=(0.25, 0.25, 0.25), acoustic_centres_m=(centre, centre, centre), **ffc
)
print(cf.sensitivity_level_db[:, 10].round(2)) # [-37.76 -38.03 -37.55]
print(np.abs(cf.sensitivity_v_per_pa - true_ff).max() < 1e-15) # True

Formula (8) as printed omits the factor that it inherits from the three products of Formula (7), and Formula (9), which the corrigendum makes the complex sensitivity, omits it too. The modulus is unaffected; the phase of the printed formulas is 45° off at every frequency, and Formula (D.1) keeps the factor. The library follows Formula (7) (an erratum).

Two panels against frequency. Left, the free-field sensitivity level of three LS2aP microphones calibrated by reciprocity, 1 kHz to 40 kHz: flat near -37.8, -38.1 and -37.6 dB re 1 V/Pa up to 10 kHz, falling to about -39 dB at 20 kHz and -47.5 dB at 40 kHz, with the expanded uncertainty of 0.049 dB to 0.080 dB stated in the legend and drawn as a thin band. Right, the attenuation of sound in air by Annex B at 23.1 degrees, 101.1 kPa and 52 percent on logarithmic axes: the total rising from 0.005 dB/m at 1 kHz to 1.4 dB/m at 50 kHz, dominated above 2 kHz by the oxygen relaxation term, with the nitrogen term flat near 0.0045 dB/m and the classical term rising as the square of frequencyTwo panels against frequency. Left, the free-field sensitivity level of three LS2aP microphones calibrated by reciprocity, 1 kHz to 40 kHz: flat near -37.8, -38.1 and -37.6 dB re 1 V/Pa up to 10 kHz, falling to about -39 dB at 20 kHz and -47.5 dB at 40 kHz, with the expanded uncertainty of 0.049 dB to 0.080 dB stated in the legend and drawn as a thin band. Right, the attenuation of sound in air by Annex B at 23.1 degrees, 101.1 kPa and 52 percent on logarithmic axes: the total rising from 0.005 dB/m at 1 kHz to 1.4 dB/m at 50 kHz, dominated above 2 kHz by the oxygen relaxation term, with the nitrogen term flat near 0.0045 dB/m and the classical term rising as the square of frequency

Three LS2aP microphones calibrated in a free field (left) and the attenuation of Annex B (right).

The acoustic centre (6.5). Plotting the inverse of the sound pressure a microphone radiates, corrected for the attenuation, against the distance from a reference point on it gives a straight line in the far field, and where the line crosses the axis is the acoustic centre:

r = np.array([0.15, 0.20, 0.25, 0.30, 0.40, 0.50])
alpha = metrology.reciprocity_air_attenuation([10000.0], **ffc).attenuation_np_per_m[0]
p = 0.85 * np.exp(-alpha * r) / (r - 2.4e-3) # your readings at one frequency
print(round(1000 * metrology.acoustic_centre(r, p, attenuation_np_per_m=alpha).position_m, 2)) # 2.4
The inverse of the measured sound pressure corrected for the attenuation, in 1/Pa, against the distance from the reference point, 0 m to 0.5 m: six readings from 0.15 m to 0.50 m, rising from 0.17 to 0.59 1/Pa, lie on a least-squares straight line that crosses zero at 2.4 mm, marked as the acoustic centreThe inverse of the measured sound pressure corrected for the attenuation, in 1/Pa, against the distance from the reference point, 0 m to 0.5 m: six readings from 0.15 m to 0.50 m, rising from 0.17 to 0.59 1/Pa, lie on a least-squares straight line that crosses zero at 2.4 mm, marked as the acoustic centre

The acoustic centre at 10 kHz: the line through the inverse readings crosses zero 2.4 mm in front of the reference point.

The arrangement. check_free_field_arrangement holds the distance to the ten nominal diameters 7.3 recommends, the supporting cylinder to the twenty 6.4 recommends and the conditions to the domain in which B.2 states its ±10 % accuracy: its verdict is whether the arrangement is the recommended one. It also reports whether the distances are within the 150 mm to 500 mm for which Annex A gives acoustic centres:

arrangement = metrology.check_free_field_arrangement(
ff, diaphragm_distances_m=(0.25, 0.25, 0.25), microphone_diameter_m=13.2e-3, support_length_m=0.3, **ffc
)
print(arrangement.passes, arrangement.annex_a_range) # True True

Both parts list the components of a calibration in their Table 1 (IEC61094_2_TABLE_1, IEC61094_3_TABLE_1) and ask for each as a standard uncertainty as a function of frequency. The components of the acoustic transfer impedance are found, as both describe, “by repeating a calculation while the various components are changed one at a time by their associated uncertainty”: coupler_parameter_uncertainty and free_field_parameter_uncertainty do that, each microphone’s parameter moved in turn and the three changes combined into the one row of the table. The standard uncertainties they move travel together in a CouplerInputUncertainties or a FreeFieldInputUncertainties, one keyword per input quantity, and one left at zero adds no component.

pu = metrology.coupler_parameter_uncertainty(
f, coupler, mics,
metrology.CouplerInputUncertainties(
u_coupler_length_m=3e-6, u_coupler_diameter_m=3e-6, u_capillary_radius_m=2e-6,
u_static_pressure_pa=10.0, u_temperature_k=0.05, u_relative_humidity_percent=2.0,
u_front_cavity_depth_m=3e-6, u_front_cavity_volume_m3=1e-9, u_equivalent_volume_m3=1e-9,
u_resonance_frequency_hz=50.0, u_loss_factor=0.03,
),
**conditions,
)
print(pu.components_db["capillary_tube_dimensions"][[1, 16]].round(4)) # [0.0086 0.0002]
x = f / 10000
b = metrology.reciprocity_uncertainty_budget(
f,
{
**pu.components_db,
"series_impedance": 0.002, "voltage_ratio": 0.003, "cross_talk": 0.001 + 0.004 * x**2,
"polarizing_voltage": 0.0025, "radial_wave_motion": 0.03 * x**2,
"heat_conduction_theory": 0.002, "repeatability": 0.004, "rounding": 0.0006,
},
)
print(b.expanded_uncertainty_db[[1, 16, 25]].round(3)) # [0.023 0.015 0.041]
pf = metrology.free_field_parameter_uncertainty(
ff,
metrology.FreeFieldInputUncertainties(
u_distance_m=0.1e-3, u_acoustic_centre_m=0.5e-3, u_static_pressure_pa=20.0, u_temperature_k=0.1,
u_relative_humidity_percent=2.0, u_air_attenuation_ratio=0.1 / np.sqrt(3.0),
),
diaphragm_distances_m=(0.25, 0.25, 0.25), acoustic_centres_m=(centre, centre, centre), **ffc,
)
xf = ff / 40000
bf = metrology.reciprocity_uncertainty_budget(
ff,
{
**pf.components_db,
"series_impedance": 0.002, "voltage_ratio": 0.003, "cross_talk": 0.002 + 0.01 * xf,
"noise": 0.005, "reflections": 0.01 + 0.02 * xf, "polarizing_voltage": 0.0025, "repeatability": 0.01,
},
field="free_field",
)
print(bf.expanded_uncertainty_db[[0, 10, 15]].round(3)) # [0.049 0.054 0.072]

The expanded uncertainty is times the root-sum-square, which IEC 61094-2 7.5 states; IEC 61094-3 7.8 asks for the factor of a 95 % coverage probability, which coverage_factor sets when a budget is dominated by a component with few degrees of freedom. The free-field budget moves each acoustic centre by 0,5 mm in turn, and the attenuation by the ±10 % B.2 states, taken as a rectangular distribution. The components on this page are illustrative. Passed as expanded_uncertainty_db, the budget draws the band of the calibration’s plot, and its legend states how wide the band is.

Two panels of standard uncertainty in dB against frequency, each with a legend of its components below it. Left, the budget of microphone 1 of the pressure triad, 25 Hz to 10 kHz: the expanded uncertainty with k = 2 from 0.035 dB at 25 Hz, where the capillary tubes dominate, down to 0.015 dB to 0.017 dB from 50 Hz to 2 kHz and up to 0.064 dB at 10 kHz, where the radial wave motion dominates. Right, the budget of the free-field triad, 1 kHz to 40 kHz: the expanded uncertainty rising from 0.049 dB to 0.080 dB, the acoustic centres near 0.018 dB and the reflections from 0.010 to 0.030 dB the largest componentsTwo panels of standard uncertainty in dB against frequency, each with a legend of its components below it. Left, the budget of microphone 1 of the pressure triad, 25 Hz to 10 kHz: the expanded uncertainty with k = 2 from 0.035 dB at 25 Hz, where the capillary tubes dominate, down to 0.015 dB to 0.017 dB from 50 Hz to 2 kHz and up to 0.064 dB at 10 kHz, where the radial wave motion dominates. Right, the budget of the free-field triad, 1 kHz to 40 kHz: the expanded uncertainty rising from 0.049 dB to 0.080 dB, the acoustic centres near 0.018 dB and the reflections from 0.010 to 0.030 dB the largest components

The budgets of microphone 1 of each triad.

Show the code for these figures
import matplotlib.pyplot as plt
# The two calibrations again, with their budgets as the band.
c = metrology.pressure_reciprocity(f, ze, za, expanded_uncertainty_db=b.expanded_uncertainty_db)
cf = metrology.free_field_reciprocity(
ff, ze_ff, diaphragm_distances_m=(0.25, 0.25, 0.25), acoustic_centres_m=(centre, centre, centre),
expanded_uncertainty_db=bf.expanded_uncertainty_db, **ffc,
)
fig, (ax_cal, ax_corr) = plt.subplots(1, 2, figsize=(13.5, 5.6))
c.plot(ax_cal)
za[0].plot(ax_corr)
fig.tight_layout()
fh = metrology.exact_frequencies(1, 10000, fraction=3)
heat = metrology.heat_conduction_correction(
fh[fh >= 2.0],
volume_m3=large.closed_volume_m3(mics[:2]),
surface_area_m2=large.closed_surface_m2(mics[:2]),
length_to_diameter_ratio=large.length_m / large.diameter_m,
gas=fluids.air(**conditions),
)
curve = metrology.capillary_tube_impedance(np.geomspace(20, 20000, 1500), length_m=0.05, radius_m=1 / 6000, gas=air)
fig, (ax_heat, ax_tube) = plt.subplots(1, 2, figsize=(13.5, 5.6))
heat.plot(ax_heat)
curve.plot(ax_tube)
fig.tight_layout()
fig, (ax_cal, ax_air) = plt.subplots(1, 2, figsize=(13.5, 5.6))
cf.plot(ax_cal)
metrology.reciprocity_air_attenuation(metrology.exact_frequencies(1000, 50000, fraction=3), **ffc).plot(ax_air)
fig.tight_layout()
fig, (ax_p, ax_f) = plt.subplots(1, 2, figsize=(14.5, 8.2))
b.plot(ax_p)
bf.plot(ax_f)
fig.tight_layout()
fig, ax = plt.subplots(figsize=(7.5, 5.2))
metrology.acoustic_centre(r, p, attenuation_np_per_m=alpha).plot(ax)
fig.tight_layout()
plt.show()
  • Covered

    IEC 61094-2:2009: the products of Formula (2) and the sensitivities of Formulas (7) and (8), complex; the acoustic transfer impedance of a large-volume coupler by Formula (3) and of a plane-wave coupler by Formula (4), with the excess volume of each front cavity (7.3.3.1), the heat conduction of Annex A (Formula (A.1) with Gerber’s full solution of [A.1] or the approximation (A.2), Formulas (A.3) to (A.5)), and the capillary tubes of Formula (6) and Annex B; the lumped microphone impedance and Formula (E.1) of Annex E; Tables C.1, C.2 and C.3 as published data, the wave-motion correction of Table C.3 with the frequency scaling of C.3 for hydrogen; the check of what the formulas require (A.2, A.3, Annex F); Table 1 and the one-at-a-time recalculation of 7.5. Table A.1 is reproduced to its stated 0,000 01; Tables B.1 and B.2 to within 0,002 GPa·s/m³, more than their printed half-unit near the resonances of the tubes (section 3). IEC 61094-3:2016 with COR1:2016: the products of Formula (7), the sensitivities of Formulas (8) and (9) with the factor of (7), Formula (D.1); the attenuation of Annex B and the speed of sound with the dispersion of IEC 61094-2 F.3; the acoustic centre of 6.5; the arrangement of 6.4 and 7.3; Table 1 and the recalculation of 7.8. Table B.1 is reproduced by ISO 9613-1, as its text says it was computed.

  • Covered, by a reading of the text

    The branch of the square root. IEC 61094-2 asks for the phase “by a similar procedure from the phase angle of each term” and IEC 61094-3 derives it from Formula (8), both referred to 0 to 2π; the library takes the branch continuous in frequency with a non-negative real part at the lowest frequency, and fixes the other two microphones by the products. Dimension F of Table C.2 is the length of the bore that Figure C.2 draws, of the front-cavity diameter B, between each microphone face and the cavity; its volume and its wall join those of the coupler. The surface of a large-volume coupler closed by microphones is that of the closed cylinder plus the wall of each bore, of each front cavity and of its thread, the diaphragm taking the place of the port it closes (7.3.2.2). The ratio of C.2 is read on the distance between the diaphragms, which 5.4 and C.2 call the length of the coupler.

  • Not covered

    The measurements themselves: the insert voltage technique, cross-talk and the ground-shield configuration (5.3, 6.3, 7.2). The radial wave-motion corrections of plane-wave couplers, which C.2 leaves to the literature, and the environmental corrections of Annex D (IEC 61094-2) and Annex C (IEC 61094-3), which are the first-order correction of the comparison guide. The determination of the front cavity and equivalent volumes of E.3 and the data fitting of E.4. The free-field to pressure relation of Formula (4) of IEC 61094-3, which needs the radiation impedance and the scattering factor, and the time-selective processing of Annex D, which follows IEC 61094-8 Annex B. The acoustic centres of Annex A, printed only as a figure.

  • International Electrotechnical Commission. (2009). Electroacoustics – Measurement microphones – Part 2: Primary method for pressure calibration of laboratory standard microphones by the reciprocity technique (IEC 61094-2:2009). The pressure calibration: Formulas (2) to (8), the heat conduction of Annex A with Gerber's full solution and the approximation (A.2), the capillary tubes of Annex B, the couplers and wave-motion corrections of Annex C, the microphone parameters of Annex E, Annex F for the air and the uncertainty components of Table 1. Read from BS EN 61094-2:2009, the English text of EN 61094-2:2009, which is IEC 61094-2:2009 unchanged.
  • International Electrotechnical Commission. (2016). Electroacoustics – Measurement microphones – Part 3: Primary method for free-field calibration of laboratory standard microphones by the reciprocity technique (IEC 61094-3:2016). The free-field calibration: Formulas (6) to (9) and (D.1), the acoustic centre of 6.5, the arrangement of 6.4 and 7.3, the attenuation of Annex B, Table B.1 and the uncertainty components of Table 1. Read from Edition 2.0 (2016-06), English-French, with its corrigendum IEC 61094-3:2016/COR1:2016 (2016-12), which makes Formula (9) the complex sensitivity.
  • International Organization for Standardization. (1993). Acoustics – Attenuation of sound during propagation outdoors – Part 1: Calculation of the absorption of sound by the atmosphere (ISO 9613-1:1993). The method Table B.1 of IEC 61094-3 is computed by, and which B.2 adjusts.
  • Joint Committee for Guides in Metrology. (2008). Evaluation of measurement data – Guide to the expression of uncertainty in measurement (JCGM 100:2008, the GUM). BIPM. https://doi.org/10.59161/JCGM100-2008EThe combination both budgets ask for; also published as ISO/IEC Guide 98-3:2008.