乾貨| 利用Python實現FMCW雷達的距離都卜勒估計

2021-01-12 電子工程世界

熟悉的標題,熟悉的內容,熟悉的...,What?竟然不是MATLAB,沒錯,這篇文章我們來看看如何通過Python實現FMCW雷達的距離都卜勒估計。


為什麼要用Python呢,作為一個千年MATLAB黨(嘿嘿嘿),用久了就會發現這個東西更像是一個工具軟體,拿去搞搞算法驗證之類的是不可否認的強大。而Python作為一個通用的程式語言,在實際應用中的好處自然是不言而喻。通過利用一些第三方的庫比如numpy,scipy和matplotlab也可以進行同樣的科學計算。


OK,廢話少說,速速回到正題。關於如何利用MATLAB對FMCW雷達的距離和都卜勒估計前不久有寫一篇,


乾貨 | 利用MATLAB實現FMCW雷達的距離都卜勒估計


下面我們就如何利用Python得到FMCW雷達的距離都卜勒估計進行介紹。


首先是關於環境搭建,作為一個不折不扣的懶人(哭),一想到要一個個的添加庫,瞬間哭瞎,於是便奔向了Anaconda。最終的環境是WINDOWS+Pycharm+Anaconda,採用了將Anaconda集合在Pycharm中的方法。


然後回到算法本身,通過對FMCW雷達接收數據分別在快時間維和慢時間維先後進行FFT處理即可得到目標的距離和都卜勒估計。下面的圖給出了具體的算法流程。



最後回到代碼上來,具體還是得看實現。下面貼出了如何利用Python進行FMCW雷達的距離和都卜勒估計的代碼,在實現的過程中,我們主要用到了numpy,scipy 這兩個科學計算的庫以及matplotlib用於數值可視化的繪圖類庫。在這幾個庫的支撐下,利用Python與MATALB的結果幾乎沒有差別。

# coding=utf-8import numpy as npimport matplotlib.pyplot as pltimport scipy as spfrom mpl_toolkits.mplot3d import Axes3D# parameters settingB = 135e6  # Sweep BandwidthT = 36.5e-6  # Sweep TimeN = 512  # Sample LengthL = 128  # Chirp Totalc = 3e8  # Speed of Lightf0 = 76.5e9  # Start FrequencyNumRangeFFT = 512  # Range FFT LengthNumDopplerFFT = 128  # Doppler FFT LengthrangeRes = c/2/B  # Range ResolutionvelRes = c/2/f0/T/NumDopplerFFT  # Velocity ResolutionmaxRange = rangeRes * NumRangeFFT/2  # Max RangemaxVel = velRes * NumDopplerFFT/2  # Max VelocitytarR = [50, 90]  # Target RangetarV = [3, 20]  # Target Velocity# generate receive signalS1 = np.zeros((L, N), dtype=complex)for l in range(0, L):    for n in range(0, N):        S1[l][n] = np.exp(np.complex(0, 1) * 2 * np.pi * (((2 * B * (tarR[0] + tarV[0] * T * l))/(c * T) + (2 * f0 * tarV[0])/c) * (T/N) * n + (2 * f0 * (tarR[0] + tarV[0] * T * l))/c))S2 = np.zeros((L, N), dtype=complex)for l in range(0, L):    for n in range(0, N):        S2[l][n] = np.exp(np.complex(0, 1) * 2 * np.pi * (((2 * B * (tarR[1] + tarV[1] * T * l))/(c * T) + (2 * f0 * tarV[1])/c) * (T/N) * n + (2 * f0 * (tarR[1] + tarV[1] * T * l))/c))sigReceive = S1 + S2# range win processingsigRangeWin = np.zeros((L, N), dtype=complex)for l in range(0, L):    sigRangeWin[l] = sp.multiply(sigReceive[l], sp.hamming(N).T)# range fft processingsigRangeFFT = np.zeros((L, N), dtype=complex)for l in range(0, L):    sigRangeFFT[l] = np.fft.fft(sigRangeWin[l], NumRangeFFT)# doppler win processingsigDopplerWin = np.zeros((L, N), dtype=complex)for n in range(0, N):    sigDopplerWin[:, n] = sp.multiply(sigRangeFFT[:, n], sp.hamming(L).T)# doppler fft processingsigDopplerFFT = np.zeros((L, N), dtype=complex)for n in range(0, N):    sigDopplerFFT[:, n] = np.fft.fft(sigDopplerWin[:, n], NumDopplerFFT)


簡單run一下,可以得到最終的結果為,對比一下左邊MATLAB的結果,Python的科學計算結果並未有明顯差別。



