☰
频谱分析仪实战:让Lora射频信号显形,快速定位无线通信故障
2026/10/9 6:50:12 网站建设 项目流程

调了两天Lora模块,发射端代码怎么看都正常,寄存器配置也翻来覆去确认了好几遍,接收端就是收不到一个字节。最后把频谱分析仪架在模块旁边一看,整个频段干干净净,发射瞬间压根没有信号出来——问题不在协议栈,而在物理层根本没把电波发出去。这种情况我在调试中遇到过太多次,从那以后频谱分析仪就成了我处理Lora问题的标配工具。

这篇内容不是射频理论课,而是一份给普通嵌入式开发者、物联网从业者的实操笔记。我会从设备选型、测试参数、频谱图判读、真实排查案例到天线对比,把“简单用用频谱分析仪看Lora”这件事里最实用的部分讲清楚。适合手里有Lora模块但没用过频谱仪的人,也适合已经买了仪器但不知道从哪下手的开发者。

1. 频谱仪之于Lora调试:把看不见的射频链路拉到眼皮底下

先说清楚频谱分析仪到底能帮我们做什么。Lora只是我们调试对象的名字,本质上它是一条工作在亚吉赫兹频段的无线链路。这条链路从芯片内部的调制器,经过射频前端、天线匹配网络、空间传播,最后到达接收端的解调器。其中任何一环出了问题,表现出来都是“收不到数据”或者“距离变短”,但串口日志和逻辑分析仪都探不到内部,你只能靠猜。

频谱仪恰好把这些环节中“空中电磁波”这一段变成了一幅看得见的图。它能告诉我们五件事:

  • 模块到底有没有在发射,还是说只是软件假装自己在发射;
  • 发射的中心频率是否正确,是稳在配置频点,还是漂到了别处;
  • 信号的带宽和调制特征是否符合Lora的扩频特性;
  • 发射是持续的还是脉冲式的,间隔是否符合预期;
  • 频谱上是只有主信号,还是带着杂散、谐波、噪声底座等“附加内容”。

这五件事用普通调试手段几乎都查不出来。比如串口打印输出了“TX OK”,那是芯片内部状态机说的,和天线口到底有没有辐射出去没有任何关系。曾经有人调一个模块,日志显示每包都发送成功,接收端半个包都收不到,最后频谱仪一看,模块把发射引脚错接到了另一个GPIO上,信号根本没走到PA。这种问题看一天代码不如看三秒钟频谱。

也有人问,网络分析仪、功率计不也能测射频吗?确实能,但术业有专攻。矢量网络分析仪测的是天线和馈线的匹配阻抗、S参数,属于“反射与传输”特性;功率计测的是某一段频率宽度内的总功率,说不出频率细节;频谱分析仪则是在频率轴上做扫描,把每个频点上的功率大小都显示出来。对Lora这类需要确认频点、带宽和杂散的信号来说,频谱仪是最顺手的工具。

还有一个关键点:频谱仪不需要解调Lora数据。它不关心你用的是SF7还是SF12,不关心数据包内容,只看物理层的射频能量分布。这意味着即使你的Lora协议栈完全跑不起来,只要芯片的射频前端在振荡、在发Chirp信号,频谱仪就能看到。它把“无线通信是否成功”这个大问题拆成了“调制信号是否真的发射到了空中”和“对方是否解调成功”两个独立问题。这样排查效率高很多。

2. 设备选型:普通开发者的三种频谱仪方案

很多人一听频谱仪就想到实验室里那种几十斤重、好几万块起的台式仪器,觉得自己用不上。实际上现在适合个人开发者做Lora测试的方案有三种,价格从两百元档到万元档都有,各有取舍。

我把三类方案并列放在一起对比,方便你按预算和场景选。

