ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

模拟混频技术:超声信号处理中高频微弱信号的破解之道

模拟混频技术:超声信号处理中高频微弱信号的破解之道 自己搞过超声测距、超声流量计或者无损检测的朋友应该都有体会换能器出来的信号频率不低幅度又小噪声还大直接用ADC去采要么采样率不够要么采回来一堆高频噪声根本滤不干净。特别是做相位法测距或者频差法流量检测的时候高频段做鉴相比低频段难一个量级。有一说一真正让超声信号处理链路“一下子好做”的关键动作往往不是换更好的放大器也不是上更贵的ADC而是在模拟前端做一次变频——也就是混频。把几十千赫兹甚至几兆赫兹的超声载波跟一路本地振荡信号相乘整体搬到几十千赫兹以下的中频或者基带后面的滤波、放大、鉴相、采样全部轻松了。这篇就把我最近在硬件电路里用混频处理超声信号的过程完整捋一遍从为什么混频、怎么选混频方案、具体电路怎么搭到调试中踩过的坑和实测数据一次讲清楚。适合正在做超声测距、流量计、医学超声前端或者类似高频微弱信号处理的硬件工程师参考也适合刚入门硬件电路、想理解模拟变频原理的同学。1. 超声信号处理为什么要做混频1.1 超声信号的频率特征与处理难题超声说白了就是频率高于人耳听觉上限的声波。工程上常用的几个频段差别很大20kHz到60kHz主要用于空气测距、倒车雷达、液位测量200kHz到1MHz主要用于流量计、水下测距、声呐1MHz以上则进入了医学超声成像和无损检测的领域。频率越高理论上空间分辨率越好但介质对声波的衰减也越厉害接收端能拿到的信号幅度通常只有几微伏到几毫伏。这里有个很现实的矛盾我们关心的物理量——飞行时间、相位差、幅度——其实变化很慢需要的有效带宽可能只有几千赫兹。但承载这些信息的载波却有几百千赫兹甚至几兆赫兹。直接用ADC去采高频载波意味着采样率至少要按载波的5到10倍来设计。200kHz的载波就需要2Msps以上的ADC如果是2.5MHz的医学超声就得25Msps起步成本和功耗都不是小数目。更麻烦的是高频下做带通滤波、做增益调整、做鉴相比低频麻烦得多普通运放的带宽不够用稍微好一点的宽带放大器成本成倍上涨。有朋友可能会说那我在数字域做正交解调不行吗行很多高端超声设备就是这么干的。但对于一个用单片机做控制的流量计或者测距模块数字域解调意味着ADC数据源源不断进来软件要一直跑混频、滤波、相位运算占用资源不说调试也费劲。而且模拟前端该有的放大和滤波一概省不掉ADC前面还是得把信号处理到合适的电平。所以在模拟域先把载波频率降下来让后级的ADC、比较器、单片机在一个“慢悠悠”的频率上工作是很划算的选择。这正是混频这件事存在的意义。1.2 混频的本质乘法运算与频率搬移混频电路的本质就是一个模拟乘法器。两个正弦信号同时加到乘法器两个输入端输出是两个信号的乘积。高中数学的积化和差公式在这里非常关键cos(2πf1t) × cos(2πf2t) ½[cos(2π(f1f2)t) cos(2π(f1−f2)t)]也就是说两个频率不同的信号相乘之后输出里同时出现了两个频率分量一个是频率相加的和频一个是频率相减的差频。后续用一个低通滤波器把和频滤掉剩下的差频就是我们想要的中频信号。举个例子超声载波是200kHz本振LO选180kHz混完以后输出里有380kHz的和频也有20kHz的差频。低通滤波之后380kHz被干掉剩下20kHz。这个20kHz信号完整保留了原超声信号的幅度信息和相位信息只是把“工作频率”搬到了更容易处理的档位。如果再把本振频率调到跟载波完全一样差频就是0Hz输出直接变成直流幅度和相位全部体现在直流电压和极性上——这就是同步解调也是锁定放大器的基本原理。用生活化的方式理解两个人各骑一辆自行车一个轮子转速是200转每分钟另一个是180转每分钟。你站在路边观察两个轮子上的标记会发现它的重合节奏一会儿快、一会儿慢这个疏密变化的频率恰好就是20转每分钟的差速。混频干的就是这件事把“高频的繁琐”转化成“低频的节奏”。1.3 混频能带来哪些实际收益混频之后的好处不是一点点我实际体会到的有四个方面。一是滤波容易了。20kHz的信号要跟380kHz的干扰分开频率比值将近20倍一个简单的二阶有源低通就能压得干干净净。要是在200kHz的载波上直接滤掉400kHz的干扰比值只有2倍得用高阶椭圆滤波器或者晶体滤波器才能做到体积和成本完全不是一个量级。二是放大的选择余地大了。处理20kHz中频信号随便一个通用运放都绰绰有余增益带宽积的要求几乎可以忽略。而在载波频率上200kHz还能用普通运放撑着2.5MHz就得往GBW几十兆的器件上走投资和技术难度都高出一截。三是相位测量精度上来了。20kHz的一个周期是50μs1度相位对应139ns。用72MHz主频的单片机定时器去测量过零时刻分辨率13.9ns折算起来不到0.1度。如果直接在200kHz上做1度只有1.39ns你得用专用的TDC芯片或者高速FPGA才玩得转。四是ADC和数据处理负担大幅下降。混到基带以后信号变化率低用一个几十千赫兹采样率的ADC甚至直接用比较器加定时器就能完成解调单片机资源占用非常小产品的BOM成本自然压下来了。顺手把混频方案和直接采样方案做个对比对比维度直接采样高频载波模拟混频到中频/基带ADC要求采样率高≥5倍载波中频采样或比较器即可滤波难度高阶带通Q值要求高低通容易实现放大器成本需宽带低噪运放通用运放即可相位测量需高速计数/插值低速定时器即可系统功耗偏高低调试复杂度高杂散多低频谱干净当然混频也不是没有代价会增加一级模拟电路引入本振泄漏、镜像频率等新问题。但从工程性价比看对大多数超声应用来说混频是稳赚不赔的一步。2. 混频电路的核心方案选型2.1 几种主流混频实现方式对比混频电路做起来有好几种路子我先把我实际评估过的方案摊开说。第一种是用模拟乘法器芯片比如AD633、AD835这类。它们是真正的四象限乘法器两个输入端给什么模拟信号输出就是精确的乘积。优点是线性度好、谐波少、设计思路最直接缺点是贵AD633一片的价格够买几十个运放而且通常需要正负双电源电源设计跟着复杂。AD835带宽250MHz性能更好价格也更感人。对于产品要控成本的朋友这一条路基本可以先放一边。第二种是晶体管混频器最经典的是吉尔伯特单元。一个差分放大器加一对交叉耦合的差分对靠本振信号控制电流在两个支路之间切换实现乘法效果。集成芯片里像NE612这类低功耗混频器就是这种结构。吉尔伯特单元可以提供变频增益端口之间的隔离度理论上也不错但偏置电路比较复杂对本振驱动电平有要求。而且很多射频用的混频芯片在几十到几百千赫兹的低频段性能反而不如预期——它们的优化目标本来就是几百兆赫兹以上的频段拿来做超声有点用错地方。第三种是开关型混频器用模拟开关、CMOS开关或者二极管环形电路把输入信号按照本振的节拍周期性导通和关断。本振是一个方波方波可以展开成基波和一系列奇次谐波信号跟方波相乘等效于跟基波和各个谐波分别相乘其中基波部分就是我们想要的混频结果谐波部分会产生额外的杂散分量靠滤波处理。这类电路结构简单、成本极低74HC4053、CD4066这种模拟开关芯片在超声频段性能完全够用所以也是我最终的选择。额外提一句还有第四种思路叫数字混频用ADC把中频信号采样进来然后在DSP或者FPGA里跟本振的数学序列相乘。这本质上是我们前面说的直接数字化路线没有模拟混频的匹配和泄漏问题但代价是把压力转移给了数字设备和固件对单片机系统来说并不划算。三种模拟方案的优缺点列个表方案成本电路复杂度变频增益杂散/谐波适合场景模拟乘法器AD633等高中无低高精度实验室仪器吉尔伯特单元/混频IC中高有中射频通信、高频段开关型混频器低低负衰减中偏高超声、低频信号处理2.2 我的选型逻辑与最终方案我这次做的项目是一台200kHz的时差法超声流量计。换能器收发超声脉冲水流会让顺流方向和逆流方向的传播时间产生一个微小的差值这个差值体现在接收信号的相位移动上。我们需要测出顺流和逆流两个方向的相位差精度目标在0.1度量级。评估下来第一项目对成本敏感AD633方案直接淘汰。第二接收信号幅度动态范围很大近距回波和远距回波能差40dB吉尔伯特单元的增益特性在这个场景里优势不大反而增加调试难度。第三我们的本振本来就可以从单片机直接产生方波跟开关型混频器的控制信号天然匹配不需要额外做正弦本振的幅度整形。所以最终选定了74HC4053模拟开关做混频后级配一个有源低通滤波器和两级放大器再用比较器把20kHz中频的过零点整形成方波送给单片机的定时器输入。整套链路走下来单片机的资源占用极小一个定时器输出180kHz方波做本振另一个定时器捕获回波的过零时刻加上一点点时间差计算的软件逻辑剩下的全在模拟电路里完成。这大概就是混频方案最让人舒服的地方——把困难的问题转化成一颗几毛钱的芯片就能解决的简单问题。2.3 本振信号的产生与相位控制本振信号我用STM32的定时器直接生成180kHz的方波。前提是发射脉冲也要用同一颗芯片的定时器生成这样本振和发射载波共享同一个主时钟两者是相位相干的。这句话值得划重点在相位法超声测量里本振和发射信号同源是保证测量稳定性的第一前提。如果本振用一个独立振荡器发射用另一个哪怕两个频率差0.1Hz混频出来的中频也会缓慢漂移相位测量根本没法做。定时器配置非常简单下面是标准库的写法用其他系列的芯片思路一样// STM32F103 TIM1APB2定时器时钟72 MHz // 目标180 kHz方波占空比50% TIM_TimeBaseInitTypeDef TIM_InitStruct; TIM_OCInitTypeDef OC_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); TIM_InitStruct.TIM_Prescaler 0; TIM_InitStruct.TIM_CounterMode TIM_CounterMode_Up; TIM_InitStruct.TIM_Period 399; // 72MHz / (3991) 180kHz TIM_InitStruct.TIM_ClockDivision 0; TIM_InitStruct.TIM_RepetitionCounter 0; TIM_TimeBaseInit(TIM1, TIM_InitStruct); OC_InitStruct.TIM_OCMode TIM_OCMode_PWM1; OC_InitStruct.TIM_OutputState TIM_OutputState_Enable; OC_InitStruct.TIM_Pulse 200; // 50%占空比 OC_InitStruct.TIM_OCPolarity TIM_OCPolarity_High; TIM_OC1Init(TIM1, OC_InitStruct); TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable); TIM_ARRPreloadConfig(TIM1, ENABLE); // 高级定时器需要额外使能主输出 TIM_CtrlPWMOutputs(TIM1, ENABLE); TIM_Cmd(TIM1, ENABLE);占空比必须锁定在50%这一点很重要。方波的偶数次谐波在理想50%占空比下是零一旦占空比偏离偶数次谐波会冒出来混频结果里就会多出一堆杂散后面滤波器不好处理。我用示波器量过占空比偏到48%左右中频附近的杂散电平能抬高三四个dB虽然不至于致命但给后级滤波带来的压力是实实在在的。相位控制方面只需要在发射脉冲和本振方波之间插入一个可变的延迟。STM32的定时器比较寄存器可以在运行时修改把本振方波的相位相对发射脉冲整体偏移这样就能补偿换能器、放大器、滤波器引入的固定相移把系统的零点校准到最准的位置。实际使用中我把它做成了一个自动校准流程上电后发一个脉冲测回波的过零时刻跟期望值比对然后微调本振相位往复两三次就收敛了。3. 硬件电路设计与参数计算3.1 前级换能器接口与低噪声放大混频器本身不挑信号但混频器前面的电路决定你能不能拿到一个干净的信噪比。尤其是微弱回波幅度可能只有几十微伏如果前级噪声大、带宽宽混频之后一样是噪声压倒信号。我的前级分两级。第一级是换能器接口第二级是带通放大。超声换能器是容性器件等效模型是一个电容并联一个源内阻谐振频率下输出电流。我用的接法是运放跨阻放大换能器正极直接接到运放反相输入端反馈电阻决定增益。200kHz谐振点上选一个10kΩ的反馈电阻配合换能器自身的等效电容可以实现40dB左右的增益同时把谐振以外的频带自然压下去一部分。第二级是多重反馈MFB结构的带通放大器中心频率200kHz带宽约±15kHz。这一级的作用有两个一是把信号幅度再拉高一点二是把带外噪声和潜在的镜像频率分量提前干掉。MFB带通电路在硬件电路基础知识里属于比较经典的拓扑公式不复杂我直接给一组实测可用的参数中心频率200kHz、增益约10倍、带宽30kHz取R11kΩC1C2470pFR232kΩR31kΩ。调的时候拿信号发生器扫一下频率响应把峰值调到200kHz附近就行。这里有个经验前级带通的带宽不能放得太宽否则混频之后镜像频率的噪声会叠加进来。200kHz的信号原本只需要±5kHz的带宽就能通过但考虑到换能器和温度漂移我把带宽放到±15kHz既不至于压掉有用信号又能对带外干扰形成足够抑制。3.2 核心混频级开关混频电路搭建混频级的实际电路比想象中简单。我只用了一路74HC4053的通道原理是本振为高电平时模拟开关导通信号直接通过本振为低电平时开关接到地输出为零。这样输出信号就是输入信号被本振方波“斩波”的结果数学上等效于输入信号乘以一个0和1的方波序列。输入侧用一个1kΩ电阻跟开关串联起到限流和匹配作用。输出侧对地接一个10kΩ电阻作为开关导通时的负载同时也给后级的耦合电容提供直流偏置路径。不用的那一路输入我接的是半电源参考电压而不是简单接地这样混频器输出在导通和关断之间只是在一个小范围内跳变后级隔直之后处理起来更顺手。单片机的本振方波经过一个单路缓冲器整形之后接到74HC4053的选通控制脚。控制线上串一个100Ω左右的电阻可以显著减小开关切换瞬间的振铃代价是开关沿变缓一些180kHz下完全可接受。有一个细节值得单独说74HC4053的导通电阻不是线性的信号幅度越大、越接近电源轨导通电阻的波动越明显这会引入一定的谐波失真。所以送到混频器输入端的信号幅度不要太大我控制在500mV峰峰值以内。如果前级增益确实需要很高宁可把增益拆到混频后级去补也别让混频器吃太大的信号。混频器的输出是一个既有20kHz差频分量、又有380kHz和频分量、还夹着本振泄漏和直流分量的混合信号。接下来的处理顺序很关键先滤波后放大。很多人习惯在混频器后面直接接一个高增益放大器结果本振泄漏或者和频分量稍微大一点运放就饱和了输出波形一团糟。正确做法是趁信号电平还低的时候先把不需要的频率滤掉再放大剩下的中频。3.3 后级中频滤波与增益处理混频器输出先经过一个隔直电容把斩波带来的直流偏置拿掉然后进入二阶萨伦-基低通滤波器。低通的截止频率设在30kHz带内保持20kHz中频的幅度一致性带外对380kHz的和频分量和180kHz的本振泄漏形成30dB以上的衰减。萨伦-基低通电路参数很好算我用的拓扑是增益1的形式R1R210kΩC1680pFC2330pF。验证一下截止频率fc1/(2π×10k×√(680p×330p))≈33kHz品质因数Q0.5×√(C1/C2)≈0.72接近巴特沃斯响应的0.707过渡带比较平中频附近的相位特性也线性对相位测量很友好。电容选了NP0/C0G材质温漂被压得很低这是后面整机稳定性的关键之一。低通之后是中频放大器。我用的是同相放大结构增益28倍运放选GBW大于1MHz的普通精密运放就够。之所以把大部分增益放在这里而不是前级是因为混频之前的信号带宽还比较宽过早放大只会把噪声一起放大混频加低通之后噪声带宽被压缩到30kHz以内这时候放大信噪比就好看了。这也是我在前面反复强调“先滤波器后放大器”的原因。放大器输出端的信号幅度在弱回波情况下大约有几百毫伏足够让比较器稳定翻转。比较器我直接用运放搭的零交叉检测正反馈加上几百毫伏的回差防止噪声在过零点附近反复触发。比较器的输出是一路20kHz方波送到单片机定时器输入捕获引脚记录上升沿的时刻。3.4 一条完整链路的参数推导把整个链路的增益和频率一步步算一遍方便大家照着自己估算。考虑接收回波的典型较弱场景换能器输出约200μV有效值的200kHz信号。第一级跨阻放大40dB输出20mV第二级带通放大10倍输出200mV。送到混频器输入端的信号幅度为200mV峰峰值量级在74HC4053的线性范围内。开关混频器的变频损耗要算清楚。理想50%占空比的方波乘以信号有用的基波分量的比例系数是1/π约0.318折合-10dB。也就是说200mV的输入信号经过混频后20kHz差频分量的幅度大约64mV再考虑开关导通电阻的分压实际按50mV估算是合理的。低通滤波器通带内损耗很小按0.9倍算过完低通还有45mV。中频放大器28倍增益输出约1.26V对比较器来说非常舒服。整条链路从200μV到1.26V总增益约76dB其中混频和滤波损耗占了约10dB大部分增益合理地分配在混频之后的窄带范围内。相位分辨率方面20kHz中频的一个周期是50μs72MHz定时器的计数分辨率为13.9ns单次过零测量的相位分辨率约0.1度。如果对多次脉冲测量的结果取平均可以进一步把随机抖动平均掉实际分辨率做到0.02到0.03度是可行的。对应到200kHz载波上0.1度的相位差意味着约1.39ns的时间差水中声程分辨率已经到微米量级完全满足常规流量计和测距的精度需求。4. 调试过程中踩过的坑与排查实录4.1 本振泄漏打穿后级第一次上电我不接超声信号只让本振工作然后用示波器看混频器输出——直接看到幅度不小的180kHz方波而且因为前后级是直流耦合这个方波把后面放大器的直流工作点都顶歪了导致放大器饱和输出钳在电源轨上。这就是经典的本振泄漏问题。原因有两个一是74HC4053的选通控制脚和信号通路之间有寄生电容本振方波的陡峭沿会通过寄生电容耦合到信号输出端二是本振方波本身幅度很大即使模拟开关静态隔离度不错动态切换瞬间的馈通也足够产生可观的输出。解决办法按优先级排列第一混频器输出必须用隔直电容耦合把直流分量隔离掉第二混频器之后、放大器之前先过一个低通或者至少是一个简单的RC滤波把180kHz和更高频的泄漏在放大前就压下去第三本振控制线上串电阻减缓沿的斜率降低耦合强度第四PCB布局上本振走线尽量短远离混频器的输入和输出走线。我实际把本振控制线的串联电阻从0Ω加到100Ω混频器输出端的180kHz泄漏下降了约8dB加上隔直电容和后级低通放大器的饱和问题彻底消失。这个小电阻看起来不起眼却是解决开关混频电路馈通问题的利器。4.2 镜像频率干扰中频输出“真假难辨”混频器本质上是一个频谱搬移器它不区分“我想要的信号”和“镜像信号”。对200kHz信号、180kHz本振、20kHz中频这套组合来说不仅200kHz的信号会搬到20kHz任何落在160kHz附近的信号也会被搬到20kHz——因为160kHz和180kHz本振的差频同样是20kHz。这个160kHz就是本振的镜像频率。第一次做实验时我在实验室里用信号发生器产生200kHz正弦波输入中频输出很干净。等到接上真实换能器把换能器放在空气中测回波发现即使没有任何目标中频输出也有一团20kHz附近的噪声。排查了半天发现是实验室的荧光灯和开关电源在160kHz附近有辐射噪声被换能器和前级电路拾取后经过混频“伪装”成了20kHz信号。真信号和假信号混在一起相位测量自然就乱了。解决办法就是在混频之前把160kHz干掉。前级的MFB带通滤波器中心频率200kHz、带宽30kHz在160kHz处的衰减只有约20dB不够。我把带通带宽收窄到±10kHz并且在换能器接口处加了一级LC谐振网络让200kHz信号正常通过、160kHz被额外衰减20dB以上。这样叠加下来镜像频率的抑制总量超过40dB问题就解决了。这件事给我的教训是任何超外差结构的设计第一步先明确中频、本振、镜像三个频率然后在混频前面针对镜像频率做预滤波。这个顺序搞反了后面滤波怎么补都费劲。4.3 开关混频谐波产生的杂散多了点开关混频器用方波本振方波除了基波还有3次、5次、7次谐波。输入信号不仅跟基波混频也会跟这些谐波混频产生输入频率减去3倍本振、5倍本振的差频分量。如果这些分量恰好落在中频通带内就是额外的杂散。在我们的参数下200kHz信号跟3×180kHz540kHz的差频是340kHz离20kHz中频很远低通滤波器完全能压住。但问题出在大信号上当回波信号很强时换能器和前级放大器产生的非线性会产生输入信号自身的谐波这些谐波再跟本振谐波混频杂散组合就多了。有一段时间我把前级增益加得很大强回波时中频输出的频谱上多出好几个毛刺相位测量结果也跟着抖。处理办法第一控制混频器输入信号幅度不要超过500mV峰峰值让开关尽量工作在线性区第二前级带通滤波器对信号谐波有抑制作用但这要求滤波器对二次、三次谐波有足够衰减我检查了一下MFB带通在400kHz和600kHz处的响应分别为-30dB和-18dB又在前级输出加了一级简单的RC低通把600kHz以上进一步压掉第三混频器的本振控制信号保持50%占空比和干净的边沿减少本振自身的额外谐波。调试中我把中频滤波器输出接频谱仪反复调整前级结构最终20kHz附近的杂散分量都能压到比主信号低55dB以上。强信号时的相位测量抖动从±0.4度收敛到±0.08度效果非常明显。4.4 电源噪声与接地环路混频电路里有两类电源在打架一类是给前级低噪声放大供电的模拟电源一类是给单片机、本振缓冲器供电的数字电源。如果共用地线本振切换瞬间的电流尖峰会在公共地阻抗上产生压降这个压降叠加在模拟信号上混频之后在20kHz附近形成可观的噪声底。我在第二版PCB上把所有地直接连成一片结果弱回波时的信噪比比第一版差了将近10dB。后来改成星形接地前级放大器、混频器、后级滤波器共用一个模拟地岛数字地单独走两个地岛在电源入口处用磁珠单点连接模拟供电用一颗低噪声LDO数字和模拟电源彻底分开。本振缓冲器的电源也单独加了一颗10uF和0.1uF的退耦电容尽量把开关噪声局限在本地。还有一个容易被忽略的点比较器的参考地。我的过零比较器用半电源电压做参考如果这个参考的纹波大过零时刻就会抖动。我给参考电压加了一级RC滤波截止频率做到100Hz以下并且把比较器周围的地孔补密抖动肉眼可见地减小了。实测下来电源处理前后的相位测量标准差从约8ns降到2ns这在中频20kHz上对应的相位误差从0.06度降到0.014度差距相当可观。顺便把这几类常见问题整理成速查表现象主要原因快速排查方法根治手段中频放大器饱和本振泄漏/直流偏置断开输入看输出是否仍有方波隔直先滤后放中频噪声大、相位乱镜像频率进入混频器用频谱仪看混频前160kHz电平混频前镜像带阻/收窄带通强信号时相位抖谐波混频产生杂散检查强输入时20kHz频谱限制信号幅度谐波预滤弱信号信噪比差地环路/电源噪声对比强弱信号源下的噪声底星形接地电源隔离5. 实测效果与关键指标5.1 混频前后的频谱对比电路调顺之后我用频谱仪把关键节点都测了一遍混频前的换能器原始输出、混频器输出、低通输出、放大器输出。数据最能说明问题。混频器输入端的原始回波信号在200kHz附近有一个清晰谱峰幅度约-35dBm但底噪声在20kHz到500kHz范围内普遍有-85dBm左右。如果直接在这个频段做采样或者鉴相每赫兹带宽的噪声都是背景动态范围很有限。混频器输出端的频谱就热闹了20kHz处出现了-45dBm的中频信号380kHz处有-58dBm的和频分量180kHz处还有-52dBm的本振泄漏另外散布着若干谐波杂散。整条链路在混频这一级看起来“很脏”但这本来就是开关混频器的常态后续滤波才是主角。经过30kHz低通之后情况完全改观20kHz中频信号保持-45dBm180kHz和380kHz的分量以及更高频杂散全部跌到-80dBm以下相当于被滤掉了25到30dB。再做一级低通和放大器20kHz信号提升到-15dBm带外杂散仍然在-80dBm量级。整个信号链从混频前的“高频带噪声”变成了“干净的20kHz单音”后级比较器和单片机看到的就是一个清爽的方波。5.2 相位线性度与测距精度相位测量的核心指标是线性度和重复性。我用可调衰减器把输入回波幅度从2mV一直调到1V覆盖40dB动态范围同时记录中频过零时刻的变化。理想情况下过零时刻应该完全不随幅度变化实际测出来全动态范围内相位漂移在±0.15度以内。这个指标让人满意说明混频器和比较器在大范围幅度变化下没有引入明显的延时漂移。重复性方面在固定距离、固定温湿度条件下连续测量1000次过零时刻的标准差约3ns对应20kHz中频的0.02度相位误差。换算到200kHz载波的时间测量等效约3ns时间分辨率按典型声程0.1m计算对应的流速分辨率约0.03m/s。如果对多次测量取平均随机抖动按平方根关系下降1000次平均后流速分辨率能进到0.001m/s量级。这个水平对于时差法流量计已经够用。需要说明的是这个重复性指标是在实验室恒温条件下测的。环境温度变化会影响滤波器元件的参数和运放的相移整机温度从20°C变到50°C时中频相位漂移约0.3度。解决思路是选用低温漂的NP0电容和金属膜电阻并且在固件里做温度补偿曲线。如果产品要求更高可以把中频滤波器换成开关电容滤波器让截止频率跟随时钟精确变化温度特性会好很多。5.3 整机稳定性验证最后做了24小时稳定性测试。设备上电后持续工作在测距模式每隔5秒记录一次相位测量结果同时记录机内温度。24小时内温度的昼夜波动大概5°C相位测量结果的最大漂移约0.4度其中绝大部分跟随温度曲线缓慢变化没有发现随机的跳变或者周期性抖动。这说明整个模拟链路的低噪声和稳定裕量是够的0.4度的误差主要来自滤波器元件的温漂而不是混频器本身的不稳定。如果在仪表里加入温度传感器做软件补偿这个指标还能再压一半下去。对于常规工业测距或者流量测量场景0.4度的相位漂移对应的距离误差在微米级基本可以忽略。在实际项目中我还在固件里加了一个“待机校准”流程每次测量前插入一次短促的内部校准脉冲不走换能器直接从本振和滤波链路跑一遍把当前的相位基准抓出来然后测量值跟这个基准做差。这样一来温漂导致的缓慢相位变化会被实时扣除整机的长时稳定性又上了一个台阶。这个方法成本几乎是零强烈推荐给做相位法测量的朋友。6. 从超声混频延伸出去的应用思路6.1 换个频率就能迁移到其他场景混频这套思路的本质是“频率搬家”只要信号是有载波的调制信号理论上都可以用。我做完这个超声项目后发现同样的电路框架拿去做别的频率、别的场景改动成本低得惊人。常见超声波应用基本可以直接套40kHz的测距换能器本振取38kHz中频2kHz电路参数整体按比例缩放就行500kHz的水下声呐本振取480kHz中频还是20kHz几乎不动设计。唯一要注意的是信号的带宽如果超声信号本身带宽很宽比如医学超声脉冲可能有好几百千赫兹的带宽那中频就不能选太低否则正负频率会折叠混叠。经验法则是中频至少选信号总带宽的一半以上必要时用正交混频同时保留I/Q两路信息。同样的架构放到可见光通信硬件电路里也能用。光信号被光电二极管接收后变成微弱电流跨阻放大再跟本振混频把调制的载波频率搬到基带解调原理和超声完全一致只是器件换成高速光敏管和高带宽运放。很多室内光通信实验平台的前端就是照着这个路子搭的。处理完的测量结果最终要传给上位机或者工业控制系统这就涉及接口电路。流量计或测距模块的输出数据用RS422差分接口发出去能抗几十米甚至上百米线缆的共模干扰硬件上就是一颗RS422收发器加上终端电阻电路不复杂但要注意终端匹配电阻的取值和布线。如果是要接入工业现场总线也可以把处理后的数据交给EtherCAT从站节点模拟前端加数字协议栈组合起来就是一套完整的工业在线测量单元。我见过好几个同行把超声前端和EtherCAT从站做在同一个模块里测量数据直接上总线省掉中间的协议转换很实用。6.2 我给后来者的一些建议做完这个项目有几条经验是花钱也买不来的写下来给准备动手做混频电路的朋友参考。第一先用通用方案快速验证再做优化。不要一上来就惦记高级混频芯片先用74HC4053加运放把链路跑通确认中频信号的质量和相位精度再根据实际瓶颈决定要不要升级。很多时候你会发现开关混频器已经够用省下的成本都是利润。第二同一颗主时钟是本振和发射信号的“命根子”。相位法测量如果本振和发射不同源一切相位精度都是空中楼阁。用单片机定时器直接输出天然同源是性价比最高的方案。第三调试混频电路必备频谱仪至少在混频器输出和中频滤波器输出各挂一个测试点。光靠示波器看时域波形你根本分不清20kHz的“信号”里有多少是镜像频率搬下来的假货。频谱仪一看真假立判。第四三样元件决定长期稳定性低通滤波器的电容用NP0/C0G反馈电阻用低温漂金属膜本振控制线的串阻不要省。这三样加起来的成本增加不到一块钱却能换来一个数量级的温度稳定性提升。我自己刚开始做的时候也走过“直接用高频采样”的弯路后来真正理解混频、把模拟变频这步做好之后才体会到什么叫“硬件方案的选择决定整个项目的成败”。超声信号处理没那么玄乎把频率搬到一个你舒服的位置剩下的就是水到渠成的事。
返回列表