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.

emission.sound_power_special_room

Sound power level of a small movable source in a special reverberation test room: ISO 3743-2:2018 (engineering grade 2), the direct method and the comparison method.

Part 1 of ISO 3743 asks little of the room and pays with a reference sound source at every determination. Part 2 turns that round: the room is built to a specification tight enough that the sound power can be read off the mean room level alone. It is at least 70 m³ (and at most 300 m³ when the 4 kHz and 8 kHz octaves matter, 6.2), its floor reflects (absorption coefficient below 0,06) and its walls and ceiling absorb alike, each within 0,5 and 1,5 times their mean (6.4), and above all its reverberation time follows a prescribed curve (6.3): within 0,9 and 1,1 times (0,8 and 1,2 above 6,3 kHz), with the reverberation parameter

or, for a room that is not nearly cubical, , and a nominal reverberation time between 0,5 s and 1,0 s. The rise of at low frequencies is the Waterhouse correction built into the room: the energy stored near the boundaries of a small room is compensated by a longer reverberation time instead of a term in the equation. So the direct method reduces to (10.2)

for each octave band and for the A-weighted level measured as such, with = 1 s and = 1 m³; the 13 dB instead of the 14 dB of other standards, and the slope of the reverberation time, account for the energy density near the surfaces and near the source (NOTE to 10.2). The comparison method replaces the room by a reference sound source measured at no fewer than six positions (10.3):

Both methods take the mean of the measured levels as the energy mean of all of them (Formula 8) after correcting each one for background noise by the stepped Table 4, 2 dB at a 4 dB or 5 dB margin, 1 dB from 6 dB to 8 dB, 0,5 dB at 9 dB and 10 dB and nothing above; a margin below 4 dB leaves the level unreportable unless the report says the requirement of 6.5 was not met. The table gives whole-decibel differences, and the library reads a measured difference at the nearest whole decibel (a margin of 5,4 dB takes the 5 dB row, one of 5,5 dB the 6 dB row), anything above 10 dB taking the last row.

Annex E carries the level to the reference meteorological conditions with the radiation-impedance correction of ISO 3743-1:2010 Annex A, and Annex F forms the A-weighted level from octave bands with Table F.1, which is ISO 3743-1:2010 Table B.1. Clause 11 prints its own typical upper bounds of (Table 5): 5,0 dB at 125 Hz, 3,0 dB at 250 Hz, 2,0 dB from 500 Hz to 4 kHz, 3,0 dB at 8 kHz and 2,0 dB A-weighted.

The room is qualified by check_special_room_reverberation (6.2, 6.3 and the climate of 6.6), check_special_room_surfaces (6.4) and check_special_room_suitability (6.7, the octave-band power of a calibrated reference source determined in the room against its calibration, Table 1, an ISO 6926 calibration read at the conditions of the test). The number of source locations and microphone positions follows from the survey of 9.4 by special_room_source_locations (Table 3), which also reads the spectral character of 9.5.

Auto-generated from the source docstrings by scripts/generate_api_docs.py (make api-docs). Do not edit by hand.

check_special_room_reverberation(
reverberation_time_s: ArrayLike,
frequencies: ArrayLike,
*,
volume_m3: float,
nominal_reverberation_time_s: float | None = None,
surface_area_m2: float | None = None,
speed_of_sound: float | None = None,
method: Method = 'direct',
relative_humidity_percent: float | None = None,
temperature_c: float | None = None,
reverberation_relative_humidity_percent: float | None = None,
reverberation_temperature_c: float | None = None,
source_volume_m3: float | None = None,
) -> SpecialRoomReverberationCheck

Is this room’s reverberation time the one ISO 3743-2:2018 prescribes? 6.2, 6.3 and 6.6.

The measured reverberation time shall lie between and in every band (0,8 and 1,2 above 6,3 kHz), with from Formula (1) or its NOTE (reverberation_parameter), and between 0,5 s and 1,0 s. Annex B finds “by centring the measured values of T (normalized to the reverberation time at 1 000 Hz) within the limiting curves” (B.5) and prints no rule for it. The library takes the one whose verdict is the requirement of 6.3 itself: the that leaves the most margin, minimising the largest deviation of any band from the ideal curve measured against that band’s own tolerance, so that a room passes whenever some puts every band within its curves. If the curve is followed exactly this gives Formula (B.2), .

