emission.sound_power_high_frequency
La referencia de la API se publica en inglés en los dos idiomas: se genera a partir de los docstrings del código, que son su texto original.
Sound power levels in the 16 kHz octave band: ISO 9295:2015.
Some machines emit most of what matters above the range the general methods cover: the paper noise of a fast printer, the whine of a switched-mode power supply, the tone of a display. ISO 3741 stops at the 10 kHz one-third octave band and ISO 3744 at the same place, so ISO 9295 adds the octave band centred on 16 kHz, from 11,2 kHz to 22,4 kHz (clause 1), and determines the unweighted sound power level in its three one-third octave bands (12,5, 16 and 20 kHz) or in the narrow bands that hold its discrete tones.
Four methods are specified. Three of them use a reverberation test room with a microphone on a rotating boom, pointing upwards so that the equipment is heard at grazing incidence (clauses 5.4 and 5.5), and one uses a hemi-anechoic room (clause 9).
Mean level. The time-averaged band level over the four orientations of the equipment (), or over three revolutions of the boom (), is the energy mean of Formula (1):
A moving microphone spreads a discrete tone over sidebands. The analyser has to be at least as wide as Formula (2), with the speed of the microphone and the speed of sound; with a narrower FFT the sidebands are summed on an energy basis, Formula (3):
Method with the measured reverberation time (clause 6). Above 10 kHz the room absorption coefficient cannot be taken as small, so the Eyring relation gives it from the measured reverberation time , and the room constant follows from it ( the total room surface, its volume):
The sound power level in each band is then Formula (6):
Method with the calculated air absorption (clause 7). At 10 kHz and above practically all of the absorption of a reverberation room is in the air, so the room constant comes from the air absorption coefficient in nepers per metre, Formula (7), and Formula (6) is applied unchanged:
is Annex A (normative), which is ISO 9613-1 written in nepers
rather than decibels and evaluated up to 22,4 kHz, where ISO 9613-1 stops at
10 kHz; air_absorption_np_per_m evaluates it with the library’s
ISO 9613-1 implementation. Tables 1 and 2 print it for 18 °C to 27 °C, 40 %
to 60 % relative humidity and 10 000 Hz to 22 400 Hz.
Method with a reference sound source (clause 8). The source under test and a calibrated reference source are measured in turn with the same bandwidth. For broadband noise the band level is Formula (8); for discrete tones the reference source is calibrated as a power spectral density, per unit bandwidth, and the noise bandwidth of the constant bandwidth analyser puts it back into the band, Formula (9):
Method with a free field over a reflecting plane (clause 9) is ISO 3744
(sound_power_pressure) with the three
one-third octave bands of the 16 kHz octave; beyond a measurement radius of
2 m the surface level takes the absorption correction of
Formula (10), with in decibels per metre:
Reference meteorological conditions. Clause 10.1 carries the levels of the reverberation-room methods to 101,325 kPa and 23,0 °C “de acuerdo con la Norma ISO 3741”, which is the reference-quantity correction and the radiation-impedance correction of ISO 3741:2010 clause 9.1.4 for a direct method and alone for the comparison with a reference source, exactly as ISO 3741 Formulae (20) and (21) apply them.
What to determine. Table 3 says which sound power levels a report
carries for each type of noise, in the octave bands from 125 Hz to 8 kHz and
in the 16 kHz octave: high_frequency_levels_to_determine reads it.
Formulae (4) to (10) carry no worked example in the standard and are pinned in closed form; Tables 1 and 2 are the numeric oracle of Annex A.
Auto-generated from the source docstrings by
scripts/generate_api_docs.py(make api-docs). Do not edit by hand.
air_absorption_np_per_m
Section titled “air_absorption_np_per_m”air_absorption_np_per_m( frequencies_hz: ArrayLike, *, temperature_c: float, relative_humidity_percent: float, static_pressure_kpa: float = 101.325,) -> NDArray[np.float64]Air absorption coefficient in nepers per metre (ISO 9295 Annex A).
Formulae (A.1) to (A.5) of ISO 9295:2015 are the ISO 9613-1:1993
pure-tone attenuation written for the amplitude in nepers per metre, the
unit Formula (7) takes, so this is the library’s ISO 9613-1 evaluation
without its factor 8,686 (Annex A: “multiplicando el valor de
en Np/m por 8,686 para obtener el valor de
en dB/m”). The difference from
air_attenuation
is the range: Annex A evaluates the same formula up to 22,4 kHz, the top
of the 16 kHz octave band, so no advisory is raised between 10 kHz and
22,4 kHz, where ISO 9613-1 stops tabulating.
Parameters
| Name | Description |
|---|---|
frequencies_hz | Frequency or frequencies f, in hertz. |
temperature_c | Air temperature, in degrees Celsius. Outside -20 °C to +50 °C emits an AtmosphericAbsorptionWarning. |
relative_humidity_percent | Relative humidity h_r, in percent. |
static_pressure_kpa | Static pressure p_s, in kilopascals (default 101,325 kPa, the pressure Tables 1 and 2 are printed at). |
Returns: in Np/m, with the shape of frequencies_hz.
Raises
| Exception | When |
|---|---|
| ValueError | for a non-positive frequency, a temperature at or below absolute zero, a relative humidity outside [0, 100] % or a non-positive static pressure. |
free_field_absorption_correction
Section titled “free_field_absorption_correction”free_field_absorption_correction( frequencies_hz: ArrayLike, *, radius_m: float, temperature_c: float, relative_humidity_percent: float, static_pressure_kpa: float = 101.325,) -> NDArray[np.float64]Air absorption correction of the free-field method (ISO 9295 Formula (10)).
, with the air absorption in
decibels per metre (Annex A times 8,686). Clause 9.8 adds it to the
surface sound pressure level of ISO 3744 before the sound power is
determined, and only when the measurement radius exceeds 2 m; at 2 m
or less the clause asks for no correction and this returns zero. The
surface level and the sound power level differ by the constant
, so adding to the band levels
sound_power_pressure returns
is the same thing.
Parameters
| Name | Description |
|---|---|
frequencies_hz | Band centre or tone frequencies, in hertz. |
radius_m | Radius r of the measurement hemisphere, in metres. |
temperature_c | Air temperature, in degrees Celsius. |
relative_humidity_percent | Relative humidity, in percent. |
static_pressure_kpa | Static pressure, in kilopascals (default 101,325 kPa). |
Returns: per frequency, in decibels.
Raises
| Exception | When |
|---|---|
| ValueError | for a non-positive radius or the atmospheric inputs air_absorption_np_per_m refuses. |
high_frequency_levels_to_determine
Section titled “high_frequency_levels_to_determine”high_frequency_levels_to_determine( *, noise_125_hz_to_8_khz: str, noise_16_khz_octave: str,) -> tuple[str, ...]The sound power levels to determine for a type of noise (ISO 9295 Table 3).
Table 3 of ISO 9295:2015 pairs the noise of the equipment in the octave bands from 125 Hz to 8 kHz with its noise in the 16 kHz octave band and says what the determination has to give. The answer is a tuple of these identifiers, in the order the table names them:
"a_weighted_sound_power_level": the A-weighted sound power level from the octave bands of 125 Hz to 8 kHz, by ISO 3741 or ISO 3744 as appropriate (footnote a lets the one-third-octave and octave band levels of that range be given as well);"one_third_octave_band_levels": the sound power level in each one-third octave band of the 16 kHz octave, by this standard (high_frequency_sound_powerorhigh_frequency_sound_power_comparison);"tone_level_and_frequency": the level and the frequency of the discrete tone in the 16 kHz octave;"tone_levels_within_10_db": the levels and frequencies of every tone in the 16 kHz octave within 10 dB of the highest tonal level, the tonesHighFrequencySoundPowerResult.within_10_db_of_maximummarks.
With no significant noise from 125 Hz to 8 kHz, footnote b notes that the noise lies outside the scope of ISO 3741 and ISO 3744, so only this standard applies and no A-weighted level is asked for.
Parameters
| Name | Description |
|---|---|
noise_125_hz_to_8_khz | The noise in the octave bands from 125 Hz to 8 kHz: "broadband" or "narrowband" (one row of the table), or "none" for no significant noise. |
noise_16_khz_octave | The noise in the 16 kHz octave band: "none", "broadband", "discrete_tone" or "multiple_tones". |
Returns: The identifiers of the levels to determine.
Raises
| Exception | When |
|---|---|
| ValueError | for a noise type the table does not name, or for a combination it has no row for: no significant noise in either range, or broadband noise in the 16 kHz octave with none below it. |
high_frequency_sound_power
Section titled “high_frequency_sound_power”high_frequency_sound_power( pressure_levels_db: ArrayLike, *, frequencies_hz: ArrayLike, room_constant_m2: ArrayLike, temperature_c: float = 23.0, static_pressure_kpa: float = 101.325, tonal: bool = False,) -> HighFrequencySoundPowerResultSound power level in the 16 kHz octave band, direct method (ISO 9295 Formula (6)).
per band: Formula (6), carried to the reference meteorological conditions
by the and of ISO 3741:2010 clause 9.1.4, which
clause 10.1 points to. The same formula serves both direct methods; only
the room constant differs, from the measured reverberation time
(room_constant_from_reverberation_time, clause 6) or from the
calculated air absorption (room_constant_from_air_absorption,
clause 7).
Parameters
| Name | Description |
|---|---|
pressure_levels_db | per band, in dB re 20 µPa, or an (N, bands) array of the time-averaged levels of the four orientations () or three boom revolutions (), energy-averaged by Formula (1). |
frequencies_hz | Band centre or tone frequencies, in hertz, one per band. A frequency outside 11,2 kHz to 22,4 kHz emits a SoundPowerWarning. |
room_constant_m2 | Room constant R, in square metres, a scalar or one value per band. |
temperature_c | Air temperature in the room, in degrees Celsius (default 23,0 °C, the reference temperature). |
static_pressure_kpa | Static pressure in the room, in kilopascals (default 101,325 kPa, the reference pressure). |
tonal | True when the bands are the narrow bands of discrete tones (clause 6.5), which changes how the result is drawn and read. |
Returns: A HighFrequencySoundPowerResult with method='direct'.
Raises
| Exception | When |
|---|---|
| ValueError | for non-finite levels, a room constant that is not positive, frequencies that do not match the bands, or a temperature or static pressure ISO 3741 cannot correct from. |
high_frequency_sound_power_comparison
Section titled “high_frequency_sound_power_comparison”high_frequency_sound_power_comparison( pressure_levels_db: ArrayLike, *, frequencies_hz: ArrayLike, reference_pressure_levels_db: ArrayLike, reference_sound_power_levels_db: ArrayLike, noise_bandwidth_hz: float | None = None, temperature_c: float = 23.0, static_pressure_kpa: float = 101.325,) -> HighFrequencySoundPowerResultSound power level in the 16 kHz octave band against a reference source (ISO 9295 clause 8).
For broadband noise, Formula (8): , per one-third octave band. For discrete tones, Formula (9) adds , because the reference source is then calibrated per unit bandwidth (clause 8.1) and is the noise bandwidth of the constant bandwidth analyser. Clause 10.1 adds the radiation-impedance correction of ISO 3741, as ISO 3741 Formula (21) does for its own comparison method.
Parameters
| Name | Description |
|---|---|
pressure_levels_db | per band, in dB re 20 µPa, or an (N, bands) array averaged by Formula (1). |
frequencies_hz | Band centre or tone frequencies, in hertz, one per band. |
reference_pressure_levels_db | per band, in dB re 20 µPa, measured with the same bandwidth at the same location (clauses 8.3, 8.4); a 2-D input is averaged by Formula (1) as well. |
reference_sound_power_levels_db | of the calibrated reference source, in dB re 1 pW, a scalar or one value per band: per band for broadband noise, per hertz for tones. |
noise_bandwidth_hz | , the noise bandwidth of the analyser, in hertz, which selects Formula (9); None (default) selects Formula (8). Clause 8.5.2 allows 1 Hz for a constant percentage analyser, and holds an FFT to 112 Hz or less: a wider one emits a SoundPowerWarning. |
temperature_c | Air temperature in the room, in degrees Celsius (default 23,0 °C). |
static_pressure_kpa | Static pressure in the room, in kilopascals (default 101,325 kPa). |
Returns: A HighFrequencySoundPowerResult with method='comparison', tonal set when noise_bandwidth_hz is given.
Raises
| Exception | When |
|---|---|
| ValueError | for non-finite levels, reference levels that do not span the same bands, a non-positive bandwidth, or a temperature or static pressure ISO 3741 cannot correct from. |
HighFrequencySoundPowerResult
Section titled “HighFrequencySoundPowerResult”HighFrequencySoundPowerResult( frequencies: NDArray[np.float64], sound_power_level: NDArray[np.float64], mean_pressure_level: NDArray[np.float64], room_constant: NDArray[np.float64] | None, reference_sound_power_level: NDArray[np.float64] | None, reference_pressure_level: NDArray[np.float64] | None, noise_bandwidth_hz: float | None, c1: float, c2: float, method: str, tonal: bool,)A sound power determination in the 16 kHz octave band (ISO 9295:2015).
One value per band: a one-third octave band of the 16 kHz octave for broadband noise, or the narrow band of a discrete tone.
Attributes
| Name | Description |
|---|---|
frequencies | Band centre or tone frequencies, in hertz. |
sound_power_level | per band, in dB re 1 pW, at the reference meteorological conditions of clause 10.1 (Formula (6) plus c1 and c2 for the direct method, Formula (8) or (9) plus c2 for the comparison). |
mean_pressure_level | per band, in dB re 20 µPa, the energy mean of Formula (1) over the orientations or revolutions supplied. |
room_constant | The room constant R per band, in square metres, for the direct method (Formula (4) or (7)); None for the comparison. |
reference_sound_power_level | per band, in dB re 1 pW (per hertz for the tonal comparison); None for the direct method. |
reference_pressure_level | per band, in dB re 20 µPa; None for the direct method. |
noise_bandwidth_hz | of Formula (9), in hertz, for the tonal comparison; None otherwise. |
c1 | Reference-quantity correction C1 of ISO 3741, in dB, for the direct method; NaN for the comparison, which does not apply it. |
c2 | Radiation-impedance correction C2 of ISO 3741, in dB. |
method | 'direct' (clauses 6 and 7) or 'comparison' (clause 8). |
tonal | True when the bands are the narrow bands of discrete tones rather than one-third octave bands of broadband noise. |
HighFrequencySoundPowerResult.plot()
Section titled “HighFrequencySoundPowerResult.plot()”HighFrequencySoundPowerResult.plot( ax: Axes | None = None, *, language: str = 'en', **kwargs: Any,) -> AxesPlot the band levels, with the mean room level they came from.
Broadband bands are drawn as bars over the one-third octave bands; a
tonal determination is drawn as one stem per tone on a frequency axis,
with the line 10 dB below the highest tone that clause 13 c) reports
down to. Requires matplotlib (pip install phonometry[plot]);
returns the Axes.
Parameters
| Name | Description |
|---|---|
ax | Existing axes, or None to create a figure. |
language | "en" (default) or "es". |
kwargs | Forwarded to the bar or stem drawing of . |
Returns: The axes.
HighFrequencySoundPowerResult.within_10_db_of_maximum
Section titled “HighFrequencySoundPowerResult.within_10_db_of_maximum”property
Bands whose level is within 10 dB of the highest one.
Clause 13 c) and Table 3 ask for the level and the frequency of every tone that lies within 10 dB of the highest tonal level in the band, so for a tonal determination this marks the tones the report has to carry.
minimum_analyzer_bandwidth_hz
Section titled “minimum_analyzer_bandwidth_hz”minimum_analyzer_bandwidth_hz( tone_frequency_hz: ArrayLike, *, microphone_speed_m_s: float, speed_of_sound: float,) -> NDArray[np.float64]Narrowest analyser bandwidth that holds a tone seen by a moving microphone.
, ISO 9295:2015 Formula (2). The moving
microphone spreads the energy of a discrete tone over sidebands either
side of its frequency, and an analyser at least this wide collects the
whole tone in one band; a narrower one (an FFT) needs its sidebands
summed with tone_level_from_sidebands.
Parameters
| Name | Description |
|---|---|
tone_frequency_hz | Centre frequency f of the tone, in hertz. |
microphone_speed_m_s | Speed v of the microphone along its path, in metres per second. |
speed_of_sound | Speed of sound c, in metres per second. |
Returns: The minimum bandwidth , in hertz.
Raises
| Exception | When |
|---|---|
| ValueError | for a non-positive or non-finite input. |
room_absorption_coefficient
Section titled “room_absorption_coefficient”room_absorption_coefficient( reverberation_time_s: ArrayLike, *, volume_m3: float, surface_area_m2: float,) -> NDArray[np.float64]Room absorption coefficient from the reverberation time (ISO 9295 Formula (5)).
, the Eyring relation solved for the absorption coefficient. Clause 6.1 asks for it rather than the simpler Sabine one because above 10 kHz the room absorption coefficient cannot be taken as small compared with unity. The constant is the 0,16 the formula prints.
Parameters
| Name | Description |
|---|---|
reverberation_time_s | Mean measured reverberation time T per band, in seconds (scalar or one value per band); clause 6.2 averages three or four points of the microphone path. |
volume_m3 | Room volume V, in cubic metres. |
surface_area_m2 | Total room surface S, in square metres. |
Returns: per band, in (0, 1).
Raises
| Exception | When |
|---|---|
| ValueError | for a non-positive or non-finite time, volume or surface. |
room_constant_from_air_absorption
Section titled “room_constant_from_air_absorption”room_constant_from_air_absorption( frequencies_hz: ArrayLike, *, volume_m3: float, surface_area_m2: float, temperature_c: float, relative_humidity_percent: float, static_pressure_kpa: float = 101.325,) -> NDArray[np.float64]Room constant from the calculated air absorption (ISO 9295 Formula (7)).
, the room constant of the
method of clause 7, with in nepers per metre from
air_absorption_np_per_m (Annex A). The method takes all of the
room absorption to be in the air, which clause 7.2 holds at 10 kHz and
above; a band below 10 kHz emits a
SoundPowerWarning, since the walls are no
longer negligible there and the measured reverberation time of
room_constant_from_reverberation_time is the method to use.
Parameters
| Name | Description |
|---|---|
frequencies_hz | Band centre or tone frequencies, in hertz. |
volume_m3 | Room volume V, in cubic metres. |
surface_area_m2 | Total room surface S, in square metres. |
temperature_c | Air temperature in the room, in degrees Celsius. |
relative_humidity_percent | Relative humidity in the room, in percent. |
static_pressure_kpa | Static pressure in the room, in kilopascals (default 101,325 kPa). |
Returns: R per frequency, in square metres.
Raises
| Exception | When |
|---|---|
| ValueError | for a non-positive or non-finite volume or surface, for the atmospheric inputs air_absorption_np_per_m refuses, or where : the air alone would then absorb more than the room surface can, and Formula (7) has no finite room constant. |
room_constant_from_reverberation_time
Section titled “room_constant_from_reverberation_time”room_constant_from_reverberation_time( reverberation_time_s: ArrayLike, *, volume_m3: float, surface_area_m2: float,) -> NDArray[np.float64]Room constant from the measured reverberation time (ISO 9295 Formulae (4), (5)).
with
from room_absorption_coefficient,
the room constant of the method of clause 6. It goes into
high_frequency_sound_power as room_constant_m2.
Parameters
| Name | Description |
|---|---|
reverberation_time_s | Mean measured reverberation time T per band, in seconds (scalar or one value per band). |
volume_m3 | Room volume V, in cubic metres. |
surface_area_m2 | Total room surface S, in square metres. |
Returns: R per band, in square metres.
Raises
| Exception | When |
|---|---|
| ValueError | for a non-positive or non-finite time, volume or surface. |
tone_level_from_sidebands
Section titled “tone_level_from_sidebands”tone_level_from_sidebands(sideband_levels_db: ArrayLike) -> floatTotal level of a tone from its sideband levels (ISO 9295 Formula (3)).
,
the energy sum of the bands adjacent to the tone frequency that carry
its energy when the analyser is narrower than
minimum_analyzer_bandwidth_hz.
Parameters
| Name | Description |
|---|---|
sideband_levels_db | The sideband levels , in decibels re 20 µPa. |
Returns: , in decibels re 20 µPa.
Raises
| Exception | When |
|---|---|
| ValueError | for an empty or non-finite input. |