Converter

This tool converts the Ambisonic signals from input convention conv_in to output convention conv_out. Indeed, depending on the chosen convention, the spherical harmonics norm and ordering change. In ambitools, the default convention used is ACN_N3D (see ymn.lib).

Available Conventions

ACN_N3D

The ACN_N3D convention stands for “Ambisonic Channel Number - Fully normalized”1. The N3D norm is given by:

\begin{equation} N_{l,m}^\text{N3D} = \sqrt{(2- \delta_m) (2 l + 1)\frac{(l-|m|)!}{(l+|m|)!}}, \label{eq:n3d} \end{equation}

where $\delta_m$ is the Kronecker delta function. The ACN ordering is given by^[ambix]:

\[\begin{equation} \left\lbrace \begin{aligned} &\text{ACN}(l,m) = i = l^2 + l + m \\ &m = \lfloor \sqrt{i} \rfloor \\ &l = i - m^2 - m \end{aligned} \right. \label{eq:acn} \end{equation}\]

This results in a pyramidal shape for the spherical harmonics with increasing ACN $i$, as follows:

      0      
    1 2 3    
  4 5 6 7 8  
9 10 11 12 13 14 15

ACN_SN3D

The ACN_SN3D convention stands for “Ambisonic Channel Number - Schmidt semi-normalized”1. The N3D norm is given by:

\begin{equation} N_{l,m}^\text{SN3D} = \sqrt{(2- \delta_m) \frac{(l-|m|)!}{(l+|m|)!}}, \label{eq:sn3d} \end{equation}

The convention uses ACN ordering (see Eq. $\eqref{eq:acn}$).


FuMa

The FuMa convention stands for Furse and Malham1. Its norm uses the MaxN (except for $l = 0$). This norm is such that:

\begin{equation} \max_{(\theta,\phi)}|Y_{l,m}(\theta,\phi)|=1 \label{eq:maxn} \end{equation}

This means that the maximum signal value is 1 for all components except the first component $(l = 0, m = 0)$ weighted with $ 1 / \sqrt{2}$. Finally, the FuMa norm is:

\[\begin{equation} N_{l,m}^\text{FuMa} = \left\lbrace \begin{aligned} 1/\sqrt{2} & & \text{for} & & l = 0 \\ \text{MaxN} & & \text{for} & & l > 0 \end{aligned} \right., \end{equation}\]

In FuMa convention, the signals are ordered in such a way that the corresponding ACN $i$ are sorted as follows:

      0      
    2 3 1    
  8 6 4 5 7  
15 13 11 9 10 12 14

Note that the Furse and Malham convention was originally defined for $L \leq 3$. Therefore, for $L>3$ the inputs signals are killed in the current implementation.

Compilation parameter

  • L: maximal Spherical Harmonics degree (i.e., Ambisonics order, $L > 0$)
  • conv_in: Input signals convention.
    1. ACN_N3D
    2. ACN_SN3D
    3. FuMa
  • conv_out: Ouput signals convention.
    1. ACN_N3D
    2. ACN_SN3D
    3. FuMa

Inputs / Outputs

  • Inputs: $(L+1)^2$
  • Outputs: $(L+1)^2$