The EXAMPLE of B.5 departs from this rule. On the curve of Figure B.4 it reads = 1,09 at 1 kHz and = 0,8 s/1,09 = 0,73 s, where the rule gives 1,05 and 0,76 s, 0,17 dB apart in the of Formula (9). The 1,09 is the midpoint of the extreme ratios taken against the 0,9 and 1,1 limits alone, the wider limits above 6,3 kHz left out, and it puts the 250 Hz band of Figure B.4 at 1,13 R, above the 1,1 R within which the NOTE to Figure B.3 says the data are centred; Figure B.3 draws that band, and those at 100 Hz and 10 kHz, where 1,09 does not put them (see docs/ERRATA.md). A value supplied in nominal_reverberation_time_s, the printed 0,73 s among them, is checked as given instead.

6.2 adds the volume: at least 70 m³, and at most 300 m³ when the 4 kHz and 8 kHz octaves are within the frequency range, which the direct method needs and the comparison method does not (NOTE). 6.6 adds the climate: the product during the test shall stay within ±10 % of its value while the reverberation time was measured, checked when all four climate values are given. Clause 5 recommends a noise source of at most 1 % of the room’s volume, 0,7 m³ in a room of 70 m³; given source_volume_m3, the check reads it, and warns above it, but keeps it out of the verdict, the clause saying “should”.

Parameters

NameDescription
reverberation_time_sMeasured reverberation time per band, in seconds, in one-third-octave bands as Figure B.3 has them.
frequenciesBand centre frequencies, in hertz.
volume_m3Volume of the test room, in cubic metres.
nominal_reverberation_time_s to check, in seconds; None centres it.
surface_area_m2Room surface area for the NOTE form of , in square metres, with speed_of_sound.
speed_of_soundSpeed of sound for the NOTE form, in metres per second.
method'direct' (default) or 'comparison', for the 300 m³ ceiling.
relative_humidity_percentRelative humidity during the test, in per cent.
temperature_cTemperature during the test, in degrees Celsius.
reverberation_relative_humidity_percentRelative humidity while the reverberation time was measured, in per cent.
reverberation_temperature_cTemperature while the reverberation time was measured, in degrees Celsius.
source_volume_m3Volume of the noise source to be tested, in cubic metres, for the recommendation of clause 5; None skips it.

Returns: The verdict, as a SpecialRoomReverberationCheck.

Raises

ExceptionWhen
ValueErrorfor reverberation times that are not positive and finite, a length mismatch, the refusals of reverberation_parameter, an unknown method, a climate given in part or out of range, or a source volume that is not positive.
check_special_room_suitability(
measured_power_levels: ArrayLike,
calibrated_power_levels: ArrayLike | ReferenceSourceCalibration,
frequencies: ArrayLike,
*,
temperature_c: float = 23.0,
static_pressure_kpa: float = 101.325,
) -> SpecialRoomSuitabilityCheck

Is the room suitable for broad-band sources? ISO 3743-2:2018, 6.7.

A small broad-band reference sound source calibrated by ISO 3741, or by ISO 6926 and ISO 3745 (step 1), has its octave-band power levels determined in the room by this standard, under identical operating conditions (step 2); the differences from the calibration (step 3) may not exceed Table 1 (step 4): ±5 dB at 125 Hz, ±3 dB from 250 Hz to 4 kHz and ±4 dB at 8 kHz.

The level Formula 9 gives is, in the words of Annex E, the sound power level “under the meteorological conditions which occurred at the time and place of the test”, and a calibration holds the power under the reference conditions, 23,0 °C and 101,325 kPa. The two are compared where the room measured: a ReferenceSourceCalibration of ISO 6926 is read at the temperature and static pressure of the test as , with evaluated there by the Annex A formula the calibration used (ISO 6926:2016, 8.4), each octave the energy sum of its three one-third octave bands, exactly as sound_power_special_room_comparison reads it.

