Skip to content

building.panel_transmission

Predicted airborne sound reduction index of panels (Bies, Hansen & Howard 2017, Engineering Noise Control 5e, Section 7.2; Sharp 1973).

Where EN 12354-1 (phonometry.building.building_prediction) takes the element sound reduction index R as a measured input, this module predicts R(f) from the physical properties of the construction: the mass per unit area, bending stiffness (through the coincidence frequency) and loss factor. The prediction feeds the same ISO 717-1 weighting (phonometry.weighted_rating) as the measured quantities, closing the chain from panel physics to the single-number Rw.

Mass law (Bies Eq. 7.40/7.42). A non-stiff panel transmits by forced motion; the transmission coefficient of an infinite limp panel gives the normal- and field-incidence transmission loss:

TL_normal = 10 lg(1 + (pi f m'' / (rho0 c0))**2)
TL_field = TL_normal - dB(band)

with m'' the mass per unit area, rho0 c0 the characteristic impedance of air and the field-incidence correction dB = 5.5 dB for one-third-octave or 4.0 dB for octave bands (Eq. 7.42). The mass law rises 6 dB per octave and 6 dB per doubling of mass.

Single panel, Sharp’s method (Bies 7.2.4.1). Below the coincidence region the field-incidence mass law holds; from the coincidence frequency fc upwards the loss factor eta controls the transmission (Eq. 7.44):

TL = 10 lg(1 + (pi f m'' / rho0 c0)**2) + 10 lg(2 eta f / (pi fc))

and between fc/2 and fc the curve is a straight line on TL versus log10 f. The coincidence dip at fc sits 10 lg(2 eta / pi) below the extrapolated mass law (Bies design-chart point B, TL = 20 lg(fc m'') + 10 lg eta - 44).

Double wall (Bies 7.2.6, Eq. 7.62-7.64). Two leaves m1, m2 separated by a gap d behave as a mass-spring-mass system. Below the resonance f0 = (1/2 pi) sqrt(s'' (m1 + m2)/(m1 m2)) the pair follows the mass law of the combined mass m1 + m2; above it the two mass laws add, boosted by the cavity (Eq. 7.64):

TL = TL_M , f <= f0
TL = TL_1 + TL_2 + 20 lg(2 k d) , f0 < f < f_l (k = 2 pi f / c0)
TL = TL_1 + TL_2 + 6 , f >= f_l = c0 / (2 pi d)

The cavity stiffness s'' is rho0 c0**2 / d for an empty (adiabatic) air gap; a porous fill (a PorousMediumResult from phonometry.materials.porous_absorber) lowers the resonance through its softer, near-isothermal effective bulk modulus and damps the cavity so the mid-band slope is realised without standing-wave dips.

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

double_wall_transmission_loss(
frequency: ArrayLike,
mass1: float,
mass2: float,
gap: float,
*,
loss_factor: float = 0.1,
cavity_medium: PorousMediumResult | None = None,
band: str = 'third',
speed_of_sound: float = 343.0,
air_density: float = 1.205,
) -> SoundReductionResult

Sound reduction index of a double wall (Bies 7.2.6, Eq. 7.64).

Piecewise Sharp model: below the mass-spring-mass resonance f0 the pair behaves as the mass law of the combined mass; between f0 and the limiting frequency f_l = c0/(2 pi d) the two mass laws add plus 20 lg(2 k d); above f_l they add plus 6 dB. The curve is continuous at f_l (20 lg(2 k d) = 6 there).

Parameters

NameDescription
frequencyBand centre frequencies f, in hertz (array, > 0).
mass1Surface density of leaf 1 m1, in kg/m^2 (> 0).
mass2Surface density of leaf 2 m2, in kg/m^2 (> 0).
gapCavity depth d, in m (> 0).
loss_factorLeaf loss factor eta (> 0, Default: 0.1); reserved for the coincidence extension and reported for reference.
cavity_mediumOptional porous fill; see mass_spring_mass_resonance.
bandBand width for the field correction ("third"/"octave").
speed_of_soundSpeed of sound in air c0 (Default: 343 m/s).
air_densityAir density rho0 (Default: 1.205 kg/m^3).

Returns: A SoundReductionResult (model "double-wall").

Raises

ExceptionWhen
ValueErrorfor a non-positive input.
field_incidence_correction(band: str = 'third') -> float

Field-incidence mass-law correction dB (Bies Eq. 7.42).

Parameters

NameDescription
band"third" (5.5 dB) or "octave" (4.0 dB).

Returns: The correction subtracted from the normal-incidence mass law, dB.

Raises

ExceptionWhen
ValueErrorfor an unknown band width.
mass_law_transmission_loss(
frequency: ArrayLike,
mass_per_area: float,
*,
incidence: str = 'field',
band: str = 'third',
speed_of_sound: float = 343.0,
air_density: float = 1.205,
) -> np.ndarray

Mass-law transmission loss of a limp panel (Bies Eq. 7.40/7.42).

TL_normal = 10 lg(1 + (pi f m'' / rho0 c0)**2); the field-incidence value subtracts the band correction of field_incidence_correction.

Parameters

