Ir al contenido

building.prediction.resilient_layers

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.

Prediction of resilient-layer performance: tapping force, floor coverings, floating floors.

The measurement modules of this domain report what a resilient layer achieved (phonometry.building.measurement.floor_covering_improvement for the ISO 16251-1 mock-up, phonometry.materials.resilient.dynamic_stiffness for the EN 29052-1 dynamic stiffness). This module is their prediction counterpart: it walks the physical chain from the material data to the improvement spectrum, so a covering or a floating floor can be sized before anything is built.

The chain is one story told in three steps.

1. The excitation (Hopkins 3.6.3). The ISO tapping machine drops a 0.5 kg hammer from 40 mm, ten impacts per second, so the impact velocity is m/s (Eq. 3.85) and, for a short impact, the peak force per Fourier line is (Eq. 3.90), giving the band mean-square force (Eq. 3.92). Real floors are not that simple: the hammer, the contact stiffness K it deforms and the floor’s driving-point impedance Zdp form a mass-spring-dashpot (Fig. 3.28) whose force pulse (force_pulse, Eqs. 3.95/3.96) is over-critical when (a single positive pulse, no rebound) and under-critical otherwise (a rebound; only the first positive lobe is transformed). Its spectrum (tapping_force_spectrum) is flat up to the cut-off fco (Eqs. 3.101/3.102) and falls above it, and it asymptotes at low frequency between and , 6 dB apart in mean square (Eqs. 3.99/3.100).

2. Soft floor coverings (Hopkins 4.4.3.1). A soft covering on a heavyweight floor changes nothing but the force input, so its improvement is the force ratio (Eq. 4.114). The covering’s contact stiffness (Eq. 3.98) sets its cut-off, against the bare plate’s (Eq. 3.97), which is why a two-line estimate, below fco and 12 dB/octave above it, captures the whole design question (covering_improvement).

3. Floating floors (Hopkins 4.4.4, ISO 12354-2 Annex C, Vigran 8.4). Above the mass-spring resonance (Formula C.2) the improvement follows one of three laws (floating_floor_improvement_spectrum): the infinite-plate result of Cremer, (Eq. 4.119, Vigran Eq. 8.40), the empirical that EN 12354-2 adopted for sand-cement screeds (Formula C.1, Eq. 4.124), and the same 40 lg law with the hammer-impedance term that a lightweight walking surface needs (Eq. 4.123, Vigran Eq. 8.48). A floating floor on discrete mounts instead of a continuous layer is a two-subsystem SEA problem (resilient_mount_improvement, Vér’s model as Hopkins Eq. 4.118 and Vigran Eq. 8.45) and rises at 30 dB/decade, not 40. Two floating floors stacked give two resonances (double_floating_floor_resonances, Eq. 4.125), and the weighted single number follows from m' and s' directly (weighted_floating_floor_improvement, Formulae C.4/C.5).

The wall and ceiling linings of ISO 12354-1 Annex D, which used to close this file, are in phonometry.building.prediction.linings: they are added to a wall rather than laid on a floor, and the annex rates them from a resonance frequency instead of from the tapping machine’s force.

Citations are to ISO 12354-2:2017, to Hopkins, Sound Insulation (2007) and to Vigran, Building Acoustics (2008). Where the two books state the same model in different algebra the test suite pins the identity rather than either transcription. One printed defect is relevant here and is recorded in docs/ERRATA.md: the carpet stiffness in the caption of Vigran’s Fig. 8.37.

One relation used here carries no published worked example, so it is implemented as printed and checked only for self-consistency: the asphalt fit of Formula (C.5). The guide “Predicting Resilient-Layer Performance” says which pieces have an oracle and which do not.

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

combined_dynamic_stiffness(layers: ArrayLike) -> float

Total dynamic stiffness of stacked resilient layers (Formula C.6).

, springs in series (Hopkins Eq. 4.121 states the same rule). ISO 12354-2:2017 warns that it holds only if every layer covers the whole floor without cuts for pipes or electrical devices.

Parameters

NameDescription
layersDynamic stiffnesses per unit area s'i, in N/m³ (any 1-D array-like).

Returns: The total dynamic stiffness s'tot, in N/m³.

Raises

ExceptionWhen
ValueErrorIf layers is empty or holds a non-positive value.
covering_contact_stiffness(
youngs_modulus: float,
thickness: float,
*,
radius: float = 0.015,
) -> float

Contact stiffness of a soft floor covering (Eq. 3.98).

