分Bin的求法

本文详细阐述了宇宙微波背景辐射功率谱的计算方法,包括如何通过理论功率谱Cℓ生成alm系数,以及如何从多个宇宙天图中反推理论功率谱。文章还介绍了如何对不同宇宙进行相同计算,以及如何处理binning和误差估计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

功率谱ClC_lCl具有如下的表示:
⟨almal′m′∗⟩=δll′δmm′Cℓ\left\langle a_{lm}a^*_{l'm'}\right\rangle=\delta_{ll'}\delta_{mm'}C_\ellalmalm=δllδmmC
这里是系综平均。
对于理论上的功率谱CℓC_\ellC, 可以通过CAMB直接生成。通常假设上式中alma_{lm}alm服从高斯分布。
反推alma_{lm}alm有:alm=(Cℓ)×ga_{lm}=\sqrt(C_\ell)\times galm=(C)×g, ggg是高斯函数,比如可以假设服从N(0,1)分布。
于是可以得到

  • 第一个 宇宙(天图):a0,a10,a11,a20,a21,a22...a_0, a_{10}, a_{11}, a_{20}, a_{21}, a_{22}...a0,a10,a11,a20,a21,a22...
    上面有以下几点说明:1)a0=(C0)×g,a10=(C1)×g,a11=(C1)×g,a20=(C2)×g,a21=(C2)×g,...a_0=\sqrt(C_0)\times g, a_{10}=\sqrt(C_1)\times g, a_{11}=\sqrt(C_1)\times g, a_{20}=\sqrt(C_2)\times g, a_{21}=\sqrt(C_2)\times g, ...a0=(C0)×g,a10=(C1)×g,a11=(C1)×g,a20=(C2)×g,a21=(C2)×g,...,这里在求a10,a11a_{10}, a_{11}a10,a11时虽然是同一个C1C_1C1, 但是高斯分布不一样,所以值是不同的. 2)实际计算过程中ℓ\ell最小值是2,不是0. 3) a1−1=a11a_{1-1}=a_{11}a11=a11
  • 第二个宇宙: a0,a10,a11,a20,a21,a22...a_0, a_{10}, a_{11}, a_{20}, a_{21}, a_{22}...a0,a10,a11,a20,a21,a22...
    计算过程跟上面一样,只是表示的是第二个天图。
    注:(ΔCC)=∑ℓ=0∞∑m=−ℓm=ℓalmYlm\left( \frac{\Delta C}{C}\right)=\sum_{\ell=0}^{\infin}\sum_{m=-\ell}^{m=\ell}a_{lm}Y_{lm}(CΔC)==0m=m=almYlm, 这里Ylm(θ,ϕ)Y_{lm}(\theta,\phi)Ylm(θ,ϕ)是球谐函数,是角度的函数。
  • 第三个宇宙

在得到足够多的天图之后(比如生成1000张),现在要计算CℓC_\ellC. 利用公式
⟨almal′m′∗⟩=δll′δmm′Cℓ\left\langle a_{lm}a^*_{l'm'}\right\rangle=\delta_{ll'}\delta_{mm'}C_\ellalmalm=δllδmmC
Cℓ=12ℓ+1∑malm2C_\ell=\frac{1}{2\ell+1}\sum_ma^2_{lm}C=2+11malm2, 这里因为a是实数数值,所以复共轭是本身a是实数数值,所以复共轭是本身a
C0=a002,C1=13(a1−12+a102+a112)...C_0 = a^2_{00}, C_1=\frac{1}{3}(a^2_{1-1}+a^2_{10}+a^2_{11})... C0=a002,C1=31(a112+a102+a112)...
对每个宇宙都一样的求法,就可以得到C0,C1,C2...C_0, C_1, C_2...C0,C1,C2..., 即

  • 第一个宇宙 C0,C1,C2...C_0, C_1, C_2...C0,C1,C2...
  • 第二个宇宙 C0,C1,C2...C_0, C_1, C_2...C0,C1,C2...
  • 第三个宇宙 C0,C1,C2...C_0, C_1, C_2...C0,C1,C2...
  • 第四个宇宙 C0,C1,C2...C_0, C_1, C_2...C0,C1,C2...