方案类型价格区间频率范围覆盖绝对幅度精度时间维观察适合场景
入门级台式扫频仪数千至数万依型号而定,多数覆盖100kHz至1GHz以上较好,可作为参考依赖零扫宽或标记点功能,较弱产线验证、实验室定量测试
USB实时频谱仪数千元级常见覆盖70MHz至6GHz中等,能做相对比较强,带三维频谱视图,可直接看扫频瀑布图嵌入式开发、日常调试、节点部署检验
接收棒加开源SDR软件200元档起大体覆盖几十MHz至1.7GHz无校准,仅供定性观察较强,取决于软件功能入门体验、定性排查、教学演示

三点说明。第一,台式扫频仪和USB实时频谱仪本质上都有真正的射频前端和本振,能扫描到Lora所在的470MHz至510MHz频段(国内通用),也可以直接设置中心频率、扫描跨度、分辨率带宽这些参数。USB实时频谱仪多了快速FFT处理和瀑布图显示,观察突发信号更方便,个人开发时使用频率更高。第二,接收棒加SDR软件这个方案,本质上是软件定义接收机,只能接收不能发射,频率覆盖一般在24MHz到1.7GHz左右,用来“看有没有信号”“信号大概在哪个频点”完全够用,但绝对功率读数是不可信的,而且前端没有校准,不同电脑不同软件显示出来的幅度差异很大,适合作为入门观察工具。第三,真正的台式频谱仪如果预算允许且你经常测绝对功率,当然更省心,但体积大、上手成本高,对大多数做Lora节点开发的人来说不是必需品。

给出最务实的建议:如果没有特殊要求,先入手USB实时频谱仪或SDR接收方案,配合开源软件足够覆盖日常Lora调试。等确认自己确实需要精确的功率读数、需要测EMC或杂散测试,再考虑升级台式设备。说不差钱,直接上实时频谱仪也不亏,因为它带时间轴观察,后面的案例里你会体会到时间维度对定位问题有多重要。

还有一个很多人忽略的选型细节:看动态范围和底噪。Lora是扩频信号,能量被摊开在较宽的频带里,峰值功率密度比窄带FSK低很多。接收端灵敏度又低(可达-130dBm量级),所以频谱仪的底噪只要不够低,小信号就可能淹没在噪声里看不见。入门级设备动态范围一般够用,但如果你经常要在现场测微弱信号,底噪这个指标更要看重。另外买USB频谱仪时注意看它的前端有没有内置衰减器,带衰减器会让强信号处理方便许多。

3. 测试链路搭建与参数设置:让Lora信号乖乖出现在屏幕上

设备到位后,遇到的第一个问题往往是:“为什么我把模块放在频谱仪旁边,屏幕却啥都没有?”这未必是设备坏了,多数情况是参数设置不对,或者测试链路没搭好。我先把两个容易踩的坑说明白。

第一个坑是天线摆放方式和近场耦合。简单测试场景中,我们通常把频谱仪的测试天线或直连端口直接靠近Lora模块的天线,距离几厘米到几十厘米。这种场景属于近场耦合,读到的幅度值和绝对功率不挂钩,距离动一厘米读数就可能差好几个dB。所以在整个测试过程中,要保持天线与模块的相对位置固定,不要手一抖就换个距离。如果发现幅度读数跳来跳去,先看是不是线缆在晃动,再看看周围有没有金属物体反射。

第二个坑是Lora模块必须真正工作在连续发射模式下,才能方便地看谱线。Lora节点平时都是突发发送,一发一停,扫频仪扫过去的时候信号可能刚好没在发,你就看不到。让模块进入连续发射,可以用串口发测试指令,也可以写一段简单的代码让无线模块循环发送测试报文。我的习惯是把发射间隔拍死在100毫秒以内,或者干脆让芯片进入测试载波模式——大部分Lora芯片和模组的评估板都提供直接发载波或持续发包的测试命令,这是调试时最有用的功能之一。

接下来是频谱仪参数。以470MHz频段、125kHz带宽、SF7的常见Lora配置为例,我建议这样设置。

