レーザーで照らした粗面を、コヒーレント結像で撮ります。面の凹凸が波長より大きいと反射光の位相は場所ごとにでたらめになり、カメラの開口(瞳)で帯域を切られた複素振幅が干渉して粒々の模様(スペックル)になります。光切断やレーザー変位計の高さの誤差の下限は、画素の雑音ではなくこの粒で決まります。
J0(a)²、0 と ±1 次を通すと J0² + 4 J1² sin² の縞になり、どちらも閉形式と 1e-12 で一致します(インコヒーレントなら位相物体は何も写りません)。0.5145 λ / sin u で、瞳の半径に対する log-log の傾きは −0.997、自己相関の断面は円形瞳の |2 J1(x)/x|² と 0.02 以内で重なります。πρc²C² → 1(相関面積 / 画素面積)に近づきます。δz = C·λ / (2π sin u sin θ)(Dorsch, Häusler & Herrmann 1994)を返し、スペックル込みで描いた光条から実測した中心の標準偏差が λ に +1、sin u と sin θ に −1 の指数で比例することを確かめてあります。比例定数(実測 / 式)は 0.84〜0.91 で、門にはせず開示しています。Coherent imaging of rough surfaces under laser light: an amplitude/phase object through the coherent transfer function (verified against Bessel closed forms to 1e-12), laser speckle from a random phase screen with finite roughness, polarisation and pattern diversity and pixel integration, speckle statistics (contrast, Kolmogorov–Smirnov against the exponential and gamma laws, autocorrelation width compared with the Airy pattern), a speckled sheet-of-light laser line, and the speckle-limited height uncertainty of triangulation, δz = C·λ/(2π sin u sin θ). The exponents (+1 in wavelength, −1 in the observation aperture and the triangulation angle) are gated against centroids measured on rendered lines; the constant is disclosed (measured / formula = 0.84–0.91), because the primary paper’s text was not available to check its 2π factor. Static speckle does not average away over frames; a moving part does, as 1/√N.
pixel_oversample)。import numpy as np
import fullseye as fs
# 完全発達のスペックル: コントラスト 1、指数分布、粒径 0.5145/ρc 画素
st = fs.ledger.speckle_statistics(fs.ledger.speckle_field((256, 256), cutoff=0.1, seed=0))
print("C = %.3f / KS p = %.2f / 粒 %.2f 画素(式 %.2f)"
% (st["contrast"], st["ks_p_exponential"], st["speckle_fwhm_px"], 0.5145 / 0.1))
# 光切断の光条(λ 0.65 µm、sin u 0.03、θ 30°、物体側の画素 5 µm)と誤差の床
img = fs.ledger.laser_line_coherent(shape=(49, 256), wavelength_um=0.65, sin_u_obs=0.03,
pixel_um=5.0, line_width_um=14.0, sin_theta=0.5, seed=1)
lim = fs.ledger.triangulation_speckle_limit(0.65, 0.03, 0.5)
print("δz の床 %.2f µm、粒 %.1f µm" % (lim["delta_z_um"], lim["speckle_fwhm_um"]))
coherent_image / speckle_field / speckle_statistics / laser_line_coherent / triangulation_speckle_limit / speckle_reductionpoc_laser_line_speckle_floor —— 加法雑音で輝度最大の画素より 8.6 倍良かった 3 点当てはめが、スペックルでは輝度最大と同じ誤差(12.7 vs 13.1 µm)に落ち、重心(6.4 µm、Dorsch の床の 0.93 倍)の 2 倍悪い。静止した部品は 100 枚平均しても 0.98 倍、部品を動かすと 0.099 倍。lensimage の psf_from_opd / render_through_lens(インコヒーレント結像)・optscene の light_spec(光源の coherent の印)・measure_profile_sheet_of_light(光切断の処理)