Skip to content

Sound power from surface vibration (ISO/TS 7849)

Standards: ISO/TS 7849Key references: Cremer et al. 2005

The airborne sound power a machine radiates through the structure-borne vibration of its outer surface can be estimated from the surface vibratory velocity and a radiation factor ε (the radiation efficiency), without an acoustic measurement. The radiated power is (ISO/TS 7849-1, Formula 6)

with Z_c the characteristic impedance of air, ⟨v²⟩ the mean-square vibratory velocity over the radiating area S. Expressed in levels (velocity level re v₀ = 5·10⁻⁸ m/s), the A-weighted sound power level is (Formula 12 / 15)

where S₀ = 1 m², the normalized impedance Z_{c,n} = 411 N·s/m³ and the reference Z_{c,0} = 400 N·s/m³ give the fixed 10 lg(411/400) = 0.118 dB term. This module feeds the structure-borne source and building prediction standards (ISO 9611, EN 15657, EN 12354-5).

Radiated sound power level per octave band, comparing the ISO/TS 7849-1 upper limit (radiation factor of one) with the ISO/TS 7849-2 engineering value (measured radiation factor)Radiated sound power level per octave band, comparing the ISO/TS 7849-1 upper limit (radiation factor of one) with the ISO/TS 7849-2 engineering value (measured radiation factor)
Show the code for this figure
import matplotlib.pyplot as plt
import numpy as np
from phonometry import emission
# Surface velocity levels and a measured radiation factor per octave band.
bands = np.array([125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0])
lv = np.array([78.0, 82.0, 85.0, 83.0, 79.0, 74.0])
eps = np.array([0.20, 0.45, 0.75, 0.95, 1.00, 1.00])
lw_max = emission.radiated_sound_power_level(lv, 1.6) # Part 1, eps = 1
lw_eng = emission.radiated_sound_power_level(lv, 1.6, radiation_factor=eps) # Part 2
# One line — the LW(f) spectrum of one determination as a result object:
res = emission.sound_power_from_vibration(lv, area=1.6, radiation_factor=eps,
frequencies=bands)
res.plot()
plt.show()
# By hand, comparing the two parts:
x = np.arange(bands.size)
fig, ax = plt.subplots()
ax.bar(x - 0.2, lw_max, width=0.4, label="Part 1 upper limit ($\\varepsilon$ = 1)")
ax.bar(x + 0.2, lw_eng, width=0.4, label="Part 2 engineering ($\\varepsilon$ measured)")
ax.set_xticks(x, [f"{b:g}" for b in bands])
ax.set(xlabel="Frequency [Hz]", ylabel="Sound power level $L_W$ [dB re 1 pW]")
ax.legend()
plt.show()

The two parts differ only in the radiation factor. Part 1 (survey) assumes ε = 1 and yields the upper limit L_W,max, needing only the velocity level and the area. Part 2 (engineering) applies a frequency-band radiation factor εⱼ determined (per ISO 9614) as εⱼ = Pⱼ/(Z_{c,n}·⟨vⱼ²⟩·S).

import numpy as np
from phonometry import emission
bands = np.array([250.0, 500.0, 1000.0, 2000.0])
lv = np.array([82.0, 85.0, 83.0, 79.0]) # mean velocity level per band [dB]
# Part 1 upper limit (epsilon = 1):
upper = emission.sound_power_from_vibration(lv, area=1.6, frequencies=bands)
print(round(upper.total_level, 1)) # e.g. 89.4 dB re 1 pW
# Part 2 engineering value with a measured radiation factor:
eps = np.array([0.45, 0.75, 0.95, 1.00])
eng = emission.sound_power_from_vibration(lv, area=1.6, radiation_factor=eps, frequencies=bands)
print(np.round(eng.sound_power_level, 1)) # per-band L_W
eng.plot() # the LW(f) spectrum, as in the figure above (needs matplotlib)

2. Velocity level, calibration and the radiation factor

Section titled “2. Velocity level, calibration and the radiation factor”

The velocity level is L_v = 20·lg(v/v₀) (Formula 3); a sinusoidal calibration acceleration converts as L_v = 20·lg(â/(2πf·v₀·√2)) (Formula 8). The radiation factor comes from an independently measured power:

from phonometry import emission
# The standard's worked calibration EXAMPLE: 9.81 m/s^2 at 100 Hz.
print(round(float(emission.velocity_level_from_acceleration(9.81, 100.0)), 1)) # 106.9 dB
# Radiation factor from a measured power (ISO 9614): eps = P / (Zc <v^2> S).
eps = emission.radiation_factor(3.0e-4, area=2.0, mean_square_velocity=(1e-3)**2)
print(round(float(eps), 3)) # 0.365

Surface velocity levels from several positions are combined with the energetic mean mean_velocity_level (Formula 10) or its area-weighted form (Formula 11), and the correction extraneous_velocity_correction removes extraneous vibration per Table 2.

3. When the radiation-factor assumption breaks

Section titled “3. When the radiation-factor assumption breaks”

The whole method stands on one substitution: replacing the acoustic measurement by ε. The Part 1 value ε = 1 is close to the true radiation factor only above the critical (coincidence) frequency of plate-like parts, where bending waves travel faster than sound and the surface radiates like a piston. Below coincidence, adjacent zones of the plate move in antiphase and their radiation largely cancels: ε drops far below one and falls quickly with decreasing frequency, so the survey method can overstate the low-frequency bands of a large thin casing by 10 dB and more. The same cancellation makes small sources radiate poorly (the acoustic short circuit around an unbaffled panel). Two further assumptions are easy to violate in the field:

  • The measured vibration must be the machine’s own. Vibration fed in from neighbouring machinery inflates ⟨v²⟩; Table 2 prescribes the source-off check and extraneous_velocity_correction applies it.
  • The surface must be the dominant radiator. Airborne sound from openings, intakes or internal sources that bypasses the measured casing is invisible to a velocity survey; the method characterises the structure-borne part only.

