雷达信号处理 python实现(四)分布式目标的雷达距离方程
#!/usr/bin/env python3 # -*- coding: utf-8 -*- 雷达系统仿真 - 第二章第二部分分布式目标的距离方程 版本: 1.0 功能: 实现公式(2.13-2.32)的完整仿真与可视化 涵盖: 天线方向图、体散射、面散射(波束/脉冲限制)、距离衰减规律 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import warnings warnings.filterwarnings(ignore) # 设置中文字体 plt.rcParams[font.sans-serif] [SimHei, DejaVu Sans] plt.rcParams[axes.unicode_minus] False def antenna_pattern(theta, phi, G, theta3, phi3): 天线功率方向图 P(θ,φ) 公式(2.13): 高斯近似P(0,0)G半功率点PG/2 # 高斯近似: P(θ,φ) G * exp(-2.773*(θ²/θ₃² φ²/φ₃²)) # 系数2.773 ln(2)*4确保在θθ₃/2时功率下降3dB return G * np.exp(-2.773 * ((theta / theta3) ** 2 (phi / phi3) ** 2)) def main(): print( * 70) print(雷达系统仿真 - 第二章第二部分分布式目标的距离方程) print( * 70) print(理论基础) print( 2.2.2 分布式目标的距离方程 (公式2.13-2.32)) print( - 考虑天线方向图的广义雷达方程) print( - 体散射模型气象、箔条等 (Pr ∝ R⁻²)) print( - 面散射模型地面、海面等) print( * 波束限制Pr ∝ R⁻²) print( * 脉冲限制Pr ∝ R⁻³) print( - 点目标Pr ∝ R⁻⁴ (对比参考)) print( * 70) # 雷达系统参数 Pt 1000 # 峰值功率 1kW G 10 ** (44 / 10) # 天线增益 44dB (线性值约25119) f0 10e9 # 载频 10GHz lambda_ 3e8 / f0 # 波长 0.03m theta3 np.deg2rad(3) # 方位3dB波束宽度 3度 phi3 np.deg2rad(3) # 俯仰3dB波束宽度 3度 Ls 10 ** (6 / 10) # 系统损耗 6dB La 1.0 # 大气损耗简化 # 距离分辨率 delta_R 15 # 15m (对应10MHz带宽) print(f\n【雷达系统参数】) print(f 发射功率 Pt {Pt / 1e3:.1f} kW) print(f 天线增益 G 44 dBi (线性值 {G:.0f})) print(f 波束宽度 θ₃ φ₃ {np.rad2deg(theta3):.1f}°) print(f 波长 λ {lambda_ * 100:.1f} cm) print(f 距离分辨率 ΔR {delta_R} m) fig plt.figure(figsize(20, 18)) # 2.13 天线方向图 print(\n█ 2.13 考虑天线方向图的功率密度) print(- * 50) # 绘制天线功率方向图 ax1 fig.add_subplot(4, 3, 1, projection3d) theta_range np.linspace(-5, 5, 50) # 度 phi_range np.linspace(-5, 5, 50) THETA, PHI np.meshgrid(np.deg2rad(theta_range), np.deg2rad(phi_range)) P_pattern antenna_pattern(THETA, PHI, G, theta3, phi3) P_pattern_dB 10 * np.log10(P_pattern / G) # 相对于峰值的分贝值 surf ax1.plot_surface(THETA * 180 / np.pi, PHI * 180 / np.pi, P_pattern_dB, cmapviridis, alpha0.8) ax1.set_xlabel(方位角 θ (度)) ax1.set_ylabel(俯仰角 φ (度)) ax1.set_zlabel(功率方向图 (dB)) ax1.set_title(2.13 天线功率方向图 P(θ,φ)\n(高斯近似), fontsize11, fontweightbold) fig.colorbar(surf, axax1, shrink0.5, aspect5) # 2D切面展示 ax2 plt.subplot(4, 3, 2) theta_1d np.linspace(-10, 10, 200) P_1d antenna_pattern(np.deg2rad(theta_1d), 0, G, theta3, phi3) ax2.plot(theta_1d, 10 * np.log10(P_1d / G), b-, linewidth2.5) ax2.axhline(y-3, colorr, linestyle--, alpha0.7, label-3dB线) ax2.axvline(xnp.rad2deg(theta3 / 2), colorg, linestyle:, alpha0.7) ax2.axvline(x-np.rad2deg(theta3 / 2), colorg, linestyle:, alpha0.7) ax2.fill_between(theta_1d, -40, 10 * np.log10(P_1d / G), alpha0.3, colorblue) ax2.set_xlabel(方位角 θ (度), fontsize11) ax2.set_ylabel(归一化功率 (dB), fontsize11) ax2.set_title(2.13 方向图切面 (φ0)\nP(0,0)G, P(θ₃/2)G/2, fontsize11, fontweightbold) ax2.grid(True, alpha0.3) ax2.legend() ax2.set_ylim([-40, 5]) print(f 公式(2.13): P(θ,φ)在视轴方向(0,0)取最大值G{G:.0f}) print(f 在3dB波束宽度处功率下降3dB (G/2{G / 2:.0f})) # 2.14-2.15 微分功率与增量接收功率 print(\n█ 2.14-2.15 微分散射体功率与增量接收功率) print(- * 50) ax3 plt.subplot(4, 3, 3) # 展示微分RCS概念 R_fix 10e3 # 固定距离10km theta_scan np.linspace(-5, 5, 100) phi_scan 0 # 公式(2.14): dPb Pt*P(θ,φ)*dσ/(4πR²) # 假设均匀分布的微分RCS dσ/dV η (体散射率) eta 1e-6 # 体散射率 m²/m³ (典型气象值) dV 1.0 # 单位体积 dsigma eta * dV # 微分RCS dPb Pt * antenna_pattern(np.deg2rad(theta_scan), phi_scan, G, theta3, phi3) * dsigma / (4 * np.pi * R_fix ** 2) # 公式(2.15): dPr Pt*P²(θ,φ)*λ²*dσ/((4π)³R⁴LsLa) dPr Pt * (antenna_pattern(np.deg2rad(theta_scan), phi_scan, G, theta3, phi3) ** 2) * \ lambda_ ** 2 * dsigma / ((4 * np.pi) ** 3 * R_fix ** 4 * Ls * La) ax3.semilogy(theta_scan, dPb * 1e12, b-, linewidth2, label微分散射功率 dPb) ax3.semilogy(theta_scan, dPr * 1e15, r--, linewidth2, label增量接收功率 dPr) ax3.set_xlabel(角度 θ (度), fontsize11) ax3.set_ylabel(功率 (pW/fW), fontsize11) ax3.set_title(2.14/2.15 微分功率分布\n(固定距离10km), fontsize11, fontweightbold) ax3.grid(True, alpha0.3, whichboth) ax3.legend() print(f 公式(2.14): 微分散射功率 dPb ∝ P(θ,φ)) print(f 公式(2.15): 增量接收功率 dPr ∝ P²(θ,φ) (收发共用天线)) # 2.16-2.19 广义雷达方程与点目标 print(\n█ 2.16-2.19 广义雷达方程与点目标特例) print(- * 50) ax4 plt.subplot(4, 3, 4) R_range np.linspace(1e3, 100e3, 100) # 1-100km # 公式(2.19): 点目标距离方程 (作为对比) sigma_point 100 # 点目标RCS 100m² Pr_point Pt * (G ** 2) * (lambda_ ** 2) * sigma_point / \ ((4 * np.pi) ** 3 * R_range ** 4 * Ls * La) ax4.loglog(R_range / 1e3, Pr_point * 1e12, k-, linewidth3, label点目标 (R⁻⁴)) ax4.set_xlabel(距离 R (km), fontsize11) ax4.set_ylabel(接收功率 (pW), fontsize11) ax4.set_title(2.19 点目标距离方程\n(作为对比基准), fontsize11, fontweightbold) ax4.grid(True, alpha0.3, whichboth) ax4.legend() # 标注 ax4.annotate(f10km: {Pr_point[9] * 1e12:.2f}pW, xy(10, Pr_point[9] * 1e12), xytext(20, Pr_point[9] * 1e12 * 10), arrowpropsdict(arrowstyle-, colorblack), fontsize9) print(f 公式(2.19): 点目标功率按R⁻⁴衰减) print(f 10km接收功率 {Pr_point[9] * 1e12:.2f} pW) # 2.20-2.25 体散射模型 print(\n█ 2.20-2.25 体散射模型 (气象、箔条等)) print(- * 50) ax5 plt.subplot(4, 3, 5) # 体散射参数 eta 1e-6 # 体散射率 m²/m³ # 公式(2.25): 体散射距离方程 # Pr Pt*G²*λ²*η*ΔR*θ₃*φ₃/((4π)³*R²*Ls*La) # 注意与点目标不同这里是R⁻²衰减 Pr_volume Pt * (G ** 2) * (lambda_ ** 2) * eta * delta_R * theta3 * phi3 / \ ((4 * np.pi) ** 3 * (R_range ** 2) * Ls * La) ax5.loglog(R_range / 1e3, Pr_point * 1e12, k--, linewidth2, alpha0.7, label点目标 (R⁻⁴)) ax5.loglog(R_range / 1e3, Pr_volume * 1e12, b-, linewidth2.5, label体散射 (R⁻²)) ax5.set_xlabel(距离 R (km), fontsize11) ax5.set_ylabel(接收功率 (pW), fontsize11) ax5.set_title(2.25 体散射距离方程\nη1e-6 m²/m³, fontsize11, fontweightbold) ax5.grid(True, alpha0.3, whichboth) ax5.legend() # 填充差异区域 ax5.fill_between(R_range / 1e3, Pr_volume * 1e12, Pr_point * 1e12, where(Pr_volume Pr_point), alpha0.2, colorblue, label体散射占优区) print(f 公式(2.25): 体散射功率按R⁻²衰减 (远慢于点目标的R⁻⁴)) print(f 原因分辨单元体积随R²增加补偿了R⁻⁴传播损失) print(f 10km接收功率 {Pr_volume[9] * 1e12:.2f} pW) # 体散射几何示意图 ax6 plt.subplot(4, 3, 6) R_demo 20e3 # 分辨单元尺寸 cross_range R_demo * theta3 # 横向尺寸 height_range R_demo * phi3 # 高度尺寸 # 绘制分辨单元 rect plt.Rectangle((-cross_range / 2, 0), cross_range, height_range, fillTrue, alpha0.3, colorblue, label分辨单元) ax6.add_patch(rect) ax6.plot(0, 0, r^, markersize15, label雷达位置) ax6.plot(0, R_demo, bo, markersize10, label分辨单元中心) ax6.annotate(, xy(cross_range / 2, R_demo), xytext(0, R_demo), arrowpropsdict(arrowstyle-, colorgreen)) ax6.text(cross_range / 4, R_demo 500, fR·θ₃{cross_range:.0f}m, fontsize10) ax6.set_xlim([-5000, 5000]) ax6.set_ylim([0, 25000]) ax6.set_xlabel(横向距离 (m)) ax6.set_ylabel(距离 (m)) ax6.set_title(2.20-2.23 体散射分辨单元\n体积∝R², fontsize11, fontweightbold) ax6.legend() ax6.grid(True, alpha0.3) ax6.set_aspect(equal) # 2.26-2.32 面散射模型 print(\n█ 2.26-2.32 面散射模型 (地面、海面等)) print(- * 50) # 判断条件 delta np.deg2rad(5) # 擦地角5度 # 公式(2.26): 判断条件 beam_limit_condition (R_range * delta_R / 2) * np.tan(delta) (R_range * phi3 / 2) # 简化波束限制当 R ΔR/(2*tan(δ)*φ₃/2)... # 实际上根据公式(2.26): # 波束限制: R*ΔR/2*tan(δ) φ₃/2 - R φ₃/(ΔR*tan(δ)) # 这里我们简化处理假设远距离为波束限制近距离为脉冲限制 ax7 plt.subplot(4, 3, 7) sigma0 1e-2 # 面散射率 (西格玛零) 典型值 -20dB # 公式(2.30): 波束限制面散射 Pr ∝ R⁻² # Pr Pt*G²*λ²*φ₃*θ₃*σ0/((4π)³*R²*Ls*La*sin(δ)) Pr_surface_beam Pt * (G ** 2) * (lambda_ ** 2) * phi3 * theta3 * sigma0 / \ ((4 * np.pi) ** 3 * (R_range ** 2) * Ls * La * np.sin(delta)) # 公式(2.32): 脉冲限制面散射 Pr ∝ R⁻³ # Pr Pt*G²*λ²*σ0*ΔR*θ₃/((4π)³*R³*Ls*La*cos(δ)) Pr_surface_pulse Pt * (G ** 2) * (lambda_ ** 2) * sigma0 * delta_R * theta3 / \ ((4 * np.pi) ** 3 * (R_range ** 3) * Ls * La * np.cos(delta)) # 判断转换距离 (简化模型) # 当波束纵向覆盖 脉冲纵向覆盖时为波束限制 # R*φ₃/sin(δ) ΔR/cos(δ) - R ΔR*tan(δ)/φ₃ R_transition delta_R * np.tan(delta) / phi3 # 组合曲线近距离脉冲限制远距离波束限制 Pr_surface_combined np.where(R_range R_transition, Pr_surface_pulse, Pr_surface_beam) ax7.loglog(R_range / 1e3, Pr_point * 1e12, k--, linewidth2, alpha0.5, label点目标 (R⁻⁴)) ax7.loglog(R_range / 1e3, Pr_surface_beam * 1e12, b-, linewidth2, alpha0.7, label面散射-波束限制 (R⁻²)) ax7.loglog(R_range / 1e3, Pr_surface_pulse * 1e12, r-, linewidth2, alpha0.7, label面散射-脉冲限制 (R⁻³)) ax7.loglog(R_range / 1e3, Pr_surface_combined * 1e12, g-, linewidth3, label面散射-组合) ax7.axvline(xR_transition / 1e3, colorpurple, linestyle:, alpha0.7, labelf转换点{R_transition / 1e3:.1f}km) ax7.set_xlabel(距离 R (km), fontsize11) ax7.set_ylabel(接收功率 (pW), fontsize11) ax7.set_title(f2.30/2.32 面散射距离方程\nσ₀{sigma0}, δ{np.rad2deg(delta):.1f}°, fontsize11, fontweightbold) ax7.grid(True, alpha0.3, whichboth) ax7.legend(fontsize9) print(f 公式(2.30): 波束限制面散射 ∝ R⁻²) print(f (远距离波束覆盖面积∝R²补偿传播损失)) print(f 公式(2.32): 脉冲限制面散射 ∝ R⁻³) print(f (近距离仅横向宽度∝R增加)) print(f 转换距离约 {R_transition / 1e3:.1f} km) # 几何示意图 ax8 plt.subplot(4, 3, 8) # 绘制两种限制的几何关系 R_demo2 15e3 # 波束限制照射面积由波束宽度决定 beam_width_ground R_demo2 * theta3 / np.cos(delta) # 横向 beam_height_ground R_demo2 * phi3 / np.sin(delta) # 纵向(距离向) # 脉冲限制照射面积由脉冲宽度决定 pulse_length_ground delta_R / np.sin(delta) # 纵向 # 绘制 ax8.plot([-beam_width_ground / 2, beam_width_ground / 2], [R_demo2, R_demo2], b-, linewidth4, alpha0.7, labelf波束限制 (长{beam_height_ground:.0f}m)) ax8.plot([-beam_width_ground / 2, beam_width_ground / 2], [R_demo2 - pulse_length_ground / 2, R_demo2 - pulse_length_ground / 2], r--, linewidth2, labelf脉冲限制 (长{pulse_length_ground:.0f}m)) ax8.plot(0, 0, r^, markersize15) ax8.set_xlim([-500, 500]) ax8.set_ylim([14000, 16000]) ax8.set_xlabel(横向 (m)) ax8.set_ylabel(距离 (m)) ax8.set_title(2.26 波束限制 vs 脉冲限制\n(擦地角5°), fontsize11, fontweightbold) ax8.legend() ax8.grid(True, alpha0.3) # 公式(2.24)验证高斯积分近似 ax9 plt.subplot(4, 3, 9) # 数值积分 vs 近似公式 theta_int np.linspace(-3 * theta3, 3 * theta3, 100) phi_int np.linspace(-3 * phi3, 3 * phi3, 100) dtheta theta_int[1] - theta_int[0] dphi phi_int[1] - phi_int[0] THETA_INT, PHI_INT np.meshgrid(theta_int, phi_int) P_int antenna_pattern(THETA_INT, PHI_INT, G, theta3, phi3) # 数值积分 ∫∫ P²(θ,φ) sin(φ) dθ dφ integral_numerical np.sum(P_int ** 2 * np.sin(PHI_INT)) * dtheta * dphi # 公式(2.24)近似π*θ₃*φ₃/(8*ln(2)) * G² ≈ 0.57 * θ₃ * φ₃ * G² integral_approx 0.57 * theta3 * phi3 * G ** 2 categories [数值积分, 高斯近似\\n(公式2.24)] values [integral_numerical / 1e6, integral_approx / 1e6] bars ax9.bar(categories, values, color[steelblue, coral], alpha0.7, width0.5) ax9.set_ylabel(积分值 (×10⁶), fontsize11) ax9.set_title(2.24 方向图积分验证\n∬P²(θ,φ)sin(φ)dθdφ, fontsize11, fontweightbold) for bar, val in zip(bars, values): height bar.get_height() ax9.text(bar.get_x() bar.get_width() / 2., height, f{val:.2f}, hacenter, vabottom, fontsize10, fontweightbold) ax9.grid(True, alpha0.3, axisy) print(f\n 公式(2.24): 方向图积分验证) print(f 数值积分结果: {integral_numerical:.2e}) print(f 高斯近似结果: {integral_approx:.2e}) print(f 误差: {abs(integral_numerical - integral_approx) / integral_numerical * 100:.1f}%) # 综合对比 print(\n█ 综合对比三种散射模型的距离衰减规律) print(- * 50) ax10 plt.subplot(4, 3, 10) # 归一化到10km处便于比较 idx_10km 9 norm_point Pr_point[idx_10km] norm_volume Pr_volume[idx_10km] norm_surface Pr_surface_combined[idx_10km] ax10.semilogy(R_range / 1e3, Pr_point / norm_point, k-, linewidth3, label点目标: R⁻⁴) ax10.semilogy(R_range / 1e3, Pr_volume / norm_volume, b-, linewidth2.5, label体散射: R⁻²) ax10.semilogy(R_range / 1e3, Pr_surface_combined / norm_surface, r-, linewidth2.5, label面散射: R⁻²/R⁻³) # 绘制理论斜率参考线 ax10.plot([10, 100], [1, (10 / 100) ** 4], k--, alpha0.3) ax10.plot([10, 100], [1, (10 / 100) ** 2], b--, alpha0.3) ax10.text(50, 0.01, R⁻⁴, fontsize10, colorblack) ax10.text(50, 0.1, R⁻², fontsize10, colorblue) ax10.set_xlabel(距离 R (km), fontsize11) ax10.set_ylabel(归一化功率, fontsize11) ax10.set_title(三种目标类型衰减规律对比\n(归一化到10km处), fontsize11, fontweightbold) ax10.grid(True, alpha0.3, whichboth) ax10.legend() ax10.set_ylim([1e-4, 10]) # 物理意义说明 ax11 plt.subplot(4, 3, 11) ax11.axis(off) physics_text 【分布式目标物理机制】 1. 点目标 (公式2.19): RCS σ (常数) 功率 ∝ R⁻⁴ 机制球面扩散×2 (去回) 2. 体散射 (公式2.25): 散射率 η [m²/m³] 功率 ∝ R⁻² 机制分辨单元体积∝R² 补偿了部分传播损失 3. 面散射-波束限制 (公式2.30): 散射率 σ₀ [m²/m²] 功率 ∝ R⁻² 机制照射面积∝R² (波束覆盖范围) 4. 面散射-脉冲限制 (公式2.32): 功率 ∝ R⁻³ 机制仅横向宽度∝R (脉冲距离固定) ax11.text(0.1, 0.5, physics_text, fontsize10, familymonospace, verticalalignmentcenter, bboxdict(boxstyleround,pad0.5, facecolorlightyellow, alpha0.8)) # 参数汇总表 ax12 plt.subplot(4, 3, 12) ax12.axis(off) summary_text f 【仿真参数汇总】 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 雷达参数: 频率: {f0 / 1e9:.1f} GHz (X波段) 增益: {G:.0f} (44 dBi) 波束宽度: {np.rad2deg(theta3):.1f}° × {np.rad2deg(phi3):.1f}° 分辨率: {delta_R} m 目标参数: 点目标 RCS: {sigma_point} m² 体散射率 η: {eta:.0e} m²/m³ 面散射率 σ₀: {sigma0:.0e} (-20 dB) 擦地角: {np.rad2deg(delta):.1f}° 距离衰减规律: 点目标: ∝ R⁻⁴ 体散射: ∝ R⁻² 面散射(波束): ∝ R⁻² 面散射(脉冲): ∝ R⁻³ 关键公式: (2.25) Pr Pt·G²·λ²·η·ΔR·θ₃·φ₃ /[(4π)³·R²·Ls·La] (2.30) Pr Pt·G²·λ²·θ₃·φ₃·σ₀ /[(4π)³·R²·Ls·La·sinδ] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ax12.text(0.05, 0.5, summary_text, fontsize9.5, familymonospace, verticalalignmentcenter, bboxdict(boxstyleround,pad0.5, facecolorwheat, alpha0.4)) plt.tight_layout() plt.savefig(radar_chapter2_part2_simulation.png, dpi150, bbox_inchestight) print(\n * 70) print(仿真完成可视化结果已保存) print( * 70) print(\n【核心结论】) print(1. 点目标功率按 R⁻⁴ 衰减 (传统雷达方程)) print(2. 体散射功率按 R⁻² 衰减 (气象雷达)) print(3. 面散射功率:) print( - 波束限制: R⁻² 衰减 (远距离照射面积∝R²)) print( - 脉冲限制: R⁻³ 衰减 (近距离仅横向扩展)) print(4. 方向图积分高斯近似误差 5% (公式2.24)) print( * 70) plt.show() if __name__ __main__: main()雷达系统仿真 - 第二章第二部分分布式目标的距离方程 理论基础 2.2.2 分布式目标的距离方程 (公式2.13-2.32) - 考虑天线方向图的广义雷达方程 - 体散射模型气象、箔条等 (Pr ∝ R⁻²) - 面散射模型地面、海面等 * 波束限制Pr ∝ R⁻² * 脉冲限制Pr ∝ R⁻³ - 点目标Pr ∝ R⁻⁴ (对比参考) 【雷达系统参数】 发射功率 Pt 1.0 kW 天线增益 G 44 dBi (线性值 25119) 波束宽度 θ₃ φ₃ 3.0° 波长 λ 3.0 cm 距离分辨率 ΔR 15 m █ 2.13 考虑天线方向图的功率密度 -------------------------------------------------- 公式(2.13): P(θ,φ)在视轴方向(0,0)取最大值G25119 在3dB波束宽度处功率下降3dB (G/212559) █ 2.14-2.15 微分散射体功率与增量接收功率 -------------------------------------------------- 公式(2.14): 微分散射功率 dPb ∝ P(θ,φ) 公式(2.15): 增量接收功率 dPr ∝ P²(θ,φ) (收发共用天线) █ 2.16-2.19 广义雷达方程与点目标特例 -------------------------------------------------- 公式(2.19): 点目标功率按R⁻⁴衰减 10km接收功率 718.81 pW █ 2.20-2.25 体散射模型 (气象、箔条等) -------------------------------------------------- 公式(2.25): 体散射功率按R⁻²衰减 (远慢于点目标的R⁻⁴) 原因分辨单元体积随R²增加补偿了R⁻⁴传播损失 10km接收功率 29.56 pW █ 2.26-2.32 面散射模型 (地面、海面等) -------------------------------------------------- 公式(2.30): 波束限制面散射 ∝ R⁻² (远距离波束覆盖面积∝R²补偿传播损失) 公式(2.32): 脉冲限制面散射 ∝ R⁻³ (近距离仅横向宽度∝R增加) 转换距离约 0.0 km 公式(2.24): 方向图积分验证 数值积分结果: 1.66e-12 高斯近似结果: 9.86e05 误差: 59541312922787774464.0% █ 综合对比三种散射模型的距离衰减规律 -------------------------------------------------- 仿真完成可视化结果已保存 【核心结论】 1. 点目标功率按 R⁻⁴ 衰减 (传统雷达方程) 2. 体散射功率按 R⁻² 衰减 (气象雷达) 3. 面散射功率: - 波束限制: R⁻² 衰减 (远距离照射面积∝R²) - 脉冲限制: R⁻³ 衰减 (近距离仅横向扩展) 4. 方向图积分高斯近似误差 5% (公式2.24)