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]:
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:
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.ACN_N3D
ACN_SN3D
FuMa
conv_out
: Ouput signals convention.ACN_N3D
ACN_SN3D
FuMa
Inputs / Outputs
- Inputs: $(L+1)^2$
- Outputs: $(L+1)^2$