如果要求bin,比如ℓ从1−10\ell从1-10110求一个bin,则有C0b0=110(C0+...+C10)C^{b0}_0=\frac{1}{10}\left(C_0+...+C_{10}\right)C0b0=101(C0+...+C10)

  • 第一个宇宙 C0b0,C1b1,C2b2...C^{b0}_0, C^{b1}_1, C^{b2}_2...C0b0,C1b1,C2b2...
  • 第二个宇宙 C0b0,C1b1,C2b2...C^{b0}_0, C^{b1}_1, C^{b2}_2...C0b0,C1b1,C2b2...
  • 第三个宇宙 C0b0,C1b1,C2b2...C^{b0}_0, C^{b1}_1, C^{b2}_2...C0b0,C1b1,C2b2...
  • 第四个宇宙 C0b0,C1b1,C2b2...C^{b0}_0, C^{b1}_1, C^{b2}_2...C0b0,C1b1,C2b2...
  • 第M个宇宙 C0b0,C1b1,C2b2...C^{b0}_0, C^{b1}_1, C^{b2}_2...C0b0,C1b1,C2b2...
    先看C0b0C^{b0}_0C0b0, 将这M个宇宙的C0b0C^{b0}_0C0b0值画出来,就可以知道这些C0b0C^{b0}_0C0b0的分布:
    在这里插入图片描述
    但是fitting出分布其实有点儿麻烦,这里也不讲分布的事情。而是求分bin后的error.
    ΔClb0=1M(C^0b0−μ)2\Delta C^{b0}_l=\frac{1}{M}(\hat C^{b0}_0-\mu)^2ΔClb0=M1(C^0b0μ)2
    实际上就是求方差variance, 将所有的variance求出来即可。
04-02
### BIN 文件的相关操作 在 IT 领域中,`BIN` 文件是一种常见的二进制文件格式,通常用于存储原始数据或作为嵌入式系统的固件文件。对于 `BIN` 文件的操作,主要包括转换、割以及合并等内容。 #### 1. BIN 转 HEX 的方 当需要将 `BIN` 文件转换为 `HEX` 文件时,可以借助专门的工具完成此过程。例如,在单片机开发领域,常用的一款工具是 **Bin_Hex.exe**[^2]。该工具能够解析 `BIN` 文件的内容并将其重新编码为适合其他下载工具使用的 `HEX` 格式。 以下是关于此类转换的一些技术细节: - `BIN` 和 `HEX` 是两种不同的表示方式,其中 `BIN` 表示的是连续的字节流,而 `HEX` 则是以十六进制形式记录地址和数据。 - 工具会读取输入的 `BIN` 文件,并按照特定规则(如 Intel Hex 格式)生成对应的 `HEX` 输出文件。 #### 2. BIN 文件的割与合并 除了简单的格式转换外,有时还需要对较大的 `BIN` 文件进行割或者将多个部合并成完整的文件。这种需求常见于大容量固件传输场景下,因为某些通信协议可能无一次性发送整个文件。 ##### (a) 割操作 为了实现安全可靠的传输,可以通过编程脚本手动定义每一段的数据长度并将原文件拆为若干个小片段保存下来。下面是一个 Python 实现的例子: ```python def split_bin(input_file, output_prefix, chunk_size=1024*1024): # 默认按1MB切割 with open(input_file, 'rb') as f_in: index = 0 while True: data_chunk = f_in.read(chunk_size) if not data_chunk: break part_name = f"{output_prefix}_part{index}.bin" with open(part_name, 'wb') as f_out: f_out.write(data_chunk) index += 1 ``` 上述代码通过指定参数控制每次写入磁盘的小块大小,默认设置为 1 MB。实际应用过程中可以根据网络条件调整这个数值以优化性能表现[^1]。 ##### (b) 合并操作 接收端收到所有包之后,则需执行逆向逻辑恢复初始状态下的完整镜像文档。这里给出另一个简单版本的Python程序用来演示这一流程: ```python import os def merge_bins(output_file, input_files): with open(output_file, 'wb') as outfile: for fname in sorted(input_files): with open(fname, 'rb') as infile: outfile.write(infile.read()) # Example usage input_parts = ['file_part0.bin', 'file_part1.bin'] merge_bins('reconstructed_image.bin', input_parts) ``` 这段脚本首先打开目标输出路径准备追加模式写入;接着遍历传入列表中的每一个成员依次附加到最终产物里去直到结束为止。 #### 结论 综上所述,无论是针对单一类型的互转还是多阶段处理任务而言,掌握这些基础技能都将极大地方便开发者们日常工作中遇到的各种挑战。当然,在正式动手前务必确认清楚当前环境是否存在潜在风险因素,并提前制定好应急预案以防万一发生意外情况影响项目进度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值