Open an interactive online version by clicking the badge Binder badge or download the notebook.

Building Acoustics: Sound insulation predictions#

Cedric Van hoorickx
Eindhoven University of Technology, Building Acoustics Group

Contact: c.m.l.van.hoorickx@tue.nl

This assignment is part of the course “Architectural Acoustics” at the Eindhoven University of Technology. It is designed to help in understanding the concept predicting airborne sound insulation.

Duration: 25 Minutes

Requirements: Knowledge about the prediction of airborne sound insulation for single and double walls. Familiarity with Python and the used libraries is helpful.

Acknowledgement: I acknowledge the contribution of Michail Evangelos Terzakis, whose work inspired several examples.

References

    1. Kuttruff, Acoustics: an introduction.

Dependencies

If you are running this notebook locally or in Google Colab, make sure to install the required dependencies. You can do this by executing the following command in an arbitrary code cell:

!pip install numpy matplotlib

[ ]:
import numpy as np
import matplotlib.pyplot as plt

Propagation of traffic noise into a residential flat#

An old residential flat has a facade consisting of a single window pane with a thickness \(d = 20\,\mathrm{mm}\), a density of \(2500\,\mathrm{kg/m^3}\) and a bending stiffness \(3.33 \cdot 10^4\,\mathrm{N m^2}\). A road is situated parallel to the facade at a distance of \(L = 20\,\mathrm{m}\) from the center of the facade. The car produces its highest noise level at 1000 Hz.

Task: At what car position r along the facade (meaning at what parallel distance from the facade’s center) is this noise most audible inside the flat?

[ ]:
ca = 340 # m/s
Z0 = 400 # kg/m²s

d = 0.02 # m
B = 3.33e4 # Nm²
rho = 2500 # kg/m³
L = 20 # m

ft = 1000 # Hz

# Calculate the car position r
# YOUR CODE HERE
raise NotImplementedError()

print(f"The distance between the source and the receiver at the coincidence frequency equals: {r} m.")

Task: Calculate and plot the sound reduction index RA of the glass as a function of frequency f for sound arriving from the car position you determined.

[ ]:
f = np.logspace(np.log10(100), np.log10(3150), 1000) # Hz

# Calculate the sound reduction index RA
# YOUR CODE HERE
raise NotImplementedError()

f3 = np.array([100, 125, 160, 200, 250, 315, 400, 500, 630, 800, 1000, 1250, 1600, 2000, 2500, 3150]) # Hz
f1 = f3[1::3] # Hz

plt.figure(figsize=(8, 5))
plt.plot(f, RA, linewidth=2)
plt.xscale("log")
plt.minorticks_off()
plt.xticks(f3)
plt.gca().set_xticklabels(
    [str(x) if x in f1 else "" for x in f3]
)
plt.xlim(100, 3150)
plt.ylim(0, 80)
plt.xlabel('Frequency [Hz]')
plt.ylabel('Sound reduction index [dB]')
plt.grid(True)

plt.show()

Task: What should be the glass thickness dnew to ensure the pane’s critical frequency remains above 1000 Hz?

[ ]:
# Calculate the required glass thickness dnew
# YOUR CODE HERE
raise NotImplementedError()

print(f"The required glass thickness equals: {dnew} m.")

License notice#

This notebook © 2026 by Cedric Van hoorickx is licensed under CC BY 4.0

Watermark#

The following watermark might help others to install specific package versions that might be required to run the notebook. Please give at least the versions of Python, IPython, numpy , and scipy, major third party packagers (e.g., pytorch), and all used pyfar packages.

[ ]:
%load_ext watermark
%watermark -v -m -p numpy,scipy,pyfar,sofar,nbgrader,watermark