sound
graphics
math
Walk-on-Sphere for Helmholtz
Nguyen Minh Hieu
10/28/2023

note: for all details of notations, please refer to the end of the post.

Introduction

To produce physical sound effect, it typically requires two separate processes: find object’s eigenmode, and radiation. This blog will mainly focus on the later stage. As radiation typically solved via Boundary Element Method (BEM), solving for object with low frequency becomes very expensive very quick as the resolution of the frequency closely related with the resolution of the meshing of object. I’m interested in finding alternative method to quickly compute radiation causes by an object modal to the listener. Here I will introduce the wave equation:

(Δ1c2δt2)u(x)=0\left( \Delta - \frac{1}{c^2}\delta^2_t \right) u(x) = 0

This is a time-domain description of wave. It’s derived from the linear elastic deformation. At first, I’m interested in trying to apply Monte Carlo methods such as walk-on-sphere to solve such equation. However, upon further research, it turns out that the wave equation on time domain has no stochastic representation and thus, can’t be solved via the walk-on-sphere algorithm. However, it’s frequency variant, Helmholtz equation do:

(Δ+w2c2)u(x)=0\left( \Delta + \frac{w^2}{c^2} \right) u(x) = 0

We have the stochastic representation of such equation as:

u(x)=E[eλτf(Wτ)]u(x) = \mathbb{E}\left[ e^{-\lambda \tau} f(W_\tau) \right]

However, in order to solve this equation with having to run the full simulation of brownian motion, we have a few options: Duffin Walk-on-Sphere, Weighted-Walk-on-Sphere, and Walk-on-Moving-Sphere. I will briefly explain them here.

Duffin WoS

Following the Duffin Correspondence, we can map the Helmholtz equation to a Laplace equation in a transformed coordinate system. Let there be g(λ,):RRg(\lambda, \cdot): \mathbb{R} \mapsto \mathbb{R}:

g(λ;x)=cosh(2λ,x)g(\lambda; x') = cosh (\sqrt{-2\lambda}, x')

where xRx' \in \mathbb{R}. We perform the transform by mapping the original domain DD to the extended domain D×RD\times \mathbb{R}. That is, we concatenate to the original coordinate a real number xx' to get the new coordinate xˉ=(x,x)\bar{x} = (x, x').

Weighted WoS