Parameters

NameDescription
measured_power_levelsThe reference source’s octave-band power levels determined in the room, in decibels: the sound_power_level of sound_power_special_room, the level at the test, and not its sound_power_level_ref, which the Annex E has already carried to the reference conditions: against a calibration read at the conditions of the test, it would count twice.
calibrated_power_levelsIts calibrated octave-band levels, in decibels, already under the meteorological conditions of the test; or its ReferenceSourceCalibration, which is read there.
frequenciesOctave centres from 125 Hz to 8 kHz, ascending.
temperature_cAir temperature in the room during step 2, in degrees Celsius; it reads a calibration and is otherwise only validated.
static_pressure_kpaStatic pressure in the room during step 2, in kilopascals, likewise.

Returns: The verdict, as a SpecialRoomSuitabilityCheck.

Raises

ExceptionWhen
ValueErrorfor non-finite levels, mismatched lengths, bands outside Table 1, a climate out of range, or a calibration that does not cover the one-third octave bands of an octave or used the manufacturer’s , whose value at the test only the manufacturer gives.
check_special_room_surfaces(
surface_absorption_coefficients: ArrayLike,
floor_absorption_coefficients: ArrayLike,
frequencies: ArrayLike,
*,
surface_areas_m2: ArrayLike | None = None,
) -> SpecialRoomSurfaceCheck

Are the room’s surfaces treated as ISO 3743-2:2018, 6.4 asks?

The floor shall be reflective, its absorption coefficient below 0,06, and apart from the floor no surface may absorb significantly differently from the others: in each octave band the mean absorption coefficient of each wall and of the ceiling lies within 0,5 and 1,5 times the mean of the walls and ceiling. The clause does not say how that mean is formed; with surface_areas_m2 it is weighted by area, which is the room’s own mean, and without them it is the plain mean of the surfaces.

Parameters

NameDescription
surface_absorption_coefficientsMean absorption coefficient of each wall and of the ceiling, (surfaces, bands), at least two surfaces.
floor_absorption_coefficientsThe floor’s coefficient per band.
frequenciesOctave-band centre frequencies, in hertz.
surface_areas_m2Area of each wall and of the ceiling, in square metres, for the area-weighted mean; None for the plain mean.

Returns: The verdict, as a SpecialRoomSurfaceCheck.

Raises

ExceptionWhen
ValueErrorfor coefficients outside [0, 1], fewer than two surfaces, mismatched bands, or areas that are not one positive value per surface.
reverberation_parameter(
frequencies: ArrayLike,
volume_m3: float,
*,
surface_area_m2: float | None = None,
speed_of_sound: float | None = None,
) -> np.ndarray

The reverberation parameter of ISO 3743-2:2018, 6.3.

for a room that is nearly cubical, or, by the NOTE to 6.3, the more robust

for any shape, which is the Waterhouse factor of ISO 3741 turned into a target for the reverberation time. The two agree for a cube when m/s, which is the speed of sound Formula (1) carries inside its constant. For 70 m³ the value at 1 kHz is the 1,06 of Formula (B.2).

6.3 sends a 70 m³ room to Figure 1 instead, but the printed curve runs 0,03 to 0,04 above Formula (1) from 100 Hz to 160 Hz and about 0,01 below it from 1 600 Hz up (see docs/ERRATA.md), so Formula (1) is used for that volume too and nothing is read off the figure.

Parameters

NameDescription
frequenciesBand centre frequencies, in hertz.
volume_m3Volume of the test room, in cubic metres.
surface_area_m2Total surface area of the room, in square metres; with speed_of_sound it selects the NOTE form.
speed_of_soundSpeed of sound, in metres per second, required with surface_area_m2 and refused without it.

Returns: per frequency.

Raises

