资讯动态

用Matlab可视化赫兹偶极子近场与远场时变电场

发布时间:2026/10/22 13:42:12 来源:尧图企业网站定制
做天线仿真的人大概都有过类似的困惑公式书上全是球坐标下的赫兹偶极子解能背出好几个场的表达式但真让你说清楚“近场长什么样、远场长什么样、电场在空间里怎么随时间变化”脑子里的画面往往是模糊的。这篇笔记写的正是这个问题——来自微小偶极天线赫兹偶极子、电流元的近场和远场针对单频激励下的时变电场强度平面用 Matlab 把解析解直接变成可视化的场图甚至动画。适合电磁场课程作业、天线原理自学也适合做射频开发想快速验证场分布的人。这个题目的核心价值在于它不需要跑全波仿真软件完全依靠教科书上的封闭解析解就能在任意观测平面上得到复数电场分布再通过乘上时谐因子还原出任意时刻的瞬时电场。换句话说你可以把 FDTD 几十分钟才能算完的稳态结果用几行向量化代码在秒级算完还能观察波前传播、相位演化、近远场特征变化。下面我把这个问题的拆解思路、理论公式、Matlab 实现和常见坑完整过一遍。1. 需求拆解与整体思路这个题目到底要交付什么1.1 微小偶极天线是什么为什么拿它当例子微小偶极天线是指长度远小于工作波长的直线电流元通常取 dl ≤ λ/50电流沿导线近似均匀分布。理想情况下它就是电磁场理论里的“赫兹偶极子”是几乎所有天线理论的起点。拿它做近远场分析有数学上的天然优势场分量表达式简单、各项意义明确近场的 1/r³ 项、感应场的 1/r² 项、远场的 1/r 项全都在一个公式里非常方便对照观察。很多人一上来就跳过它去学贴片天线、微带天线但后面遇到近场探头设计、天线耦合、阵列布阵时又回头补这个概念。实际上只要理解了微小偶极子的场结构其他天线的近场行为大体上可以看作大量这种基本偶极子的叠加结果所以这个题目的意义远超一个简单的课堂作业。1.2 近场和远场到底差在哪里近场和远场不是“距离远近”这么简单。近场区里场的大部分能量在源和空间之间来回交换是储能状态远场区里场的能量才真正形成向外传播的辐射波。这个区别在公式上表现为不同的衰减指数近场主导项随距离衰减为 1/r³远场主导项衰减为 1/r。中间还有一段过渡区场从储能型逐渐过渡到辐射型。对微小偶极天线来说由于天线尺寸 D 远小于波长远场判据 2D²/λ 几乎没有约束力实际更常用的界限是 r λ/(2π)。但这个界限只是一个量级意义上的工程判据真正的场结构变化是连续的。通过时变电场强度平面可以直观看到这种连续性而不是只记一个临界距离。1.3 为什么用解析解加 Matlab而不是直接上仿真软件全波仿真软件当然能算近场和远场但对这个教学性质的问题它的缺点很明显网格离散会引入数值色散边界条件设置不当会污染场区每次改一个参数都要重新剖分网格很难“随手改随手看”。更重要的是仿真软件算出来的是一个数值结果你不容易把近场项、感应场项、辐射场项拆开观察。解析解加 Matlab 则完全不同。公式里每一项都可以单独保留、单独画图你可以只画 1/r 项、只画 1/r³ 项还可以对比总场。再加上 Matlab 的矩阵运算天然适合这种按网格逐点计算的场分布代码几十行就能完成从参数到动画的整套流程。对于想理解物理的人来说这种做法的信息量远大于仿真软件给的一张云图。1.4 单频激励和“时变电场强度平面”的含义单频激励就是电流源只包含一个角频率 ω 的时谐信号。线性的电磁场问题里单一频率激励下所有场点都以相同频率做正弦变化只是幅度和相位随空间位置不同。这时用相量法很划算复数相量存储了幅度和相位信息乘以 e^{jωt} 取实部就得到任意时刻的瞬时值。所谓“时变电场强度平面”就是在某个观测平面上换不同时刻 t得到一系列电场强度快照。把这些快照按时间顺序播放就能看到场是原地振荡还是向外传播、波前是怎么推进的。很多教科书只给出幅度分布但真正的瞬时场图能让你看到相位波前这比一张静态幅度图信息量大得多。2. 核心理论偶极子场公式和近远场判据2.1 场分量公式与符号约定考虑一个长度为 dl 的微小偶极子位于坐标原点沿 z 轴方向放置电流相量为 I₀单位安培。采用时谐约定 e^{jωt}自由空间波数 k ω√(με) 2π/λ波阻抗 η √(μ/ε) ≈ 120π ≈ 377Ω。球坐标下电场只有两个非零分量E_r (η I₀ dl cosθ) / (2π r²) · (1 − j/(kr)) · e^{−jkr}E_θ (j η k I₀ dl sinθ) / (4π r) · [1 1/(jkr) − 1/(kr)²] · e^{−jkr}磁场只有一个分量H_φ (j k I₀ dl sinθ) / (4π r) · [1 1/(jkr)] · e^{−jkr}这里 θ 是从 z 轴正方向算起的极角φ 是方位角。电场单位是 V/m磁场单位是 A/m。注意符号约定很重要有的教材用 e^{−jωt}公式里会出现不少 j 的正负号差异但最后取实部得到的瞬时物理场是完全一致的后面遇到和仿真软件比对不一致时首先检查的就是这个约定。2.2 为什么说一项就是一类场把 E_θ 方括号里的三项拆开看每一项对应 kr 的不同次幂。当距离很近、kr 1 时(kr)² 项分母最大所以近场由 1/(kr)² 主导对应的就是 E_θ ∝ 1/r³这是电偶极子的准静态场。距离增大到 kr ≈ 1 附近1/(jkr) 项开始起作用对应 1/r² 的感应场。距离很远、kr 1 时方括号趋近于 1只剩下 1/r 的辐射场项。E_r 公式里也类似括号里的 −j/(kr) 项是近场 1/r³ 的来源而常数项 1/r² 始终存在但它不是辐射场。这意味着一个很关键的物理事实总电场在任何距离上都同时包含三种距离依赖项所谓“远场区”只是 1/r 项占了绝对优势并不是其他项消失了。我们做可视化时如果想刻意展示远场方向图最好只用 E_θ 的 1/r 项或者观察距离取得足够远如果想观察近场储能就把 1/r³ 项单独拎出来。解析解的好处就在这拆项非常方便。2.3 近场区、过渡区和远场区怎么划分工程上常用的近场界限是 r λ/(2π)约 0.16λ这个区域内感应场能量明显kr 1。远场区通常要求 r 同时满足 r D天线最大尺寸和 r λ对电小天线来说工程上取 r ≥ 10λ 或 r ≥ 50λ 就很接近理想的远场方向图了。中间 r 在 0.16λ 到 10λ 左右都是过渡区各项场量相互重叠不太适合直接套用远场近似。做平面场图时我习惯把观测距离 z₀ 分别设在 0.1λ、0.5λ、3λ、10λ 四档一次全画出来。这样近场、过渡、远场的变化一目了然。理论上远场判据 2D²/λ 对电小天线退化成很小值所以主要看 kr 的量级这个细节在课程答辩里常被问到。2.4 从复数相量到瞬时电场的关键一步复数相量场 E_c(r) 是空间坐标的复函数它本身不代表某个时刻的场。要得到 t 时刻的瞬时电场就把它乘以 e^{jωt} 再取实部E(t) Re[ E_c(r) · e^{jωt} ]这一步看起来简单却很容易踩坑。很多人把复数场直接画出来画的其实是某个固定相位下的场而不是一个具体时刻的物理场。如果 E_c 是实数那乘上 e^{jωt} 取实部就是 cos 函数场会来回振荡如果 E_c 是复数取实部前还要考虑它的相位角。做动画时t 取一个周期内的等间隔采样点就能看到场在空间中传播或驻留。观测平面上某个点的场是随 t 正弦变化的所以单帧图只能反映一个瞬时状态。要得到“波前传播”的感觉必须把多个时刻的帧连续播放。这也是为什么这个题目强调“时变”而不是“静态幅度”。3. Matlab 代码实现从网格划分到动态电场平面3.1 参数设置与网格生成实际写代码时我建议把所有物理参数集中放在开头方便改频率、改观测距离。下面是一个可直接运行的初始版本观测平面取 x-y 平面偶极子沿 z 轴放在原点平面高度为 z₀。% 微小偶极天线近场/远场时变电场平面 clear; clc; close all; %% 物理参数 f 2.4e9; % 频率 2.4 GHz c 3e8; % 光速 lambda c / f; % 波长 k 2 * pi / lambda; % 波数 omega 2 * pi * f; % 角频率 eta 120 * pi; % 自由空间波阻抗 I0 1; % 电流峰值A dl lambda / 50; % 偶极子长度远小于波长 z0 0.5 * lambda; % 观测平面到原点的距离 %% 观测网格 N 401; % 网格点数 span 4 * lambda; % 观测范围 x linspace(-span/2, span/2, N); y linspace(-span/2, span/2, N); [X, Y] meshgrid(x, y); Z z0 * ones(size(X)); R sqrt(X.^2 Y.^2 Z.^2);网格分辨率很重要。N 取 401 时每个波长大约有 100 个采样点画近场图时相位波前是平滑的N 小于 100 时波前会出现明显的锯齿。范围我习惯取 ±2λ 到 ±5λ太小看不到完整的环形波前太大则近场中央细节被压缩。R 矩阵在原点附近会趋近于零导致无穷大所以后面要加一个下限保护。3.2 球坐标场分量计算先算每个网格点的极角 θ 和方位角 φ。观测平面是 x-y 平面时φ 直接由 atan2(Y, X) 得到θ 用 acos(Z / R) 得到。需要注意R 向量化计算出来是矩阵所有带 R、θ 的表达式都要用点运算。% 避免原点奇异性 R(R lambda / 1000) lambda / 1000; TH acos(Z ./ R); PHI atan2(Y, X); % 球坐标下的复数场相量 E_r eta .* I0 .* dl .* cos(TH) ./ (2 * pi .* R.^2) ... .* (1 - 1j ./ (k .* R)) .* exp(-1j .* k .* R); E_th 1j .* eta .* k .* I0 .* dl .* sin(TH) ./ (4 * pi .* R) ... .* (1 1 ./ (1j .* k .* R) - 1 ./ ((k .* R).^2)) ... .* exp(-1j .* k .* R);这里特意保留了每一项没有做任何远场近似。E_r 和 E_th 都是复矩阵实部虚部都有物理意义。运算顺序上矩阵除法必须用 ./矩阵乘法必须用 .*这是 Matlab 向量化最容易出错的点。我早期写这类代码时经常因为漏一个点号导致整个场图变成一团乱麻。3.3 转换到直角坐标并重构时变场偶极子沿 z 轴球坐标和直角坐标的转换关系是E_x (E_r sinθ E_θ cosθ) cosφ E_y (E_r sinθ E_θ cosθ) sinφ E_z E_r cosθ − E_θ sinθ转换成直角坐标后可以单独画 E_z、E_x 或者总场模值。对于 x-y 平面中心位置对应 θ 0E_z 分量就是总电场的主要部分适合观察偶极子轴线上的场。% 球坐标转直角坐标 cosPHI cos(PHI); sinPHI sin(PHI); sinTH sin(TH); cosTH cos(TH); Ex (E_r .* sinTH E_th .* cosTH) .* cosPHI; Ey (E_r .* sinTH E_th .* cosTH) .* sinPHI; Ez E_r .* cosTH - E_th .* sinTH; % 时域重构 T0 2 * pi / omega; % 周期 nt 20; % 每周期帧数 t (0:nt-1) / nt * T0; for n 1:nt Ezz real(Ez .* exp(1j * omega * t(n))); surf(X, Y, Ezz, EdgeColor, none); view(2); axis equal tight; colormap(jet); colorbar; clim([-max(abs(Ezz(:))) max(abs(Ezz(:)))]); title(sprintf(t %.2f T, z0 %.2f lambda, t(n)/T0, z0/lambda)); xlabel(x (m)); ylabel(y (m)); drawnow; pause(0.05); end这里有一个重要细节colormap 的范围要对称也就是正负最大值幅度相等否则红色代表正值、蓝色代表负值时会失衡场图会误导人。旧版 Matlab 用 caxis2022a 以后推荐 clim我一般写成 clim 并在注释里提醒旧版本兼容。3.4 看静态幅度还是看瞬时值瞬时场图用于展示波前和相位但如果想看距离衰减特征静态幅度图更方便。幅度图建议画归一化场强用 dB 或者线性归一化都可以。线性归一化适合观察近场结构而 dB 图可以同时看到近场和远场的量级差异。% 静态幅度图单频相量场的幅度可观察近远场衰减 Eamp abs(Ez); Eamp Eamp / max(Eamp(:)); figure; surf(X, Y, Eamp, EdgeColor, none); view(2); axis equal tight; colormap(jet); colorbar; title(z0 0.5 lambda, normalized |E_z|);如果观测距离跨越好几个数量级比如同时画 0.1λ 和 10λ 两个平面必须分开归一化再并排显示否则近场会把远场完全压扁。画 dB 图时用 20*log10(Eamp eps) 可以避免对数里出现零。3.5 参数与典型取值参考我整理的典型参数表如下方便直接套用参数符号典型值备注频率f2.4 GHz波长约 12.5 cm波数k2π/λ由频率和光速决定偶极子长度dlλ/50满足电小条件电流峰值I01 A相量模值波阻抗η120π Ω自由空间观测距离z00.1λ、0.5λ、3λ、10λ覆盖近场到远场网格点数N201 ~ 401每个波长至少 50 点观测范围span4λ ~ 10λ保证波前完整这些参数不是死的。频率换到 5G 毫米波频段只需要改 f其他自动跟着变。观测范围如果太小远场球面波前看起来会像平面波范围太大近场细节被压缩。可以先跑一版快速扫描再定最终参数。4. 仿真结果解读近场、过渡区、远场到底差在哪里4.1 不同观测距离下的平面图形态把 z₀ 分别设为 0.1λ、0.5λ、3λ、10λ你会发现四个图的形态差异非常大。z₀ 0.1λ 时观测平面紧贴在偶极子附近场强以中心轴线处最大向外快速衰减。瞬时场动画中图案主要在原地震荡行波感很弱这对应近场储能主导。z₀ 0.5λ 时围绕中心出现了一系列明暗交替的圆环动画中可以看到圆环缓慢向外移动这是 1/r² 感应场和 1/r 辐射场共同作用的过渡状态。z₀ 3λ 以上圆环变得规整动画中波前以接近光速向外推进这时候远场特征开始占据了主导。z₀ 10λ 时波形已经很接近理想辐射场了。更直观的方法是沿着 x 轴取一条一维曲线把 E_z 幅度画成 loglog 图。近场区域曲线斜率接近 −3远场区域斜率接近 −1中间有明显的过渡区。这种一维自检比二维云图更能定量判断“到底算不算远场”。4.2 方向图的演化从准静态到余弦花瓣远场条件下微小偶极子的辐射方向图是教科书里的常见图E_θ 与 sinθ 成正比在 θ 90° 最大θ 0° 和 180° 为零。但在近场区E_θ 主要由 1/r³ 项主导方向依赖同样是 sinθ所以方向图似乎没变但距离衰减和相位完全不同。真正变化的是 E_r 项的贡献。在近场E_r 的 1/r³ 项不可忽略总电场的极化方向不再垂直于传播方向在远场E_r 的辐射项为零电场只有横向的 E_θ 分量。这就是为什么天线的远场特性用“方向图”描述而近场必须用“场分布图”描述近场场的极化是混合的存在径向分量不能简单用一个球面方向图概括。4.3 相位波前沉默的螺旋结构很多人画瞬时电场图时只盯着幅度忽略了符号变化。其实正负交替的图案本身就包含了相位信息正半周代表电场沿 z 方向负半周代表沿 −z 方向。同一帧图里正负区域之间的距离就是半个波长。从动画中可以清楚看到波前以圆环形式向外扩展每一帧圆环半径都比上一帧大一些。这个扩展速度就是电磁波的相速度。近场区由于储能项和辐射项混合相邻两帧之间的图案变化不是简单的等比放大你能看到场在局部扭曲这正是近场反应性表现。远场区则非常干净波前像一个匀速膨胀的圆环。4.4 分量选择对观察结果的影响这里有个容易被忽略的点你画的是 E_z、E_r、E_θ 还是总场模值看到的结论可能完全不同。在 x-y 平面E_z 分量中心处最大因为中心对应 θ 0E_r 沿 z 方向投影全部贡献到 E_z。而 E_θ 分量在 θ 0 处为零所以如果只画 |E_θ|中心反而是暗的。这提醒我们做场图前必须想清楚想展示什么物理量。展示近场电场强度画 |E| 总场展示远场方向图特性画 |E_θ|展示偶极子轴向上的场画 |E_z|。我在实际讲解时经常把三个分量并排画出来观众立刻就能理解为什么远场方向图只看横向场分量。5. 常见问题与排查技巧实录5.1 高频问题速查表现象可能原因解决办法场图中心出现 NaN 或 Infr 0 处公式奇异对 R 加下限如 lambda/1000整张图全红或全蓝动态范围太大瞬时值被最大值淹没归一化、用 dB 或单独画幅度动画没有传播感时间帧数太少或网格范围太小每周期至少 20 帧范围取 4λ 以上方向图看起来不对观测平面不是球面平面截取不等于方向图换到球面采样点或单独算远场表达式图像上下颠倒网格坐标顺序与 surf 参数不一致保持 X、Y 来自同一个 meshgrid结果和全波仿真差很多时谐约定或电流定义不一致先取实部比较瞬时场不比较复数场本身代码跑得很慢用了双层 for 循环逐点计算改成矩阵向量化或降低 N 到 201幅度的对数图出现空洞20log10 里取到零值加 eps 或先归一化再加小量5.2 我踩过的几个坑和对应心得第一个坑是忘记取实部。复数相量场包含幅度和相位它本身不是某个时刻的真实场。第一次做动画时我直接把 Ez 画出来结果图案固定不动只是颜色随数值大小变化完全没有波前推进的感觉。后来改成 real(Ez .* exp(1jomegat)) 才正常。第二个坑是动态范围。近场中心场强可能是边缘的几万倍线性色标下边缘全是深蓝色什么细节都看不到。我的处理顺序是先看一维曲线确认量级再决定用线性、对数还是分段归一化。绝大多数教学场景下归一化线性图就够了但对数图能同时展示近场和远场的衰减规律。第三个坑是分不清“时变电场”和“幅度分布图”。时变电场强调某一瞬间的波前相位幅度分布图强调空间幅度。这个题目既然写的是“时变电场强度平面”动画就是重点静态幅度图只适合做补充说明。我一般会先画静态幅度图确认空间结构再做动画展示时间演化两个都保留。5.3 功能扩展方向这套代码扩展起来非常方便。想要多个偶极子只需要把每个偶极子的场分别计算再线性叠加立刻可以看到阵列天线的干涉条纹和近场耦合这对理解相控阵很有帮助。想要贴地平面可以添加镜像源。想要看三维场的整体结构可以在 x-y、y-z、x-z 三个平面同时画 slice 图。进一步可以利用这个场做近场探头校准仿真在近场区放一个测试偶极子重新计算接收电压就能模拟探针扫描过程。单频之外如果你有任意波形的激励可以对多个频率分别算场再做逆傅里叶变换合成时域波形这就从单频走向了超宽带脉冲场分析。我个人在实际操作中的一个体会是这类基于解析解的仿真最大的价值不是省下了仿真软件的钱而是把每个项、每个参数都暴露在你面前。想要真正理解近场和远场的区别与其去背判据公式不如亲手把 E_r 的 1/r³ 项画出来再把 E_θ 的 1/r 项画出来放在同一个坐标轴里看它们如何此消彼长。看到那个此消彼长的曲线比任何文字解释都管用。最后再分享一个小技巧把观测距离参数做成一个滑块或循环变量让 z₀ 从 0.05λ 扫到 10λ把每一帧静态图合成为 GIF 或视频你会第一次直观感受到“近场到远场的连续过渡”到底是个什么过程这也是我给每个问这个问题的人推荐的第一步实操。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