Part 2 exists exactly for the radiation-factor problem: it replaces the fixed ε = 1 with a band-by-band εⱼ determined from one reference measurement of the radiated power (ISO 9614 intensity), after which the velocity survey can be repeated cheaply on nominally identical machines.

A determination ends as a document. The VibrationSoundPowerResult exposes a .report() method that writes a one-page PDF fiche laid out like a sound-power test sheet: the standard-basis line naming the applied method (the ISO/TS 7849-1 survey method with a fixed radiation factor ε = 1, or the ISO/TS 7849-2 engineering method with a determined radiation factor), an optional metadata header (client, machine/source, test environment, instrumentation, climate, date), a per-band table (nominal octave/one-third-octave frequency, the surface vibratory velocity level and the band sound-power level ), the sound-power spectrum with a nominal band axis, and a boxed A-weighted sound power level (dB re 1 pW) with the total , the radiating area and the applied method alongside.

The metadata is supplied through a ReportMetadata, whose applicable fields here are the machine/source description (specimen), the test environment (test_room), the client, the instrumentation, the temperature, relative humidity and ambient pressure, the date of test (test_date) and the footer identity (laboratory, operator, report_id, notes); the radiating area comes from the result itself and is printed in the result box, together with the sound-power relation in the basis strip. Supplying requirement adds a PASS/FAIL verdict against a declared A-weighted sound-power limit (a sound-power emission is a quantity where less is better, so the source passes at or below the limit). verbose=True adds the radiation factor column to the table. language="es" renders the Spanish fiche with comma decimals.

import numpy as np
from phonometry import ReportMetadata, emission
freqs = np.array([125, 250, 500, 1000, 2000, 4000], float)
lv = np.array([78.0, 82, 85, 83, 79, 74]) # surface velocity level [dB]
eps = np.array([0.20, 0.45, 0.75, 0.95, 1.00, 1.00]) # measured radiation factor
res = emission.sound_power_from_vibration(
lv, area=1.6, radiation_factor=eps, frequencies=freqs,
)
res.report(
"vibration_sound_power.pdf",
metadata=ReportMetadata(
client="Example manufacturing plant",
specimen="Gearbox casing (steel panel)",
test_room="Machine hall (source vibration survey)",
instrumentation="Piezoelectric accelerometer (ISO 16063-21 calibration), s/n 0042",
laboratory="Phonometry reference example",
report_id="EXAMPLE-7849",
requirement=90.0,
),
) # LWA = 88.7 dB(A) re 1 pW -> declared limit 90 dB(A): PASS

The example fiche is regenerated with make reports and kept rendered in the repository; click the preview to open the PDF.

ISO/TS 7849 sound power from vibration example report (PDF)

One-page ISO/TS 7849-2 sound-power-from-vibration determination fiche: a header with the client, the machine/source, the machine-hall test environment and the accelerometer and climate, the octave-band table (125 Hz to 4 kHz) of surface vibratory velocity levels Lv and radiated band sound-power levels LW, the sound-power spectrum LW(f) with a nominal band axis, the boxed A-weighted sound power level LWA = 88.7 dB(A) re 1 pW with the total LW = 90.0 dB, the radiating area S = 1.60 m2 and the engineering method, and a PASS verdict against the declared 90 dB(A) limit, closed by a basis strip stating the LW = Lv + 10 lg(S/S0) + 10 lg(epsilon) + 10 lg(411/400) relation with its fixed impedance term and the radiation-factor model.

Download the report (PDF)

Sound power from vibration fiche (VibrationSoundPowerResult.report), an ISO/TS 7849-2 engineering-method determination with the measured radiation factor and the boxed LWA.

Covered. ISO/TS 7849-1:2009 and ISO/TS 7849-2:2009 as far as they define the calculation of sound power from vibration: the radiated power P = Z_c⟨v²⟩Sε (Formula 6), the velocity level and its calibration conversion (Formulae 3, 8) run by velocity_level and velocity_level_from_acceleration, the surface mean (Formulae 10/11) run by mean_velocity_level, the extraneous-vibration correction of Table 2 run by extraneous_velocity_correction, and the sound power level with the fixed impedance term (Formula 12, Part 1) or a measured per-band radiation factor (Formula 15, Part 2) run by radiated_sound_power_level and sound_power_from_vibration. radiation_factor implements Part 2’s single-machine Formula 8, converting an independently measured sound power into ε.

Not covered. The measurement clauses of both parts (instrumentation, source installation, the number and mounting of measurement positions, environmental conditions: clauses 5 to 7) and their measurement-uncertainty clauses and informative annexes are not implemented: they are laboratory practice this guide assumes. Part 2’s clause 8 also asks for the radiation factor of a machine batch or family, averaging εⱼ over several machines and its standard deviation (Formulae 9, 10); only the single-machine Formula 8 is implemented, so pass an already-averaged ε for a family determination. The sound power that feeds radiation_factor must come from an ISO 9614 intensity measurement, covered separately in the sound intensity guide.

Created and maintained by· GitHub· PyPI· All projects