Sparse Wavenumber Analysis (SWA) Repository

Sparse Wavenumber Analysis (SWA) Repository

May 16, 2025 Code & Resources 0

Summary

Sparse Wavenumber Analysis (SWA) is a signal processing algorithm designed to extract high-resolution wavenumber information from spatial wavefield measurements—especially when that data is sparse, noisy, or irregularly sampled. Developed by Dr. Joel B. Harley and collaborators, SWA enables researchers and engineers to analyze wave propagation with unprecedented clarity, even in situations where traditional Fourier-based methods fall short.

This CodeOcean capsule contains a complete, reproducible implementation of the SWA algorithm, based on the foundational work in:

  • Joel B. Harley, José M. F. Moura; Sparse recovery of the multimodal and dispersive characteristics of Lamb waves. J. Acoust. Soc. Am. 1 May 2013; 133 (5): 2732–2745. https://doi.org/10.1121/1.4799805.

🌊 What Does SWA Do?

Wavenumber analysis describes how energy propagates through a medium as a function of spatial frequency. Traditional methods (like the 2D spatial Fourier transform) require uniform, dense sampling, which is often impractical in real-world sensing scenarios. SWA, by contrast, reconstructs the wavenumber spectrum using sparse recovery techniques, allowing meaningful analysis from far fewer measurements.


🧠 Key Ideas

At the heart of SWA is the assumption that the wavefield can be modeled as a sparse superposition of plane waves. Mathematically, the spatial wavefield u(\mathbf{r}) is expressed as:

    \[ u(\mathbf{r}) \approx \sum_{n=1}^N a_n e^{j \mathbf{k}_n \cdot \mathbf{r}} \]

Here:

  • \mathbf{r} \in \mathbb{R}^2 is a spatial coordinate,
  • \mathbf{k}_n​ is a candidate wavenumber vector,
  • ana_nan​ is the complex amplitude,
  • and only a few ana_nan​’s are nonzero — i.e., the spectrum is sparse.

Given a measurement vector \mathbf{y} of the wavefield at limited spatial locations, the SWA problem becomes:

    \[ \min_{\mathbf{a}} \|\mathbf{a}\|_1 \quad \text{subject to} \quad \mathbf{y} = \Phi \mathbf{a} + \mathbf{n} \]

Where:

  • \Phi is a dictionary matrix built from sampled plane waves e^{j \mathbf{k}_n \cdot \mathbf{r}_m},
  • \mathbf{n} is measurement noise,
  • and the \ell_1​-norm promotes sparsity in \mathbf{a}.

This formulation casts the problem into the well-established framework of compressive sensing. Various solvers can be used (e.g., basis pursuit, LASSO, Bayesian compressive sensing), many of which are included or linked in this capsule.

 

Leave a Reply

Your email address will not be published. Required fields are marked *