参数项推荐值为什么这么设
中心频率模块配置的实际发射频点让被测信号落在屏幕正中附近,观察更直观
扫描跨度10MHz至30MHz既能看到主信号,也能看到附近的杂散和谐波
分辨率带宽10kHzLora信号带宽通常为125kHz,RBW设小才能看清包络轮廓
扫描时间自动扫宽较大时自动扫描即可,配合峰值保持使用
参考电平0dBm或-10dBm近场耦合时信号不弱,参考电平设太高或太低都影响观察
衰减依信号强度调整,必要时加10至20dB避免接收前端饱和,出现假性平顶失真
检波方式峰值检波脉冲信号用峰值检波才能看到真实包络
显示方式Max Hold(峰值保持)累积显示多次脉冲,把间歇性信号“勾勒”出来
触发模式如果设备支持,用视频触发或功率触发让扫描等待信号出现后才开始,观察更容易复现

参数设置的逻辑很简单:先确定中心频率和跨度,把频段位置找对;然后调RBW和检波方式,让信号形态真实呈现;最后用Max Hold和触发模式解决“信号是间歇性的”这个问题。

我特别想展开讲一下Max Hold的作用。普通扫频状态下,频谱仪在扫描带宽内来回扫,每次扫到Lora信号所在频点附近时,如果信号刚好没在发,屏幕上就只是一条噪声底线。打开峰值保持之后,仪器把所有扫描结果逐频点取最大值并保留,即使用户发射脉冲只是每隔几百毫秒出现一次,几十次扫描之后屏幕上也会积累出一条完整的包络曲线。这也是目前入门级设备处理突发信号最省事的方式。

还有一个操作顺序上的经验:先把扫描跨度拉宽到50MHz甚至100MHz,快速看一下整个频段哪里有信号;看到信号之后再慢慢收窄跨度,把目标信号拉近放大。这就像拍照时先拉远景找到人,再切近景看细节,效率高得多。直接上来就对准某个频点看,容易把信号源找错位置。

如果按照上述参数设置之后屏幕上还是空的,按这个顺序排查:第一步,确认模块处于连续发射模式(用LED或者串口日志佐证);第二步,检查频谱仪频率范围是否覆盖该频段;第三步,把测试天线靠近到距离模块几厘米之内,排除路径损耗过大;第四步,检查天线连接头是否松动、馈线是否损坏;第五步,尝试把扫描跨度拉到最宽,确认是不是中心频率设置错了。多数“没信号”其实都能在这个流程里找到答案。

4. 读懂Lora在频谱仪上的样子:正常图、异常图和特征参数

设置好参数以后,屏幕上的信号形态有没有问题?很多新手拿到频谱图,看到一条凸起的曲线就开始截图发群里问“这正不正常”。其实Lora信号的频谱图有很多固定特征,学会从几个维度去读,比单纯“看起来有个包”要靠谱得多。

先说说Lora频谱和普通窄带信号的区别。FSK、OOK这类信号,频谱上是几条尖刺状的谱线,能量集中在载波频率附近,峰值很突出。Lora用的是Chirp扩频调制,信号能量在设定的信号带宽内被铺平,看起来是一个宽度和带宽一致的“鼓包”或者“钟形”,凸起的边缘比较平滑,峰值高度比同样功率的FSK信号要低不少。所以如果你拿着“找一根尖峰”的思维去找Lora信号,可能找不到或者误认为信号弱。看到宽宽的包络,反而说明信号是正常的Lora形态。

具体到一张正常的频谱图上,我一般依次看四项内容。

一是中心频率。用频谱仪的标记点(Marker)功能,把光标放在包络最高点附近,读出频率值,和模块配置的发射频点对比。偏差在几kHz以内可以接受,偏差超过几十kHz甚至几百kHz,就要怀疑晶振精度、电容容值或者芯片配置问题了。

