基于波前编码的红外系统焦深延拓特性解析方案【附代码】

基于波前编码的红外系统焦深延拓特性解析方案【附代码】 ✨ 长期致力于波前编码、焦深扩展、轴外点斯特列尔比、位相板优化、装配公差研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1基于轴外点斯特列尔比的位相板参数优化方法针对传统三次位相板波前编码系统仅用轴上点斯特列尔比优化导致轴外像差加重的问题提出以轴外点斯特列尔比作为优化目标。选取0.7视场和全视场两个轴外点计算其斯特列尔比的平均值。采用遗传算法优化三次位相板的面型系数α搜索范围2到20。光学设计软件CODE V与MATLAB联合优化目标函数为F - (STL_0.7 STL_1.0)/2。优化结果表明当α8.5时轴上点斯特列尔比从0.72降至0.31但轴外点斯特列尔比从0.15提升至0.28系统整体焦深扩展4倍。对于变型三次位相板增加高次项优化后α16.2α21.8轴外点斯特列尔比进一步提升至0.33且在离焦量±0.5mm内保持稳定。2位相板装配倾斜与温度形变的影响分析及补偿建立位相板在镜筒内倾斜的数学模型通过坐标变换推导倾斜后波前相位分布。仿真显示倾斜角0.5度时点扩散函数峰值强度下降18%但经过图像复原后斯特列尔比可恢复至0.85。提出在位相板设计时引入对称性补偿项将三次位相板改为奇对称形式降低倾斜敏感度。温度从-20℃到60℃变化时位相板材料折射率变化dn/dt1.2e-5/℃面型PV值变化0.23波长。通过有限元分析得到热变形后的面型重新计算点扩散函数。采用数字图像复原中引入温度校准参数使用多项式拟合退化函数复原后图像对比度提升30%。在长波红外系统实测中装配公差优化后10组样机的焦深一致性提高最大离焦容忍量从0.3mm提升到1.2mm。3三次位相板波前编码系统的图像复原与景深测试搭建长波红外波前编码实验系统成像目标为分辨率板及真实场景。采集离焦0至1.5mm的模糊图像采用维纳滤波与Lucy-Richardson迭代复原相结合的方法。维纳滤波的信噪比参数根据图像局部方差自适应调整迭代次数10次。复原后图像在离焦1.0mm时分辨率板仍能分辨第6组线条而传统光学系统在离焦0.3mm时已无法分辨。对比峰值信噪比复原图像平均达到28.5dB相比未复原的模糊图像提高12dB。在室外测试中对200米外的建筑成像环境温度30℃时波前编码系统在10米到无穷远范围内均清晰传统系统最佳对焦在80米处近景模糊。结果表明三次位相板波前编码系统将红外光学系统景深扩展了约6倍有效提升了复杂环境下的成像能力。import numpy as np from scipy.optimize import differential_evolution from scipy.signal import convolve2d def cubic_phase_mask(x, y, alpha): # 三次位相板相位函数 return alpha * (x**3 y**3) def axis_strehl_ratio(pupil_phase, defocus): # 简化斯特列尔比计算 # pupil_phase: 相位分布defocus离焦系数 N pupil_phase.shape[0] x np.linspace(-1,1,N) xx, yy np.meshgrid(x,x) phase pupil_phase defocus * (xx**2 yy**2) pupil np.exp(1j*phase) psf np.abs(np.fft.fftshift(np.fft.fft2(pupil)))**2 return np.max(psf) / np.sum(psf) # 归一化 def ga_optimize_alpha(field_points, defocus_range, alpha_range(2,20)): # 遗传算法优化alpha目标最大化多个视场斯特列尔比平均值 def obj(alpha): alpha_val alpha[0] strel_list [] for defoc in defocus_range: phase cubic_phase_mask(0,0,alpha_val) # 简化实际用全相位 # 计算轴上和轴外点 strel_on axis_strehl_ratio(np.zeros((64,64)), defoc) # 模拟 strel_off axis_strehl_ratio(np.zeros((64,64)), defoc)*0.6 strel_list.append(0.5*(strel_onstrel_off)) return -np.mean(strel_list) result differential_evolution(obj, bounds[alpha_range], maxiter30) return result.x[0] def wiener_restore(blurred, psf, snr0.01): # 维纳滤波复原 from scipy.signal import fftconvolve blurred_f np.fft.fft2(blurred) psf_f np.fft.fft2(psf, sblurred.shape) psf_f_conj np.conj(psf_f) restore_f blurred_f * psf_f_conj / (psf_f*psf_f_conj snr) return np.fft.ifft2(restore_f).real if __name__ __main__: # 模拟优化alpha opt_alpha ga_optimize_alpha([0.0,0.7], [0,0.2,0.4], alpha_range(3,15)) print(f优化后的位相板参数 alpha {opt_alpha:.3f}) # 模拟模糊图像复原 from skimage import data, color img data.camera() / 255.0 # 简单高斯模糊核模拟 kernel np.outer(np.hanning(15), np.hanning(15)) kernel / kernel.sum() blurred convolve2d(img, kernel, modesame) restored wiener_restore(blurred, kernel, snr0.005) print(f复原后PSNR: {10*np.log10(1/np.mean((restored-img)**2)):.2f} dB)