[SDR] 基于兩個 hackrf 實現連續波測速雷達
效果展示
一、雷達背景知識
1.1 按照頻段劃分
| 頻段分類 | 波段 | 優點 | 缺點 | 應用領域 |
|---|---|---|---|---|
| 米波段 | 包括 HF、VHF 和 UHF 頻段 | 簡單可靠、容易獲得高輻射功率、容易制造、動目標顯示性能好、不受大氣傳輸的影響、造價低等優點 | 該波段雷達的主要缺點是目標的角分辨率低 | 在對空警戒雷達、電離層探測器、超視距雷達中有廣泛的應用 |
| 分米波段 | 包括 L 和 S 波段 | 與米波頻段雷達相比,分米波段雷達具有較好的角度分辨率、外部噪聲干擾小、天線和設備尺寸適中等優點 | 該波段雷達的輻射功率不如米波段的高,大氣回波和大氣衰減對其有一定的影響 | 在對空監視雷達中得到廣泛使用。當要求一部雷達兼有對空探測和目標跟蹤兩種功能時,S 波段雷達最為合適。S 波段雷達是介于分米波和厘米波段之間的一種折中選擇,可以成功地實現對目標的監視和跟蹤,廣泛地使用于艦載雷達 |
| 厘米波段 | 包括C、X、Ku 和 K 波段 | 厘米波段雷達主要用于武器控制系統,它具有體積小、重量輕、跟蹤精度高、可以得到足夠大的信號帶寬等優點 | 該波段雷達的主要缺點是輻射功率不高、探測距離較近、大氣回波和大氣衰減影響較大、氣象雜波等外部噪聲干擾大等。但氣象雷達主要是探測氣象雜波,因此多工作在這個頻段 | 在機載火控雷達、機載氣象雷達、機載多普勒導航雷達、地面炮瞄雷達、民用測速、防撞雷達中被廣泛使用 |
| 毫米波段 | 毫米波段雷達具有天線尺寸小、目標定位精度高、分辨率高、信號頻帶寬、抗電磁波干擾性能好等優點 | 但毫米波段雷達具有輻射功率更小、機內噪聲較高、氣象雜波等外部噪聲干擾大、大氣衰減隨頻率的增高而迅速增加等缺點,又幾乎掩蓋了其優點 | 由于大氣的衰減隨頻率的增高并不是單調地增加,而是存在著一些大氣衰減較小的窗口,除非某些特定的應用(例如汽車防撞雷達)?,毫米波段雷達大多僅限于工作在這些窗口上。 | |
| 激光波段 | 激光波段雷達具有良好的距離和角度分辨率等優點,在測距和測繪系統中常被選用 | 其缺點是輻射功率小、波束太窄、搜索空域周期長、不能在復雜氣象條件下工作等 | 目前,激光雷達已經廣泛應用于三維高分辨率成像測繪等。 |

1.2 按照功能劃分
按照用途分類:
地面雷達 | 早期預警雷達(超遠程雷達) | 機載預警雷達 | 無線電高度表 | 軍用雷達 |
艦載雷達 | 搜索和警戒雷達 | 機載截擊雷達 | 雷達引信 | 民用雷達 |
機載雷達 | 指揮引導雷達(監視雷達) | 機載護尾雷達
星載雷達 | 火控雷達 | 機載導航雷達
| 制導雷達 | 機載火控雷達
按照工作體制分類:
掃描雷達 | 脈沖雷達 | 圓錐掃描雷達 | 單基地雷達 | 有源雷達
相控陣雷達 | 連續波雷達 | 單脈沖雷達 | 雙基地雷達 | 無源雷達
頻掃雷達 | 線性調頻雷達 | 隱蔽錐掃雷達 | 多基地雷達 |
合成孔徑雷達 | 編碼雷達 |
逆合成孔徑雷達 | 噪聲雷達 |
其他分類:
按照信號處理方式分類 | 按工作波長分類 | 用波段的名稱 | 按測量目標坐標參數 | 按某種特殊用途命名 |
------------------------|-------------|------------|-----------------|-----------------|
脈沖多普勒(PD)雷達 | 米波雷達 | L 波段雷達 | 兩坐標雷達 | 掃描邊跟蹤雷達 |
動目標顯示(MTI)雷達 | 分米波雷達 | S 波段雷達 | 三坐標雷達 | 目標特征信號測量雷達 |
頻率分集雷達 | 厘米波雷達 | X 波段雷達 | 超視距雷達 | 探地雷達 |
極化分集雷達 | 毫米波雷達 | | 測速雷達 | 二次雷達 |
相參或非相參積累雷 | 激光/紅外雷達 | | 測高雷達
合成孔徑雷達和逆合成孔徑雷達 | | | 成像雷達
PS: 脈沖雷達,測量從發射到接收的時間來估算距離;連續波雷達(CW),測量發射波和接收波之間的頻差來直接計算目標的徑向速度;脈沖多普勒雷達(PD),它既能利用脈沖技術測量目標的距離,又能利用多普勒效應測量目標的速度;調頻連續波雷達(FMCW),通過發射頻率隨時間線性變化的連續波來精確測量目標的距離和速度 20。

PS: FMCW 為了同時測量距離和速度,通常會采用 上下掃頻(Up-down Chirp)或兩個連續掃頻(Two-Chirp) 的方式。
- 上掃頻(Up-Chirp): 發射頻率線性增加。當目標向雷達移動時,多普勒效應會使回波頻率比靜止時更高;當目標遠離時,回波頻率會更低。這個多普勒頻移會疊加在距離產生的頻率差上。
- 下掃頻(Down-Chirp): 發射頻率線性減小。此時多普勒效應的影響方向正好相反。
通過對上掃頻和下掃頻得到的兩個頻率差進行處理,就可以將距離引起的頻率差和速度引起的多普勒頻移分離開來,從而同時解算出目標的距離和徑向速度。