二是信号带宽。用频谱仪的带宽测量功能,或者手动看包络两侧从底线抬起来的位置,两个“脚”之间的宽度就是射频占用的带宽。设置为125kHz带宽时,实测频谱占用通常在125kHz上下浮动,看起来不会太瘦也不会太胖。如果你的图上信号窄得像一根针,说明要么RBW设太大(比如100kHz),把细节抹平了;要么芯片的实际带宽配置和预期不符。

三是发射占空比和规律性。关闭Max Hold、打开普通扫频,观察信号出现和消失的节奏。Lora节点应该按照代码设定的周期规律性出现。这里可以看到是不是存在自己没意识到的额外发射,比如某些库在空闲时自动发信标,或者唤醒后立刻补发上次没发完的数据。

四是杂散和噪声底座。正常近场耦合测试中,除了主信号包络,周边会有一些低幅度的残余产物,但整体底线应该是平的,和没发射时的底噪水平相差不大。如果包络周围出现明显的竖线,或者在信号两侧出现等间距的边带,又或者整个底线都被抬高了,就要怀疑前端有问题了。

下面这张表格可以帮你把特征和问题对应起来:

频谱图特征可能的含义下一步动作
包络中心频率与配置频点偏差过大晶振偏差、电容精度、pll配置错误校准频率,检查晶振负载电容
包络带宽明显窄于配置带宽RBW设置过大或芯片调制带宽异常调小RBW再测,检查Bandwidth寄存器
包络周围出现等间隔竖线开关电源噪声或寄生调制检查供电纹波、电容滤波,确认附近是否有DCDC工作
主信号倍频处也有能量谐波辐射,常见天线匹配不良检查匹配网络,必要时加滤波器
整个底噪抬高PA工作非线性、失配发热、电源干扰检查天线连接、发射功率是否过高
包络随机跳动、无固定节奏代码逻辑异常,存在随机唤醒或重传检查时钟树和任务调度

还要提一个概念:频谱仪上看到的“绝对功率”在近场耦合测试中不能当真的。近场条件下,天线之间的耦合因位置而变化极大,屏幕上读到的-45dBm还是-60dBm,不能用来推算辐射功率。那它有没有用?有,它可以做相对比较。比如换天线前后,同样的摆放位置下幅度有没有变,同一套系统里不同节点的相对强度如何,这些才是靠谱的判断依据。真要测绝对功率,需要用标准增益天线、远场条件加校准过的仪器,那是另一个课题,简单用用的阶段不必强求。

5. 我实际处理过的三个异常案例:频谱图给出的破案线索

理论说得再多,不如看几个真实排查过程。这三个案例是我最常拿来教学的典型,共同点是软件日志都看不出问题,最后靠频谱图锁定了根因。每个案例我都会按现象、看图、推理、定位、解决这条链路写清楚。

第一个案例:节点定时上报,但接收端永远收不到。当时模块配置成每60秒上报一次环境数据,串口日志明确显示“发送完成”。把频谱仪支起来,Max Hold一开,屏幕上确实出现了一条Lora包络,但旁边又出现了第二条、第三条一样的包络,间隔还很规律。我把Max Hold关掉,用触发模式一帧一帧地看,发现这些包络大约42秒出现一次,不是配置的60秒。再对照时间戳一算,42秒正好等于看门狗复位周期。原来代码里在唤醒初始化时没有清中断标志,导致看门狗每42秒把芯片复位一次,复位后又立刻执行发包流程。日志里“发送完成”每次都有,但系统实际在反复重启。看到42秒周期的重复脉冲,问题性质马上就清楚了。这类问题如果不看射频发射时间特征,单靠打印日志几乎无法发现。

第二个案例:模块甲发给模块乙,距离很近也收不到,但频谱仪明明显示有信号。我用Marker点了一下包络中心频率,发现和配置频率差了约2.18MHz。这个偏差量级已经远超普通晶振误差,说明问题从“晶振精度”升级到了“配置或硬件错误”。后来检查发现是芯片外围的晶振负载电容有一端虚焊,导致振荡频率偏离标称值。频率偏出去之后,接收端的信道滤波器中心没对准信号,灵敏度大幅下降,即使距离近也收不到。这个案例想强调两件事:一是射频链路里频率准确性是基础,二是频谱仪的量频功能比接收端是否收到数据更能直接定位这种偏差。