ExceptionWhen
ValueErrorfor a non-positive frequency, volume, area or speed, or only one of the NOTE’s two inputs.
sound_power_special_room(
levels: ArrayLike,
frequencies: ArrayLike,
*,
volume_m3: float,
nominal_reverberation_time_s: float,
background_levels: ArrayLike | None = None,
a_weighted_levels: ArrayLike | None = None,
a_weighted_background_levels: ArrayLike | None = None,
temperature_c: float = 23.0,
static_pressure_kpa: float = 101.325,
sigma_omc_db: float | None = None,
coverage_factor: float = 2.0,
) -> SpecialRoomSoundPowerResult

Sound power level in a special reverberation test room, direct method (ISO 3743-2:2018, 10.2).

Every measured level is corrected for background noise by Table 4 at its own microphone position (9.8), the corrected levels are energy-averaged over all positions and source locations (Formula 8), and

in each octave band. Given the A-weighted levels as well, the same formula gives the A-weighted sound power level directly, which is how clause 4 describes the method; sound_power_level_a is in any case the Annex F total of the octave bands.

Parameters

NameDescription
levelsMeasured octave-band levels, in decibels: (bands,) for a microphone traverse, (NM, bands) for fixed positions, or (NS, NM, bands) for several source locations (9.4).
frequenciesNominal octave centres from 63 Hz to 8 kHz, ascending (Table F.1; 63 Hz under its footnote).
volume_m3Volume of the test room, in cubic metres.
nominal_reverberation_time_s of the room (6.3), in seconds, as check_special_room_reverberation finds it.
background_levelsBackground levels, (NM, bands) or one (bands,) spectrum for every position, in decibels; None applies no correction, warns, and leaves background_requirement_met False.
a_weighted_levelsThe A-weighted levels measured with the source, one per position ((NM,) or (NS, NM)) or one traverse level, in decibels; None leaves the direct A-weighted level NaN.
a_weighted_background_levelsThe A-weighted background, one level or one per position, in decibels.
temperature_cAir temperature at the test, in degrees Celsius.
static_pressure_kpaStatic pressure at the test, in kilopascals.
sigma_omc_dbOperating-and-mounting standard deviation (11.2), in decibels; None leaves the total and expanded uncertainty NaN.
coverage_factork of Formula (13), 2 by default.

Returns: SpecialRoomSoundPowerResult with method='direct'.

Raises

ExceptionWhen
ValueErrorfor levels or a background of an inadmissible shape or not finite, frequencies outside Table F.1, a non-positive volume or nominal reverberation time, a climate out of range, a negative sigma_omc_db or a coverage factor that is not positive.
sound_power_special_room_comparison(
levels: ArrayLike,
levels_ref: ArrayLike,
lw_ref: ArrayLike | ReferenceSourceCalibration,
frequencies: ArrayLike,
*,
background_levels: ArrayLike | None = None,
background_levels_ref: ArrayLike | None = None,
temperature_c: float = 23.0,
static_pressure_kpa: float = 101.325,
sigma_omc_db: float | None = None,
coverage_factor: float = 2.0,
) -> SpecialRoomSoundPowerResult

Sound power level in a special reverberation test room, comparison method (ISO 3743-2:2018, 10.3).

A reference source meeting Annex A stands on the floor at least 1,5 m from any wall; its mean octave-band level is determined at no fewer than six microphone positions, and that of the source under test, , as for the direct method, both after the Table 4 background correction (9.8) and the mean of Formula (8). Then

and the A-weighted level follows from the octave bands by Annex F (10.4). The room drops out, so neither its volume nor its reverberation time is needed, and the 300 m³ ceiling of 6.2 does not apply (NOTE).

Parameters

NameDescription
levelsLevels of the source under test, (bands,), (NM, bands) or (NS, NM, bands), in decibels.
levels_refLevels of the reference source, (NMr, bands), at least six positions (10.3), or one traverse level (bands,).
lw_refThe reference source’s calibrated octave-band power level , (bands,), in decibels, under the meteorological conditions of the test, since Formula (10) gives there (Annex E); or the ReferenceSourceCalibration of ISO 6926, whose one-third octave bands are summed into the octaves at frequencies and carried from the reference conditions to those of the test by its own C2 (ISO 6926:2016, 8.4).
frequenciesNominal octave centres from 63 Hz to 8 kHz.
background_levelsBackground for the source under test, as in sound_power_special_room.
background_levels_refBackground at the reference source’s positions; None reuses background_levels when it fits them.
temperature_cAir temperature at the test, in degrees Celsius.
static_pressure_kpaStatic pressure at the test, in kilopascals.
sigma_omc_dbOperating-and-mounting standard deviation, in decibels.
coverage_factork of Formula (13), 2 by default.