The covering is treated as a linear spring of area under the hammer, so only the ratio matters. Vigran’s Eq. (8.51) is the same expression written with the hammer area Sh, quoted there as 7 cm² against the 7.07 cm² of a 15 mm radius.

Parameters

NameDescription
youngs_modulusYoung’s modulus E of the covering, in Pa.
thicknessCovering thickness d, in m.
radiusContact radius r, in m (Default: 0,015).

Returns: The contact stiffness K, in N/m.

Raises

ExceptionWhen
ValueErrorIf an input is not positive and finite.
covering_improvement(
frequencies: ArrayLike,
covering_stiffness: float,
plate_stiffness: float,
impedance: float,
*,
mass: float = 0.5,
impact_rate: float = 10.0,
band: BandWidth = 'third',
) -> CoveringImprovementResult

Improvement of impact sound insulation by a soft covering (Eq. 4.114).

On a heavyweight base floor a soft covering has a negligible effect on the mass, bending stiffness and total loss factor of the slab, so it alters only the force the hammer injects. The improvement is then the ratio of the two force spectra, , computed here from tapping_force_spectrum with the covering’s contact stiffness (Eq. 3.98) and with the plate’s (Eq. 3.97).

The tapping machine excites a line spectrum, at multiples of the 10 Hz impact rate, so Eq. (4.114) is a statement about one Fourier component and the band value is the ratio of the band mean-square forces (Eq. 3.91), that is the sum over the lines that fall in the band. improvement is that band value and line_improvement is the per-line ratio. The distinction matters: the undamped model’s transform has exact nulls at odd multiples of fco, so a band centre that happens to land on one reads tens of dB high. With the 100 Hz cut-off of Hopkins’s covering No. 2, the line ratio at 500 Hz is 66.8 dB against a two-line estimate of 27.9 dB, while the band value is 33.3 dB. Hopkins notes below Fig. 4.64 that the troughs vanish once the covering’s internal damping is included and the spectrum is averaged into bands.

two_line is Hopkins’s design estimate: below the covering’s cut-off and a straight 12 dB/octave above it, that is . Real coverings behave as non-linear springs under the tapping machine’s high force and show two or three slopes between 5 and 22 dB/octave, so the model identifies the general features rather than replacing a measurement.

Parameters

NameDescription
frequenciesBand centre frequencies f, in Hz.
covering_stiffnessContact stiffness K of the covering, in N/m (covering_contact_stiffness).
plate_stiffnessContact stiffness K of the bare plate, in N/m (plate_contact_stiffness).
impedanceDriving-point impedance Zdp of the base floor, in N.s/m; unchanged by the covering.
massHammer mass m, in kg (Default: 0,5).
impact_rateImpact repetition rate fi, in Hz (Default: 10); it sets the spacing of the Fourier lines the bands average over.
band"third" or "octave".

Returns: A CoveringImprovementResult.

Raises

ExceptionWhen
ValueErrorIf an input is not positive and finite, or band is unknown.
CoveringImprovementResult(
frequencies: np.ndarray,
improvement: np.ndarray,
two_line: np.ndarray,
cut_off_frequency: float,
bare_cut_off_frequency: float,
lines: np.ndarray,
line_improvement: np.ndarray,
bare: TappingForceResult,
covered: TappingForceResult,
)

Predicted improvement ΔL of a soft floor covering (Hopkins 4.4.3.1).

Attributes

NameDescription
frequenciesBand centre frequencies f, in Hz.
improvementBand improvement ΔL, in dB: Eq. (4.114) evaluated over the tapping machine’s Fourier lines and summed in mean square across each band, .
two_lineThe two-line estimate, in dB: 0 below fco and 12 dB/octave (40 dB/decade) above it.
cut_off_frequencyCut-off frequency fco of the covered floor, in Hz.
bare_cut_off_frequencyCut-off frequency of the bare plate, in Hz.
linesFourier line frequencies of the tapping machine, in Hz, covering every band in frequencies.
line_improvementThe per-line ratio of Eq. (4.114) at lines, in dB. It carries the deep troughs at odd multiples of fco that Hopkins notes below Fig. 4.64, which are an artefact of the undamped model and disappear from improvement.
bareThe bare-plate TappingForceResult, at lines.
coveredThe TappingForceResult with the covering, at lines.
CoveringImprovementResult.plot(
ax: Axes | None = None,
*,
language: str = 'en',
**kwargs: Any,
) -> Axes

Plot ΔL(f) from the force ratio beside the two-line estimate.

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

