中頻信號(hào)相位解析:從原理到實(shí)踐)
1. 還沒到相位之前先把中頻信號(hào)這關(guān)過了很多初學(xué)者看毫米波雷達(dá)的資料一上來就撞上中頻信號(hào)的相位這個(gè)坎。我最早接觸這塊內(nèi)容的時(shí)候也栽過跟頭——光顧著盯頻率、幅度相位完全沒當(dāng)回事結(jié)果后面看多普勒測速、MIMO測角的原理文章每一篇都云里霧里。后來才明白相位才是把距離、速度、角度這三件事串起來的那根線。這篇內(nèi)容就聚焦在中頻信號(hào)的相位這個(gè)基礎(chǔ)點(diǎn)上扒開講講相位到底是怎么產(chǎn)生的、和哪些物理量掛鉤、在真實(shí)雷達(dá)信號(hào)處理鏈路里又是怎么被使用的。適合剛?cè)腴T毫米波雷達(dá)的同學(xué)也適合做了幾年嵌入式或者射頻測試、想回頭把信號(hào)模型捋清楚的人。先說結(jié)論中頻信號(hào)的相位本質(zhì)上是發(fā)射信號(hào)與接收信號(hào)之間相位差在混頻之后的投影。理解了這句話后面所有關(guān)于測速、測角的運(yùn)算都會(huì)順理成章。但這句話展開來牽扯到FMCW調(diào)制方式、混頻器的工作機(jī)制、ADC采樣時(shí)機(jī)等一系列問題。別急我們從最基礎(chǔ)的天線收發(fā)鏈路一步步走。2. 中頻信號(hào)是怎么造出來的2.1 一個(gè)收發(fā)鏈路的基本盤典型毫米波雷達(dá)前端比如TI的IWR1443、IWR6843這類單芯片方案內(nèi)部的工作邏輯其實(shí)沒想象中復(fù)雜一片信號(hào)源產(chǎn)生線性調(diào)頻連續(xù)波FMCW經(jīng)過功分器分成兩路——一路直接送到混頻器的本振端口另一路經(jīng)發(fā)射天線輻射出去輻射出去的電磁波遇到目標(biāo)反射回來被接收天線拾取進(jìn)入低噪聲放大器放大再送到混頻器的射頻端口兩路信號(hào)在混頻器里相乘輸出的差頻分量就是我們說的中頻信號(hào)。注意這里有個(gè)容易忽略的細(xì)節(jié)混頻器做的是乘法而乘積會(huì)產(chǎn)生兩個(gè)分量——和頻與差頻。低通濾波器會(huì)把和頻分量濾掉留下來的差頻分量才是中頻信號(hào)。而在FMCW體制下這個(gè)差頻分量剛好攜帶了目標(biāo)的距離和速度信息角度信息則藏在不同接收天線之間中頻信號(hào)的相位關(guān)系里。2.2 FMCW的調(diào)頻斜率與差頻線性調(diào)頻連續(xù)波發(fā)射頻率隨時(shí)間線性變化斜率用S表示單位是MHz/μs。一個(gè)chirp的周期通常只有幾十微秒在這么短的時(shí)間內(nèi)如果目標(biāo)是靜止的接收信號(hào)就是發(fā)射信號(hào)的一個(gè)時(shí)延副本。設(shè)目標(biāo)距離為R電磁波往返時(shí)間τ 2R/cc是光速那么在第t時(shí)刻接收頻率與本振頻率之差就是 S·τ這個(gè)差值就是中頻頻率f_IF。例如S 30 MHz/μsR 5 m則τ 2×5/(3×10^8) ≈ 33.3 nsf_IF 30×0.0333 ≈ 1 MHz。這個(gè)頻率落在MHz量級(jí)ADC采樣毫無壓力。但很多人沒有繼續(xù)往下多想一步中頻信號(hào)除了頻率還有個(gè)初相位這個(gè)相位的值等于什么2.3 中頻信號(hào)的完整表達(dá)式把FMCW發(fā)射信號(hào)寫出來用實(shí)信號(hào)形式s_T(t) A·cos(2π·f_c·t π·S·t2 φ_0)其中f_c是起始頻率φ_0是初始相位。接收信號(hào)經(jīng)歷了往返時(shí)延τ并且幅度衰減再疊加噪聲s_R(t) A·cos(2π·f_c·(t-τ) π·S·(t-τ)2 φ_0)混頻器把這兩路相乘經(jīng)過低通濾波后中頻信號(hào)的相位可以近似寫為φ_IF 2π·f_c·τ π·S·(2t·τ - τ2)這里第一項(xiàng)2π·f_c·τ是主導(dǎo)項(xiàng)第二項(xiàng)里Sτ2的數(shù)值在短距離場景下小到可以忽略。把τ 2R/c代入第一項(xiàng)變成4π·f_c·R/c。因?yàn)椴ㄩLλ c/f_c所以又可以寫成φ_IF ≈ 4π·R/λ這個(gè)表達(dá)式是整個(gè)相位問題的核心。它說明中頻信號(hào)的初相位和目標(biāo)的距離R成正比比例系數(shù)是4π/λ。λ在77GHz頻段大約是3.9mm也就意味著目標(biāo)每移動(dòng)不到1mm中頻信號(hào)的相位就會(huì)偏轉(zhuǎn)接近一圈。這種微小的距離變化引起劇烈相位變化的特性正是雷達(dá)能夠測出亞毫米級(jí)位移的物理基礎(chǔ)。2.4 為什么用復(fù)信號(hào)表示中頻更好單獨(dú)一路中頻信號(hào)在模擬域就是個(gè)余弦波但進(jìn)入數(shù)字域之后我們通常不直接拿實(shí)數(shù)采樣來算相位而是經(jīng)過I/Q雙通道解調(diào)得到一組復(fù)數(shù)序列x[n] I[n] j·Q[n]這樣做的理由很直白實(shí)數(shù)余弦波cos(2πftφ)在頻譜上有正負(fù)兩個(gè)對稱分量直接用FFT看不出來相位方向而復(fù)數(shù)信號(hào)e^(j(2πftφ))只有一個(gè)方向的頻率分量相位就是復(fù)數(shù)向量與實(shí)軸之間的夾角取atan2就能直接算出來。很多做軟件的同學(xué)剛開始用實(shí)數(shù)ADC數(shù)據(jù)發(fā)現(xiàn)atan2的結(jié)果正負(fù)亂跳就是因?yàn)闆]有I/Q兩路信息相位方向無法唯一確定。這算是一個(gè)高頻踩坑點(diǎn)我后文還會(huì)再提。3. 相位是怎么牽著距離、速度、角度的3.1 相位差解微小位移從干涉說起如果有兩幀中頻信號(hào)分別對應(yīng)目標(biāo)在位置R1和R2二者的相位差為Δφ 4π(R2 - R1)/λ。只要ΔR遠(yuǎn)小于距離分辨率分辨率由帶寬決定帶寬大時(shí)可達(dá)厘米級(jí)頻率上的變化幾乎看不出差別但相位上的變化很明顯。打個(gè)比方中頻信號(hào)的頻率告訴我們目標(biāo)在幾米這個(gè)量級(jí)上待在哪而相位則告訴我們目標(biāo)在零點(diǎn)幾毫米這個(gè)量級(jí)上動(dòng)了多少。兩者一個(gè)管大數(shù)一個(gè)管小數(shù)配合使用才能實(shí)現(xiàn)高精度的位移測量。我實(shí)際測過一個(gè)人體呼吸的靜態(tài)場景人坐在雷達(dá)前約1米處胸腔起伏幅度大約為5~12mm。在77GHz頻段λ約3.9mm5mm的位移意味著約4.6π的相位變化。只要連續(xù)采集chirp提取每個(gè)chirp中頻信號(hào)的相位就能畫出胸腔起伏的波形甚至能區(qū)分呼吸和心跳兩個(gè)頻段呼吸約0.2~0.5Hz心跳約1~1.7Hz。這就是生命體征雷達(dá)的基本原理而核心只依賴一件事——相位對微小位移的敏感度。3.2 相位差測速度多普勒效應(yīng)的另一種理解傳統(tǒng)多普勒理論說的是頻率變化運(yùn)動(dòng)目標(biāo)會(huì)讓接收信號(hào)產(chǎn)生多普勒頻移f_d 2v/λ其中v是徑向速度。在FMCW雷達(dá)里單個(gè)chirp時(shí)間極短多普勒頻率在單個(gè)chirp上的體現(xiàn)微乎其微但在脈沖間chirp與chirp之間看目標(biāo)移動(dòng)了ΔR v·T_cT_c是chirp周期于是中頻信號(hào)的相位變化為Δφ 4π·v·T_c/λ這一串chirp按照時(shí)間排開每個(gè)chirp對應(yīng)一個(gè)相位點(diǎn)構(gòu)成一個(gè)以多普勒頻率為頻率的復(fù)指數(shù)序列。對這個(gè)序列做FFT也就是常說的多普勒維FFT就能提取出v。這里有個(gè)容易混淆的點(diǎn)不少人以為多普勒頻率f_d直接出現(xiàn)在中頻信號(hào)的頻率上其實(shí)要分場景。靜止目標(biāo)中頻頻率只和距離相關(guān)運(yùn)動(dòng)目標(biāo)在單個(gè)chirp期間多普勒頻率會(huì)疊加進(jìn)中頻頻率但這個(gè)頻偏量極小——比如v10m/sλ3.9mmf_d≈5.1kHz而中頻頻率動(dòng)輒幾百kHz甚至上MHz在幾十微秒的采樣窗口里這點(diǎn)頻偏很難被單chirp的FFT分辨出來。真正可靠的做法是跨chirp比相也就是通過相位序列來提取速度這也是為什么測速的核心算法叫多普勒FFT拿進(jìn)去的是復(fù)數(shù)相位序列而不是單chirp的中頻波形。3.3 相位差測角度陣列雷達(dá)的本質(zhì)假設(shè)置雷達(dá)有N根接收天線間距d遠(yuǎn)場目標(biāo)來向與法線夾角為θ那么相鄰天線之間的波程差是d·sinθ換算成相位差是Δφ 2π·d·sinθ/λ目標(biāo)回波在N根天線上產(chǎn)生的相位分別相差這個(gè)值所以對N個(gè)天線通道同一時(shí)刻的中頻復(fù)數(shù)樣本做FFT角度維FFT峰值對應(yīng)的頻點(diǎn)就對應(yīng)著sinθ再反算θ即可。這里相位的作用就更為直接了。可以說角度測量的全部信息都存在于中頻信號(hào)的相位里。工程上通常要求d不超過λ/2否則會(huì)出現(xiàn)柵瓣更大的間距雖然能提高測角分辨率但會(huì)犧牲無模糊角度范圍這是一個(gè)經(jīng)典矛盾。3.4 一個(gè)公式串起三個(gè)維度把前面幾節(jié)串起來做個(gè)總結(jié)距離維單個(gè)chirp中頻信號(hào)的頻率 f_IF S·2R/c速度維相鄰chirp之間中頻信號(hào)的相位差 Δφ 4π·v·T_c/λ角度維相鄰天線之間中頻信號(hào)的相位差 Δφ 2π·d·sinθ/λ這個(gè)總結(jié)是我當(dāng)年自己梳理出來的建議你也拿張紙自己推導(dǎo)一遍。三個(gè)維度各自依賴的FFT雖然算法形式上一樣但輸入的到底是什么數(shù)據(jù)、怎么reshape數(shù)據(jù)陣是完全不同的。很多人把Range-Doppler-Angle三個(gè)FFT連起來做卻不知道為什么是先距離、再多普勒、最后角度的順序根子上就是對相位在哪個(gè)維度發(fā)揮作用沒有建立清晰的圖景。4. 實(shí)操中的相位提取與避坑4.1 從ADC原始數(shù)據(jù)到相位值前端輸出的是I/Q兩路ADC數(shù)據(jù)通常在DSP里以復(fù)數(shù)數(shù)組存成一個(gè)Range-Doppler矩陣。以TI的毫米波雷達(dá)為例一幀數(shù)據(jù)里包含M個(gè)chirp每個(gè)chirp包含N個(gè)采樣點(diǎn)整體數(shù)據(jù)可以看作N×M的矩陣行方向是快時(shí)間距離維列方向是慢時(shí)間多普勒維。提取某個(gè)距離單元的相位步驟大概是這樣的第一步對每個(gè)chirp的N個(gè)采樣點(diǎn)做距離維FFT加窗通常用Hamming或Hanning來壓低旁瓣得到一個(gè)距離譜序列。第二步找到目標(biāo)所在的距離單元索引r_idx。通常在靜態(tài)場景下先做一幀積累的平均幅度譜挑峰值位置也可以用CFAR檢測來定。第三步取所有chirp在r_idx處的復(fù)數(shù)幅值組成一個(gè)長度為M的復(fù)數(shù)向量。這個(gè)向量的每個(gè)元素的幅角就是對應(yīng)chirp在中頻信號(hào)上的相位。第四步對這個(gè)復(fù)數(shù)向量做多普勒維FFT仍然加窗峰值對應(yīng)的頻率即多普勒頻率而峰值本身的相位是目標(biāo)回波在某個(gè)初始時(shí)刻的相位。這在數(shù)學(xué)上每一步都是I/Q復(fù)數(shù)的線性操作所以相位信息不會(huì)丟。很多初學(xué)者有一個(gè)誤區(qū)覺得FFT之后相位信息就沒了其實(shí)恰恰相反——FFT之后幅角里保存了目標(biāo)回波的初始相位和跨chirp的相位演變只不過它們被分散在不同的FFT bin里。4.2 I/Q不平衡相位精度的第一殺手理想情況下I路和Q路應(yīng)該幅度完全相同、相位嚴(yán)格相差90度。到了實(shí)際硬件上射頻通道的混頻器、運(yùn)放、ADC難免引入誤差導(dǎo)致I/Q不平衡。常見癥狀是直流偏置不為零、I/Q增益不一致、正交相位誤差不等于90度。這些問題最終都會(huì)體現(xiàn)為復(fù)信號(hào)星座圖上圓環(huán)變成了橢圓、圓心偏離原點(diǎn)。在提取相位時(shí)圓心偏移會(huì)直接給幅角帶來畸變——尤其當(dāng)信號(hào)幅度小、距離遠(yuǎn)時(shí)稍微一點(diǎn)直流偏置就可能讓相位讀數(shù)的誤差大到完全不可用。處理辦法分幾種在樣本足夠多時(shí)做校準(zhǔn)采集一段無目標(biāo)回波的底噪數(shù)據(jù)估算直流分量并在后續(xù)信號(hào)中扣除這是最容易實(shí)現(xiàn)的一種補(bǔ)償。用系統(tǒng)校準(zhǔn)流程TI等廠商的mmWave SDK里本身帶了校準(zhǔn)引擎可以測出I/Q增益和相位失配參數(shù)在DSP里做2x2矩陣校正。如果批量生產(chǎn)需要在產(chǎn)線上做每個(gè)通道的出廠校準(zhǔn)把校準(zhǔn)系數(shù)燒到板子的非易失存儲(chǔ)里。我第一次做生命體征雷達(dá)的時(shí)候完全沒有意識(shí)到I/Q不平衡的影響。波形圖上明明能看到呼吸的起伏但抖動(dòng)量很大后來排查了很久發(fā)現(xiàn)是I路和Q路的增益差達(dá)到1.5dB導(dǎo)致相位解算誤差在5度以上。換算成位移誤差大約是5度/360度×3.9mm ≈ 0.054mm看著不大但連續(xù)波段的抖動(dòng)疊加后信噪比就顯著下降。4.3 相位解纏別讓atan2把你坑了atan2的返回值范圍是(-π, π]也就是說真實(shí)相位如果跨越了這個(gè)區(qū)間提取出來的相位就會(huì)出現(xiàn)跳變。比如目標(biāo)微動(dòng)超過λ/2約2mm相位變化就超過一圈就會(huì)看到相位在±π之間跳變。這種跳變處理不當(dāng)會(huì)讓后續(xù)的速度估計(jì)、位移曲線出現(xiàn)毛刺。常用解法是相位解纏檢測相鄰相位值的差值如果大于π就減去2π如果小于-π就加上2π把相位序列拉成連續(xù)曲線。具體偽代碼如下def unwrap_phase(phase): unwrapped [phase[0]] for i in range(1, len(phase)): delta phase[i] - phase[i-1] while delta np.pi: delta - 2 * np.pi while delta -np.pi: delta 2 * np.pi unwrapped.append(unwrapped[-1] delta) return np.array(unwrapped)注意一個(gè)細(xì)節(jié)相位解纏依賴相鄰采樣點(diǎn)之間的真實(shí)相位差小于π否則會(huì)出現(xiàn)模糊。如果chirp周期太長、目標(biāo)運(yùn)動(dòng)速度太快采樣率不足解纏結(jié)果就會(huì)出錯(cuò)。具體來說就是不等式4π·v·T_c/λ π必須成立解出來v_max λ/(4T_c)這個(gè)約束和經(jīng)典多普勒測速模糊公式v_max λ/(4T_c)完全一致。所以反過來看設(shè)計(jì)chirp周期的時(shí)候就要先算好目標(biāo)最大徑向速度否則后面無論怎么做解纏都救不回來。4.4 相位噪聲與信噪比的權(quán)衡相位噪聲來自本振源的不理想。FMCW雷達(dá)的線性調(diào)頻源如果相噪性能差中頻信號(hào)的相位會(huì)產(chǎn)生隨機(jī)抖動(dòng)。這種抖動(dòng)和熱噪聲是疊加的前者直接影響相位讀數(shù)后者影響復(fù)數(shù)的幅值提取相位時(shí)兩者都會(huì)折算到角度誤差上。工程上有一個(gè)很實(shí)際的現(xiàn)象目標(biāo)回波越強(qiáng)相位提取越干凈回波一旦接近噪底相位就變成一堆亂碼。原因在于噪聲在I/Q平面上疊加在信號(hào)矢量端點(diǎn)上噪底越高矢量端點(diǎn)的擾動(dòng)越大對應(yīng)角度誤差越大。定量上相位誤差的均方根值大約為1/sqrt(2·SNR)。如果你想讓相位精度達(dá)到1度SNR必須超過20dB以上。這個(gè)數(shù)在很多應(yīng)用里是想當(dāng)然達(dá)不到的不然相位法測位移也不會(huì)只適合近距離、強(qiáng)反射目標(biāo)。我在調(diào)機(jī)器人避障雷達(dá)的時(shí)候試過用同樣的算法跟蹤遠(yuǎn)處墻面距離8米時(shí)的相位抖動(dòng)比0.8米處大了將近一個(gè)數(shù)量級(jí)就是因?yàn)檫h(yuǎn)距回波SNR衰減太厲害。所以做相位提取之前先看看Range-Doppler譜上目標(biāo)峰值高出噪底多少dB低于15dB的基本就不要指望相位有多準(zhǔn)了。5. 工具箱與上手建議5.1 用現(xiàn)成芯片快速驗(yàn)證相位模型對大多數(shù)人來說自己搭射頻前端不太現(xiàn)實(shí)。更快的路徑是拿一塊TI的IWR1443BOOST或者IWR6843ISK這類的評(píng)估板直接用毫米波SDK采集原始ADC數(shù)據(jù)在MATLAB或者Python里復(fù)現(xiàn)整條信號(hào)處理鏈路。這類板子原始數(shù)據(jù)格式為復(fù)數(shù)浮點(diǎn)獲取Phase數(shù)據(jù)不需要額外硬件純軟件就能完成。我習(xí)慣的做法是先用官方demo跑通一個(gè)標(biāo)準(zhǔn)的目標(biāo)檢測然后把輸出從目標(biāo)點(diǎn)云切換到距離維復(fù)數(shù)數(shù)據(jù)自己寫FFT和相位提取代碼。這個(gè)過程能幫你在真實(shí)數(shù)據(jù)上驗(yàn)證理論上推的公式到底和實(shí)際吻合度有多高。我建議的起步練習(xí)是第一步在雷達(dá)前面放一個(gè)角反射器或光滑金屬板位置固定在1米左右。采集一幀原始數(shù)據(jù)。第二步畫出距離維FFT幅度譜確認(rèn)目標(biāo)峰值位置。第三步提取該峰值在連續(xù)幾十個(gè)chirp上的相位序列用unwrap處理之后看看是否平穩(wěn)。注意如果板子有通風(fēng)振動(dòng)或者桌面有共振相位序列會(huì)出現(xiàn)周期性起伏。第四步用手以極慢的速度前后移動(dòng)目標(biāo)哪怕只有零點(diǎn)幾毫米的位移觀察相位波形。你大概率會(huì)發(fā)現(xiàn)即使沒有任何精確的移動(dòng)平臺(tái)手部微小顫動(dòng)都能被雷達(dá)捕捉到這就是相位靈敏度的直觀體現(xiàn)。5.2 仿真先行沒有硬件也能把原理吃透如果你手頭暫時(shí)沒有硬件用MATLAB也好、Python也好都能先做一些一維仿真來驗(yàn)證相位推導(dǎo)。仿真步驟就是按第二節(jié)的公式生成發(fā)射信號(hào)手動(dòng)加上延時(shí)產(chǎn)生接收信號(hào)混頻低通后得到中頻復(fù)數(shù)信號(hào)再做FFT、提相位、看相位的演變規(guī)律。我當(dāng)年自己寫過一段很小的Python腳本驗(yàn)證多普勒相移公式。設(shè)置S30MHz/μsf_c77GHz目標(biāo)以v1m/s遠(yuǎn)離雷達(dá)chirp周期T_c100μs理論上相鄰chirp之間的相位差應(yīng)該是4π×1×1e-4/3.9e-3≈0.3225rad。仿真得到的相位差和理論值誤差在1%以內(nèi)當(dāng)時(shí)的第一反應(yīng)是這么簡單的東西竟然能對上后來才意識(shí)到正是這種簡單的推導(dǎo)構(gòu)成了整套雷達(dá)信號(hào)處理的基石。仿真里還會(huì)發(fā)現(xiàn)一個(gè)有意思的事如果把目標(biāo)速度調(diào)大使相位差逼近π多普勒FFT會(huì)出現(xiàn)模糊超過π后峰值的速度估計(jì)會(huì)跳到一個(gè)錯(cuò)誤的正負(fù)方向。這個(gè)現(xiàn)象在教科書上寫得很枯燥但親手跑到之后你的理解深度和看公式完全不是一個(gè)級(jí)別。5.3 三種FFT維度數(shù)據(jù)的組織形式用代碼寫Range-Doppler-Angle處理時(shí)最常出錯(cuò)的就是數(shù)據(jù)維度的reshape。整理一下標(biāo)準(zhǔn)流程假設(shè)一幀數(shù)據(jù)由K個(gè)chirp組成每個(gè)chirp有N個(gè)采樣點(diǎn)接收天線數(shù)為Rx。那么ADC原始數(shù)據(jù)可以組織成一個(gè)三維數(shù)組axes: (N, K, Rx)第一步沿著N軸做距離FFT得到(N, K, Rx)的距離譜數(shù)據(jù)。第二步對距離譜數(shù)據(jù)沿著K軸做多普勒FFT得到(N, K, Rx)的Range-Doppler譜。第三步取某個(gè)距離-多普勒峰值的索引(n0, k0)把這個(gè)索引在所有Rx天線上的復(fù)數(shù)取出來得到長度為Rx的向量對這個(gè)向量做角度FFT峰值位置對應(yīng)來波方向。很多初學(xué)者搞不清楚為什么要分開處理三個(gè)維度而不是一次做三維FFT。數(shù)學(xué)上當(dāng)然可以做三維FFT但它把所有信息混在一起不便于逐級(jí)做濾波、CFAR檢測和門限處理。分步處理的好處是每一級(jí)都可以加入獨(dú)立的算法邏輯比如距離維加窗壓低旁瓣速度維做MTD動(dòng)目標(biāo)檢測角度維做超分辨算法MUSIC、ESPRIT靈活得多。6. 常見問題與排查技巧實(shí)錄6.1 相位亂跳一幀一個(gè)樣這是最常見的現(xiàn)象。多數(shù)情況下是目標(biāo)太弱SNR不足噪聲主導(dǎo)了相位提取結(jié)果。排查路徑建議先看Range-Doppler譜上目標(biāo)峰值旁瓣高度確認(rèn)SNR是否在15dB以上檢查目標(biāo)是否在雷達(dá)的波束范圍內(nèi)比如墻角目標(biāo)可能在距離譜上露出一半旁瓣排查是否存在強(qiáng)干擾源比如附近Wi-Fi、5G頻段對77GHz的影響雖然小但板內(nèi)數(shù)字噪聲耦合到射頻前端的情況并不少見手動(dòng)把雷達(dá)和目標(biāo)都用三腳架固定排除機(jī)械抖動(dòng)還有一種情況目標(biāo)明明靜止但相位呈周期性變化。這時(shí)重點(diǎn)查電源開關(guān)電源的紋波調(diào)諧到VCO上會(huì)讓發(fā)射頻率產(chǎn)生周期性偏移最終體現(xiàn)為相位上的50Hz/100Hz成分。給板子換線性電源往往立刻見效。6.2 測速方向反了多普勒FFT的峰值出現(xiàn)在正頻率還是負(fù)頻率對應(yīng)目標(biāo)的徑向運(yùn)動(dòng)方向是靠近還是遠(yuǎn)離。如果方向反了大概率是I/Q極性接反也就是I路和Q路的正負(fù)號(hào)標(biāo)定搞反了。在接收鏈路里I/Q兩路誰為正、誰是負(fù)會(huì)影響復(fù)數(shù)的旋轉(zhuǎn)方向。排查方法是在雷達(dá)正前方把手機(jī)/鑰匙從近向遠(yuǎn)勻速移動(dòng)分別記錄峰值在多普勒譜的哪個(gè)符號(hào)側(cè)。如果和預(yù)期相反在代碼里做復(fù)共軛或交換I/Q兩路再重新驗(yàn)證。注意不同平臺(tái)的ADC采樣順序可能不同TI平臺(tái)里I/Q采樣順序是固定但如果你自己做的板子是分時(shí)采樣且ADC通道映射和代碼假設(shè)不一致就會(huì)出現(xiàn)這個(gè)經(jīng)典問題。6.3 距離FFT的峰值位置和理論距離對不上這個(gè)問題的根子通常不在相位而在起始頻率和調(diào)頻斜率標(biāo)定不準(zhǔn)。一般有兩種可能一是調(diào)頻斜率S有偏差實(shí)際值和寄存器配置值不一致導(dǎo)致同樣的時(shí)延算出不同的中頻頻率。這種情況在寬溫場景下尤其明顯溫度變化會(huì)讓VCO特性漂移。二是FFT頻率分辨率限制。FFT頻率最小分辨率為fs/N換算成距離分辨率是c/(2B)B是掃頻帶寬。比如B4GHz時(shí)距離分辨率約3.75cm。目標(biāo)在1.04m處和1.02m處峰值可能落在同一個(gè)bin上這時(shí)相位才是分辨二者微小差別的關(guān)鍵。6.4 相位解纏失敗曲線出現(xiàn)鋸齒這個(gè)問題的根子通常在chirp周期過長相鄰chirp之間的相位差超過π。比如你的目標(biāo)最快徑向速度是2m/schirp周期是150μs那么相鄰chirp相位差是4π×2×150e-6/3.9e-3≈0.97rad還沒超限如果速度到3m/s相位差就超過π了解纏就會(huì)出錯(cuò)。處理方法很直接縮短chirp周期或者減小調(diào)頻周期內(nèi)的占空比。還有另一種思路是提高雷達(dá)的工作頻率比如從60GHz換到77GHzλ變短相位變化速度反而更快這會(huì)讓速度模糊問題更嚴(yán)重所以頻率選擇上需要權(quán)衡。6.5 相位精度不夠用如果你的應(yīng)用對相位精度要求很高比如位移測量要優(yōu)于0.1mm那么除了提升SNR之外還需要做系統(tǒng)級(jí)的校準(zhǔn)。主要包括幅度和相位校準(zhǔn)通過已知位置的角反射器標(biāo)定每個(gè)天線通道的幅相響應(yīng)溫度校準(zhǔn)記錄不同溫度下的相位偏移建立查找表補(bǔ)償逐個(gè)器件校準(zhǔn)混頻器、放大器、ADC的通路延遲都要做延遲校準(zhǔn)在77GHz頻段1ps的延遲差異在相位上大約是0.28度2π×77e9×1e-12≈0.48rad這里需要仔細(xì)算1ps×77e9×2π≈0.48rad≈27.7度可見延遲校準(zhǔn)多么敏感。通路里任何一個(gè)微小的長度差異或器件延遲漂移都會(huì)以相位誤差的形式呈現(xiàn)出來。7. 從相位出發(fā)還能往哪走中頻信號(hào)的相位這個(gè)知識(shí)點(diǎn)的價(jià)值不只是應(yīng)付考試或者看懂論文它是連接理論與實(shí)踐的一座橋。順著相位這條線索往深處走你可能會(huì)對下面幾個(gè)方向產(chǎn)生興趣微多普勒效應(yīng)運(yùn)動(dòng)目標(biāo)上不同部位的微動(dòng)旋轉(zhuǎn)、振動(dòng)會(huì)在相位上調(diào)制出邊帶這就是微多普勒分析的基礎(chǔ)常用于無人機(jī)槳葉識(shí)別、人體動(dòng)作識(shí)別等。干涉雷達(dá)InSAR利用不同時(shí)刻觀測的相位差生成地面形變圖分辨率可以達(dá)到毫米級(jí)甚至亞毫米級(jí)。地質(zhì)監(jiān)測、橋梁形變監(jiān)測都用這個(gè)原理。太赫茲與光子雷達(dá)更高頻率的雷達(dá)波長更短相位對微小位移的敏感度更強(qiáng)但要同時(shí)應(yīng)對相位噪聲更大、高精度系統(tǒng)校準(zhǔn)更難的問題。我自己在這條路上踩過不少坑總結(jié)下來最重要的一點(diǎn)是分析問題時(shí)先回到物理模型動(dòng)手寫代碼之前先把信號(hào)流、相位變化用筆推出來。很多看似復(fù)雜的信號(hào)處理問題只要弄清了哪個(gè)維度的FFT吃的是哪一組復(fù)數(shù)數(shù)據(jù)、相位在哪個(gè)維度起作用思路立刻清晰。最后再分享一個(gè)我實(shí)際操作中的小技巧調(diào)試相位相關(guān)算法時(shí)不要只看最終曲線務(wù)必把中間級(jí)的變量每個(gè)chirp的復(fù)數(shù)向量、unwrap前后的相位、SNR估算值全部打印出來逐幀對照。有一次我花了整整半天最后發(fā)現(xiàn)是一個(gè)信號(hào)從float轉(zhuǎn)換到int時(shí)截?cái)嗔说?位導(dǎo)致相位抖動(dòng)量異常。這種問題只看最終位移曲線無論如何也定位不到只有對照中間變量才能一眼揪出來。希望這篇內(nèi)容能幫你少走一些我當(dāng)年走過的彎路。