SO(3)上のフーリエ変換（備忘録）

###更新履歴
-2019年7月6日：初版

論文["SOFT:SO(3) Fourier Transforms"](https://www.cs.dartmouth.edu/~geelong/soft/soft20_fx.pdf "SOFT:SO(3) Fourier Transforms")の要素技術である$SO(3)$上のフーリエ変換について簡潔に記述する．

#オイラー角表現
任意の要素$g\in SO(3)$，すなわち原点を中心とする任意の回転は，$ZYZ$系オイラー角表現で表すことができる．

```math
R_z(A)=
\left(\begin{array}{ccc}
\cos{A} & -\sin{A} & 0\\
\sin{A} & \cos{A} & 0\\
0 & 0 & 1
\end{array}\right)
\hspace{30pt}
R_y(A)=
\left(\begin{array}{ccc}
\cos{A} & 0 & \sin{A}\\
0 & 1 & 0\\
-\sin{A} & 0 & \cos{A}\\
\end{array}\right)
```
$R_z(A)$は$z$軸を中心とした回転を表し，$R_y(A)$は$y$軸を中心とした回転を表す．したがって，要素$g$のオイラー角表現は次の通り．

```math
g=R_z(\alpha)R_y(\beta)R_z(\gamma)
```

ただし，$\alpha，\gamma\in[0,2\pi),\ \beta\in[0, \pi]$
$SO(3)$上の関数$f$は3つのオイラー角変数$\alpha, \beta,\gamma$の関数として記述できる．

#ウィグナーのD関数
ウィグナーの$D$関数は3つの整数次数$J,\ M,\ M'$を持つ．次数$J$は非負整数であり，各$J$について次数$M,M'$は不等式$-J\leq M, M'\leq J$を満たす．


```math
D_{MM'}^J(\alpha,\beta,\gamma)=-e^{iM\alpha}d_{MM'}^J(\beta)e^{-iM'\gamma}
```
ここで，$d_{MM'}^J(\beta)$はウィグナーの$d$関数であり，詳しい定義は後ほど説明する．
ウィグナーの$D$関数の集合

```math
\{D_{MM'}^J(\alpha,\beta,\gamma)\}
```
は$SO(3)$上の積分に関して直行関数列を成す．

```math
\int_0^{2\pi}d\alpha\int_0^\pi d\beta\sin{\beta}\int_0^{2\pi}d\gamma\ D_{M_2M_2'}^{J_2*}(\alpha,\beta,\gamma)D_{M_1M_1'}^{J_1*}(\alpha,\beta,\gamma)=
\frac{8\pi^2}{2J_1+1}\delta_{J_1,J_2}\delta_{M_1,M_2}\delta_{M_1',M_2'}
```
$D_{MM'}^{J*}(\alpha,\beta,\gamma)$は$D_{MM'}^{J}(\alpha,\beta,\gamma)$の複素共役を表す．
したがって，関数$f\in L^2(SO(3))$は以下のように表される．

```math
f(\alpha,\beta,\gamma)=\sum_{J\geq 0}\sum_{M=-J}^J\sum_{M'=-J}^J\hat{f}_{MM'}^JD_{MM'}^J(\alpha,\beta,\gamma)
```
ただし，

```math
\begin{align}
\hat{f}_{MM'}^J&=\langle f,D_{MM'}^J\rangle\\
&=\int_o^{2\pi}d\alpha\int_0^\pi d\beta\sin{\beta}\int_0^{2\pi}d\gamma\ f(\alpha,\beta,\gamma)\ D_{MM'}^{J*}(\alpha,\beta,\gamma)
\end{align}
```
$\hat{f}_{MM'}^J$は関数$f$のフーリエ変換を表す．
> $SO(3)$上の連続関数$f$は$\hat{f}_{MM'}^l=0\ for\ all\ l\geq B$のとき，帯域幅$B$で帯域制限される．


#ウィグナーのd関数
前述のとおり，ウィグナーの$d$関数の正確な定義を与える．

```math
d_{MM'}^J(\beta)=\zeta_{MM'}\sqrt{\frac{s!(s+\mu+\nu)}{(s+\mu)!(s+\nu)!}}\left(\sin{\frac{\beta}{2}}\right)^\mu\left(\cos{\frac{\beta}{2}}\right)^\nu\times P_s^{(\mu,\nu)}(\cos{\beta})
```

ただし，

```math
\mu:=|M-M'|,\ \ \nu:=|M+M'|,\ \ s:=J-\frac{\mu+\nu}{2}\\
\begin{align}
\zeta_{MM'}=
\begin{cases}
1\hspace{15pt}&if\ M'\geq M\\
(-1)^{M'-M}&if\ M'<M
\end{cases}
\end{align}
```
また，$P_s^{\mu,\nu}(\cos{\beta})$はヤコビ多項式である．また，$J\geq max(|M|,|M'|)$でない限り，$d_{MM'}^J(\beta)=0$であることに留意．
このウィグナーの$d$関数は次の直交性条件を満足する．

```math
\int_0^\pi =d_{MM'}^J(\beta)d_{MM'}^{J'}(\beta)\sin{\beta}d\beta=\frac{2}{2J+1}\delta_{JJ'}
```

#再帰
ウィグナーの$d$関数は次の3項間再帰を満足する．

```math
0=

\frac{\sqrt{[(J+1)^2-M^2][(J+1)^2-M'^2]}}{(J+1)(2J+1)}d_{MM'}^{J+1}(\beta)+

\left(\frac{MM'}{J(J+1)}-\cos{\beta} \right)d_{MM'}^J(\beta)+

\frac{\sqrt{(J^2-M^2)(J^2-M'^2)}}{J(2J+1)}d_{MM'}^{J-1}(\beta)
```

#変換
帯域幅$B$の変換に必要な直交重みを定義する．

```math
w_B(j)=\frac{2}{B}\sin{\left(\frac{\pi(2j+1)}{4B}\right)}\sum_{k=0}^{2B-1}\frac{1}{2k+1}\sin{\left((2j+1)(2k+1)\frac{\pi}{4B}\right)}
```
ただし，$j=0,1,...,2B-1$

###離散ウィグナーd変換
与えられた整数$(M,M')$に対して，データベクトル$s$の離散ウィグナー変換（DWT）を次の形式の和集合になるように定義する．

```math
\hat{\boldsymbol{s}}(l,M,M')=\sum_{k=0}^{2B-1}w_B(k)\tilde{d}_{MM'}^l(\beta_k)[\boldsymbol{s}]_k,\hspace{15pt}max(|M|,|M'|)\leq l<B
```

ここで，$\beta_k:=\frac{\pi(2k+1)}{4B}$であり，$\tilde{d}_{MM'}^l$は次数$l,M,M'$の$L^2$正規化ウィグナーの$d$関数で次のように記述される．

```math
\tilde{d}_{MM'}^J(\beta):=\sqrt{\frac{2J+1}{2}}d_{MM'}^J(\beta)
```

DWTは行列として表すことができる．
$\boldsymbol{s}$をデータベクトル，$\hat{\boldsymbol{s}}$を係数ベクトル，$\boldsymbol{w}$をエントリーが重みとなる対角行列，$(\boldsymbol{d})\_{ij}=d_{MM'}^i(\beta\_j)$をサンプリングされたウィグナーの$d$関数とすると，分析変換は

```math
\boldsymbol{d}*\boldsymbol{w}*\boldsymbol{s}=\hat{\boldsymbol{s}}
```
逆変換は

```math
\boldsymbol{d}^\mathsf{T}*\hat{\boldsymbol{s}}=\boldsymbol{s}
```
となる．

###帯域幅Bにおける離散SO(3)フーリエ変換
$DSOFT(f)$で表される関数$f\in SO(3)$の帯域幅$B$での離散$SO(3)$フーリエ変換は，

```math
\begin{align}
\hat{f}_{MM'}^l&=\left(\frac{\pi}{B}\right)\sum_{j_1=0}^{2B-1}\sum_{j_2=0}^{2B-1}\sum_{k=0}^{2B-1}w_B(k)\ f(\alpha_{j_1},\beta_{k},\gamma_{j_2})\tilde{D}_{MM'}^{l*}(\alpha_{j_1},\beta_{k},\gamma_{j_2})\\
&=\frac{\pi}{(2B)^2}
\sum_{k=0}^{2B-1}w_B(k)\tilde{d}_{MM'}^l(\beta_k)
\sum_{j_2=0}^{2B-1}e^{iM'\gamma_{j_2}}
\sum_{j_1=0}^{2B-1}e^{iM'\alpha_{j_1}}\ f(\alpha_{j_1},\beta_{k},\gamma_{j_2})
\end{align}
```
ここで，$l=0,1,...,B-1,\ -l\leq M,M'\leq l$
関数$f$は$2B\times 2B\times 2B$グリッド$\alpha_{j_1}=\cfrac{2\pi j_1}{2B},\ \beta_k=\cfrac{\pi(2k+1)}{4B},\ \gamma_{j_2}=\cfrac{2\pi j_2}{2B}$上でサンプリングされる．