double_floating_floor_resonances(
lower_stiffness: float,
lower_mass_per_area: float,
upper_stiffness: float,
upper_mass_per_area: float,
) -> tuple[float, float]

The two resonances of a double floating floor (Hopkins Eq. 4.125).

One floating floor on top of another over a heavyweight base is a mass-spring-mass-spring system with

subscript 1 being the lower floating floor (on the resilient layer that rests on the base) and 2 the upper one. The double floor avoids the single floor’s dip at fms, but the steep rise in ΔL only starts above the higher of the two resonances. For two identical floors the roots are , that is and .

Parameters

NameDescription
lower_stiffnessDynamic stiffness per unit area s1 of the lower resilient layer, in N/m³.
lower_mass_per_areaMass per unit area ρs1 of the lower floating floor, in kg/m².
upper_stiffnessDynamic stiffness per unit area s2 of the upper resilient layer, in N/m³.
upper_mass_per_areaMass per unit area ρs2 of the upper floating floor, in kg/m².

Returns: (lower, upper) resonance frequencies, in Hz.

Raises

ExceptionWhen
ValueErrorIf an input is not positive and finite.
floating_floor_improvement_spectrum(
frequencies: ArrayLike,
*,
resonance_frequency: float,
model: FloatingFloorModel = 'en12354',
limiting_frequency: float | None = None,
mass_per_area: float | None = None,
dynamic_stiffness: float | None = None,
) -> FloatingFloorImprovementResult

Improvement ΔL(f) of a floating floor on a heavyweight base floor.

Three laws share the same anchor, the mass-spring resonance fo of the walking surface on the resilient layer (floating_floor_resonance_frequency), and all give at and below it (in the band containing fo, ΔL is in practice between −5 dB and 0 dB):

  • "cremer": , Cremer’s 1952 result for two infinite, locally reacting plates coupled by a spring layer (Hopkins Eq. 4.119, Vigran Eq. 8.40), i.e. 12 dB per octave. It holds for constructions with high internal damping, such as asphalt screeds, and is the branch ISO 12354-2 Formula (C.3) prescribes for asphalt and dry floating floors.
  • "en12354" (default): , the empirical law of ISO 12354-2 Formula (C.1) for sand-cement and calcium-sulfate screeds (Hopkins Eq. 4.124). Sand-cement screeds have a low internal loss factor and act as finite plates with a reverberant bending field, for which the 40 lg law overestimates ΔL.
  • "cremer_hammer": , the 40 lg law with the reduction in power input above the limiting frequency of the hammer’s own impedance (Hopkins Eq. 4.123, Vigran Eq. 8.48). A lightweight walking surface such as chipboard needs it, and tends to 18 dB per octave well above flimit.

The laws are stated as valid above fo, and Cremer’s derivation is reported to hold in .

Parameters

NameDescription
frequenciesBand centre frequencies f, in Hz.
resonance_frequencyMass-spring resonance fo, in Hz.
model"en12354", "cremer" or "cremer_hammer".
limiting_frequencyLimiting frequency flimit, in Hz; required by "cremer_hammer" and ignored otherwise (hammer_limiting_frequency).
mass_per_areaOptional m' of the floating floor, in kg/m².
dynamic_stiffnessOptional s' of the resilient layer, in N/m³; supplied together with mass_per_area it adds ΔLw to the result, from Formula (C.4) for "en12354" (screeds) and Formula (C.5) for the other two models (asphalt and dry floating floors).

Returns: A FloatingFloorImprovementResult.

Raises

ExceptionWhen
ValueErrorIf an input is not positive and finite, model is unknown, or "cremer_hammer" is used without a limiting frequency.
floating_floor_resonance_frequency(
dynamic_stiffness: float,
mass_per_area: float,
) -> float

Resonance of a floating floor (Formula C.2).

ISO 12354-2:2017 Formula (C.2), with s' the EN 29052-1 dynamic stiffness per unit area of the resilient layer measured without pre-load and m' the mass per unit area of the floating floor. The printed constant 160 rounds the exact mass-spring value that phonometry.materials.natural_frequency applies, so the two differ by 0.5 %; this function reproduces the standard, whose own Annex G example prints Hz for MN/m³, kg/m².

Parameters

NameDescription
dynamic_stiffnessDynamic stiffness per unit area s', in N/m³ (i.e. 8e6 for the 8 MN/m³ of the standard’s example).
mass_per_areaMass per unit area m' of the floating floor, in kg/m².