NameDescription
frequencyFrequency f, in hertz (scalar or array, > 0).
mass_per_areaMass per unit area m'', in kg/m^2 (> 0).
incidence"normal" or "field" (Default: "field").
bandBand width for the field correction ("third"/"octave").
speed_of_soundSpeed of sound in air c0 (Default: 343 m/s).
air_densityAir density rho0 (Default: 1.205 kg/m^3).

Returns: The transmission loss TL, in dB.

Raises

ExceptionWhen
ValueErrorfor a non-positive input or unknown incidence/band.
mass_spring_mass_resonance(
mass1: float,
mass2: float,
gap: float,
*,
cavity_medium: PorousMediumResult | None = None,
speed_of_sound: float = 343.0,
air_density: float = 1.205,
) -> float

Mass-spring-mass resonance f0 of a double wall (Bies Eq. 7.62).

f0 = (1/2 pi) sqrt(s'' (m1 + m2)/(m1 m2)) with the cavity stiffness per unit area s''. For an empty air gap s'' = rho0 c0**2 / d (adiabatic, Hopkins Eq. 4.72); with a porous cavity_medium the fill’s effective (near-isothermal) bulk modulus at the lowest supplied frequency sets a softer s'' = Re(K_e) / d, lowering f0.

Parameters

NameDescription
mass1Surface density of leaf 1 m1, in kg/m^2 (> 0).
mass2Surface density of leaf 2 m2, in kg/m^2 (> 0).
gapCavity depth d, in m (> 0).
cavity_mediumOptional porous fill (a PorousMediumResult) whose effective bulk modulus sets the cavity stiffness.
speed_of_soundSpeed of sound in air c0 (Default: 343 m/s).
air_densityAir density rho0 (Default: 1.205 kg/m^3).

Returns: The mass-spring-mass resonance f0, in hertz.

Raises

ExceptionWhen
ValueErrorfor a non-positive input.
single_panel_transmission_loss(
frequency: ArrayLike,
mass_per_area: float,
*,
critical_frequency: float | None = None,
bending_stiffness: float | None = None,
loss_factor: float = 0.01,
band: str = 'third',
speed_of_sound: float = 343.0,
air_density: float = 1.205,
) -> SoundReductionResult

Sound reduction index of a single panel, Sharp’s method (Bies 7.2.4.1).

Field-incidence mass law up to fc/2, Eq. 7.44 from fc upwards, and a straight line in log10 f across the coincidence region between them.

Provide the coincidence frequency directly through critical_frequency, or let it be computed from bending_stiffness and mass_per_area through coincidence_frequency.

Parameters

NameDescription
frequencyBand centre frequencies f, in hertz (array, > 0).
mass_per_areaMass per unit area m'', in kg/m^2 (> 0).
critical_frequencyCoincidence frequency fc, in hertz (> 0).
bending_stiffnessBending stiffness per unit width B', in N.m, used to compute fc when critical_frequency is not given.
loss_factorTotal loss factor eta (> 0, Default: 0.01).
bandBand width for the field correction ("third"/"octave").
speed_of_soundSpeed of sound in air c0 (Default: 343 m/s).
air_densityAir density rho0 (Default: 1.205 kg/m^3).

Returns: A SoundReductionResult (model "sharp-single").

Raises

ExceptionWhen
ValueErrorfor a non-positive input, or if neither critical_frequency nor bending_stiffness is given.
SoundReductionResult(
frequencies: np.ndarray,
transmission_loss: np.ndarray,
model: str,
critical_frequency: float | None = None,
resonance_frequency: float | None = None,
)

Predicted airborne sound reduction index R(f) of a construction.

Attributes

NameDescription
frequenciesBand centre frequencies, in hertz.
transmission_lossSound reduction index R per band, in dB.
modelPrediction model (e.g. "sharp-single", "double-wall").
critical_frequencyCoincidence frequency fc, in hertz, or None (double wall reports the mass-spring-mass resonance instead).
resonance_frequencyMass-spring-mass resonance f0, in hertz, or None (single panel).
SoundReductionResult.plot(
ax: Axes | None = None,
*,
language: str = 'en',
**kwargs: Any,
) -> Axes

Plot the predicted sound reduction index R(f).

Requires matplotlib (pip install phonometry[plot]); returns the Axes.

SoundReductionResult.rating(
bands: str | None = None,
) -> WeightedRatingResult

Single-number weighted rating Rw of the predicted R(f).

Delegates to phonometry.weighted_rating (ISO 717-1); requires the spectrum to be on the 16 one-third-octave bands (100 Hz to 3150 Hz) or the 5 octave bands (125 Hz to 2000 Hz).

Parameters

NameDescription
bandsBand set forwarded to phonometry.weighted_rating.

Returns: The WeightedRatingResult.

SoundReductionResult.report(path: str, **kwargs: Any) -> str

Render the ISO 717-1 Annex C rating fiche of R(f) to a PDF.

Convenience wrapper delegating to report on rating; requires the predicted spectrum to be on the 16 one-third-octave bands (100 Hz to 3150 Hz) or the 5 octave bands (125 Hz to 2000 Hz).

Parameters

NameDescription
pathDestination path of the PDF file.
kwargsForwarded to report (e.g. engine).

Returns: The written path as a str.

SoundReductionResult.transmission_coefficient

Section titled “SoundReductionResult.transmission_coefficient”

property

Transmission coefficient tau = 10**(-R/10) per band.

Created and maintained by· GitHub· PyPI· All projects