3.2. Spherical Waves and Sound Radiation#
Introduction#
Spherical waves describe the propagation of sound from a point source in an isotropic medium. Unlike plane waves, spherical waves expand outward in all directions, leading to a reduction in intensity due to geometric spreading. Understanding spherical waves is crucial in modeling sound radiation from sources like musical instruments, loudspeakers, and environmental noise sources.
Mathematical Representation of Spherical Waves#
A spherical wave emanating from a point source can be expressed as:
where:
\(A\) is a scaling factor representing the source strength,
\(r\) is the radial distance from the source,
\(\omega = 2\pi f\) is the angular frequency,
\(k = \frac{\omega}{c}\) is the wave number,
\(c\) is the speed of sound.
The \(1/r\) term accounts for the geometric spreading, causing the amplitude to decrease with distance.
Sound Radiation from a Breathing Sphere#
A breathing sphere is an idealized acoustic source that expands and contracts uniformly, generating spherical waves. The total power radiated by a breathing sphere is given by:
where:
\(S = 4\pi a^2\) is the surface area of the sphere,
\(\rho\) is the air density,
\(c\) is the speed of sound,
\(k = \frac{2\pi f}{c} a\) is the non-dimensional wave number, a is the sphere radius,
\(v_a\) is the velocity amplitude of the sphere surface.
This equation highlights how radiation efficiency varies with frequency and sphere size.
Interactive Visualization of Sound Radiation#
This interactive Python simulation allows users to explore how the power radiated by a breathing sphere varies with:
Radius of the sphere (\(a\) in m)
Speed of sound (\(c\) in m/s)
Code Explanation#
Radiation Power Calculation:
Computes the power radiated by a breathing sphere across a range of frequencies.
Visualization:
The plot displays radiated power as a function of frequency on a logarithmic scale.
Users can observe resonance effects and efficiency variations.
Interactivity:
Users adjust \(a\) and \(c\) to explore changes in power radiation.
The graph dynamically updates based on input parameters.
Interpreting the Graph#
Small \(a\) Values: Lower overall power radiation due to reduced surface area.
Higher \(a\) Values: Greater radiation efficiency at lower frequencies.
Changes in Speed of Sound (\(c\)): Affects the wave number and radiation characteristics.
This simulation provides insights into spherical sound radiation and its dependence on frequency and source geometry.
import numpy as np
import matplotlib.pyplot as plt
import ipywidgets as widgets
from ipywidgets import interact
def breath_sphere(a=0.1, c=340):
"""
Interactive visualization of sound power radiated by a breathing sphere.
Parameters:
a : float
Radius of the breathing sphere (m).
c : float
Speed of sound (m/s), user-adjustable.
"""
f = np.arange(20, 16001, 1) # Frequency vector (Hz)
vA = 1 # Velocity amplitude
S = 4 * np.pi * a**2 # Surface area of the breathing sphere
ka2 = (2 * np.pi * f / c * a) ** 2
rho = 1.2 # Air density (kg/m³).
P = S * rho * c * ka2 / (1 + ka2) * (1 / 2) * vA # Radiated power
# Plot the radiated power
plt.figure(figsize=(8, 5))
plt.semilogx(f, P, "k", linewidth=2)
plt.xlabel("f (Hz)", fontsize=14)
plt.ylabel("P (W)", fontsize=14)
plt.title(f"Breathing Sphere (a = {a} m, c = {c} m/s)", fontsize=16)
plt.grid(True)
plt.xlim(20, 16000)
plt.ylim(0, np.max(P))
plt.show()
# Define custom style for the slider
style = {"description_width": "180px"}
# Create interactive widgets
a_slider = widgets.FloatSlider(
min=0.1, max=0.5, step=0.01, value=0.1, description="Radius of sphere [m]", style=style
)
c_input = widgets.FloatText(value=340, description="Speed of sound [m/s]", style=style)
interact(breath_sphere, a=a_slider, c=c_input)
References#
[Kut06]