Returns: The resonance frequency fo, in Hz.

Raises

ExceptionWhen
ValueErrorIf an input is not positive and finite.
FloatingFloorImprovementResult(
frequencies: np.ndarray,
improvement: np.ndarray,
resonance_frequency: float,
model: str,
slope: float,
limiting_frequency: float | None = None,
delta_lw: float | None = None,
)

Predicted improvement ΔL(f) of a floating floor.

Attributes

NameDescription
frequenciesBand centre frequencies f, in Hz.
improvementImprovement ΔL per band, in dB (0 at and below resonance_frequency).
resonance_frequencyMass-spring resonance fo, in Hz.
model"en12354", "cremer" or "cremer_hammer".
slopeSlope of the law, in dB per decade (30 or 40).
limiting_frequencyLimiting frequency flimit of the hammer term, in Hz, or None when the term is not applied.
delta_lwWeighted improvement ΔLw, in dB, or None when the floor data were not supplied: Formula (C.4) for the "en12354" model, Formula (C.5) for the other two.
FloatingFloorImprovementResult.plot(
ax: Axes | None = None,
*,
language: str = 'en',
**kwargs: Any,
) -> Axes

Plot ΔL(f) with the resonance and the asymptotic slope marked.

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

force_pulse(
time: ArrayLike,
contact_stiffness: float,
impedance: float,
*,
mass: float = 0.5,
impact_velocity: float | None = None,
) -> np.ndarray

Force pulse F1(t) of a single hammer impact (Eqs. 3.95/3.96).

Lindblad’s solution of the mass-spring-dashpot of Hopkins Fig. 3.28, the hammer mass m on the contact stiffness K in series with the floor’s driving-point impedance Zdp. For an over-critical oscillation () the pulse decays to zero without changing sign (Eq. 3.95); for an under-critical one it is a decaying sinusoid (Eq. 3.96) whose first positive lobe is the impact proper. Hopkins’s rule is stated in terms of the sign of the force rather than of any mechanism: “only the initial force pulse that has zero or positive force values is used to determine the force spectrum, with all subsequent values of F1(t) due to the oscillations set to zero before taking the Fourier transform”, the hammer having rebounded from the plate. That truncation is applied here, so the under-critical pulse is returned as zero beyond its first zero crossing at ; it is the same truncation tapping_force_spectrum transforms, so integrating this pulse over reproduces that spectrum.

The over-critical pulse has no such cut and decays for all t; it is evaluated in a form that stays finite over the whole 0,1 s between impacts rather than one that overflows partway through it.

Parameters

NameDescription
timeTime t since the impact, in s (scalar or array, ).
contact_stiffnessContact stiffness K, in N/m.
impedanceDriving-point impedance Zdp, in N.s/m.
massHammer mass m, in kg (Default: 0,5).
impact_velocityImpact velocity vo, in m/s (Default: hammer_impact_velocity).

Returns: The force F1(t), in N, with the same shape as time; never negative.

Raises

ExceptionWhen
ValueErrorIf an input is not positive and finite, or time contains a negative value.
hammer_impact_velocity(
drop_height: float = 0.04,
*,
gravity: float = 9.81,
) -> float

Hammer velocity at impact (Hopkins Eq. 3.85).

The ISO tapping machine’s nominal 40 mm drop gives m/s.

Parameters

NameDescription
drop_heightDrop height h, in m (Default: 0,04).
gravityAcceleration of free fall g, in m/s² (Default: 9,81).

Returns: The impact velocity vo, in m/s.

Raises

ExceptionWhen
ValueErrorIf an input is not positive and finite.
hammer_limiting_frequency(impedance: float, *, mass: float = 0.5) -> float

Limiting frequency (Hopkins Eq. 3.106).

The frequency at which the floor’s driving-point impedance equals the magnitude of the hammer’s own mass impedance ; above it the hammer mass, not the floor, limits the injected power, and the power input stops rising at 3 dB per doubling of frequency. Vigran’s Eq. (8.48) writes the same frequency as .

Parameters

NameDescription
impedanceDriving-point impedance Zdp, in N.s/m.
massHammer mass m, in kg (Default: 0,5).

Returns: The limiting frequency flimit, in Hz.

Raises

ExceptionWhen
ValueErrorIf an input is not positive and finite.
plate_contact_stiffness(
youngs_modulus: float,
*,
poisson_ratio: float = 0.2,
radius: float = 0.015,
) -> float

Contact stiffness of a plate material (Eq. 3.97).