第三个案例:模块在实验室测试时一切正常,装进金属外壳后通信距离明显变短。频谱仪近场观察时,主信号仍在,但包络两侧多出了很多不规则的边带和杂散,信号底噪被明显抬高。我先怀疑电源,测量纹波也正常;然后把模块从壳子里取出来再测,杂散立刻消失。原因在于金属外壳离天线太近,改变了天线的近场边界条件,导致天线严重失配,PA被迫工作在严重的负载失配状态下,输出特性变差,产生更多谐波和噪声。这时候如果用网络分析仪测天线端口反射,会看到驻波比变差,但现场没有网分时,频谱仪上噪声底座的抬高也是一个不错的间接证据。最终解决方案是调整天线位置、增加净空区并重新匹配天线,问题才算解决。

这三个案例的共同点是什么?都是软件和日志层面表现得“一切正常”,只有把天线口的射频信号变成频谱图才能看到真相。所以我现在调Lora模块的习惯是:先在空口端确认“发射行为符合预期”,再回过来查软件逻辑。步骤上就是先测再改,省掉了大量盲目尝试。

6. 进阶玩法:天线对比、穿墙测试和同频干扰观察

基础信号看懂了,接下来可以拿频谱仪做一些更有实用价值的测试。这些玩法不需要额外设备,就是一台频谱仪加被测模块,但对实际部署帮助很大。

天线对比是最推荐做的第一项测试。选几根不同型号、不同长度的天线,把模块固定在测试台上,天线接口朝向频谱仪天线,位置固定,然后依次切换不同天线,记录Max Hold后的包络峰值幅度和带宽形状。用同样的发射功率和频点,幅度高的那根天线在近场耦合下相对表现更好,带宽形状更干净的那根说明匹配更好。注意近场耦合的结果不等于远场增益,所以这个测试适合做“相对筛选”,筛掉明显差的天线,但想让真正增益最高的天线胜出,还需要配合实际通联距离测试。另外,每次切换天线时注意同轴接头拧紧程度保持一致,不然读数的误差比天线本身的差异还大。

穿墙测试则能验证节点在居家或办公环境下的实际覆盖能力。把发射端放在卫生间、储物间、门后这些位置,接收端频谱仪放在房外的走廊或客厅,观察固定摆放位置下信号的峰值幅度和包络形态。墙体会带来衰减,但混凝土墙和砖墙差别很大,金属门的影响更明显。实测中常遇到的问题是多路径让信号在某些位置出现深衰落,频谱仪屏幕上就会看到包络幅度剧烈变化。操作上建议接收天线固定,然后每个位置持续观察至少十几次脉冲并记录最小值、最大值,不要拿一次读数和另一处的一次读数比,因为多路径衰落会让瞬时读数极具欺骗性。

同频干扰观察适合在有多套设备同时运行的现场做。城市里470MHz至510MHz频段不算特别干净,常有其他无线设备在工作。用频谱仪把天线朝窗外或者楼道放好,用Max Hold多扫几分钟,看看频率范围内有多少个信号活动,每个信号的包络宽度、出现频次如何。这能直接回答一个很现实的问题:你的Lora频点附近到底挤不挤?如果发现有几个强信号就在你选的频段旁边,建议避开这些频点换信道。实际项目中很多丢包问题,追根溯源都是现场存在未知的同频干扰,而这些干扰在实验室里永远不会出现。

