Matlab 2023b 光学仿真:Zernike 像差到 PSF 的 5 步计算流程与代码解析

发布时间:2026/7/11 22:33:27
Matlab 2023b 光学仿真:Zernike 像差到 PSF 的 5 步计算流程与代码解析 Matlab 2023b 光学仿真Zernike 像差到 PSF 的 5 步计算流程与代码解析光学系统的成像质量评估是光学工程领域的核心课题之一。点扩散函数PSF作为描述光学系统对点光源成像能力的量化指标其精确计算对于镜头设计、自适应光学校正和计算成像等领域具有决定性意义。本文将基于Matlab 2023b环境系统讲解从Zernike多项式构建波前相位到最终PSF图像生成的完整计算流程并提供可直接运行的模块化代码。1. 光学仿真基础Zernike多项式与PSF的物理关联Zernike多项式作为描述波前像差的经典工具在圆形孔径光学系统中展现出独特的正交性和旋转对称优势。其数学形式由径向指数n和角向频率m共同定义能够精准分解复杂像差function [Z, azimuthal] zernike_polynomial(n, m, rho, theta) % 计算归一化Zernike多项式 R zeros(size(rho)); for s 0:(n-abs(m))/2 coeff (-1)^s * factorial(n-s) / ... (factorial(s) * factorial((nabs(m))/2-s) * factorial((n-abs(m))/2-s)); R R coeff * rho.^(n-2*s); end % 归一化因子 N sqrt(2*(n1)/(1(m0))); % 角向分量 if m 0 azimuthal cos(m*theta); else azimuthal sin(abs(m)*theta); end Z N .* R .* azimuthal; end关键参数说明rho: 归一化极径坐标0到1theta: 方位角坐标0到2πn: 径向阶数非负整数m: 角向频率-n到n且n-m为偶数波前相位与PSF的物理联系源于傅里叶光学原理出瞳处的复振幅场经傅里叶变换后即得到像面的PSF分布。这一过程可表示为$$ PSF(x,y) \left| \mathcal{F}{P(u,v)e^{i2\pi W(u,v)}} \right|^2 $$其中$P(u,v)$为瞳孔函数$W(u,v)$为波前像差。2. 仿真环境配置与参数初始化Matlab 2023b在光学仿真领域的性能提升主要体现在矩阵运算加速和并行计算优化。以下代码段展示了如何建立标准化仿真环境%% 初始化参数 lambda 632.8e-9; % 波长m N 512; % 采样点数 aperture 0.0254; % 孔径直径m focal_length 0.127; % 焦距m psf_sampling 0.5e-6; % 像面采样间隔m %% 坐标系统构建 delta_fx 1/(psf_sampling*N); % 频域采样间隔 x_pupil (-fix(N/2):fix((N-1)/2)) * delta_fx * lambda * focal_length; [X_pupil, Y_pupil] meshgrid(x_pupil); R_pupil sqrt(X_pupil.^2 Y_pupil.^2); Theta atan2(Y_pupil, X_pupil); R_norm R_pupil/(aperture/2); % 归一化极径 %% 瞳孔函数定义 pupil_mask double(R_norm 1); % 圆形孔径参数选择指南参数推荐范围影响说明N256-1024采样点数越高计算精度越高但耗时增加psf_samplingλF/#/2~λF/#/4需满足Nyquist采样定理aperture根据实际系统决定系统截止频率3. Zernike模式波前构建与可视化采用Noll索引方案可高效管理Zernike模式。以下代码演示如何生成特定像差模式的波前%% 选择Zernike模式Noll索引 j 12; % 对应(n,m)(4,-2) [n, m] noll_to_zernike(j); % Noll索引转换 %% 计算波前相位 W zernike_polynomial(n, m, R_norm, Theta) .* pupil_mask; W W - mean(W(pupil_mask1)); % 移除活塞项 %% 可视化 figure; imagesc(x_pupil*1e3, x_pupil*1e3, W); axis image; colorbar; title(sprintf(Zernike模式 %d (n%d,m%d), j, n, m)); xlabel(x (mm)); ylabel(y (mm));常见像差模式特征离焦DefocusNoll索引4特征同心圆对称分布影响导致图像整体模糊像散AstigmatismNoll索引5-6特征45°对称的鞍形分布影响不同方向线条清晰度差异彗差ComaNoll索引7-8特征非对称的彗星状分布影响点光源成像产生拖尾4. PSF计算核心算法与优化基于傅里叶变换的PSF计算需要特别注意坐标平移和能量归一化%% 复振幅场构建 E pupil_mask .* exp(1i*2*pi*W); %% PSF计算带坐标校正 psf abs(fftshift(fft2(ifftshift(E)))).^2; psf psf / sum(psf(:)); % 能量归一化 %% 坐标生成 x_psf (-fix(N/2):fix((N-1)/2)) * psf_sampling; %% 可视化 figure; imagesc(x_psf*1e6, x_psf*1e6, psf); axis image; colorbar; title(计算得到的PSF); xlabel(x (μm)); ylabel(y (μm));计算加速技巧使用ifftshift和fftshift确保相位中心对齐对于大尺寸计算可启用GPU加速if gpuDeviceCount 0 E gpuArray(E); psf gather(abs(fftshift(fft2(ifftshift(E)))).^2); end多波长PSF可通过非相干叠加实现psf_multi zeros(N,N); for lambda [450e-9, 550e-9, 650e-9] % 各波长独立计算 psf_multi psf_multi psf_at_lambda(lambda); end5. 像差影响分析与工程应用不同Zernike模式对PSF的影响呈现显著差异通过系统化对比可指导光学设计%% 多模式PSF对比 modes [4,5,9,12]; % 离焦、像散、三叶草、球差 figure; for i 1:length(modes) % 计算各模式PSF subplot(2,2,i); imagesc(psf_for_mode(modes(i))); title(sprintf(模式%d PSF,modes(i))); end工程应用场景自适应光学校正实时测量波前像差通过变形镜反向补偿迭代优化至PSF接近衍射极限计算成像增强% 图像反卷积示例 estimated_psf ...; % 从测量获取 blurred_image ...; % 退化图像 restored deconvlucy(blurred_image, estimated_psf);光学系统公差分析% 蒙特卡洛像差分析 n_simulations 100; rms_values zeros(n_simulations,1); for k 1:n_simulations random_aberrations generate_random_zernikes(); psf compute_psf(random_aberrations); rms_values(k) calculate_strehl_ratio(psf); end histogram(rms_values);典型优化目标值指标优秀值可接受值Strehl比0.80.5RMS波前误差λ/14λ/4能量集中度(3×3像素)80%60%通过本文的模块化实现读者可快速构建从Zernike像差到PSF的完整分析流程。实际应用中建议结合具体光学系统参数调整采样策略和像差组合以获得最符合工程需求的分析结果。