来自healpy函数synfast中lmax增加的偏差谱

时间:2017-12-17 18:28:52

标签: python healpy

我最近使用python在healpy中使用函数synfast进行了游戏。更具体地说,我使用其参数 lmax 来设置要计算的最大模式(默认值:lmax = 3 * nside-1)。我也会使用ud_grade函数。

我探讨了几种情况,我使用synfast从等于单位的平面光谱(温度TT和极化EE和BB)生成非常简单的地图。然后使用anafast计算这些地图的光谱。我发现在所有情况下我们都没有恢复初始输入光谱,如下图所示。

在所有这些情况下,我将synfast pixwin 参数设置为 True ,然后使用该函数更正anafast的输出信号pixwin(nside=128)

  • 灰色:输入光谱模型
  • 蓝色:(正常默认情况下)synfast(nside=128, lmax=3*128-1) => anafast(lmax=3*128-1)
  • 绿色:synfast(nside=256, lmax=3*256-1) => ud_grade(256->128) => anafast(lmax=3*128-1)
  • 洋红色:synfast(nside=256, lmax=3*128-1 ) => ud_grade(256->128) => anafast(lmax=3*128-1)
  • 红色:synfast(nside=128, lmax=4*128-1 ) => anafast(lmax=3*128-1)
  • 青色:synfast(nside=128, lmax=10*128-1 ) => anafast(lmax=3*128-1)

Plot : spectra estimations from different kind of map using syfast, ud_grade and anafast

  • 如您所见,在大多数情况下,我会得到偏差光谱。
  • 对于高模式,即使正常情况(蓝色)也略微偏向下方。这显然是正常的,因为healpy不能很好地处理模式的频谱估计> 2 * n侧-1。
  • 温度和极化光谱(TT,EE和BB)的结果相同。
  • 如您所见,情况lmax = 4 * 128-1且lmax = 10 * 128-1给出相同的结果。这来自synfast,它不允许 lmax 高于4 * 128-1,并设置lmax = 4 * 128-1,即使我们要求更高 lmax < / em>的

有人对这种行为有解释吗?

如何恢复初始输入频谱?

提前谢谢

1 个答案:

答案 0 :(得分:0)

这是ud_grade的预期影响,它是一种破坏性操作,你可以在某种程度上消除信号,实际上你可以恢复与白噪声一致的偏差。