你的频谱仪如果带瀑布图,我强烈建议多用它。瀑布图的纵轴是时间,横轴是频率,颜色深浅表示功率,相当于给每个频点拍了一张随时间变化的照片。Lora突发发射在瀑布图上表现为一条竖直的短线:信号出现的时间点、持续时长、占空比都一目了然。用瀑布图能快速看出多个节点是否在差不多时间抢占了同一个频段,也能看出周围环境中周期性出现的干扰源——比如某个设备每隔几百毫秒跳一次频,这种规律在普通扫频模式下很难发现。这也是我个人觉得带时间观察能力的频谱仪比纯扫频设备更值的原因。

7. 新手最容易踩的坑与安全注意

最后列几个我在教学和社区答疑中反复见到的问题。这些坑如果不提前知道,轻则数据不准,重则可能烧坏设备,值得单独写一遍。

第一件事是保护频谱仪的射频前端。频谱仪输入端的衰减器有额定功率限制,近距离直接测大功率发射信号时,如果信号太强,前端会饱和甚至烧毁。Lora模块本身发射功率不算高(通常14至20dBm),但如果你测试的对象是网关、中继或其他高功率设备,务必在频谱仪输入端串接一个衰减器(比如30dB)。至少要做到:不确定信号强度时,先加衰减再测,宁可读数小一点也不能毁仪器。判断前端有没有饱和,看图上包络顶部是不是出现了一块平坦的削顶——出现削顶说明前端已经饱和,需要增加衰减。

第二件事是不要在频谱仪测试时拔掉模块天线干发射。很多新手为了让频谱仪天线离模块更近,喜欢把模块的胶棒天线拧下来,让测试线直接怼着模块天线座测。这种做法对频谱仪接收部分可能没问题,但对发射模块来说很危险:天线拆掉后,PA处于负载失配状态,发射功率基本反射回芯片,模块发热量剧增。偶尔测几秒可能没事,长时间干烧会损坏射频前端。我一般测试时保留模块原装天线,用频谱仪的近场天线耦合观察,既安全又能反映真实辐射情况。

第三件事是RBW设置不当带来的误判。RBW太小,扫描速度变慢,突发信号可能一闪而过;RBW太大,窄带细节被抹掉,两个紧挨着的信号看起来像一个信号。调试125kHz带宽的Lora信号时,RBW取10kHz左右比较合适。如果你怀疑带宽测量不准,可以逐步改变RBW,看包的宽度会不会随RBW变化——真信号带宽只会随RBW过大而变宽,不会随意改变。这个特性常被用来区分真实信号和仪器伪影。

第四件事是对频谱仪的“伪信号”保持警惕。接收棒加SDR软件方案尤其容易出现镜频和混频产物,在屏幕上表现为一些看似真实但实际不存在的尖峰。验证方法很简单:把中心频率偏开几十kHz,再看那个尖峰是否往相同方向移动了同样距离。真正的射频信号在频率轴上的位置只取决于信号本身,不会随着中心频率设置而移动;伪信号则会和本振频率联动。这个动作只要三秒钟,能避免大量错误判断。

第五件是注意人体遮挡和周围金属物。近场测试时,手靠近天线、身体挡在收发之间,都会让幅度读数变化好几分贝。做对比测试时,人站的位置必须固定,最好离测试区半米以上,周围不要有移动的金属物体。

结束语不是总结,是我现在的调试习惯

讲了这么多,最后分享一点个人体会。我现在调试Lora模块,几乎都会先把频谱仪接上,让模块进入连续发射模式,用Max Hold看几秒频谱。如果包络正常、频率准确、带宽适中,再回到软件开发流程里查协议逻辑;如果频谱图就已经不对头,那就在射频层面排查,坚决不回代码里去瞎猜。这个流程帮我省掉了大量来回试错的时间,也是在各种射频问题上摸爬滚打之后养成的习惯。

如果你手头正好在做Lora项目且遇到“日志正常但通信不正常”的情况,建议先别急着改代码。找一台频谱仪,哪怕是接收棒加开源软件,先让信号在屏幕上显形。很多射频层面的问题一旦看见,答案就已经在眼前了。工具不需要多高端,关键在于用对路子。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询