资讯详情

资讯详情

数字通信链路原理与实测:从采样到EVM的工程笔记

数字通信这块我刚入行的时候踩过一个大坑在实验室里对着误码仪上那个永远降不下去的百分比调了整整两天最后发现不是发射功率不够也不是天线没对准而是我压根没理解数字通信系统里每一个环节都在跟概率博弈这件事。后来我把整个链路的原理、参数、实测方法一条条记成了笔记今天这篇就相当于把这些笔记重新整理了一遍希望能让正在啃原理或是刚接手射频测试的读者少走点冤枉路。这篇内容适合三类人一是通信专业的在读学生想把课本里的采样定理、星座图、OFDM这些概念落到实际信号上二是刚转行做无线通信测试的工程师需要在信号源和频谱仪上看懂“EVM超标”“误码率下不去”到底怪谁三是做嵌入式或软件无线电的开发者想搞清楚为什么明明算法没问题空中一跑就出各种鬼问题。1. 先把链路画出来数字通信到底在“通”什么1.1 一条典型链路上藏着哪些环节数字通信和模拟通信最大的区别在于我们传输的不再是一个连续变化的电压或频率而是一串离散的比特。这串比特从信源出来之后要经历信源编码、信道编码、交织、调制、脉冲成形、上变频然后经过天线和空气接收端再做下变频、匹配滤波、同步、解调、译码最后才还原出原始比特。任何一个环节处理得不干净最终都会以误码率的形式体现在接收端。我见过很多初学者只盯着“调制”和“解调”这两个环节觉得只要星座图映射对了误码率就应该很低。但实际链路里真正决定系统性能下限的往往是脉冲成形是不是匹配、接收端采样点有没有落在最佳位置、载波频偏有没有被纠正这些看起来不起眼的细节。数字通信整个系统就像一条流水线任何一个工位偷懒成品质量都会打折扣。1.2 笔记里最想提醒的一句话每个环节都在“丢概率”课本里经常用误码率BER来衡量系统性能误码率的本质是一个概率发送一个比特接收端判错的概率有多大。香农告诉我们在带宽和信噪比确定的情况下这个概率有一个理论极限任何工程手段都突破不了。但工程上绝大多数情况是离这个极限还差得很远问题出在链路里的各种非理想因素。比如说接收机噪声系数差一点等效信噪比就掉几个dB本振相位噪声太大星座点就转圈发射机非线性太强星座点就向内压缩。这些都是概率上的“损耗”每一笔都得记在系统预算账上。所以我做笔记的习惯是每一个模块除了记算法和公式还额外记一笔它的非理想因素会吃掉多少信噪比这样出问题时能快速定位。2. 采样与量化ADC位数每多1bit信噪比就多6dB2.1 采样率不是越高越好奈奎斯特采样定理告诉我们要无失真地重建一个最高频率为f的信号采样率至少需要2f。但工程上几乎没有人卡着2倍去选采样率一是因为抗混叠滤波器做不到那么陡峭的砖墙截止二是因为接收端后续的定时同步和匹配滤波需要对采样点做插值采样率过低会让插值性能急剧恶化。我自己的经验是如果是零中频接收机采样率一般取符号速率的4到8倍比较稳如果是低中频或超外差结构那还要额外考虑镜像抑制和抗混叠滤波的过渡带宽度。当时我做一个符号速率1Msps的系统开始图省事只用了2.5Msps采样率结果定时同步环路怎么调都抖动很大把采样率提到4Msps之后问题一下就消失了。这个教训说明采样率多出来的那部分不是浪费是给同步和滤波留的操作空间。2.2 量化位数与SNDR这笔账ADC的量化噪声在小信号输入时差不多可以建模成均匀分布的噪声量化信噪比的理论值约等于6.02N1.76dB其中N是有效位数。也就是说位数每多1bit信噪比就多约6dB这就是标题里那句“6dB账”的来历。但注意这里说的是有效位数不是标称位数。很多ADC在数据手册上的ENOB有效位数会明显低于标称位数因为它在实际工作频率下有失真、有噪声那些高位的bit可能大部分都是无效位。所以做链路预算时我习惯先看ENOB而不是bit数再用SNDR去估算接收机能达到的底噪。另外还有一个容易忽略的问题量化噪底是相对满幅输入而言的。如果输入信号电平太低ADC的量化噪声占比就会上升等效信噪比下降如果输入信号太接近满幅削波失真又会带来大量互调分量。工程上通常把输入信号峰值控制在满幅以下1dB到3dB这个区间叫“回退”回退多少需要结合信号的峰均比来定。2.3 一个关于输入电平的实测教训有次排查一个接收链路EVM偏大的问题一开始怀疑是LNA不够好换了好几颗低噪声放大器EVM纹丝不动。后来用频谱仪看ADC输入端的信号电平才发现电平比正常值低了将近10dBADC实际等效位数被浪费了一大截。把增益链调整到合理区间后EVM直接从6%降到了2%效果立竿见影。这个坑非常典型很多人觉得ADC位数高就一定好但在信号幅度没有充分利用的情况下高位数ADC和高位数但小信号输入其实效果差不多。看接收机性能一定要从天线口一路看到ADC输出每一级增益分配都要算清楚尤其注意最后一级的AGC是不是真的把信号顶到了合适的电平。3. IQ调制与星座图用复数信号去理解射频才知道问题出在哪3.1 为什么数字调制天然是复数的带通信号在数学上可以用两路正交载波的线性组合来表示一路叫I路同相分量一路叫Q路正交分量。所谓IQ调制就是把基带复数信号的实部放到I路、虚部放到Q路再分别乘上正交的本地载波后相加。这样做的好处是任意调制方式PSK、QAM、APSK都可以统一成复数符号的映射而且频谱利用率更高。理解这一点之后很多射频现象就变得直观了。比如你在频谱仪上看到的镜像分量本质就是IQ两路的幅度和相位不平衡造成的。比如你在星座图上看到的某个特定方向的挤压往往可以对应到I路或Q路链路里某一处增益异常。所以别把星座图当成一个炫酷的可视化工具它是定位射频损伤最强的诊断手段之一。3.2 星座图的“展开度”和“弧形”对应什么损伤星座图上每个符号的落点不是理想点而是被各种噪声和干扰推离理想位置的一簇点。如果这些点均匀地围绕理想点散布多半是加性白噪声在主导如果点的分布呈现一条弧线尤其是高阶调制时外圈符号出现明显的“弯曲”那大概率是本振相位噪声在起作用如果点簇沿着某个方向被拉长往往是I/Q不平衡如果整体星座点向中心收缩通常是发射机末级功率放大器在大信号下出现了压缩。判断损伤来源的时候我有个小技巧先看问题是对所有调制阶数都出现还是只在高阶调制时出现。只在高阶时出现说明多半是相位噪声、EVM底限这类跟信噪比相关的问题对所有阶数都出现且点簇有明显形变那就要回头查I/Q链路和本振。3.3 不同调制阶数对EVM的要求完全不同EVM是误差矢量幅度简单说就是实测星座点偏离理想星座点的距离用符号点平均幅度做归一化换算成百分比或dB。它把接收机里各种损伤相位噪声、IQ失衡、非线性、噪声统一成一个指标是数字通信接收机最常用的质量度量。不同调制方式的EVM门限相差很大。举个例子QPSK对EVM的要求相对宽松16QAM适中而256QAM或更高阶的调制就对EVM提出了极其苛刻的要求。下面这张表是我平时测试时常用的参考值实际项目里还要按协议预留余量调制方式典型EVM门限RMS约等于信噪比要求QPSK约17%约15dB16QAM约12%约20dB64QAM约8%约25dB256QAM约3.5%约30dB这张表的意思是如果你的系统目标是跑256QAM链路里每一个模块带来的EVM劣化都得控制到1%甚至更低的量级才有希望在整体上留出足够裕量。4. 脉冲成形与匹配滤波收发两端是怎么“对账”的4.1 带宽和码间串扰是一对明码标价的矛盾数字信号如果不做任何处理直接发送它的频谱是很宽的会严重干扰相邻信道。脉冲成形也叫基带成形的目的就是在保证不产生码间串扰的前提下把信号的频谱压缩到需要的带宽里。但频谱压缩不是免费的代价是时域波形的“拖尾”变长这就引出了码间串扰的问题。码间串扰就像一个排队场景你前面那个人说话太大声、尾音拖得太长结果你听不清自己应该听到的那句话。脉冲成形的核心就是设计一个在采样点上能做到“互不干扰”的波形让相邻符号在最佳采样时刻恰好为零这样接收端在正确的时间点采样时就能把符号“干净”地抠出来。4.2 根升余弦滤波器为什么成对使用升余弦滤波器RC本身能在采样点提供零码间串扰但工程上我们通常不直接在发端用RC而是把整个成形和匹配滤波拆成两半收发各用一个根升余弦滤波器RRC。总响应等于两个RRC的卷积恰好等于一个RC于是接收端在正确采样时刻同样没有码间串扰。同时接收端的RRC又是匹配滤波器能让接收信噪比最大化。很多初学者在这里绕不过来以为发射端用一个RC就够了。但要知道接收端如果不用匹配滤波器信噪比会白白损失而如果接收端再用一个RC总响应就不再是零码间串扰了。RRC成对使用是既兼顾信噪比又兼顾零码间串扰的标准做法。4.3 滚降系数的选择其实是个工程妥协滚降系数α决定信号占用带宽和时域波形拖尾的速度。α越大带宽越宽但拖尾衰减越快α越小带宽越窄但拖尾衰减越慢对定时误差越敏感。实际系统里α的取值很讲究LTE和5G NR里数据信道常用0.22或更小的值WCDMA和很多卫星系统用0.22到0.35之间。我做过一个低功耗物联网收发机当时为了把占用带宽压进窄带许可范围选了α0.15结果定时同步要调得很精细稍微有点采样钟漂移误码率就开始抬头。后来改成0.2带宽微增一点但同步余量明显改善。这种“省带宽还是省同步余量”的取舍必须结合你系统的实际同步能力来决定不能只看频谱图。5. 信道编码与交织冗余不是浪费是给比特上保险5.1 为什么不能用“多发几遍”代替编码最朴素也不可靠的抗差错方法是把每个比特重复发三遍接收端用多数表决的方式还原。这种重复码确实能降低误码率但开销实在太大了。信道编码的核心思想是用更聪明的冗余方式用较少的额外比特换来远超重复码的性能这个额外的性能收益就叫编码增益。拿卷积码、Turbo码、LDPC码这些现代编码来说在误码率10^-3到10^-6区间它们比不编码时通常能带来好几个dB的增益。这意味着在同样的发射功率和带宽下编解码之后能让链路多跑出更远的距离或更高速率。5.2 从卷积码到LDPC/Polar编码增益从哪来编码增益的来源从直觉上可以这样理解编码在发送比特之间引入了约束关系接收端译码时不是独立判断每个比特而是利用整个码字的结构把所有比特的接收信息综合起来做最大似然或迭代判决。这样一来少量比特的判决错误会被其他比特的信息“拉回来”。早期的卷积码加维特比译码在约束长度不大时复杂度已经很高。后来Turbo码通过两个卷积码的并行级联和迭代译码接近了香农限很多LDPC码则用稀疏校验矩阵和置信传播迭代算法在码长较长时性能也很接近香农限而且并行度高硬件实现相对友好Polar码则在5G里因为短码表现好、编解码复杂度可控而占了重要位置。做工程选型时不用纠结谁最先进关键看码长、码率、延迟和实现复杂度这几个维度。5.3 交织是和突发差错打交道的关键信道编码对付的是随机差错但无线信道里很多干扰是突发性的一个干扰脉冲打过来能连续吞掉好几个甚至几十个比特。如果这些错误比特连在一起超过编码的纠错能力译码就失败了。交织的作用就是把编码后本来相邻的比特分散到不同的时间或频率位置上让接收端在去交织之后突发错误变成分散的随机错误回到编码能处理的范围内。这个过程可以类比成上车时把行李打散放到不同车厢就算某一节车厢发生事故行李也只会损失一部分不至于全部报废。所以交织不产生冗余只改变差错的分布但它和编码配合起来才能实现“抗突发加抗随机”的完整覆盖。我在做笔记的时候经常会想为什么很多教材把交织一笔带过实际系统里它其实非常重要。尤其是在有衰落或者脉冲干扰的无线信道里没有交织的编码方案性能会瞬间崩掉好几个dB。6. OFDM与同步多载波系统最容易翻车的三个细节6.1 循环前缀到底该怎么选OFDM把宽带信道分成许多窄带子载波每个子载波上传输低速数据整体速率却可以很高。但多径信道会让不同路径的信号先后到达造成符号之间的干扰。循环前缀CP就是把每个OFDM符号的尾部复制一份贴到前面用来吸收多径时延扩展。CP长度选择是个典型的折中必须大于信道的最大时延扩展否则多径干扰会直接漏进FFT窗口但CP本身不传有用数据拉得太长会浪费开销。LTE的常规CP在15kHz子载波间隔下大约4.7微秒能覆盖大多数城市和乡村宏蜂窝场景如果信道时延扩展更大比如某些山区或超远覆盖场景就需要用更长的扩展CP。5G NR里子载波间隔可变CP长度也随之缩放这就很灵活。6.2 载波频偏为什么让星座图“转圈”OFDM对载波频偏特别敏感因为频偏会让子载波之间失去正交性产生子载波间干扰ICI。直观表现就是星座图上所有符号点沿着一个固定方向旋转而且越靠近星座外圈旋转越明显。要解决这个问题接收机通常需要在时域先做粗频偏估计用一个或多个重复的前导结构估算出频率误差然后送到数字混频器逐一校正。在实际硬件里晶振频偏如果达到几十ppm配合较高的射频载波频率基带频偏会很可观粗同步那一环如果不做好后面所有星座图判断都会是歪的。这也是为什么协议里几乎都设计了前导、导频或同步序列作为频偏估计的锚点。6.3 符号定时偏移会带来什么符号定时偏移指的是接收端FFT窗口没有对齐到OFDM符号的理想起始位置。如果偏移落在CP范围内只会带来一个相位旋转接收机可以通过导频信道估计把相位补偿掉但如果偏移超出了CP就会同时引入符号间干扰和子载波间干扰这时候光做相位补偿已经救不回来了。由于这个特性OFDM接收机的定时同步容忍度比单载波系统要高一些前提是偏差在CP范围内。工程上要做的就是把定时估计精度控制在CP长度以内同时留一点余量来对抗信道时延扩展的波动。我见过某些实现图省事定时估计结果偶尔偏出CP好几个采样点结果EVM在部分时刻明显恶化后来在定时环路上加了一个滞回滤波才稳住。7. 把笔记变成实测信号源、频谱仪和星座图7.1 一次完整的搭建步骤笔记记了一堆最终还是要回到仪器和信号上验证。我的常用流程是这样的用矢量信号源生成一个已知调制方式的基带信号比如QPSK或16QAM设置好符号速率、脉冲成形滚降系数和功率。信号源上变频到目标射频频点经过线缆或天线进入接收设备。接收端先用频谱仪看频谱确认信号带宽、中心频点和带外杂散是否正常。然后用矢量信号分析仪VSA解调观察星座图、EVM、频率误差和IQ不平衡这几个关键指标。如果走完整收发链路就再把发射端和接收端的参考时钟同步好否则频偏和采样钟偏差会掩盖真正的问题。这套流程看起来简单但每一步都有坑下面两条是我踩过之后印象最深的。7.2 测EVM时那些会骗你的细节测EVM的时候矢量信号分析仪里有几个设置直接影响结果一是参考波形的建立方式是用已知的调制参数直接用标准符号点做参考还是测量数据再做判决二是均衡器是否开启很多仪表默认会把信道响应均衡掉这会把信道失真带来的EVM隐藏掉三是测量带宽要设对如果带宽设小了信号被截断EVM看起来很漂亮但那是假象。有一次我测一个OFDM发射机EVM始终在2%左右看起来已经很好了。后来关掉仪表里的信道均衡功能再测EVM马上跳到8%左右才暴露出发端滤波器在频带边缘有几dB的凹陷。这个教训提醒我用EVM衡量发射机质量时一定要先搞清楚仪表里开了哪些“修复开关”否则你测的可能不是发射机的真实水平。7.3 误码率测试的“口径”问题误码率看起来是个简单数字但问清楚“算的是什么比特”非常关键。有的报告里统计的是信道编码前、也就是解码后的原始比特误码率有的统计的是解码后的信息比特误码率还有的干脆给的是误帧率。三者之间不能直接比较尤其在近编码门限附近误码率和误帧率能差出几个数量级。我的做法是在测试记录里固定写清楚三个东西调制方式、码率、统计口径。做接收机灵敏度测试时通常以误块率或误帧率到达某个门限比如1%作为灵敏度判据而不是直接用误码率。这么做是因为系统最终的可用性是由丢块比例决定的单纯看比特误码率可能由于交织和解码的作用而显得很好但上层协议已经把整个块都扔掉了。最后再分享一条实践体会如果让我把数字通信所有的笔记浓缩成一句话大概会是永远从信号链路整体的角度去理解问题而不是孤立地盯着某一个模块。采样率低可以怪ADCEVM超标可以怪本振但真正让系统崩溃的往往是模块之间互相牵连的次生效应。实际项目里把链路预算算清楚、把测试口径统一好、把仪表里的隐藏选项摸透这三件事做好了至少能少走我当年那一半弯路。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →