抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

傅里叶变换(FFT)在各种巡天中经常被应用,其中,计算星系数密度的三维功率谱需要使用三维傅里叶变换,这其中需要注意归一化问题。

假设星系数密度涨落是$F(r)$,其中$r = (x,y,z)$

傅里叶变换:

  • 连续傅里叶变换对:
    \begin{align}
    F(\vec{k}) = \int F(\vec{r}) e^{-i\vec{k} \cdot \vec{r}} {\rm d}\vec{r}
    \end{align}
    \begin{align}
    F(\vec{r}) = \frac{1}{(2\pi)^3}\int F(\vec{k}) e^{i\vec{k} \cdot \vec{r}} {\rm d}\vec{k}
    \end{align}
    注意,这里的 ${\rm d}\vec{r}$ 和 ${\rm d}\vec{k}$ 都是三维空间中的体积微元,分别表示 ${\rm d}r_x {\rm d}r_y {\rm d}r_z$ 和 ${\rm d}k_x {\rm d}k_y {\rm d}k_z$。

  • 离散傅里叶变换对:
    \begin{align}
    F(\vec{k}) = \sum_i F(\vec{r}) e^{-i\vec{k} \cdot \vec{r}}
    \end{align}
    \begin{align}
    F(\vec{r}) = \frac{1}{N^3} \sum_i^N F(\vec{k}) e^{-i\vec{k} \cdot \vec{r}}
    \end{align}

星系数密度功率谱

对于角平均的功率谱(不是角功率谱),星系数密度功率谱是傅里叶变换模方的期望值:
\begin{align}
\left < F(\vec{k})^* F(\vec{k}) \right > = (2\pi)^3\delta_{\rm D} (\vec{k}+\vec{k}^\prime)P(\vec{k})
\end{align}

星系数密度的量纲为 1,坐标位置的量纲一般为 $h^{-1}\ {\rm Mpc}$。公式(5)定义了星系功率谱,单位:${\rm length}^6 = {\rm length}^3 P(k)$,此时功率谱的单位为 ${\rm length}^3$。这样功率谱的归一化可以从两方面考虑:

  • $(2\pi)^3$归一化:
    与连续FFT的系数$(2\pi)^3$相比,离散傅里叶变换的系数相当于$N^3$,因此如果numpy.fft.fftn选择的归一化norm = 'ortho',那么离散傅里叶变换对为:
    \begin{align}
    F(\vec{k}) = \frac{1}{\sqrt{N^3}} \sum_i F(\vec{r}) e^{-i\vec{k} \cdot \vec{r}}
    \end{align}
    \begin{align}
    F(\vec{r}) = \frac{1}{\sqrt{N^3}} \sum_i^N F(\vec{k}) e^{-i\vec{k} \cdot \vec{r}}
    \end{align}

  • 单位归一化,公式(1)(2)连续FFT是包含单位的,而计算FFT的程序numpy.fft.fftn不含单位,相当于:
    \begin{align}
    F(\vec{k}) = \frac{1}{\sqrt{N^3 \delta V_r}} \sum_i F(\vec{r}) e^{-i\vec{k} \cdot \vec{r}} \sqrt{\delta V_r}
    \end{align}
    \begin{align}
    F(\vec{r}) = \frac{1}{\sqrt{N^3 \delta V_r}} \sum_i^N F(\vec{k}) e^{-i\vec{k} \cdot \vec{r}} \sqrt{\delta V_k}
    \end{align}
    这里$\sqrt{\delta V_r}=1$,因此为了单位保持一致还需要将每个numpy的FFT结果乘以一个$\sqrt{\delta V_r}$,整体上就相当于乘以$\delta V_r = \delta r_x \delta r_y \delta r_z$。

参考

评论



Powered by Hexo | Theme keep Volantis

本站总访问量 总访客数 🌎