Returns: SpecialRoomSoundPowerResult with method='comparison'.

Raises

ExceptionWhen
ValueErrorfor levels of an inadmissible shape, a reference spectrum of other bands, a background that fits neither source, frequencies outside Table F.1, a climate out of range, a negative sigma_omc_db, a coverage factor that is not positive, or a calibration that does not cover the bands or used the manufacturer’s C2, whose value at the test only the manufacturer gives.
special_room_background_correction(
levels: ArrayLike,
background_levels: ArrayLike,
) -> np.ndarray

The background correction of ISO 3743-2:2018 Table 4 (9.8).

The decibels to subtract from a level measured with the source operating to leave the level of the source alone, read from the difference between that level and the background level alone: 2 dB for a difference of 4 dB or 5 dB, 1 dB for 6 dB to 8 dB, 0,5 dB for 9 dB and 10 dB, and nothing for a difference above 10 dB.

The table gives whole decibels, and the difference is read at the nearest whole decibel. A difference below 4 dB takes the 4 dB row and warns: the accuracy is then reduced, and 9.8 allows the level to be reported only with the statement that the background requirement was not fulfilled. The informative Annex D treats the table as a rounding of ; the normative text is the table, and that is what is applied.

Parameters

NameDescription
levelsLevels measured with the source operating, in decibels.
background_levelsBackground levels alone, broadcasting against levels, in decibels.

Returns: The correction to subtract, in decibels, of the broadcast shape.

Raises

ExceptionWhen
ValueErrorfor non-finite or empty inputs, or shapes that do not broadcast.
special_room_source_locations(
levels: ArrayLike,
frequencies: ArrayLike,
*,
microphone_positions: int = 6,
a_weighted_levels: ArrayLike | None = None,
) -> SourceLocationPlan

The number of source locations for a number of microphone positions, from the survey of ISO 3743-2:2018, 9.4 (Table 3), and the spectral character of 9.5.

At one source location, six microphone positions record the sound pressure level (step 1), and per octave band and for A-weighting

about the arithmetic mean when the six levels span no more than 5 dB and about their energy mean (Formula 5) when they span more (step 2). Table 3 then gives the minimum number of source locations for 3, 6 or 12 microphone positions (step 3), by class (below 2,3 dB, 2,3 dB to 4 dB, above 4 dB) and band. The same classes read the spectrum (9.5): broad-band below 2,3 dB, narrow-band components possible up to 4 dB, a discrete tone possible above; their suspected presence shall be reported.

Parameters

NameDescription
levelsSurvey levels, (n, bands), six rows in 9.4, in decibels.
frequenciesOctave centres from 125 Hz to 8 kHz, ascending.
microphone_positionsThe column of Table 3 to read, 3, 6 (default) or 12.
a_weighted_levelsThe six A-weighted levels, (n,), for the A-weighted row; None leaves it unevaluated.

Returns: The SourceLocationPlan.

Raises

ExceptionWhen
ValueErrorfor levels that are not a finite 2D array of at least two positions, bands outside 125 Hz to 8 kHz, a column Table 3 does not have, or A-weighted levels not one per position.
SpecialRoomReverberationCheck(
frequencies: np.ndarray,
reverberation_time_s: np.ndarray,
reverberation_parameter: np.ndarray,
nominal_reverberation_time_s: float,
centred: bool,
volume_m3: float,
method: str,
climate_product_change: float = nan,
source_volume_m3: float = nan,
)

Qualification of a special reverberation test room by its reverberation time, volume and climate (ISO 3743-2:2018, 6.2, 6.3, 6.6).