二、環境構建
使用 ubuntu 24.04 的 GNURadio 3.10.9.2 (Python 3.12.3) 版本 (22.04 和 arch linux 都會因為 osmos 版本過老、過新導致 hackrf 不能用)
可以使用我創建好的 Dockerfile 構建 GR 環境:
git clone git@github.com:btfz-sdr/docker-gnuradio.git
cd docker-gnuradio/gnuradio-releases-310/
docker build -t ubuntu:gnuradio-310 .
之后就可以直接使用上面構建的環境了:
? Desktop xhost + # 只需一次
? Desktop docker run --net=host --env="DISPLAY" --volume="$HOME/.Xauthority:/root/.Xauthority:rw" --device /dev/snd -v /home/btfz/Desktop/WORK_GNURADIO/gnuradio_demo/綜合教程/09-雷達/GNU-Radio:/home/gnuradio/lidar --device /dev/dri -v /dev/bus/usb/:/dev/bus/usb/ --privileged --group-add=audio -it ubuntu:gnuradio-310 bash
# 進入 docker 之后
gnuradio@127:~$ zsh
? ~ sudo gnuradio-companion # passwd: gnuradio
# 想要再開一個終端,需要 `docker ps`,然后:
# - `docker exec -it 52597dcede29 bash`
# - `docker exec -it 52597dcede29 gnuradio-companion`
三、實驗嘗試
基于 github 上一個回波和多普勒頻移的 gnuradio demo,基于 CW_Radar.grc 連續波雷達,將 plutosdr 改為 hackrf(因為使用 plutosdr 發現 TX1, RX1 離的比較近會相互影響,使用兩個 hackrf 可以拉開距離);
同時,增加由于物體運動導致頻率變化的變化值給計算出來,采用基礎教程的 db_cal 計算頻譜,并計算頻譜峰值對應的橫坐標,然后根據參數計算出頻率。

然后使用一個可樂罐子+2.4G棒狀天線作為發(想當作定向天線),然后用一個淘寶購買的 wifi 2.4G 定向增強天線作為收,調節 tone_freq 讓 RX_AFT_LPF 回波峰值在 500Hz,這樣后面的帶阻濾波器能過濾穩定波,很好的讓多普勒頻偏波通過。
經過很多測試發現,當有金屬物體(鍋蓋)靠近和遠離時,頻率有波動 10Hz 左右,但是和理論值(如果物體向著SDR移動,頻率會略微升高;如果物體遠離SDR移動,頻率會略微降低。1m/S 會產生 16Hz 的頻偏)靠近、遠離策略有偏差,倒是會有頻偏偏移。
后來發現:自己做的可樂+棒狀天線的方向性不好,或者說收發信號質量差,而商業的 2.4G 定向增強器卻效果很好,于是淘寶上再買一個,待后續測試。

四、進階優化
等新的 2.4G 定向天線來了后,測試效果仍然不好,懷疑是變化太快,肉眼不太方便看出來變化,因此做了個小算法來放大變化:

核心思路是:使用 QT GUI Msg Push Button 來觸發,讓 Freq Offset Cal 記錄穩定時的頻偏,然后當實際由于多普勒產生頻偏時,計算實時頻偏與穩定頻偏的差值,然后再根據多普勒公式,計算物體移動速度和方向;同時為了讓瞬間的變化能夠被長時間觀察到,在 Freq Offset Cal 增加 3S 的最大差值維護,如果 3S 內沒有比該差值大的值就保留該差值作為 3S 內的輸出,如果有則更新該差值和平滑 3S 窗口。
經過上述處理,數據能比較清晰的看出來了。
五、完整操作
1)兩個 hackrf 全部連接到電腦,一個做為發送,一個作為接收
2)調節 hackrf 的收發功率,讓接收數據振幅不要超過 1(在反射物在最近的情況下)
3)調節 tone_freq 讓帶阻濾波器頻譜的峰值出現在 600Hz(這里直接跳過帶阻濾波器,使用自己的方法測算頻偏)
4)以反射方式擺放發射與接收天線,前面放置一個障礙物,防止被其他運動物體影響
5)讓一個小車靠近遠離,進行觀察雷達測速
參考鏈接
[1]. GitHub —— 一個回波和多普勒頻移的 gnuradio demo
[2]. GitHub —— 一個單頻連續波多普勒雷達的 gnuradio demo, 有點老,博客都沒了
[3]. GNURadio —— gr-lidar 詳細、資料豐富
[4]. Book —— 《雷達系統及其信息處理-許小劍 黃培康》
[5]. gnu radio 的一個博客
[6]. gnu radio 的一個博客
[7]. gnu radio 的一個論文《Real-Time FMCW Radar System for Waveform Optimization using SDRs》
[8]. 一個論文《A GNU Radio Based Software-Defined Radar》
[9]. gnu radio 的一個論文《Application of Software Radios for Sensing & Instrumentation at ORNL》
[10]. 《Development of L-Band FMCW Radar on SDR using GNU RADIO》
[11]. 《A GNU Radio Based Software-Defined Radar》
[12]. 《GSoC過去項目》
[13]. 《GNU-Radio Simulation Application for Impulse Radar Technique on Ground Object Detection》
[14]. 《GNU Radio 和 Python FMCW 雷達工具包的實現》
[15].《Study of the use of a SDR Passive RaDAR for the safe outdoor operation of an atmospheric LiDAR》
[16]. BLOG —— 利用雷達探測空氣中的火山灰
[17]. 均一教育平臺 —— 多普勒科普視頻

浙公網安備 33010602011771號