
1. 从一个反直觉的现象说起雷达和蓝牙为什么会扯上关系第一次听到有人把FMCW雷达和蓝牙放在一起讨论很多人的反应是这俩东西八竿子打不着吧一个是用来测距测速的射频感知技术一个是短距离无线通信协议怎么看都不像是一路人。但如果你真正拆过FMCW雷达的中频链路也调过蓝牙音频的基带信号就会发现一个很有意思的交叉点——纯音信号Tone。纯音信号说白了就是一个单一频率的正弦波。在FMCW雷达里它是中频信号经过混频之后最核心的待处理对象在蓝牙音频链路里它是测试音频通道频响、失真、信噪比时最常用的基准信号。两个领域看似隔了十万八千里但对Tone信号的处理逻辑、频域分析方法、甚至一些工程上的坑重合度比想象中高得多。我之所以想把这个话题单独拎出来聊是因为在实际项目里踩过几次坑。有一次做24GHz FMCW雷达的测距模块中频输出怎么调都不对后来发现是Tone信号的频率计算和ADC采样率之间没对齐导致FFT之后峰值位置偏移。另一次调蓝牙音频通路用1kHz纯音做测试结果DAC输出端测到的THD高得离谱排查了半天才发现是采样时钟的抖动问题。这两件事让我意识到Tone信号虽然简单但它在不同系统里的行为差异和共性值得单独梳理一遍。这篇文章适合谁看如果你在做FMCW雷达的信号处理链路或者你在调蓝牙音频、BLE的基带测试又或者你只是对射频信号和数字信号处理之间的衔接感兴趣那接下来的内容应该能给你一些可以直接抄作业的思路。我会从Tone信号在两个系统里的角色讲起拆解中频信号的生成和采集逻辑给出具体的参数计算过程再分享一些实测中踩过的坑和排查技巧。2. FMCW雷达里的Tone信号中频到底是怎么来的2.1 从Chirp到中频混频器的核心作用FMCW雷达的基本原理是发射一个频率随时间线性变化的信号Chirp然后接收目标反射回来的回波。回波和发射信号之间存在一个频率差这个频率差就是中频信号IF信号。在理想情况下如果目标静止中频信号的频率是恒定的也就是说它就是一个纯音信号。具体来说假设发射信号的频率从f0线性增加到f0B扫频时间为T那么调频斜率S B/T。当雷达前方有一个距离为d的静止目标时回波相对于发射信号有一个时间延迟τ 2d/c其中c是光速。混频器将发射信号和回波信号相乘输出的中频频率就是f_IF S × τ (B × 2d) / (T × c)这个公式是FMCW雷达测距的基石。你可以看到中频频率和距离d是线性关系。对于静止目标中频信号就是一个频率恒定的正弦波也就是我们说的Tone信号。但实际场景中目标往往是运动的。运动目标会产生多普勒频移这时候中频信号就不再是单一频率的纯音了而是包含了距离信息和速度信息的复合信号。不过在讨论Tone信号的时候我们先聚焦在静止目标或者距离-速度解耦之后的单频分量上。2.2 中频信号的频率范围与ADC采样率的选择中频信号的频率范围直接决定了ADC采样率的选择。假设你的雷达最大探测距离是d_max那么对应的最大中频频率是f_IF_max (B × 2 × d_max) / (T × c)举个例子假设B 1GHzT 1msd_max 50mc 3×10^8 m/s那么f_IF_max (1×10^9 × 2 × 50) / (1×10^-3 × 3×10^8) (1×10^11) / (3×10^5) ≈ 333kHz根据奈奎斯特采样定理ADC的采样率至少要是中频最大频率的两倍也就是至少666kHz。实际工程中一般会留2.5到4倍的余量所以采样率选2MHz到5MHz是比较常见的。这里有一个很容易踩的坑很多人会忽略抗混叠滤波器的截止频率设置。如果你的中频信号最大频率是333kHz但抗混叠滤波器的截止频率设在了500kHz而ADC采样率只有800kHz那么500kHz到400kHz之间的频率分量会混叠到0到100kHz之间直接污染你的有效信号。我见过一个项目就是因为这个问题近距离目标的测距结果一直有几十厘米的偏差查了一整天才定位到。2.3 加窗与FFT从Tone信号中提取距离信息采集到中频信号之后下一步就是做FFT把时域的Tone信号变换到频域找到峰值对应的频率再反推距离。这个过程看似简单但有几个细节直接决定了测距精度。首先是加窗函数的选择。如果不加窗直接对有限长度的信号做FFT会产生频谱泄漏。对于单频Tone信号来说泄漏会导致峰值展宽降低频率分辨率。常用的窗函数有Hanning、Hamming、Blackman等。Hanning窗的主瓣宽度适中旁瓣衰减较快是FMCW雷达里用得比较多的一种。Blackman窗的旁瓣衰减更好但主瓣更宽频率分辨率会下降。具体选哪个取决于你的应用场景对分辨率还是对动态范围要求更高。其次是FFT点数与频率分辨率的关系。频率分辨率Δf fs / N其中fs是采样率N是FFT点数。假设fs 2MHzN 1024那么Δf ≈ 1.95kHz。对应的距离分辨率Δd (Δf × T × c) / (2B)。代入数值Δd (1950 × 1×10^-3 × 3×10^8) / (2 × 1×10^9) ≈ 0.29m也就是说在这个配置下距离分辨率大约是29厘米。如果你需要更高的分辨率要么增加扫频带宽B要么增加FFT点数N要么降低采样率fs但要注意满足奈奎斯特条件。注意增加FFT点数并不能无限提高实际分辨率因为实际分辨率受限于信号的观测时间。补零只能让频谱看起来更平滑但不能真正提高分辨两个靠近目标的能力。2.4 实测中频链路的几个关键检查点在实际调试FMCW雷达的中频链路时我一般会按以下顺序检查混频器输出是否饱和用示波器看中频输出如果波形顶部或底部被削平说明混频器或后续放大器的增益太高了需要调整增益或者增加衰减。抗混叠滤波器截止频率是否正确用扫频仪或者信号发生器加频谱仪测一下滤波器的-3dB截止频率确保它低于ADC采样率的一半。ADC采样时钟是否干净时钟抖动会直接恶化Tone信号的频谱纯度表现为FFT峰值旁边的裙摆变宽。用相位噪声分析仪测一下时钟的相位噪声一般要求在100kHz偏移处低于-100dBc/Hz。FFT峰值是否在预期位置用一个已知距离的角反射器放在雷达前方计算理论中频频率看FFT峰值是否对得上。如果对不上先检查公式里的参数有没有代错再检查时钟频率是否准确。3. 蓝牙音频链路里的Tone信号从DAC到耳机的全通路测试3.1 为什么蓝牙音频测试离不开纯音信号蓝牙音频的传输链路很长手机端解码→蓝牙基带编码→射频发射→耳机端射频接收→基带解码→DAC转换→模拟放大→扬声器。每一个环节都可能引入失真、噪声或者频响不平坦。要单独评估每个环节的性能最直接的方法就是输入一个已知的纯音信号然后在输出端测量它的幅度、频率和失真。1kHz是最常用的测试频率因为它落在人耳最敏感的频段中间而且很多标准比如A2DP的音频测试规范都指定用1kHz作为基准。除了1kHz还会用到100Hz、10kHz等频率来测试低频和高频的频响特性。3.2 蓝牙音频Tone信号的生成与编码在蓝牙音频测试中Tone信号的生成方式取决于你测试的是哪个环节。如果测试的是DAC和模拟通路可以直接用音频分析仪比如APx系列生成模拟正弦波输入到DUT的模拟输入端。如果测试的是整个蓝牙链路就需要在手机端或者测试仪器端生成数字Tone信号然后通过蓝牙协议栈编码成SBC、AAC或者LDAC等格式发送出去。这里有一个关键点不同编码格式对Tone信号的影响是不一样的。SBC是蓝牙音频的强制编码格式它的压缩率比较高对高频信号的保真度相对较差。用1kHz纯音测试的时候SBC编码后的THDN可能只有0.1%左右但如果你用10kHz纯音测试THDN可能会上升到1%甚至更高。这不是DAC的问题而是编码器在高频段的量化噪声导致的。AAC和LDAC的压缩效率更高对Tone信号的保真度也更好。但LDAC的延迟比较大如果你测试的是实时音频通路延迟可能会影响测试结果的稳定性。我一般会在测试报告中注明使用的编码格式和码率否则不同实验室之间的数据没法直接对比。3.3 DAC输出端的Tone信号测量DAC输出端的测量是蓝牙音频测试的核心环节。你需要一个高精度的音频分析仪能够测量THDN、SNR、频响、串扰等参数。测量的时候有几个细节需要注意输出负载要匹配DAC的输出阻抗和负载阻抗不匹配会导致频响曲线在低频端或高频端出现滚降。一般耳机的阻抗是16Ω到32Ω如果你直接用高阻抗的音频分析仪输入端口去测负载效应会很明显。建议在DAC输出和音频分析仪之间加一个匹配网络或者用模拟耳机的负载阻抗。测量带宽要足够THDN的测量带宽一般要求至少20kHz如果要测高频失真带宽要扩展到40kHz甚至80kHz。但带宽越宽引入的噪声也越多所以要在测量精度和噪声底之间做权衡。接地要干净蓝牙音频设备的接地设计往往比较紧凑DAC的模拟地和射频地之间的隔离如果没做好射频信号会耦合到模拟输出端表现为Tone信号上叠加了高频噪声。用频谱仪看的时候会在Tone频率的整数倍之外看到一些非谐波的杂散。3.4 射频链路对Tone信号的影响蓝牙射频链路对Tone信号的影响主要体现在两个方面频率偏移和相位噪声。蓝牙的射频载波频率是2.4GHz ISM频段晶振的精度一般在±20ppm左右。对于1kHz的Tone信号来说20ppm的频率偏移意味着0.02Hz的偏差这个影响可以忽略不计。但如果你测试的是高频Tone信号比如10kHz0.02Hz的偏差仍然很小不会对测量结果产生实质性影响。相位噪声的影响更值得关注。蓝牙射频的相位噪声会通过解调过程传递到音频基带表现为Tone信号的频谱裙摆变宽。在极端情况下相位噪声会导致音频信号的SNR下降。不过对于大多数消费级蓝牙音频设备来说相位噪声的影响在1kHz Tone信号上通常不明显只有在测试极高动态范围的音频设备时才需要特别关注。4. 两个领域的交叉点Tone信号处理的共性技术4.1 频谱分析方法的通用性不管是FMCW雷达的中频Tone信号还是蓝牙音频的基带Tone信号频谱分析的基本方法是一样的采样→加窗→FFT→峰值检测→参数提取。区别在于采样率、FFT点数和窗函数的选择。FMCW雷达的中频信号频率通常在几十kHz到几MHz之间采样率高FFT点数相对较少1024到4096点对实时性要求高。蓝牙音频的Tone信号频率在20Hz到20kHz之间采样率通常是44.1kHz或48kHzFFT点数可以做到8192甚至65536点对频率分辨率要求高。但两者都会遇到频谱泄漏和栅栏效应的问题。频谱泄漏是因为信号截断导致的加窗可以缓解但不能完全消除。栅栏效应是因为FFT的频率分辨率有限峰值频率不一定正好落在FFT的频点上。解决栅栏效应的方法有补零、插值或者用相位差法。在FMCW雷达里常用的是抛物线插值或者Jacobsen算法来估计真实峰值频率。在音频测试里因为信号周期性强可以用同步采样或者锁相环来保证峰值落在频点上。4.2 信噪比与动态范围的权衡FMCW雷达的中频链路和蓝牙音频的DAC链路都面临一个共同的挑战在有限的动态范围内提取有用的Tone信号。雷达中频信号的动态范围取决于目标的雷达截面积RCS和距离近距离强反射目标的回波可能比远距离弱目标强好几个数量级。蓝牙音频的动态范围取决于音频内容的响度和DAC的位数。两者的解决方案也有相似之处可变增益放大器VGA。雷达中频链路里VGA根据目标距离动态调整增益保证ADC输入不饱和的同时最大化信噪比。蓝牙音频里DAC的输出增益根据音频内容的响度调整保证扬声器不削顶的同时最大化信噪比。但VGA的引入也会带来问题增益切换时的瞬态响应可能引入额外的噪声或者失真。在雷达里这表现为中频信号的相位不连续影响测距精度。在音频里这表现为可闻的“咔嗒”声或者音量突变。解决方法是使用软增益切换或者ΣΔ调制器来平滑增益变化。4.3 时钟质量对Tone信号的影响时钟质量是FMCW雷达和蓝牙音频共同的关键因素。雷达的ADC采样时钟抖动会直接恶化中频Tone信号的频谱纯度表现为FFT峰值的相位噪声增加。蓝牙音频的DAC时钟抖动会恶化音频Tone信号的THDN表现为底噪升高或者谐波失真增加。两者的时钟要求有相似之处低相位噪声、低抖动。但具体指标不同。雷达ADC时钟的抖动一般要求在几十飞秒到几百飞秒量级蓝牙音频DAC时钟的抖动要求在皮秒量级。雷达对时钟的要求更苛刻因为中频信号的频率更高同样的时间抖动对应更大的相位误差。在实际设计中雷达的时钟源通常用高Q值的晶体振荡器或者OCXO蓝牙音频的时钟源可以用普通的TCXO或者晶体振荡器。但如果你在做高保真蓝牙音频设备时钟的相位噪声仍然是一个需要重点关注的参数。5. 常见问题与排查技巧实录5.1 FMCW雷达中频Tone信号异常排查现象可能原因排查方法FFT峰值位置偏移调频斜率S不准确用频率计测发射信号的扫频带宽和扫频时间重新计算SFFT峰值展宽时钟抖动过大用相位噪声分析仪测ADC时钟的相位噪声底噪抬高抗混叠滤波器截止频率过高用扫频仪测滤波器的-3dB截止频率近距离目标测距偏差混频器饱和用示波器看中频输出波形是否削顶多目标分辨不清距离分辨率不足增加扫频带宽B或FFT点数N5.2 蓝牙音频Tone信号异常排查现象可能原因排查方法THDN偏高DAC时钟抖动大用音频分析仪测DAC时钟的相位噪声频响不平坦输出负载不匹配检查DAC输出阻抗和负载阻抗是否匹配底噪有杂散射频耦合到模拟通路用频谱仪看杂散频率是否与射频相关左右声道串扰大PCB布局不合理检查模拟走线是否平行且距离过近低频响应差耦合电容容量不足计算截止频率f 1/(2πRC)检查电容值5.3 几个我踩过的坑坑一雷达中频信号的直流偏置。混频器输出往往带有直流偏置如果不加隔直电容这个直流分量会占用ADC的动态范围导致弱信号被淹没。我一般会在混频器和ADC之间加一个隔直电容截止频率设在1kHz左右既能隔掉直流又不会影响中频信号的低频分量。坑二蓝牙音频的采样率转换。手机端的音频文件采样率可能是44.1kHz但蓝牙编码器可能要求48kHz输入。这个采样率转换过程如果算法不好会引入额外的失真。我测试过不同手机的SBC编码通路发现采样率转换的THDN差异可以达到0.05%以上。如果你在做高保真测试建议用固定采样率的测试文件避免采样率转换引入的变量。坑三FFT加窗后的幅度修正。加窗会降低信号的幅度不同窗函数的幅度修正因子不同。Hanning窗的幅度修正因子是2.0Hamming窗是1.85Blackman窗是2.38。如果你忘了做幅度修正测出来的信号幅度会偏低影响后续的SNR计算。坑四蓝牙射频的频偏对Tone信号的影响。虽然前面说了20ppm的频偏对1kHz Tone信号影响很小但如果你测试的是蓝牙LE Audio的LC3编码频偏会影响解码器的同步性能间接导致音频质量的下降。在测试LC3编码的Tone信号时建议用频率精度更高的晶振把频偏控制在±5ppm以内。6. 从Tone信号出发的扩展思考Tone信号虽然简单但它是理解更复杂信号处理的基础。在FMCW雷达里多目标场景下的中频信号是多个Tone信号的叠加测距和测速的本质就是从叠加信号中分离出各个Tone分量。在蓝牙音频里音乐信号可以看作是多个Tone信号的叠加音频编码的本质就是用尽可能少的比特数去逼近这些Tone分量的幅度和相位关系。如果你已经理解了Tone信号在时域和频域的行为下一步可以尝试把这些知识应用到更复杂的场景里。比如在雷达里试试用Chirp-Z变换代替FFT看看能不能提高近距离目标的距离分辨率。在蓝牙音频里试试用多音信号Multitone代替单音信号看看能不能更全面地评估音频通路的非线性失真。我个人在实际操作中的体会是Tone信号是所有信号处理算法的试金石。如果一个算法连单频Tone信号都处理不好那它在复杂信号上的表现只会更差。所以每次调试新的雷达或者音频系统我都会先用Tone信号把基础链路跑通确认没有明显的失真、噪声或者频率偏差然后再上复杂的调制信号。这个习惯帮我省了很多排查时间也让我对系统的性能边界有了更清晰的认识。最后分享一个小技巧在调试FMCW雷达的中频链路时可以用一个信号发生器直接注入一个已知频率的正弦波代替混频器的输出这样可以单独测试ADC和后续信号处理链路的性能快速定位问题是在射频前端还是在中频后端。这个方法和蓝牙音频测试里用音频分析仪直接注入模拟Tone信号的思路是一样的都是把复杂系统拆成独立模块来验证。