reverberation_time_s is the measured per band and reverberation_parameter the of Formula (1) (or its NOTE); nominal_reverberation_time_s is , supplied or, with centred True, found by centring the measured values within the limiting curves. lower_limit and upper_limit are the bounds on , 0,9 and 1,1, or 0,8 and 1,2 above 6,3 kHz, read from the bands: the standard’s, not fields. volume_m3 is the room and method the determination it is being qualified for, which decides whether the 300 m³ ceiling applies. climate_product_change is the relative change of between the reverberation measurement and the test, NaN when the climates were not given. source_volume_m3 is the volume of the noise source to be tested in the room, NaN when it was not given; clause 5 recommends at most 1 % of the room, which source_size_recommended reads and passes leaves out, the clause saying “should” where 6.2, 6.3 and 6.6 say “shall”.

property

Per band, whether T lies within the limiting curves.

SpecialRoomReverberationCheck.climate_stable

Section titled “SpecialRoomReverberationCheck.climate_stable”

property

Whether stayed within ±10 % (6.6); None when the climates were not given.

property

The lower bound on per band (6.3).

Returns: 0,9, or 0,8 above the 6,3 kHz band.

SpecialRoomReverberationCheck.nominal_in_range

Section titled “SpecialRoomReverberationCheck.nominal_in_range”

property

Whether is between 0,5 s and 1,0 s (6.3).

SpecialRoomReverberationCheck.normalized_ratio

Section titled “SpecialRoomReverberationCheck.normalized_ratio”

property

per band, which 6.3 bounds.

property

Whether the room qualifies on every requirement that was evaluated (6.2, 6.3 and 6.6); the recommendation of clause 5 on the size of the source is read by source_size_recommended and left out.

SpecialRoomReverberationCheck.plot(
ax: Axes | None = None,
*,
language: str = 'en',
**kwargs: Any,
) -> Axes

Plot within the limiting curves, laid out as Figure B.3 of the standard, with the limits widening above the 6,3 kHz band as the text of 6.3 says (the figure widens them at 6,3 kHz already; see docs/ERRATA.md).

Requires matplotlib (pip install phonometry[plot]).

Parameters

NameDescription
axExisting axes, or None to create a figure.
languageLabel language, "en" (default) or "es".
kwargsForwarded to the measured curve.

Returns: The axes.

SpecialRoomReverberationCheck.ratio_to_nominal

Section titled “SpecialRoomReverberationCheck.ratio_to_nominal”

property

per band, the quantity Figure B.3 draws.

Section titled “SpecialRoomReverberationCheck.source_size_recommended”

property

Whether the source is at most 1 % of the room, as clause 5 recommends; None when no source volume was given.

property

The upper bound on per band (6.3).

Returns: 1,1, or 1,2 above the 6,3 kHz band.

SpecialRoomReverberationCheck.volume_large_enough

Section titled “SpecialRoomReverberationCheck.volume_large_enough”

property

Whether the room is at least 70 m³ (6.2).

SpecialRoomReverberationCheck.volume_small_enough

Section titled “SpecialRoomReverberationCheck.volume_small_enough”

property

Whether the 300 m³ ceiling of 6.2 is kept where it applies.

It applies to the direct method when the 8 kHz octave, and with it the 4 kHz one, is within the measured range; the NOTE lifts it for the comparison method.

SpecialRoomSoundPowerResult(
frequencies: np.ndarray,
sound_power_level: np.ndarray,
mean_pressure_level: np.ndarray,
background_correction: np.ndarray,
background_margin_db: np.ndarray,
background_margin_ref_db: np.ndarray,
mean_reference_level: np.ndarray,
reference_power_level: np.ndarray,
volume_m3: float,
nominal_reverberation_time_s: float,
c2: float,
sigma_r0: np.ndarray,
sigma_r0_a: float,
sigma_omc: float,
coverage_factor: float,
sound_power_level_a: float,
sound_power_level_a_direct: float,
mean_a_weighted_level: float,
background_margin_a_db: float,
method: str,
microphone_positions: int,
source_positions: int,
)

Result of an ISO 3743-2:2018 determination in a special reverberation test room.