The stiffness the hammer deforms when it lands on the bare walking surface (Timoshenko and Goodier’s Hertzian contact for a flat circular punch), as opposed to covering_contact_stiffness for a soft covering laid on top of it.

Parameters

NameDescription
youngs_modulusYoung’s modulus E of the plate, in Pa.
poisson_ratioPoisson’s ratio ν of the plate (Default: 0,2, the value Hopkins Table A2 estimates for concrete and masonry).
radiusContact radius r, in m (Default: 0,015).

Returns: The contact stiffness K, in N/m.

Raises

ExceptionWhen
ValueErrorIf an input is not positive and finite, or .
resilient_mount_improvement(
frequencies: ArrayLike,
*,
impedance: float,
mass_per_area: float,
loss_factor: ArrayLike,
mount_stiffness: float,
mount_density: float,
) -> np.ndarray

Improvement of a floating floor on discrete resilient mounts (Vér).

Vér’s two-subsystem SEA model of a walking surface carrying a reverberant bending-wave field, connected to a heavyweight base floor by N mounts per unit area of stiffness k each, with all transmission through the mounts and none through the cavity. Hopkins Eq. (4.118) writes it as

where k is the dynamic stiffness of each mount, N the number of mounts and S1 the area of the walking surface. Since for (Eq. 2.190), the same expression reads , which is the form evaluated here: this function takes the mount density N/S1, not the count.

Vigran’s Eq. (8.45) is a sum of three terms, , and with . Only the third of them is the model implemented here, and that term is algebraically identical to Hopkins Eq. (4.118); the first two are the low-frequency floor, negligible once the third dominates, which is the regime Vigran states the 9 dB per octave slope for. The dominant-term form used here therefore rises at 30 dB per decade (9 dB per octave), against the 40 dB per decade of a continuous resilient layer: fewer mounts, a thicker walking surface or more internal damping all raise ΔL.

Vigran’s simplified Eq. (8.46) inserts Z1 into that third term and prints the coefficient as , which is the same number as the the substitution gives; the two forms agree.

Parameters

NameDescription
frequenciesBand centre frequencies f, in Hz.
impedanceDriving-point impedance Zdp1 of the walking surface, in N.s/m.
mass_per_areaMass per unit area ρs1 of the walking surface, in kg/m².
loss_factorTotal loss factor η1 of the walking surface (scalar or per band).
mount_stiffnessDynamic stiffness k of one mount, in N/m.
mount_densityNumber of mounts per unit area N/S1, in 1/m² (Vigran’s N, which is already a density).

Returns: The improvement ΔL per band, in dB, and 0 dB at and below fo.

Raises

ExceptionWhen
ValueErrorIf an input is not positive and finite.
short_pulse_mean_square_force(
frequencies: ArrayLike,
*,
band: BandWidth = 'third',
) -> np.ndarray

Band mean-square force of a short impact (Eq. 3.92).

The limiting case in which the impact is short enough that the hammer’s momentum alone sets the force: combining (Eq. 3.90) with (Eq. 3.91) gives 3.925 B, printed as 3.9 B. Hopkins finds it adequate for bare concrete slabs of at least 100 mm.

Parameters

NameDescription
frequenciesBand centre frequencies f, in Hz.
band"third" () or "octave" ().

Returns: The band mean-square force F²rms, in N².

Raises

ExceptionWhen
ValueErrorIf an input is not positive and finite, or band is unknown.
tapping_cut_off_frequency(
contact_stiffness: float,
impedance: float,
*,
mass: float = 0.5,
) -> float

Cut-off frequency fco of the force spectrum (Eqs. 3.101/3.102).

Above fco the tapping machine’s force spectrum is no longer flat and the force falls away. For an under-critical oscillation (, the case of a concrete slab with or without a soft covering) it is the undamped mass-spring value (Eq. 3.102); for an over-critical one (a lightweight walking surface) it is the lower root (Eq. 3.101).

Parameters

NameDescription
contact_stiffnessContact stiffness K, in N/m (see plate_contact_stiffness / covering_contact_stiffness).
impedanceDriving-point impedance Zdp of the floor, in N.s/m (for a homogeneous plate, phonometry.vibration.infinite_plate_impedance).
massHammer mass m, in kg (Default: 0,5).

Returns: The cut-off frequency fco, in Hz.

Raises

ExceptionWhen
ValueErrorIf an input is not positive and finite.

Constant (float).

