ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

正负频率与收发变频方向:星座图镜像的根源解析

正负频率与收发变频方向:星座图镜像的根源解析 前两年调试一套 SDR 收发链路遇到一个非常“邪门”的现象发射端基带星座图明明正常接收端解调出来的 QPSK 信号却永远报错无论怎么调载波同步、符号同步都没用。后来把接收基带数据拉下来一分析发现收到的根本不是发射的星座而是它的“镜像”——I 路没毛病Q 路正好反号。原因不复杂发射端本振按照正方向做了一次变频接收端解调本振也按同一个方向旋转两个“正号”叠在一起频谱被折叠回来了。当时改了一行 DSP 代码把 Q 路取反问题立刻消失。这个问题的本质就是通信系统里收发变频使用不同正负频率带来的影响。很多工程师在配套频率规划时只关注“频率值”容易忽略“方向”。这篇文章我会把正负频率的概念、发射和接收两条链路里的变频方向、不同符号组合带来的系统级后果以及实际排查和规避方法一次讲清楚希望对做射频前端、FPGA/DSP 通信算法和系统联调的朋友都有帮助。1. 正负频率不是“数学符号”先从复数基带说起1.1 负频率到底能不能“摸到”上学时学傅里叶变换教材上说实信号的频谱是共轭对称的正频率和负频率各有一半很多人就把负频率当成纯数学产物。但一旦进入复数基带和 I/Q 信号处理负频率就是实实在在的物理量它对应着一种可观测、可测量、可携带信息的信号状态。一个复数基带信号可以写成[ x(t)I(t)jQ(t) ]它的频谱 (X(f)) 在正频率和负频率上相互独立。也就是说你能在 1MHz 放一个信号同时在 -1MHz 放另一个完全不同的信号两者互不干扰。这就是复数信号“多出来”的自由度。接收端只要用正交下变频就能把这两个频率分开而如果只用单路实信号处理这两个位置会互相折叠分不干净。所以做通信系统设计尤其是调制解调、上下变频、镜像抑制这些环节时负频率不是一个可有可无的符号它就是一个独立的“车道”。1.2 复指数与本振的旋转方向在变频里我们经常用复指数 (\exp(j2\pi f_{LO} t)) 表示本振。用欧拉公式展开[ e^{j\omega t}\cos(\omega t)j\sin(\omega t) ] [ e^{-j\omega t}\cos(\omega t)-j\sin(\omega t) ]这两个指数的差别就是 Q 路本振的符号。工程上常说的“本振正频率变频”本质上是把基带频谱向正频率方向搬移换成负指数就是向负频率方向搬移。一旦在某个混频级里少加了一个负号、多接了一根反相线整个频谱方向就会翻转。理解这件事以后再看收发链路里的每一个混频器、每一个 DDC 里的 NCO都不只是“乘一个本振”那么简单而是要问清楚我乘的是 (e^{j\omega t}) 还是 (e^{-j\omega t})这个方向决定了信号最终落在正频率还是负频率上。2. 发射路径里的“正负方向”是怎么定的2.1 理想 I/Q 调制器一次变频可以只出一个边带先看发射端。一个理想正交调制器的输出可以写成[ s_{RF}(t)\mathrm{Re}{[I(t)jQ(t)]e^{j2\pi f_{LO}t}} ]展开后就是[ s_{RF}(t)I(t)\cos(2\pi f_{LO}t)-Q(t)\sin(2\pi f_{LO}t) ]射频输出只在 (f_{LO}) 位置出现基带频谱(-f_{LO}) 位置虽然没有射频能量但由于实信号必须满足共轭对称实际观测到的射频负频分量是把基带信号共轭后放在那里的。假如本振的 Q 路相位接反输出变成[ s{RF}(t)I(t)\cos(2\pi f{LO}t)Q(t)\sin(2\pi f_{LO}t) ]这就等价于[ s{RF}(t)\mathrm{Re}{[I(t)-jQ(t)]e^{j2\pi f{LO}t}} ]也就是说基带信号在进入变频前已经被“共轭”了一次。发射链路频谱看着还是在上边带但携带的信息已经变成 (I-jQ)不是原来的 (IjQ)。2.2 单混频器与边带选择如果发射机不是用正交调制器而是用一个普通实混频器情况更明显。实混频器输出有和频也有差频相当于同时使用了正方向和负方向两个边带。想在某个边带工作就必须在混频器后面加滤波器把不需要的边带滤掉。决定用上边带还是下边带就成了系统设计里的一个显式选择。选上边带等效于基带频谱向正方向搬移选下边带等效于向负方向搬移。射频滤波器放在通带哪一侧、中频滤波器放在镜像频率哪一侧全都由这个方向决定。很多人问我既然可以滤波那为什么还要关心正负号因为滤波器只解决了“不要的边带被滤掉”的问题并没有解决“信号本身有没有被镜像”的问题。如果发射机的 I/Q 极性和边带期望不一致信号频谱在发射端就已经倒了后面滤波再怎么选也救不回来。2.3 OFDM 里“负频率”可不是装饰实际系统里负频率在基带中直接承载数据。比如 OFDMIFFT 之后频率轴上 -N/2 到 N/2 的所有子载波都带着调制信息负频率子载波和正频率子载波通常都有导频和数据。设计时会刻意在某些位置留空比如直流子载波附近或者为镜像抑制留保护间隔。这也意味着一旦收发变频方向不一致接收端解调出的 OFDM 数据会“躲”到相反符号的子载波上。如果发射端在 -k 子载波放了一个导频接收端可能在 k 子载波上解到这个导频。原本按标准排列的正负子载波映射关系被打乱轻则误码率升高重则完全无法同步。3. 接收路径的变频方向谁在决定“要正还是负”3.1 实混频接收机的镜频烦恼接收端同样存在方向问题。一个单路实混频器做下变频输出是[ r_{IF}(t)s_{RF}(t)\cdot 2\cos(2\pi f_{LO}t) ]它同时把 (f_{LO}) 附近的信号和 (-f_{LO}) 附近的信号搬到中频两个分量在中频处重叠。这就是经典镜频问题。要抑制镜频通常在中频之前用射频预选滤波器或者镜频抑制混频器把另一个方向的信号先干掉。实混频器本身是分不清“正频率边带”和“负频率边带”的。也就是说对于接收机来说如果不做正交处理仅仅知道“本振频率是多少”是不够的必须同时知道“信号是高于本振还是低于本振”。这个信息在工程上对应“高本振注入”还是“低本振注入”。3.2 高本振与低本振中频方向的开关超外差接收机里常用高本振和低本振来区分两种注入方式。假设希望接收 900MHz 信号中频选 70MHz如果本振用 830MHz属于低本振注入。射频信号频率 本振 中频本振在信号下方中频输出频谱方向与射频输入频谱方向一致。如果本振用 970MHz属于高本振注入。射频信号频率 本振 - 中频本振在信号上方中频输出频谱方向会发生翻转。高本振注入在镜像抑制上有时候有优势因为镜频落在 1040MHz可能更容易用滤波器滤掉。但代价就是中频频谱方向反了。如果后端的中频链路没注意到这一点后面的 AGC、解调器、信道滤波器就全都按反方向处理星座图自然就倒了。3.3 复数下变频与 DDC 里的符号选择现代数字接收机通常用正交下变频也就是用两个本振信号分别乘 I 路和 Q 路再做搬移。理想情况下接收端的数字下变频可以表达为[ \hat{x}(t)\mathrm{LPF}{s_{RF}(t)\cdot e^{-j2\pi f_{LO}t}} ]这里选了负指数等效于把信号向负方向旋转。至于选正指数还是负指数完全取决于你希望把 RF 信号的哪一侧搬到基带。在软件无线电里这套操作通常在 DDC 中通过 NCO 实现。很多 SDR 平台的接收频率设置让你输入中心频率但内部实现里有的平台把信号带通搬到正频率有的搬到负频率。如果只看界面上的“接收频率”看不到内部正负方向等接上发射机联调时才会发现信号倒了。4. 收发正负不同组合的系统性影响4.1 四种组合的等效基带结果现在把发射和接收的变频方向放在一起来看。设发射端使用 (\exp(j2\pi f_{LO}t)) 做上变频接收端使用 (\exp(-j2\pi f_{LO}t)) 做下变频这是最常见的“一正一负”组合。经过推导接收端低通滤波后得到[ \hat{x}(t)\frac{1}{2}x(t) ]信号被完整恢复只是幅度减半。这是正常情况。但如果发射端和接收端都用了正指数即收发同方向结果变成[ \hat{x}(t)\frac{1}{2}x^*(t)\frac{1}{2}(I(t)-jQ(t)) ]信号在基带被共轭表现为 Q 路取反。发射端和接收端都用负指数时结果同样是 (x^*(t))。完整组合见下表发射变频方向接收变频方向基带等效结果典型现象(e^{j\omega t})(-e^{j\omega t})(x(t))正常解调(-e^{j\omega t})(e^{j\omega t})(x(t))正常解调(e^{j\omega t})(e^{j\omega t})(x^*(t))频谱倒置、星座镜像(-e^{j\omega t})(-e^{j\omega t})(x^*(t))频谱倒置、星座镜像这个表非常关键。它说明“正负不一致”反而能正确恢复信号“正负一致”却会出错。很多联调现场出现怪问题时第一反应是怀疑天线、增益、滤波器很少有人会去核对收发两端的变频方向符号结果绕了一大圈。4.2 星座图看起来像“转了一下”收发方向一致造成的影响在星座图上非常典型。QPSK 信号本来是四个点分布在右半平面如果 Q 路取反星座点会沿 I 轴镜像四条限图还是四条但每个点都跑到对侧去了。如果你的解调器按照标准映射表硬判得出来的全是错码。更迷惑的是BPSK 这类一维调制信号对 Q 路取反没有感知因为它的信息只写在 I 路上。这就造成一个现象用 BPSK 测试时一切都正常一换 QPSK 或者 16QAM 就全错。很多人在这个坑里浪费了大量时间其实原因早就在那里只是测试信号没有暴露它。对于高阶 QAM星座不仅发生镜像还会因为差分编码方式不同表现出不同的错误图案。如果系统里用了旋转不变的差分编码可能部分码字还能解对另一部分又不对看星座图就像“拧着劲儿”很难一次看出规律。4.3 OFDM 和扩频系统频域位置整体对调在 OFDM 里收发方向一致造成的不是单纯的 Q 路取反而是所有频率分量在 f 和 -f 之间对调。因为时域取共轭在频域等价于[ X(k)X^*(-k) ]也就是说k 子载波上的导频可能跑到 -k 子载波上。如果发射端在正负子载波放了不同的导频图案接收端可能误以为自己收到了错误位置上的导频从而影响信道估计和均衡。严重时小区搜索、帧同步这些依赖固定导频位置的模块直接失效。扩频系统也有类似问题。如果扩频序列在频域上不对称收发方向取反后相关峰位置会明显异常。直扩系统里会看到主峰跑到镜频延时位置工程上很容易误判为多径。4.4 级联变频时的符号累加实际设备往往不止一级混频。发射端可能从基带先变到中频再从中频变到射频接收端同样有多级下变频和数字下变频。每一级都可能是正方向也可能是负方向最终方向取决于每一级符号的乘积。我习惯用“频谱倒置奇偶性”来判断整个链路每一级混频如果发生了边带选择翻转就计一次倒置整条链路倒置次数为奇数接收基带必然镜像为偶数则恢复正常。这个方法在系统联调时非常好用能快速从多级变频中定位是哪一级出了问题。5. 工程案例同号镜像的完整排查过程5.1 第一次复现一根单音就把问题暴露了现在说说文章开头那个 SDR 项目。当时我们在调试一个点对点数据链路发射端持续发 QPSK 信号接收端解调误码率一直在 50% 左右。我先用频谱仪看接收天线口的射频信号载波位置、功率都正常完全看不出问题。接着我把发射模式改成单音在基带发一个 150kHz 的复指数然后看接收端基带 FFT发现峰值出现在 -150kHz。这一个测试就直接锁定了方向。如果只是单纯的噪声或者干扰不可能这么规则地出现在镜像频率位置。于是我把链路图打开逐个变频级核对符号最后发现发射端基带 DSP 里 I/Q 映射的 Q 路取反了。也就是说发射链路在基带就把信号共轭了一次接收端再按标准负方向变频结果收发方向一致形成了镜像。5.2 坐标系排查模拟端和数字端都要看排查这类问题必须把模拟电路和数字基带当成同一个坐标系来看待。常见的出问题点有三个正交调制器的 Q 路本振相位写反模拟端少了一个负号。ADC 采样后 I/Q 两路接反或者 DDC 里的 NCO 旋转方向设置错误。基带算法里把 (IjQ) 误写成 (I-jQ)在数字域人为引入共轭。这三个点都发生在“看不见”的地方单独测任何一级都可能正常。我建议调试时先做一次基带本振方向验证在发射端打一个正频率单音接收端看频谱再打一个负频率单音接收端再看频谱。如果两个单音的位置对调了立刻能判断收发方向不一致。5.3 修复优先改接收端还是发射端解决频谱倒置理论上改哪一端都行但实际工程里有讲究。如果发射端已经和其他系统对齐过或者发射设备不便改动那就改接收端。数字接收机里通常只需要对基带做共轭操作或者把 DDC 的 NCO 旋转方向反转改起来成本最低。如果发射端有多个项目复用而接收端是专用设备那可以考虑在发射端修正。但要注意发射端修正前必须确认其它接收端对边带方向的依赖不能只顾当前一个接收机。我在那次项目里选择了在接收端基带做共轭因为发射端已经量产接收端还是原型样机。改完后用同一个 150kHz 单音复测峰值回到 150kHzQPSK 星座恢复正常误码率直接降到接近 0。6. 设计阶段如何避免正负频率混乱规划、测量、预案6.1 用频谱方向图替代“本振频率值”很多频率规划文档只写本振频率和信号频率不写信号是位于本振上边还是下边也不写每个混频级选的是上边带还是下边带。这在单级变频里问题不大级数一多就非常容易出乱子。我建议每个项目都画一张从基带到天线的频谱方向图每一级搬移处明确标注“本振在上”还是“本振在下”“取上边带”还是“取下边带”。配合前面说的倒置奇偶性判断每一级是否翻转一目了然。6.2 收发联调前先跑一次“正负单音测试”在联调测试项里把“正负单音测试”作为必测项。具体操作是发射端发一个 f 基带单音。接收端在基带 FFT 里确认峰值出现在 f 还是 -f。发射端再发一个 -f 基带单音。接收端确认峰值位置是否对应。如果两次都对应正确说明收发链路方向一致或符号组合正确。如果相反说明频谱倒置。这个测试成本极低却能在第一时间暴露方向问题。6.3 对 I/Q 不平衡校准的影响正负频率对镜像抑制校准也有影响。I/Q 不平衡校准通常会让信号在正频率或者负频率出现镜像分量校准算法根据正负频率上的目标信号和镜像信号相位关系来估计不平衡参数。如果收发方向已经乱了镜像信号的位置和相位关系就会反掉校准结果要么不收敛要么把链路校准得更歪。做收发校准时一定要先确认链路方向正确再做校准。顺序反过来通常会把问题搞得越来越复杂。6.4 多天线与全双工系统要格外小心在多天线系统里每一路收发链路的 I/Q 极性如果不能保持一致天线通道间的相位一致性测量就会失败。波束成形算法对通道间相位非常敏感如果某一路的变频方向反了其他几路统一校准也没用最终会导致波束指向错误。全双工或者同频同时收发的系统里发射信号会泄漏到接收链路接收链路经常利用自身的频谱方向来区分泄漏信号和目标信号。这时候收发正负频率的处理不当会把自干扰信号误认为有用信号或者反过来把有用信号当成干扰抵消掉。这类系统从设计一开始就要把正负频率作为一等公民摆进系统模型而不能只靠后期打补丁。写在最后正负频率这个坑我见过太多人踩过。有的人在联调现场花了三天找问题最后只改了一个负号有的人因为用了 BPSK 测试信号一直没发现方向问题等到 QAM 上线才炸锅。其实只要在设计阶段就把变频方向记清楚在联调前跑一次正负单音测试这些问题都能在几分钟内定位。我自己的习惯是在每一个混频器旁边用记号笔标注“”或者“-”在代码里凡是涉及 I/Q 符号的地方都写清楚注释标注方向和参考基准。启动一个新项目时第一件事就是做一次正负单音链路自检。这些习惯看起来不起眼但能在关键时刻省下一天甚至几天的排障时间。如果你也正在被“星座图不对”“OFDM 导频错位”“校准不收敛”这类问题困扰不妨先停下来问问自己发射端和接收端到底用的是同一个方向的变频还是相反方向的变频
返回列表