光电方向研究生的 Python 学习仓库。从零开始学习 Python,并把它用在硅基电光调制器的设计计算中。
| 文件 | 说明 |
|---|---|
photonics.py |
光电计算函数库 |
sweep.py |
调制器参数扫描脚本 |
day1.py ~ day6.py |
第一周 Python 基础练习 |
spectrum.csv |
day5.py 生成的谐振透射谱示例数据 |
phase_shift(dn, L, wavelength):计算折射率变化引起的相移 Δφ = 2π·Δn·L/λdn_for_pi(L, wavelength):计算实现 π 相移所需的折射率变化 Δn = λ / (2L)transmission(wl):中心波长 1550 nm 的洛伦兹型谐振透射谱
对器件长度 L 和折射率变化 Δn 的所有组合进行扫描:
- 调用
phase_shift计算每组参数的相移 Δφ - 判断 Δφ 是否达到 π(即能否实现调制器的完全开关)
- 将结果保存为
sweep_results.csv
扫描参数:
- L:500、1000、1500、2000 μm
- Δn:0.5e-3、1e-3、1.5e-3、2e-3
- 波长:1550 nm
环境:Python 3.12
python sweep.py共计算 16 组参数,结果已保存到 sweep_results.csv,其中 11 组达到了 π 相位变化
sweep_results.csv 的格式:
| L_um | dn | dphi_rad | dphi_over_pi | reach_pi |
|---|---|---|---|---|
| 500 | 0.001 | 2.027 | 0.645 | No |
| 1000 | 0.001 | 4.054 | 1.290 | Yes |
器件越长,实现 π 相移所需的 Δn 越小(Δn ∝ 1/L)。这体现了电光调制器设计中驱动电压与器件长度之间的权衡,也是 VπL 指标的物理来源:器件更长可以降低驱动电压,但会带来更大的光损耗、更大的电容和更大的芯片面积。
- 第 1 周:Python 基础语法、函数、文件读写、模块、Git
- 第 2 周:numpy 与 matplotlib,将计算结果可视化