TAPPING_DROP_HEIGHT = 0.04
tapping_force_spectrum(
frequencies: ArrayLike,
contact_stiffness: float,
impedance: float,
*,
mass: float = 0.5,
impact_rate: float = 10.0,
impact_velocity: float | None = None,
band: BandWidth = 'third',
) -> TappingForceResult

Force spectrum of the ISO tapping machine on a floor (Hopkins 3.6.3.1).

The Fourier transform of the single-impact force pulse (force_pulse), scaled by the impact repetition rate. Writing and , the transform of Eqs. (3.95)/(3.96) is the same rational function in both critical cases, , multiplied for the under-critical case by because only the first positive lobe (of duration ) is transformed. That truncation is what produces the deep troughs at , that Hopkins notes below Fig. 4.64; they vanish once the covering’s internal damping is included and the spectrum is averaged into bands.

The transform is normalised so that the low-frequency asymptote is for an over-critical impact (no rebound) and for a lightly damped under-critical one (full rebound), the two limits of Eqs. (3.99)/(3.100).

Parameters

NameDescription
frequenciesBand centre frequencies f, in Hz.
contact_stiffnessContact stiffness K, in N/m.
impedanceDriving-point impedance Zdp of the floor, in N.s/m.
massHammer mass m, in kg (Default: 0,5).
impact_rateImpact repetition rate fi, in Hz (Default: 10).
impact_velocityImpact velocity vo, in m/s (Default: hammer_impact_velocity).
band"third" or "octave", the band width of Eq. (3.91).

Returns: A TappingForceResult.

Raises

ExceptionWhen
ValueErrorIf an input is not positive and finite, or band is unknown.

Constant (float).

TAPPING_HAMMER_MASS = 0.5

Constant (float).

TAPPING_HAMMER_RADIUS = 0.015

Constant (float).

TAPPING_IMPACT_RATE = 10.0
TappingForceResult(
frequencies: np.ndarray,
peak_force: np.ndarray,
mean_square_force: np.ndarray,
power_input: np.ndarray,
cut_off_frequency: float,
limiting_frequency: float,
over_critical: bool,
contact_stiffness: float,
impedance: float,
lower_limit: float,
upper_limit: float,
band: str = 'third',
)

Force spectrum of the ISO tapping machine on one walking surface.

Attributes

NameDescription
frequenciesBand centre frequencies f, in Hz.
peak_forceMagnitude of the Fourier force component |Fn|, in N (Hopkins Fig. 3.32).
mean_square_forceBand mean-square force F²rms, in N² (Eq. 3.91).
power_inputPower injected into the floor , in W (Eq. 3.103).
cut_off_frequencyCut-off frequency fco, in Hz (Eqs. 3.101/3.102).
limiting_frequencyLimiting frequency flimit, in Hz (Eq. 3.106).
over_criticalTrue when , i.e. the hammer does not rebound.
contact_stiffnessContact stiffness K used, in N/m.
impedanceDriving-point impedance Zdp used, in N.s/m.
lower_limitLow-frequency asymptote , in N (Eq. 3.99).
upper_limitLow-frequency asymptote , in N (Eq. 3.100); 6 dB above lower_limit in mean square.
bandBand width used for mean_square_force.
TappingForceResult.plot(
ax: Axes | None = None,
*,
language: str = 'en',
**kwargs: Any,
) -> Axes

Plot the force spectrum |Fn| with its asymptotes and fco.

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

property

Power input level , in dB (Hopkins Fig. 3.33).

weighted_floating_floor_improvement(
mass_per_area: float,
dynamic_stiffness: float,
*,
floor: FloorType = 'screed',
) -> float

Weighted improvement ΔLw of a floating floor (Formulae C.4/C.5).

The single number that feeds the simplified prediction (phonometry.predicted_impact_insulation), read directly from the floating floor’s mass per unit area and the resilient layer’s dynamic stiffness. ISO 12354-2:2017 gives it as the two nomograms of Figures C.1 and C.2 and prints the fits:

  • floor="screed" (sand-cement or calcium-sulfate screeds, Formula C.4): ;
  • floor="asphalt" (asphalt or dry floating floors, Formula C.5): .

Parameters

NameDescription
mass_per_areaMass per unit area m' of the floating floor, in kg/m².
dynamic_stiffnessDynamic stiffness per unit area s', in N/m³.
floor"screed" (Formula C.4) or "asphalt" (Formula C.5).

Returns: The weighted improvement ΔLw, in dB.

Raises

ExceptionWhen
ValueErrorIf an input is not positive and finite, or floor is unknown.