ingaas_photodiode_qe — OPTICS spectral op

• 資料種類:無 → pairs(僅由參數決定的運算子 —— 不接受影像或資料輸入)

• 呼叫: import fullseye as fs; fs.ledger.ingaas_photodiode_qe(cutoff_nm=1700.0, absorber_um=3.0, window_cutoff_nm=920.0, window_um=1.0, front_reflectance=0.03, urbach_mev=8.0, wl_min_nm=800.0, wl_max_nm=2600.0, n_points=361)(要直接呼叫實作,import spectralrad; spectralrad.ingaas_photodiode_qe(cutoff_nm=1700.0, absorber_um=3.0, window_cutoff_nm=920.0, window_um=1.0, front_reflectance=0.03, urbach_mev=8.0, wl_min_nm=800.0, wl_max_nm=2600.0, n_points=361);從台帳取用則 opsoptics.get("ingaas_photodiode_qe"))

用法

由吸收層與窗口層的直接躍遷吸收邊計算 InGaAs 光電二極體的外部量子效率(電子/光子)。

> 以下的詳細說明為原文 —— 摘要與標題已翻譯。

QE(λ) = (1 − R) · exp(−α_win d_win) · [1 − exp(−α_abs W)]、α(E) = A √(E − E_g)(直接遷移、E_g より E_u/2 上から下は Urbach の裾 A√(E_u/2) exp((E − E_g − E_u/2)/E_u) に C¹ でつなぐ)。吸収層の E_g = hc/*cutoff_nm*(標準の In₀.₅₃Ga₀.₄₇As で 0.74 eV → 約 1.7 µm、拡張品は In 組成を上げて 1.9 / 2.2 / 2.6 µm)、A = 3.1 µm⁻¹ eV^−½(In₀.₅₃Ga₀.₄₇As の 1.55 µm で α ≈ 7×10³ /cm に合わせた値)。窓(InP、E_g 1.344 eV → 922 nm)は短波長を吸って下限を作る。窓を薄く(基板除去) すると可視まで伸びる。

★これは形のモデルで、データシートの曲線ではない: 市販の標準品の典型値(データシート: 0.9〜1.7 µm、1.0〜1.6 µm で 80 % 前後、1.7 µm で急落)の形を、吸収端の物理(直接遷移の √ と Urbach の裾) から出す。実機は製品のデータシートの曲線を spectral_product に直接渡すこと。

出典: S. Adachi, J. Appl. Phys. 66, 6030 (1989)(III-V の直接遷移の吸収端)/ F. Urbach, Phys. Rev. 92, 1324 (1953)/ A. Rogalski, *Infrared Detectors*, 2nd ed., CRC (2010)(InGaAs の組成とカットオフ)。

返り値: pairs(λ nm, QE)。

該族通用的輸入契約(fail-closed)

optics 的每個運算子都先檢驗輸入再計算(不讓任何東西無聲通過):

• 單位寫進參數名 —— _mm / _um / _deg / _mrad。把 mm 和 µm 弄混不會當掉,而是給出「看似合理卻是錯的答案」,所以用命名來防。這裡絕不從數值大小去猜單位。

• 字串一律 ValueError —— float('50') 會成功,於是未解析的設定值會被當成長度混進來(實測:thin_lens('50', '200') 曾回傳看似合理的 66.667 mm)。bool 也按 True == 1 的隱式提升拒絕。

• complex / masked array 一律 ValueError(僅接受實數槽位;拒絕無聲丟棄虛部或剝掉遮罩)。所有輸入中的 NaN/Inf 一律 ValueError。

• 逐項點名拒絕除零及其近親:焦距 0、曲率半徑 0、折射率 <= 0、全不透明光闌(全為 0,正規化變成 0/0)、總和 <= 0 的 PSF、S0 = 0 的 Stokes 向量、物體位於前焦點(像在無窮遠)。

• 只有兩個運算子會回傳非有限值,而且都寫進了契約:depth_of_field 在超焦距以外回傳 far_mm = inf(這正是超焦距的定義),gaussian_beam 在束腰處回傳 wavefront_radius_mm = inf(平面波前的曲率半徑)。兩者都同時回傳一個有限的夥伴(far_is_infinite / curvature_per_mm)。除此之外的無聲 NaN/Inf 都在內部檢出並 ValueError ——「float64 溢位了」和「答案是無窮大」是兩種不同的主張,不能拿後者的臉去交付前者。

• 尺寸上限:生成網格受 optics.MAX_GRID(4096)限制,傳入的場/PSF/光闌受 optics.MAX_FIELD_ELEMENTS(2^24),ABCD 元件序列受 optics.MAX_SYSTEM_ELEMENTS(1024),Zernike 受 MAX_ZERNIKE_TERMS(512)/ MAX_ZERNIKE_ORDER(40)/ MAX_ZERNIKE_BASIS(2^25)。以 fail-closed 堵住「小參數引發巨大內部配置」的路徑(實測:n_max=40 × 4096² 需要 108 GB)。

• 物理上不可能的狀態同樣拒絕:偏振度 > 1 的 Stokes 向量、負穿透率、負強度、n-|m| 為奇數等非法 Zernike 指標。

詳細使用指南

• optics_imaging 族使用指南

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

• 演算法的正典(作者、年份)與用途見上面的族使用指南。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• poc_hyperspectral_foreign_matter — py -3.11 examples/poc_hyperspectral_foreign_matter.py

型別可銜接的下一個運算子(可接受 pairs 作為輸入)

mtf50 · energy_to_photons · spectral_product · spectral_integral · spectral_stats · kubelka_munk_reflectance · hyperspectral_capture · film_thickness_fft

同類別(spectral)

blackbody_spectrum · cie_illuminant_a · led_spectrum · bandpass_spectrum · silicon_photodiode_qe · energy_to_photons · spectral_product · spectral_integral


*Provenance: spectralrad.py — OPTICS 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.