
简介2024年电赛C题无线传输信号模拟系统江苏省第一名方案面向电子设计竞赛参赛者与射频模拟电路开发者解决无线信号模拟中多径效应模拟与AM调幅波生成等关键问题。方案基于STM32F407ZGT6完整阐述了四路DDS信号产生、DAC偏置叠加、AD835乘法器实现调幅以及PE4302程控衰减器控制多径增益的技术路径可直接参考用于同时生成直达与多径信号并独立调节幅度相位。资源共2000个文件以1096个c源码与831个h头文件为主配合txt辅助说明、md技术笔记、py脚本与json配置等压缩包约83.75MB代码组织规范、便于检索移植。已有2269人学习适合备赛电赛或从事通信信号模拟的工程师学习使用。 说实话我第一眼看到2024年电赛C题这个题目名字的时候心里想的是“这不就是个通信课设吗”——无线传输信号模拟系统听起来就是把信号发出去再收回来。等真正拿到题目和指标以后我才发现这套题表面上是“无线传输”实际上考的是射频链路设计、增益控制、阻抗匹配和测量校准这一整套基本功哪一块软了都会翻车。这篇分享适合正在备战电赛的同学、想做短波频段射频链路的爱好者以及所有想搞明白“信号从DDS出来到天线辐射出去中间到底会发生什么”的人。我们这套方案最终拿了江苏省第一名但我不会只报菜名我会把题目拆解的思路、器件选型的原因、调试时的坑和现场答辩的准备都写出来。有些细节是基于我们当时实际工程的记录有些是赛后复盘总结出来的普遍经验你换一个频段、换几颗芯片整个方法论依然成立。1. 题目拆解与方案定调1.1 题目到底在考什么“无线传输信号模拟系统”这句话里最容易忽略的词是“模拟”。它不是说让你在仿真软件里搭个模型交差而是要求你用硬件实现一个能够模拟无线传输过程的系统。更直白地说你要做出一套完整的发射链路和接收链路发射端能够产生指定频率、指定功率的信号接收端能够把信号收下来并测出幅度、解出调制内容同时整个链路的衰减和增益要是可控、可测量、可复现的。常见的误区是一上来就买现成的无线模块比如蓝牙模块、LoRa模块然后拿串口把数据从A发到B。这么做从题目字面上看似乎也说得通但拿不到高分。原因在于题目要求你“模拟无线传输信号”强调的是对信号本身和传输链路的可控模拟。评委要看到的是你清楚信号从哪里产生、经过哪些放大和衰减、最终在接收端怎么被还原和测量。用模块拼出来的方案等于把这套链路最核心的设计过程全部隐藏掉了。还有一个容易忽略的点是频率。题目给定的频段决定了天线尺寸、器件选型和PCB布线策略。我们当时把中心频率定在了10.7MHz这个频段属于典型的短波/超短波交界区域既有一定的频率代表性又不会因为频率太高导致布线难度陡增。如果你拿到的题目频段更高比如几十MHz甚至上百MHz那么下面讲的阻抗匹配、走线寄生参数这些坑会更加明显但解决思路是一样的。1.2 整体方案选型思路我们从第一天就确定了系统架构发射端用DDS直接产生载波和调制信号经过可控增益放大器VGA和功率放大器后送入天线接收端用低噪声放大器LNA做前端一路送到RMS检波器测量幅度一路送到正交混频器解调基带信号整个系统的增益设置、频率设置、数据采集和显示都由一块STM32完成。这个架构里最核心的选型决定是用DDS而不是PLL。DDS的优势非常明显频率切换快、相位连续、频率分辨率高而且天然支持扫频工作。做无线传输信号模拟很多时候需要快速切换频率去测量信道在不同频点下的衰减特性用PLL的话每个频点要等锁定时间扫一组数据可能要等好几秒而且相位不连续会让解调波形出现毛刺。DDS一个寄存器写下去频率马上变这对比赛调试验证非常有帮助。VGA我们选了AD8367增益控制范围大概在-42dB到42dB控制电压与增益基本成线性关系。之所以用VGA而不是手动衰减器加固定放大器是因为题目里很可能会要求“输出幅度可调”或者“模拟信道衰减”只有电调增益才能用MCU快速设定和自动扫描。接收端的LNA用了常见的宽带MMIC配合低噪声设计前端噪声系数压得比较低弱信号也能收得到。主控芯片没有上FPGASTM32F4完全够用。很多队伍觉得C题信号处理复杂非得上FPGA结果花了大把时间在写FPGA逻辑上。这道题的数据量其实没那么大真正难的是模拟链路能不能把信号干净地送出去再收回来。把时间花在模拟前端调测上比花在数字逻辑上划算得多。2. 关键模块设计与参数计算2.1 信号链路的频率规划频率规划是整个系统设计的起点。我们希望发射和接收都能工作在同一个载波频率上同时接收端能够方便地解调FSK和ASK两种调制方式。最终选择是让DDS直接输出10.7MHz的载波接收端不再做中频搬移而是用零中频正交解调的方式把I/Q两路基带信号送出来。选择零中频方案的原因很现实它结构简单混频器数量少调试工作量小。10.7MHz这个频率不算高PCB走线长度的影响还在可控范围内直接采样或者正交解调都能实现。如果用高中频方案虽然镜像抑制理论上更好但要多加一级本振、一级混频和好几级滤波器工程量翻倍。电赛只有四天三夜方案越简洁留给调测的时间越多。正交解调的本振由另一片DDS产生频率和发射DDS锁定到同一个10.7MHz上。这样发射和接收的本振天然一致解调FSK信号时I/Q两路输出就是基带码元对应的低频分量后面接比较器或者直接进ADC都能判断出0和1。这里有个关键点发射和接收的地必须干净本振信号一旦被电源噪声污染解调出来的波形就会出现抖动这个问题我们后面调试时踩了好几次。2.2 发射链路增益预算与阻抗匹配发射链路的增益预算是我在方案设计阶段最重视的部分。DDS输出幅度大约在0dBm左右AD8367最大增益约42dB后级MMIC功放增益约18dB理论上整条链路最大增益能到60dB。但实际不可能全部吃满因为功放会饱和信号会失真。经过实测我们最终把天线前的最大输出功率控制在15dBm左右这样既保证信号足够强又让功放工作在比较线性的区域。增益控制策略是这样的MCU通过12位DAC输出0到1V的控制电压给AD8367的增益控制脚理论对应-42dB到42dB的增益范围。比赛要求输出幅度可调时我们就是通过扫描DAC码来改变发射功率。必须强调的是AD8367的增益曲线在两端会明显非线性所以正式测试前一定要做校准。我们自己用频谱仪逐点测了发射输出功率与DAC码的关系把约30组数据做成一个查找表MCU运行时根据目标功率查表得到DAC码再插值修正最终增益误差控制在1dB以内。阻抗匹配这块DDS输出先经过一个低通滤波器滤掉时钟噪声和谐波然后通过LC匹配网络变换到50Ω。AD8367的输入输出按数据手册要求做好匹配和直流偏置输出再接MMIC功放。MMIC本身就是50Ω输入输出设计外围只要按手册加好扼流电感和隔直电容就行。我强烈建议在功放和天线之间加一个小的π型衰减器哪怕只有3dB也能明显改善天线阻抗变化时对功放工作点的影响。这个细节在无线联调的时候救了我们很多次。2.3 接收链路与幅度测量方案接收端的电路结构相对固定天线信号进来先经过一个防止强信号烧毁的限幅保护然后进LNA放大再分成两路。一路送给RMS检波器用来精确测量接收信号的有效值功率另一路送给正交混频器用来解调调制内容。幅度测量的器件选择上我们用了真RMS检波器而不是简单的峰值检波。原因很简单FSK信号是等幅的峰值检波和RMS检波测出来的结果差不多但如果题目要求发射ASK信号峰值检波的误差就会很大——因为ASK信号的占空比不同峰值和有效值的比例是变化的。评委现场如果问“你测的是有效值还是峰值”用RMS检波器就能答得理直气壮。RMS检波器的输出电压与输入信号功率基本成正比送入MCU的ADC后再根据校准曲线换算成dBm值显示。接收链路的总增益也需要仔细算。LNA增益约18dB后端混频器和检波器的插入损耗约6到8dB所以天线口输入-50dBm的弱信号时检波器输入端仍然能拿到足够的电平。这里要特别注意接收链路各级之间的匹配尤其是LNA输出到混频器输入之间如果匹配不好增益做出来了也会被反射吃掉。我们在每级之间都用网络分析仪把回波损耗调到-15dB以下联调时才没有出现“理论增益够了但实测灵敏度差一大截”的尴尬情况。3. 系统调试与实测过程3.1 分模块调试顺序我们的调试顺序是严格按照“先有线、后无线先单板、后整机”的原则来的。第一步单独调DDS模块用频谱仪看输出频谱确认主频正确、谐波和杂散在可接受范围内。这一步就发现了问题DDS输出端如果不加低通滤波器10.7MHz附近会出现明显的时钟泄漏杂散幅度只比主信号低30多dB这在接收端是致命的。后来加了七阶椭圆低通滤波器杂散才压下去。第二步单独调VGA模块测增益控制曲线。用信号源给一个固定频率固定幅度的输入然后扫描DAC控制电压记录输出功率变化。这一步能直观看到增益曲线的线性区间在哪里为后面的校准表积累数据。第三步把DDS和VGA串起来再接假负载测整条发射链路的输出功率范围。注意一定要用假负载不要一开始就接天线否则驻波会把你测到的数据搅得乱七八糟。最后一步才是无线联调。把发射和接收都装好天线拉开一定距离先发一个连续波单音信号看接收端能不能收到、测出的功率是多少。连续波调通了再加FSK调制再调ASK一步步把功能全部点亮。这个顺序看起来慢实际上最省时间因为每一步的问题都能被限制在一个很小的范围内排查起来非常快。3.2 零中频解调的直流偏置问题零中频方案最大的坑是直流偏置。正交混频器输出的I/Q信号是基带信号叠加了本振泄漏和自混频产生的直流分量。这个直流偏置如果不处理后端的比较器或ADC根本没办法正确判断码元。我们的解决办法分两步。硬件上在混频器输出到比较器之间加了一级高通滤波把直流分量滤掉只让基带信号通过。软件上在FSK解调前先采集一段无载波状态的I/Q值把这时的电平作为参考零点解调时用当前值减去参考值再做判断。软硬件两手抓解调误码率在近距离传输时基本为零。这里有个特别值得注意的现象直流偏置会随发射功率变化而变化。发射功率大时接收端本振泄漏自混频出来的直流分量更大。所以不要在天线口功率改变之后还沿用最初校准的直流参考值。我们后来做了一个自动校准流程每次改变发射功率或信号频率之后MCU会先关闭调制重新标定一次零点再开始解调。这个功能听着小但对比赛现场的稳定性帮助特别大。3.3 幅频响应与衰减精度的验证题目要求系统能模拟无线传输的衰减特性也就是不同频率的信号经过信道后衰减量要可预测、可测量。我们利用DDS扫频能力和RMS检波器做了一套自动幅频响应测试流程MCU控制发射DDS从9MHz扫到12MHz步进10kHz每到一个频点发射端发连续波接收端测幅度然后通过串口把数据发给电脑做记录。实测下来整个频段内的增益平坦度大约在2dB以内。如果你发现测试结果在某个频点突然凹陷多半不是放大器的问题而是线缆、天线或者PCB走线产生了寄生谐振。我们的第一版PCB就出现过这种情况10.3MHz附近衰减明显比其他频点多出4dB排查了很久才发现是本振馈线的走线形成了一段微带谐振器。改版之后把本振走线缩短并加了端接电阻问题就消失了。4. 常见问题与排查技巧实录4.1 接上天线后波形变差、幅度乱跳这是所有射频系统联调时最容易遇到的现象。明明在假负载下测试一切正常一接天线就乱套。我见过最典型的原因是地环路。发射板和接收板如果都用实验室的直流电源供电而电源又通过大地的地线形成了回路无线传输反而成了广播干扰源。后来我们把发射板和接收板都改成电池供电或者用隔离DC-DC给两级供电幅度乱跳的问题立刻减少了一大半。另一个常见原因是电源纹波被调制到了射频信号上。开关电源的纹波虽然幅度不大但叠加在VGA的增益控制脚上就会变成对射频信号的幅度调制。你用示波器看接收端的解调波形会看到码元波形上叠了一层几百kHz的纹波。解决办法是在VGA增益控制脚前面加一级RC低通滤波时间常数取在毫秒级同时给整个射频部分用低噪声LDO供电并且LDO输出加磁珠和电容滤波。这些都是很基础的电源处理手段但在比赛现场往往就是决定成败的细节。我还想单独提一下天线驻波的影响。如果天线没有谐振在工作频率反射功率会反灌到功放输出端轻则影响功放工作点重则让功放发热甚至烧毁。我们在天线的馈电点加了SWR检测电路联调时先测驻波比确认低于1.5再开始正式测试。这个习惯救了我们的功放很多次。4.2 频率改了接收端测到的幅度却不对DDS扫频时每个频点的输出幅度并不完全一样因为DDS内部DAC的sinc响应在高频端会有滚降后级放大器和滤波器的幅频特性也会造成影响。具体表现是固定发射增益扫频测接收幅度得到的幅频响应曲线是一条倾斜的线而不是平坦的。这个问题的本质是“系统本身的幅频不平坦”和“信道衰减随频率变化”混在了一起。为了把两者分离开我们在正式测试前先做了一次“自环校准”用一根短射频线把发射输出直接接回接收输入在每一频点记录接收功率得到一组系统自环校准值。之后测量真实信道时用实测值减去校准值得到的就是信道本身的衰减特性。这个“自环校准”的方法解释起来很简单但很多队伍在现场根本没想到结果被评委追问“你怎么区分系统误差和信道衰减”时答不上来。4.3 评委现场可能会追问的问题电赛评测不光是测数据还有答辩环节。评委对方案的设计思路会做很细的追问尤其是那些“看起来能用但说不出为什么”的地方。我们准备的几个核心问题你也可以提前想清楚答案为什么选DDS不选PLLVGA的增益控制范围怎么确定接收机灵敏度是怎么算的RMS检波和峰值检波的本质区别是什么自环校准的原理和误差来源是什么。每个问题我们都在比赛间隙做了模拟答辩演练让一个队友专门负责“挑刺”其他人轮着回答。实际评测时评委确实问到了这些内容尤其是在解释RMS检波那部分我们直接把“ASK信号峰值因子变化导致峰值检波误差”这点讲清楚之后评委明显认可了方案的严谨性。还有一个容易踩的坑评测现场的环境干扰可能很强尤其是周围有其他队在做无线发射频段接近的话会影响你的接收幅度测量。我们的应对方案是在接收端程序里做了幅度置信度判断连续多次采样取中位数而不是直接取平均这样少数异常值不会被带进来。另外备赛时一定要去实际比赛场地试一下因为那里的电磁环境和你实验室完全不一样。5. 关于备赛节奏与团队协作的一些心得写到最后我想再说说比赛过程本身。四天三夜看起来很长实际上一拆开就会发现时间非常紧张。我们的时间分配大概是第一天上午确定方案和器件选型下午开始画板第一天晚上到第二天上午把主板调试到能出声第二天下午到第三天上午做无线联调和校准第三天下午写上位机和测试脚本第四天开始就是反复的指标检查、答辩准备和现场模拟。最值得推荐的经验是提前做好自动化测试脚本。手工拿频谱仪逐点记录数据太慢了而且容易出错。我们用Python写了一个简单的串口上位机向STM32下发扫频范围和步进STM32每测完一个频点就把发射功率和接收功率发回电脑电脑自动绘图并保存数据。这样一组100个频点的扫频测试只要几秒钟就完成了而且数据是数字格式不会抄错。比赛现场评委看你一键生成幅频响应曲线观感也会好很多。我个人最大的体会是电赛C题更像是一道“测量题”而不是“设计题”。你设计的电路再复杂最后都要落到“你测出来的数据能不能准确反映信道特性”这一点上。所以与其把精力花在堆模块、堆功能上不如多花时间想清楚每个测量结果的误差来源是什么。把我们这套方案的误差都校准好把“为什么这个数可信”解释清楚自然就能站上最高领奖台。本文还有配套的精品资源点击获取