method is 'direct' (Formula 9) or 'comparison' (Formula 10). sound_power_level is the octave-band at the meteorological conditions of the test, the level the suitability evaluation of 6.7 compares; the ..._ref properties add the Annex E correction c2, which 10.2 and 10.3 require above 500 m.

mean_pressure_level is the mean background-corrected level of the source under test, (Formula 8) or , and background_correction the per-band shift the Table 4 corrections made to it. background_margin_db is the smallest margin of the source over the background per band, and background_margin_ref_db that of the reference source (the comparison method only), NaN where nothing was measured. background_requirement_met is read from them and the 4 dB of 6.5 and 9.8, so it is not a field: True only where a background was measured and every margin, of the source and, for the comparison method, of the reference source, reached it. For the comparison method mean_reference_level is and reference_power_level ; for the direct method both are NaN and volume_m3 and nominal_reverberation_time_s carry the room instead (NaN for the comparison method).

sound_power_level_a is the Annex F total of the octave bands; sound_power_level_a_direct is Formula (9) applied to the mean A-weighted level mean_a_weighted_level, which is how clause 4 reads the A-weighted level of the direct method, both NaN where the A-weighted levels were not measured or the method is the comparison one; background_margin_a_db is the smallest margin of the A-weighted levels over their background, NaN where there was nothing to test, and background_requirement_met_a the 4 dB test of 6.5 read from it. sigma_r0 is Table 5 per band (NaN at 63 Hz) and sigma_r0_a its A-weighted row; the uncertainty properties follow Formulae (12) and (13).

SpecialRoomSoundPowerResult.background_requirement_met

Section titled “SpecialRoomSoundPowerResult.background_requirement_met”

property

Per band, whether every margin reached the 4 dB of 6.5 and 9.8.

The source’s margins and, for the comparison method, the reference source’s too; False where no background was measured. The margins are judged settled, as Table 4 is read from them.

SpecialRoomSoundPowerResult.background_requirement_met_a

Section titled “SpecialRoomSoundPowerResult.background_requirement_met_a”

property

Whether every A-weighted margin reached the 4 dB of 6.5.

False where there was nothing to test.

SpecialRoomSoundPowerResult.expanded_uncertainty

Section titled “SpecialRoomSoundPowerResult.expanded_uncertainty”

property

U = k sigma_tot per band (Formula 13), in decibels.

SpecialRoomSoundPowerResult.expanded_uncertainty_a

Section titled “SpecialRoomSoundPowerResult.expanded_uncertainty_a”

property

U of the A-weighted level (Formula 13), in decibels: 5,7 dB for sigma_omc = 2,0 dB and k = 2, the 11.5 EXAMPLE.

SpecialRoomSoundPowerResult.plot(
ax: Axes | None = None,
*,
language: str = 'en',
**kwargs: Any,
) -> Axes

Plot the octave-band spectrum with the A-weighted total annotated.

A band whose background margin fell below 4 dB is hatched as not meeting 9.8, and the expanded uncertainty is drawn as an error bar where sigma_omc was given. Requires matplotlib (pip install phonometry[plot]).

Parameters

NameDescription
axExisting axes, or None to create a figure.
languageLabel language, "en" (default) or "es".
kwargsForwarded to the band bars.

Returns: The axes.

SpecialRoomSoundPowerResult.report(
path: str,
*,
metadata: ReportMetadata | None = None,
engine: str = 'reportlab',
verbose: bool = False,
language: str = 'en',
) -> str

Render the ISO 3743-2 determination as a one-page test sheet.

The sheet states the method and its accuracy grade (the direct or the comparison method in a special reverberation test room, ISO 3743-2:2018, grade 2), an optional metadata header, the per-band table of the mean level (and, for the comparison method, of the reference sound source) and the determined LW, the spectrum, the boxed A-weighted level with the expanded uncertainty and its coverage factor, an optional verdict against a declared limit, and a basis strip with Formula 8 and Formula 9 or 10. The boxed level of the direct method is the one clause 4 describes, Formula (9) on the A-weighted sound pressure levels, where they were measured; the Annex F total of the octave bands is stated beside it. A band whose background requirement was not met is marked * and named beneath the table, as 9.8 asks.

