Spherical Harmonics

From David's Wiki
Jump to navigation Jump to search
\( \newcommand{\P}[]{\unicode{xB6}} \newcommand{\AA}[]{\unicode{x212B}} \newcommand{\empty}[]{\emptyset} \newcommand{\O}[]{\emptyset} \newcommand{\Alpha}[]{Α} \newcommand{\Beta}[]{Β} \newcommand{\Epsilon}[]{Ε} \newcommand{\Iota}[]{Ι} \newcommand{\Kappa}[]{Κ} \newcommand{\Rho}[]{Ρ} \newcommand{\Tau}[]{Τ} \newcommand{\Zeta}[]{Ζ} \newcommand{\Mu}[]{\unicode{x039C}} \newcommand{\Chi}[]{Χ} \newcommand{\Eta}[]{\unicode{x0397}} \newcommand{\Nu}[]{\unicode{x039D}} \newcommand{\Omicron}[]{\unicode{x039F}} \DeclareMathOperator{\sgn}{sgn} \def\oiint{\mathop{\vcenter{\mathchoice{\huge\unicode{x222F}\,}{\unicode{x222F}}{\unicode{x222F}}{\unicode{x222F}}}\,}\nolimits} \def\oiiint{\mathop{\vcenter{\mathchoice{\huge\unicode{x2230}\,}{\unicode{x2230}}{\unicode{x2230}}{\unicode{x2230}}}\,}\nolimits} \)

Spherical Harmonics are a set of orthonormal basis functions defined over a sphere.
\(\displaystyle f: (\phi, \theta) \mapsto f(\phi, \theta) \in \mathbb{R}\)


Harmonic Function

A function \(\displaystyle f: \mathbb{R}^n \rightarrow \mathbb{R}\) is a harmonic function if it satisfies Laplace's equation:

  • The Laplacian (or trace of the hessian) is zero.
  • \(\displaystyle \Delta f = \frac{\partial^2f}{\partial x_1^2} + \frac{\partial^2f}{\partial x_2^2} + \cdots + \frac{\partial^2f}{\partial x_n^2} = 0\)

Associated Legendre Polynomials

Associated Legendre Polynomials are a set of orthogonal polynomials defined over \([-1, 1]\).
Each is represented as \(P^m_l\) where \(0 \leq m \leq l\).
\(P^0_1(x), P^1_1(x)\)
\(P^0_2(x), P^1_2(x), P^2_2(x)\)

The following 3 recurrance relations define the associated legendre polynomials:

  1. \(\displaystyle (l-m)P_l^m = x(2l-1)P_{l-1}^m - (l+1-1) P_{l-2}^m\)
  2. \(\displaystyle P_m^m = (-1)^m(2m-1)!! (1-x^2)^{m/2}\)
  3. \(\displaystyle P^m_{m+1} = x(2m+1)P^m_m\)


  • Here \(\displaystyle (x)!! = \begin{cases} (x)*(x-2)*...*(1) & x\text{ odd}\\ (x)*(x-2)*...*(2) & x\text{ even} \end{cases} \)


Spherical Harmonics are a set of orthonormal basis functions defined on the sphere.
Below are some explicit formulas for Laplace spherical harmonics stolen from Sloan[1]. You can also find alternative equations in DLMF[2].

There are \(\displaystyle 2l+1\) functions for each band.

  • \(\displaystyle Y_l^m(\theta, \varphi) = K_l^m e^{i m \varphi} P_l^{|m|} \cos(\theta)\) for \(\displaystyle -l \leq m \leq l\)
where \(\displaystyle P_l^m\) are the associated Legendre Polynomials
and \(\displaystyle K_l^m = \sqrt{\frac{(2l+1)(l-|m|)!}{4 \pi (l+|m|)!}}\)
l is the band, m is the function

For a real valued basis,

  • \(\displaystyle y_l^m = \begin{cases} \sqrt{2}\operatorname{Re}(Y_l^m) & m \gt 0\\ \sqrt{2}\operatorname{Im}(Y_l^m) & m \lt 0\\ Y_l^0 & m = 0 \end{cases} = \begin{cases} \sqrt{2} K_l^m \cos(m \varphi) P_l^m(\cos\theta) & m \gt 0\\ \sqrt{2} K_l^m \sin(|m| \varphi) P_l^{|m|}(\cos\theta) & m \lt 0\\ K_l^0 P_l^0 (\cos \theta) & m = 0\\ \end{cases}\)


Copied from Green[3]

  • Orthonormal
  • Rotationally Invariant
  • Integration of two spherical harmonic functions is a dot product of their coefficients

This follows from being orthonormal:
\(\displaystyle \begin{align} \int_{S}\tilde{L}(s)\tilde{t}(s)ds &= \int_{S}\left(\sum_i L_i y_i(s)\right)\left(\sum_j t_j y_j(s)\right)ds \\ &= \sum_i\sum_j L_i t_j \int_{S} y_i(s) y_j(s)ds \\ &= \sum_i^{n^2} L_i t_i \int_{S}( y_i(s) y_i(s))ds\\ &\qquad\text{ because orthogonal}\\ &= \sum_i^{n^2} L_i t_i\\ &\qquad\text{ because orthonormal} \end{align} \)


Below are distorted sphere visualizations where the radius corresponds to the value at each point.



See Green[3].


Ruofei did a project on Saliency using Spherical Harmonics as part of his PhD dissertation.



  1. Peter-Pike Sloan, Stupid Spherical Harmonics (SH) Tricks
  2. Digital Library of Mathematical Functions, 14.30. https://dlmf.nist.gov/14.30
  3. 3.0 3.1 Robin Green (2003). Spherical Harmonic Lighting URL: http://silviojemma.com/public/papers/lighting/spherical-harmonic-lighting.pdf