
1. 开篇这道题到底在考什么先说结论2024年电赛C题“无线传输信号模拟系统”表面上是一道信号生成题实际上是一道“信号链路系统工程题”。你不仅要会生成信号还得理解信号在空中怎么跑、多径怎么叠加、接收端会看到什么。这道题把DDS直接数字频率合成、AM调制、CW等幅报、多径传播模拟四个核心点揉在一起考的是你对“发射机信道接收机”整条链路的理解深度。如果你准备过这道题或者正在准备你会发现一个很有意思的现象题目本身给的指标不算苛刻但真正拉开差距的地方在于——你的系统能不能稳定复现一个带多径效应的衰落信号并且让接收端另外一个小组的电台真的能解调出来。很多人栽在“信号源很完美但接上发射天线一开波形全变了”这种环节。这篇文章我按自己的实战过程来写从DDS方案选型到AM/CW信号生成再到多径调制的实现最后补充踩坑记录和测试方法。尽量把关键参数和操作思路都说透适合参赛队伍、实验室做信号模拟器、以及自学射频信号生成的同学参考。我用的平台是STM32H7 AD9959四通道DDS配合外围模拟调理电路和功率放大级。这套组合在电赛时间限制内是性价比很高的方案多径调制用DDS的多通道相位/幅度控制来实现不需要额外搞复杂射频开关矩阵。2. 系统设计思路与方案选型2.1 题目的本质你需要一台“会讲故事的信号源”C题要求模拟的不是一个单纯的载波而是一个“带有信道特征的无线信号”。你要让接收机以为它收到的信号真的是从某个发射机经过多径反射传来的。所以系统至少要完成三件事生成高质量的射频载波频率稳定、相位噪声低、可以精确跳频或扫频。对载波进行调制题目限定AM和CW两种模式。对调制后的信号施加“多径效应”至少两路不同时延、不同幅度的信号叠加模拟真实传播环境。这三件事正好对应DDS的三大优势频率分辨率极高、相位可控、幅度可控。而且用DDS做多径模拟本质上就是“多发几路信号然后在输出端叠加”这是数字域思想搬到模拟域的实现。2.2 为什么用DDS而不是PLLVCO做信号源传统方案是PLL锁相环加VCO压控振荡器。但放到这题里有两个致命问题第一PLL的锁定时间太长一般都有几十微秒到毫秒级题目如果要求快速跳频你根本跳不过来。第二PLL只能控制频率不能直接控制相位和幅度而在多径模拟里每一条路径的相位和衰减必须精确可控用PLL实现会非常痛苦。DDS就完全不同。它直接把频率字、相位字、幅度字写成寄存器想怎么改就怎么改速度是纳秒级的。AD9959这种多通道DDS还能同时调整四个通道的相位和幅度天然适合做多径合成。打个比方PLL像一辆手动挡汽车换挡跳频要踩离合、松油门、挂挡一个流程走完要好一阵子DDS像电车的电门踏板踩下去就有抬起来就停完全无延迟。2.3 芯片选型AD9959为什么适合这题DDS芯片我对比过AD9834、AD9854、AD9959和AD9910。AD9834便宜但频率上限低50MHz做不了中短波以上频段。AD9854双通道性能不错但通道数不够多径扩展用。AD9910单通道高性能适合宽带信号但单芯片只能做单路输出。AD9959四通道、500MSPS采样率、内部集成4路10位DAC通道间相位独立可调还能同步输出。对于多径模拟这种场景一片顶四片。我最终选AD9959还有两个实际考虑一是它支持多片同步如果四路不够可以用参考时钟同步级联扩展二是它的数字RAM调制模式可以直接做幅度键控配合FSK/PSK调制功能CW信号生成很灵活。提示AD9959的10位DAC虽然位数不算高但做这类信号模拟足够。如果你需要更高的无杂散动态范围SFDR可以在后级加椭圆低通滤波器实测能改善15dB以上。2.4 整体架构一块板子搞定全链路我的系统分五个模块主控MCUSTM32H750负责界面交互、参数设置、控制DDS寄存器。DDS核心AD9959生成四路同步的中频信号。射频前端ADL5611做宽带放大后级用MMIC或两级三极管放大到0dBm以上。多径合路网络用电阻合路器或Wilkinson功分器反接做合成把多路DDS输出合并成一路。接收验证用TI的LMX2572评估板做频谱观测配合RTL-SDR做解调验证。整体连接方式STM32通过SPI控制AD9959AD9959四路输出分别设置不同的相位和幅度经合路网络叠加后送入射频放大级再接到天线或直接通过同轴电缆连接到接收机。3. 核心信号生成细节AM与CW的DDS实现3.1 DDS基础频率控制字是怎么算出来的AD9959内部有一个相位累加器每个参考时钟周期累加一次频率控制字FTW累加器溢出一次就输出一个完整的正弦波周期。输出频率的公式很简单[ f_{out} \frac{FTW}{2^{32}} \times f_{SYSCLK} ]AD9959的SYSCLK最高500MHz如果是32位累加器频率分辨率就是 (500MHz / 2^{32} ≈ 0.116Hz)。调到某个频率时倒推计算FTW即可。举个例子要输出10.7MHz中频载波系统时钟用500MHz[ FTW \frac{10.7MHz}{500MHz} \times 2^{32} ≈ 91957128 ]实际写入寄存器时取整到最近的整数但因为DDS位数足够高误差完全可以忽略。3.2 AM调制的实现从模拟乘法到DDS幅度控制AM调制的本质是让载波的幅度随调制信号变化数学表达式是[ s(t) A_0 \left[1 m \cdot x(t)\right] \cos(2\pi f_c t) ]其中(x(t))是归一化的调制信号(m)是调制度。AD9959实现AM调制有三种方式我逐一试过方式一外部模拟乘法器。把DDS输出的载波和音频板产生的调制信号一起送入AD835等四象限乘法器。优点调制深度连续可调音质好缺点多一块模拟电路调试麻烦。方式二用DDS的幅度调节寄存器ACR直接控制。AD9959四个通道各有一个10位幅度控制字可以在SPI下快速更新。如果把调制信号的采样值映射到ACR就能实现“数字AM调制”。缺点SPI更新速率受限做语音调制时带宽不太够。方式三数字RAM调制模式。AD9959支持将一段波形数据写入RAM然后循环输出。你可以把AM包络波形预先算好写进去循环播放。这个方式主要用于测试调制速率高但改变调制信号类型需要重新下载波形。我最终用的是“混合方案”正弦调幅用方式一模拟乘法器方波和自定义包络用方式二数字幅度控制。因为这个题目的判分重点之一是调制度的准确性和AM波形包络的平滑度模拟乘法器在这两方面表现最好。3.3 AM调制度的计算与校准调制度(m)定义是[ m \frac{A_{max} - A_{min}}{A_{max} A_{min}} \times 100% ]实际调试中如果(m100%)包络波峰处正好碰到零轴再往上就过调出现过调时包络会明显削底频谱上出现严重的谐波失真接收机解调会出现严重失真。建议题目如果没特殊要求尽量把调制度做到70%到90%之间波形好看也容易用示波器观察。校准步骤我总结成三步用示波器观察DDS输出的AM波形记录包络峰值(V_{max})和谷值(V_{min})。调整乘法器增益或调制信号的幅度使(m)落在目标值附近。在频谱仪上看两个边带的幅度差用于辅助验证调制度越大边带相对载波的幅度越大。3.4 CW等幅报信号本质就是一个干净载波CWContinuous Wave信号说白了就是一个“未调制的载波”按电键节奏间断发射。在DDS里你只要在“发”和“不发”之间切换输出使能或幅度控制寄存器就行。实现上有两种思路第一种直接控制DDS输出使能。在AD9959里有一个通道输出使能位打开输出载波关闭输出静音。我一开始用的就是这招简单粗暴但有个问题输出使能切换瞬间会产生毛刺和频谱扩展对接收机的影响是“哒哒”声里带着“咔啦”杂音。第二种通过幅度控制寄存器做“软开关”。在几十微秒时间内把幅度从当前值渐变到零或从零渐变到满值这样CW报的音头音尾就平滑了。实测频谱扩展显著减少接收端声音干净得多。CW的键控速度方面电赛常用速度是15到25WPM字/分钟一个“点”的时长约 (1200/WPM) 毫秒。25WPM时每个点大约48ms用软件延时控制完全够用。另外注意CW信号的接收是依靠载波的“有无”来传递信息的所以频率准确度特别重要。如果接收机和发射机频率偏了50Hz以上接收端的音调就会明显偏高或偏低听起来不舒服。DDS的频率精度天然有优势但你要确保晶振的参考频率是准的我用的是温补晶振TCXO频率漂移指标远好于默认晶振。4. 多径调制的实现从原理到DDS多通道合成4.1 多径信号模型先搞懂多径效应是指发射信号经过多条不同长度的传播路径到达接收机每条路径的时延、衰减和相位都不同接收端看到的是这些路径信号的矢量和。简化的双径模型[ r(t) A_1 s(t - \tau_1) A_2 s(t - \tau_2) ]其中(\tau_1)是直达路径时延(\tau_2)是反射路径时延两者之差 (\Delta\tau \tau_2 - \tau_1) 决定了频率选择性衰落的位置。用路径差换算频差有个公式[ \Delta f \frac{1}{\Delta\tau} ]也就是说如果两路信号的时延差是1微秒那么在频域上每隔1MHz会出现一个深衰落点。如果时延差是100纳秒深衰落间隔就是10MHz。题目通常要求在一定频段内模拟出特定的衰落特征这个换算关系必须熟练掌握。另外还有个细节每条路径不止有时延还有多普勒频移。如果接收机是移动的反射路径的频率会发生偏移公式是[ f_d \frac{v}{c} f_c \cos\theta ]在电赛的室内环境下多普勒效应很小可以忽略但如果你做的是针对车载环境的信道模拟一定要考虑。4.2 用AD9959多通道模拟多径这是整个系统设计的核心亮点也是我觉得这题最巧妙的地方。AD9959有四个通道每个通道可以独立设置频率、相位和幅度。四个通道共用一个参考时钟通道间相位关系是确定的。那么通道1设置为主信号幅度最大相位为0。通道2作为第一条反射路径设置一定幅度衰减和相位偏移。通道3/4作为更多反射路径。这里的关键是DDS的相位偏移不等于真实的物理时延。AD9959中每个通道有一个相位偏移字POW取值范围0到(2^{14})对应0到360度。对于单频或多音信号相位偏移和时延在效果上是等价的时延对窄带信号就表现为相位旋转但这个等价只在单一频点上成立。如果信号是窄带的比如AM调制信号带宽只有几十kHz那么在中心频点附近用相位偏移近似模拟时延是可以接受的误差远小于1度。但如果信号带宽很大比如几MHz以上的宽带信号相位偏移近似就不可靠了。一句话总结窄带信号用相位偏移模拟时延没问题宽带信号必须用真正的延迟线或数字延迟器。模拟方式适用于精度复杂度DDS相位偏移法窄带信号AM/CW/窄带FM频点准确宽带不准低声表面波延迟线固定时延10MHz以上高但不可调中数字延迟/FPGA FIFO宽带信号大带宽高时延可调高长同轴电缆小延迟几纳秒到几十纳秒高低电赛C题的信号类型以AM和CW为主带宽都不会太宽所以我用DDS相位偏移法完全足够。4.3 幅度配比多径的深度怎么调每条路径的幅度控制也要仔细算。接收机看到的衰落深度取决于两条路径的幅度比当两路幅度相等时反相叠加会出现完全抵消这是深衰落的极限情况。当一路比另一路低6dB时叠加后的最大衰减约13dB左右。当一路比另一路低20dB时衰弱深度很小基本可以忽略多径影响。AD9959的每个通道输出幅度是10位控制换算成dB大致是 (dB 20\lg(码值/1023))。我把常用衰减码值提前算好写程序时直接查表避免现场临时计算出错。实际测试时先用等幅度双径让接收机“断断续续”然后逐步增加第二路径的衰减量观察接收机什么时候恢复正常解调。这个临界点就是接收机的抗多径能力指标比赛答辩时可以直接展示数据。4.4 多径时延的另一种实现相位斜坡法如果需要在频率轴上产生特定间隔的衰落点可以不用固定的相位偏移而是用“相位斜坡”也就是频率偏移。两路信号频率稍微错开一个(\Delta f)等效于两路信号之间的相对相位随时间不断变化在频域上表现为周期性的干涉。这个在AD9959里实现起来也容易给两个通道设置不同的FTW比如通道1频率设为10MHz通道2频率设为10.001MHz那么两路之间的相位差会以1kHz的速率周期性变化接收端就会看到以1kHz速率滚动的衰落。这个方法可以实现动态多径效果比静态多径更接近真实场景在演示环节非常加分。不过要注意接收机如果是自动增益控制AGC它会不断调整增益跟随信号起伏可能导致解调声音忽大忽小。我试过用RTL-SDR接收在动态衰落条件下解调音频确实会有明显的起伏感这恰恰就是题目要模拟的“真实无线信道”效果。5. 实操过程从零调试到稳定输出5.1 第一步SPI通信打通AD9959AD9959的SPI时序比较标准但有几个坑它支持MSB优先或LSB优先默认是MSB优先别改。寄存器写入地址是8位数据是8位或32位根据寄存器类型读操作需要把地址最高位置1。串行通信模式下CS拉低后必须保证SCLK的时序干净灰尘大的面包板上通信容易出错。我建议第一步只做一件事往AD9959写入一个固定的频率控制字然后用频谱仪或示波器看输出端是否有正弦波。如果有说明SPI通信和DDS核心都正常。如果没有先查电源再查时钟最后查SPI时序。我实际排查时发现AD9959对电源噪声非常敏感数字电源和模拟电源要分开走线中间加磁珠和去耦电容。如果电源纹波大了频谱仪上会出现明显的杂散。5.2 第二步单通道AM调制验证包络用模拟乘法器做AM调制时先把载波不接单独用信号源输出1kHz正弦波到乘法器观察乘法器输出端有没有正常的音频信号这样可以确认乘法器工作正常。然后接入载波观察输出波形是不是标准的AM包络。这里有几个典型波形特征正常AM波形载波幅度随音频包络对称变化峰值处幅度最大谷值处幅度最小。过调制的AM波形谷值处包络截底出现平顶解调失真明显。载波泄漏调制信号为零时输出仍有载波输出这是乘法器偏置没调好。频率选择上载波我用10.7MHz中频音频调制信号用1kHz标准音。检查包络时示波器的时基设置很关键1kHz音频的一个周期是1ms载波一个周期约93ns一个屏幕上要能同时看到几十个载波周期和四五个音频周期需要把示波器存储深度调大、时基设在200us/格左右。5.3 第三步多通道输出叠加验证多径多径验证是整个项目中最容易出问题的环节。三个通道的信号在合路器相加会互相影响调试时要注意以下事项每路输出端串接一个隔离电阻我用的是SMA转接头内置的50Ω电阻避免通道间相互牵引。合路后必须接50Ω负载否则反射波会把DDS的输出驻波比搞差。频谱仪观测时加20dB衰减器避免烧毁频谱仪的输入端。合路后用频谱仪看如果两路信号频率相同但相位偏移不同频谱上只会看到一个主谱线幅值随相位差而变化。如果两路信号频率差1kHz频谱上会看到间隔1kHz的两根谱线而且可能还会看到交调产物。真正的多径验证还是要靠接收端。我用一个简易的二极管包络检波器做AM解调再用RTL-SDR做二次验证。包络检波器接上双径合成的信号调整第二路相位听到的音频音量应该随相位变化——这就是多径干涉的解调表现。5.4 第四步频率扩展与天线辐射如果题目要求在特定频段比如1MHz到30MHz短波范围工作AD9959可以直接输出最高200MHz左右的信号但要注意输出功率随频率升高而下降AD9959在10MHz输出约-6dBm到100MHz时会掉到-12dBm左右。后级放大器要有足够的带宽增益积我用ADL561130MHz到6GHz作为第一级再配合一个2SC3356三极管做输出级。天线不能用简单的拉杆天线一根到底要加阻抗匹配网络。我在短波段用的是L型匹配通过调整可调电容和电感让驻波比降到1.5以下。有同学可能会问能不能直接用电线当天线不匹配会怎样实际情况是发射机看到严重失配的天线反射功率会打坏末级功放管而且辐射效率极低。我自己就烧过一只2SC3356教训深刻。5.5 按键控制与显示比赛现场的交互体验电赛现场评审会要求你“演示某个功能”这个时候一个方便的人机交互界面极其重要。我用STM32H750驱动一块1.8寸TFT彩屏做了三层菜单模式选择AM、CW、多径模拟。参数调整载波频率、调制深度、多径延迟、路径衰减。状态显示当前频率、调制度、路径数量、电池电压。按键方面用两个旋转编码器一个调频率/参数一个切换菜单配合确认按键。比赛现场用起来比键盘输入高效得多至少不用在评委面前尴尬地慢慢敲参数。6. 常见问题与排查技巧实录6.1 看不到输出波形怎么回事这是我被问得最多的问题。逐级排查顺序电源DDS供电电压必须精确3.3V纹波小于50mV。时钟REF CLK有没有起振用示波器看应该有干净的方波或正弦波。SPI读寄存器试试能不能读回出厂值能读回说明通信正常。输出使能AD9959的每个通道有独立的输出使能位很多人忘了全局使能。6.2 DDS输出杂散很大频谱不干净高频段杂散大是DDS通病主要来源是DAC的量化噪声和镜像频率。解决思路输出端加低通滤波器我用7阶椭圆低通截止频率设在最高输出频率的1.4倍。优化参考时钟的纯净度必要时在时钟输入端加声表面波滤波器。数字电源和模拟电源彻底隔离共地要单点连接。6.3 AM包络不平滑有台阶感这是DDS幅度控制位太少导致的。AD9959的幅度控制只有10位如果你直接用数字方式做AM调制包络的量化台阶很容易被看到。解决方案是把调制信号经过RC平滑滤波器再送到DDS的幅度控制接口或者在外部用模拟乘法器处理包络让幅度变化连续化。6.4 多径叠加后信号幅度波动很大这是正常现象多径的干涉本身就是幅度起伏的过程。但如果起伏的速率不正常比如几kHz的快速抖动要检查两路DDS的相位噪声是否过大。相位噪声会让叠加后的幅度产生额外抖动解决方法是优化参考时钟和电源。6.5 接收机解调失败但频谱仪显示信号正常频谱仪只能看频域不能完全反映调制质量。如果信号频谱正常但接收机解调失败多半是调制质量有问题比如AM调制深度太大导致过调或者CW键控的毛刺太大占用了边带带宽。这时候建议用矢量信号分析仪或者带解调功能的频谱仪看一下调制域波形如果没有高端仪器可以用RTL-SDR配合解调软件监听声音质量来辅助判断。现象可能原因排查方法完全无输出电源、时钟、SPI、输出使能逐级检查频谱杂散大DAC量化噪声、电源纹波、时钟不净加滤波器、隔离电源AM包络有台阶幅度控制位数不足外加模拟乘法器高频输出功率不足放大器带宽不足、匹配不良更换宽带放大器、匹配网络接收机解调失败过调制、键控毛刺降低调制度、软开关6.6 现场演示时信号无故消失这是一个很诡异的坑。有次我演示时DDS输出一直没有问题但现场一插上天线输出直接掉了。排查发现是天线馈线上的静电或感应电压通过输出端倒灌把DDS的输出级打坏或者触发了保护。解决方案是在DDS输出端加ESD保护二极管比如BAT54S并且在输出端串联一个100Ω电阻作限流。加了之后再也没有出现过类似问题。7. 测试验证与效果分析7.1 频谱测试确保频谱纯净用频谱仪观测中心频率设在10.7MHzSpan设为500kHzRBW设为1kHz。正常AM信号在载波两侧应该看到两个对称的边带间隔刚好等于调制频率。如果调制信号是1kHz则两个边带分别在10.699MHz和10.701MHz。多径效果的验证方法在双径模式下改变第二路的相位偏移观察载波幅度变化。如果相位偏移从0度扫到360度载波幅度应该出现一个完整的先增后减、再增减的过程。这就是经典的双径干涉特征。7.2 接收端验证用真实设备说话我用了一台普通的短波收音机做接收验证。在AM模式下调到10.7MHz如果收音机覆盖这个频段听到的1kHz音频应该干净无失真。调整调制度从30%到90%音量应该对应变化但30%时音量小、90%时音量大、100%可能出现轻微失真——这些都是评判AM调制质量的直观指标。CW模式的验证是用电键软件发送“SOS”... --- ...接收端用BFO拍频振荡器模式接收应该听到清晰的“滴滴答答”声音调稳定不漂移。如果有漂移说明DDS频率稳定度不够检查参考时钟。7.3 多径效果演示方案我总结了一个效果最直观的演示方案比赛现场用过效果不错调制度设为80%载波频率设为10.7MHz。开启双径模式第二路幅度比第一路低3dB。缓慢旋转编码器调整第二路的相位偏移。接收端音量会随相位旋转明显起伏效果非常直观。如果用手持接收机在房间里走动还能感受到位置变化带来的信号起伏——这就是真实多径环境的表现。那一刻你会理解信号不是“有”或“没有”而是“怎么叠加”的问题。7.4 客观指标我测了什么比赛最终提交测试数据时我测试了以下几项频率精度用频率计测量10.7MHz设置值与实测值偏差小于1Hz。调制度准确度用示波器测量包络80%调制度的实测值为79.2%误差在允许范围内。输出功率平坦度在1MHz到50MHz范围内输出功率平坦度在±1.5dB以内。多径时延范围通过相位扫频观察干涉周期与时延换算值基本一致。这些数据都记录在测试报告里评委问起来心里有底也能证明你对指标的理解不是停留在理论层面。8. 个人经验与最终建议8.1 这个系统还能扩展什么比赛做完之后我觉得这个系统还可以在几个方向上扩展换成FPGA做高速数字信号处理把DDS放在FPGA内部用Xilinx的DDS IP核实现真正的宽带多径模拟带宽可以做到几十MHz。加入噪声发生器用Zener二极管或专用芯片模拟加性高斯白噪声信道。把多径通道数从四路扩展到八路用两片AD9959同步实现更接近真实信道。增加数字预失真校准改善后级放大器的线性度。8.2 踩坑最深的三个教训第一不要忽视DDS的参考时钟质量。我一开始用STM32的MCO引脚输出时钟给AD9959结果频谱仪上出现了大量杂散。后来换成独立的有源晶振模块问题立刻消失。DDS对参考时钟的纯净度要求非常高任何抖动都会直接反映在输出信号上。第二合路阻抗匹配不能省。我第一次做双径合成直接拿三通头把两路DDS输出并在一起结果两路信号互相反射频谱一团糟。后来换了正式的电阻合路器问题才解决。合路器的每个端口都要有良好的端接才能保证各路之间隔离。第三现场演示前一定要做“最坏情况测试”。比如电池电压降到最低时系统还稳不稳定天线插拔时会不会死机按键连续快速按会不会卡界面。这些看起来的小问题往往在演示现场放大成致命伤。8.3 给准备比赛的同学说几句电赛说到底是一场在有限时间内做工程决策的比赛。C题这套系统技术上并不存在“做不出来”的难点难点在于如何在三天四夜里把所有环节稳定地拼起来。DDS是核心但DDS之外的电源、滤波器、放大器、人机交互每一个环节都可能成为木桶的短板。我个人的建议是赛前至少花一天时间把所有分模块单独测试一遍画清楚每块之间的接口定义和电平关系。真正到赛场你的任务就是“组装”而不是“研发”。这听起来平淡但比任何炫技都实用。最后分享一个小技巧多径模拟的演示效果很大程度上取决于你选的频率和路径差设置。如果你发现效果不明显试着把两路信号的频率差从0改为5到10Hz这种动态干涉会比纯静态多径更明显也更容易让评委直观理解多径效应。我当时就是这么调整的实测下来效果非常惊艳现场展示时很多同学都被这个“信号自己会呼吸”的效果吸引了。