Parameters

NameDescription
pathDestination path of the PDF file.
metadataOptional ReportMetadata for the header, the footer identity and, via requirement, a declared A-weighted limit the boxed level is checked against (lower is better).
engineRendering back end; only "reportlab" is supported.
verboseWhen True the table adds the per-band shift of the Table 4 background corrections.
languageSheet language: "en" (default) or "es".

Returns: The written path as a str.

Raises

ExceptionWhen
ValueErrorIf engine is not "reportlab" or language is unknown.
ImportErrorIf reportlab (or, for the figure, matplotlib) is not installed (pip install phonometry[report]).

property

Formula (12) per band, in decibels; NaN without sigma_omc.

property

Formula (12) with the A-weighted row of Table 5, in decibels.

SpecialRoomSoundPowerResult.sound_power_level_a_ref

Section titled “SpecialRoomSoundPowerResult.sound_power_level_a_ref”

property

The Annex F total of sound_power_level_ref, LWA + C2.

SpecialRoomSoundPowerResult.sound_power_level_ref

Section titled “SpecialRoomSoundPowerResult.sound_power_level_ref”

property

LW + C2 under the reference meteorological conditions (E.1).

SpecialRoomSuitabilityCheck(
frequencies: np.ndarray,
measured_power_level_db: np.ndarray,
calibrated_power_level_db: np.ndarray,
)

The suitability evaluation of ISO 3743-2:2018, 6.7 (Table 1).

Per octave band, measured_power_level_db is the sound power level of a calibrated broad-band reference source determined in the room by this standard (step 2), calibrated_power_level_db its calibration as the evaluation read it, under the meteorological conditions of the test (step 1), and limit_db the Table 1 bound on the magnitude of their difference (step 4), read from the bands: the standard’s, not a field.

property

Per band, whether the difference stays within Table 1.

property

Per band, the level determined in the room less the calibration (step 3).

property

The Table 1 bound on the difference per band (step 4), in dB.

property

Whether the room is suitable for broad-band sources (step 4 of 6.7).

SpecialRoomSuitabilityCheck.plot(
ax: Axes | None = None,
*,
language: str = 'en',
**kwargs: Any,
) -> Axes

Plot the difference per band within the ± Table 1 limits.

Requires matplotlib (pip install phonometry[plot]).

Parameters

NameDescription
axExisting axes, or None to create a figure.
languageLabel language, "en" (default) or "es".
kwargsForwarded to the difference bars.

Returns: The axes.

SpecialRoomSurfaceCheck(
frequencies: np.ndarray,
surface_absorption: np.ndarray,
floor_absorption: np.ndarray,
mean_absorption: np.ndarray,
)

Qualification of a special reverberation test room by its surfaces (ISO 3743-2:2018, 6.4).

surface_absorption holds the mean absorption coefficient of each wall and of the ceiling per octave band, (surfaces, bands), floor_absorption that of the floor, and mean_absorption the mean of the walls and ceiling that each is compared with, weighted by their areas when those were given.

property

Per band, whether the floor absorbs less than 0,06.

property

Whether both criteria of 6.4 hold in every band.

SpecialRoomSurfaceCheck.plot(
ax: Axes | None = None,
*,
language: str = 'en',
**kwargs: Any,
) -> Axes

Plot each surface’s coefficient within the 0,5 to 1,5 band of the mean, and the floor against its 0,06, with every coefficient outside 6.4 ringed and the verdict in the title.

Requires matplotlib (pip install phonometry[plot]).

Parameters

NameDescription
axExisting axes, or None to create a figure.
languageLabel language, "en" (default) or "es".
kwargsForwarded to the surface curves.

Returns: The axes.

property

Each wall’s and the ceiling’s coefficient over the mean, per band; 1 where the mean is zero, since every surface then absorbs alike.

property

Per wall or ceiling and band, (surfaces, bands), whether the coefficient lies within 0,5 and 1,5 times the mean.

property

Per band, whether every wall and the ceiling lie within 0,5 and 1,5 times the mean.