還在猶豫什麼,快來和我一起用Py吧~



題圖:Pexels,From Pixabay.


相關焦點

  • 乾貨| 利用MATLAB實現FMCW雷達的距離都卜勒估計
    利用Chirp序列的FMCW(Frequency Modulated Continuous Wave)毫米波雷達在汽車防撞等領域得到了廣泛的應用。這篇文章基於Matlab對該Chirp序列的Range Doppler處理進行了仿真,並給出了相關的實現代碼。
  • 詳細分析:FMCW雷達測距/測速原理,及典型應用場景
    三角波調頻連續波雷達正是通過採用正負調頻斜率來消除距離與速度的耦合,進而進行目標速度的估計。處理器通過執行2D FFT處理幀間的模數轉換(ADC)數據,該過程可解析出目標的距離和都卜勒信息,並區分出附近的運動物體和靜止的障礙物。基於雷達的移動,都卜勒分辨也有助於對靜止目標物的辨識,因為相對於雷達而言,它們的相對速度是不同的。通過不同天線間二維 FFT矩陣的非相干累積生成一個距離-都卜勒圖,然後由檢測算法進行處理。
  • 最前沿丨FMCW雷達測距/測速原理及典型應用場景
    但是,往往為了獲得目標的速度信息,雷達通常以幀為單位,均勻等時間間隔地發出一串chirps信號。然後利用信號相位差來測量出目標場中目標的速度。對與每個chirp對應的數位化採樣點執行距離FFT,輸出結果以連續行的形式存儲在矩陣中。處理器接收並處理一幀中所有單個chirp後,開始對chirps串序列進行FFT(都卜勒FFT)。
  • 調頻連續波雷達(FMCW)測距/測速原理
    FMCW雷達在掃頻周期內發射頻率變化的連續波,被物體反射後的回波與發射信號有一定的頻率差,通過測量頻率差可以獲得目標與雷達之間的距離信息,差頻信號頻率較低,一般為KHz,因此硬體處理相對簡單、適合數據採集並進行數位訊號處理。
  • 自動駕駛技術之——FMCW 雷達簡介
    FMCW技術和脈衝雷達技術是兩種在高精度雷達測距中使用的技術。其基本原理為發射波為高頻連續波,其頻率隨時間按照三角波規律變化。FMCW(Frequency Modulated Continuous Wave),達接收的回波的頻率與發射的頻率變化規律相同,都是三角波規律,只是有一個時間差,利用這個微小的時間差可計算出目標距離。
  • 大話「雷達教程」之雷達原理
    上面這樣的體驗與感受相信大部分人都有過經歷,而雷達所使用的的電磁波與聲波的原理非常相似。朝著不同的方向喊叫,可以判斷物體的大致方向。如果知道了空氣中的聲速,則可以估計物體的距離。雷達裝置即使用回波來確定反射物體的距離和方向。
  • 毫米波FMCW雷達測距、測速原理、應用
    為此,它們在通信、雷達、制導、遙感技術、射電天文學和波譜學方面都有重大的意義。利用大氣窗口的毫米波頻率可實現大容量的衛星-地面通信或地面中繼通信。利用毫米波天線的窄波束和低旁瓣性能可實現低仰角精密跟蹤雷達和成像雷達。在遠程飛彈或太空飛行器重返大氣層時,需採用能順利穿透等離子體的毫米波實現通信和制導。高解析度的毫米波輻射計適用於氣象參數的遙感。
  • 雷射雷達:ToF與FMCW之爭
    目前,最常見的ToF(飛行時間)雷射雷達系統工作在波長850和905納米,接近可見光光譜。因此,最大雷射功率受到限制,探測距離存在瓶頸。 此外,通過使用專有的線性晶片技術,Scantinel公司的FMCW傳感器可以即時測量任何測量點的距離和速度。
  • 黑龍江省撫遠市都卜勒天氣雷達CINRAD/CA系統正式投入業務運行
    都卜勒天氣雷達,是一種主動遙感的探測工具,在測量雲、降雨和各種強對流天氣發生發展內在因素方面有重要的應用,其工作原理即以都卜勒效應為基礎,可以測定散射體相對於雷達的速度,在一定條件下反演出大氣風場、氣流垂直速度的分布以及湍流情況等。這對警戒強對流天氣等具有重要意義。都卜勒雷達是世界上最先進的雷達系統,有「超級千裡眼」之稱。
  • FMCW 雷射雷達光源參數分析及技術基礎與研究進展
    目前主流的相干檢測雷達包括頻率調製連續波(frequency modulation conti-nuous wave,FMCW)雷射雷達與都卜勒測速雷射雷達。使用三角波形狀(圖 1(a))的調頻形式可以較為容易地解調出目標反射信號的都卜勒頻率,從而可實現同時測距與測速;鋸齒波形狀(圖1(b))的調頻形式常用於與探測目標的相對速度引入的都卜勒頻移量可以忽略的時候,可以達到相對最大的探測距離
  • 雷達距離校準儀的工作原理是什麼?有哪些關鍵技術?
    在本裝置內,採用「寬帶混頻接收、大容量高速數字射頻存儲」的方案,實現對雷達發射波形進行採集和存儲。按照先進先出順序,對存儲數據延時後回放,延時大小根據要模擬目標距離確定。目標速度模擬通過對雷達發射信號頻率進行都卜勒頻移來進行,接收和輸出通道分別對雷達發射信號和產生目標回波信號進行幅度調理。
  • 為什麼說FMCW雷射雷達是代表未來的終極方案?
    據麥姆斯諮詢介紹,雷射雷達(LiDAR)是一種利用雷射來測量物體之間距離的遙感方法。
  • 西藏建成兩部都卜勒天氣雷達
    新華社拉薩10月8日電(張京品、查日)記者8日從西藏自治區氣象局了解到,由該局承建的2部全固態X波段都卜勒天氣雷達近日建成並投入業務試運行。這將填補拉薩周邊多個區域天氣雷達監測盲區,極大提升氣象災害監測預報預警能力。
  • 瑞士科學家開發出FMCW雷射雷達並行測量新技術
    雷射雷達點雲(圖片來源:洛桑聯邦理工學院)雷射雷達(LiDAR)是通過發射雷射,計算發射和接收光信號之間的時間延遲乘以光速來實現距離測量據麥姆斯諮詢報導,3D雷射雷達傳感技術在自動駕駛領域的應用起源於2007年美國國防部高級研究項目署(DARPA)自動駕駛挑戰賽,當時首次採用Velodyne的128線機械旋轉式雷射雷達。大多數現代雷射雷達傳感器都採用脈衝式飛行時間法(ToF)的原理。脈衝式ToF雷射雷達的原理是通過傳感器孔徑發射出短脈衝或脈衝模式的雷射,並使用平方律光電探測器探測返回的光功率,從而計算出距離。
  • 潮科技|或於ToF「剛正面」,FMCW會是雷射雷達的未來方案?
    編者按:本文來自微信公眾號「MEMS」(ID:MEMSensor),作者麥姆斯諮詢殷飛,原文題目《為什麼說FMCW雷射雷達是代表未來的終極方案?》,36氪經授權發布,略有刪減。據麥姆斯諮詢介紹,雷射雷達(LiDAR)是一種利用雷射來測量物體之間距離的遙感方法。
  • FMCW毫米波雷達原理一
    1、簡介毫米波雷達的優點是角解析度高、頻帶寬因而有利於採用脈衝壓縮技術、都卜勒頗移大和系統的體積小。
  • 一種近距雷達目標檢測信號處理的FPGA實現
    關鍵詞:  FPGA;近距雷達;目標檢測;數位訊號處理前言FPGA及其相關技術是當代微電子技術迅速發展的產物,目前已經成為開發複雜數字系統的主要方式之一。某近距雷達系統要求利用在與被探測目標的短暫交會過程中,對獲得的都卜勒信號進行頻譜分析並完成動目標的識別檢測。
  • 無人駕駛:如何使用立體視覺實現距離估計?
    為了獲取每個障礙物的距離,工程師將相機與雷射雷達(光探測和測距)傳感器融合,使用雷射返回深度信息。利用傳感器融合技術將計算機視覺和雷射雷達的輸出融合在一起。使用雷射雷達這種方式存在價格昂貴的問題。而對此,工程師使用的一個有用的技巧是:對齊兩個像機,並使用幾何原理來計算每個障礙物的距離。我們稱這種新設置為 偽雷射雷達。
  • 全固態X波段雙偏振都卜勒天氣雷達落戶包頭稀土高新區氣象局
    經過一年的過渡雷達運行,近日,YLD1-D型全固態X波段雙偏振天氣雷達在包頭市稀土高新區氣象局完成安裝調試。  全固態雙偏振都卜勒天氣雷達是一款既能滿足人影作業需求,又能滿足一般天氣觀測與分析,還能適應科學研究需要的多功能天氣雷達。
  • 都卜勒雷達是個啥?它讓宣城更有「科學範兒」!
    既能點綴宛陵湖景區,又能更為高效地預測宣城氣象,隨著「新一代都卜勒雷達數據中心」的建成,將為我市新添一份科普與時尚。