- 相關推薦
用成型濾波器組提高測距精度的一種方法
摘要:在許多測距系統中,精確地調整用戶端回復幀的發送時刻是提高測距精度的關鍵。介紹了用FPGA實現的一種數字式成型濾波器組,它可大幅度地縮短發送時刻的調整步長,有效地提高測距精度,已被成功應用于某個測距系統中。在許多測距系統中,用戶端接收到基站發送的幀信號后,便以該幀中特定的位置(稱為幀參考時標)為基準發送“回復幀”給基站。基站收到回復幀后,提取它的幀參考時標,并以其作為測距的依據。
通常用戶端的系統時鐘精度較低(本文提到的系統時鐘均指用戶端的系統時鐘),因此接收到的幀參考時標會存在誤差。在用戶端經過計算估計出幀參考時標的誤差,再用該誤差調整發送回復幀的時刻,可實現精確測距。因此測距精度取決于兩個因素:幀參考時標誤差的估計精度和回復發送時刻的調整精度。本文主要討論如何提高回復幀發送時刻的調整精度;貜蛶怯苫鶐Тa組成的,因此下文中講的發送時刻的高速均指基帶碼發送時刻的調整。
發送時刻的調整精度是由發送時刻的調整步長決定的。在一般的數字系統中,發送時刻的高速步長不小于個系統時鐘的周期。本文利用Altera公司的EP20K300EQC240-3型FPGA器件設計了一種成型濾波器組,使發送時刻的調整步長縮短為時鐘周期的五分之一,從而將發送時刻的高速精度大幅度地提高。
1 成型濾波器組調整發送時刻的原理
成型濾波器組的設計原理圖如圖1所示。成型濾波器組包括一組成型濾波器。相同的發送基帶碼經成型濾波器組中不同的成型濾波器濾波后,會產生不同延時的發送數據波形。發送數據波形的延時不同,則發送時刻也不同。這就是說,相同的基帶碼經過不同的成型濾波器濾波后可產生不同發送時刻的波形。因此,以測距誤差作為選擇字,根據誤差的大小選擇相應的成型濾波器,就可間接地調整發送基帶碼的時刻。
2 用FPGA設計成型濾波器
通常,系統時鐘頻率遠高于基帶碼的速率,因此在成型濾波前,要在基帶碼的相鄰碼之間進行內插。內插的方式有多種,通常的內插方法是在發送的基帶碼的相鄰碼之間內插“0”。將基帶碼插“0”后,與低通濾波器的沖激響應卷積,再送到D/A轉換器轉換成模擬濾波器就可以實現濾波成型。設計低通濾波器時,為了得到較好的波形,通常采用高階的FIR濾波器。如果在FPGA中用邏輯單元實現高階FIR濾波器,全占用大量的邏輯單元。比如在Altera公司的FPGA中用邏輯單元實現一個50階的FIR濾波器,需要26個乘法器和50個加法器,要占用一千多個邏輯單元。而本文利用FPGA中的ROM,用查表的方法設計同樣的FIR濾波器,則只需占用幾十個邏輯單元。圖2是成型濾波器的設計原理圖。該設計包括用數學工具——MATLAB預先設計的部分和在FPGA中實現的部分,MATLAB完成成型濾波后的數據波形文件的設計。FPGA存儲設計好的數據波形文件,并用發送的基帶碼選通相應波形的存儲地址,完成濾波成型。
首先用MATLAB設計數據波形文件。設系統基帶碼速率為N MHz,系統時鐘頻率為B MHz。FIR濾波器的階數為(C×B)/N(C為奇數,可根據濾波器的階數要求進行選擇)。FIR濾波器的系數可通過MATLAB進行設計。將C個基帶碼排列組合成2 C種情況。對于每種組合,在C個基帶碼的相鄰碼間內插(B/N)-1個0后,與設計好的濾波器的沖激響應卷積。卷積結果的中間B/N個數據波形值就是該C個基帶組合的中間基帶碼(簡稱中間碼)的濾波結果值。這B/N個數據波形值可以存儲在以該種組合(C個碼)為基地址的ROM中。MATLAB可以計算出所有組合下C個基帶碼的中間碼的濾波結果值。
FPGA將所有濾波結果值存入ROM,將每個濾波結果值所對應的基帶碼組合作為該濾波結果值的存儲地址。系統運行時,用一個C位移位寄存器存儲C個基帶碼,作為地址選通ROM,則ROM輸出的濾波結果值是C個基帶碼的中間碼的濾波結果值。隨著基帶碼依次到達移位寄存器,移位寄存器中C個基帶碼的中間碼也被后面的基帶碼依次替換,ROM輸出的將是依次到達的中間碼的濾波結果值,從而實現基帶碼的濾波成型。
圖2中ROM存儲的數據是設計一個成型濾波器得到的波形數據,為了與下面成型濾波器組的存儲數據相區別,將圖2中ROM存儲的所有波形數據統稱為一個子波形。
3 在FPGA中用成型濾波器組調整發送時刻的方法
圖3是成型濾波器組的實現方案圖。圖中的FPGA的ROM中存儲了E個子波形,稱為一個成型濾波器組。第一個子波形就是圖2所設計的子波形,稱為原來的子波形。之后的E-1個子波形是原來的子波形以時鐘周期的1/E循環左移1,2,…,E-1次得到的。如果得到這些移位后的子波形是設計的關鍵。由于波形的移位在MATLAB中是以數值的變化體現出來的,而通過MATLAB計算可以得到數值精度很高的波形數據,所以用MATLAB設計的波形,移位可以遠小于時鐘周期,因此可以很容易用MATLAB得到以時鐘周期的1/E循環左移后的各個子波形。
各移位后的子波形按循環左移大小依次存儲在ROM中。因此一個時鐘周期的延時被劃分成了E個區間,將測距誤差除以時鐘周期,得到余數R,計算出R落在了E個區間中的哪個。選擇該區間的子波形,將該子波形送到調整步長降到時鐘周期的1/E。實際設計時,在MATLAB中將FIR濾波器的沖激響應以時鐘周期的1/E循環左移,再與插
【用成型濾波器組提高測距精度的一種方法】相關文章:
一種在NLOS環境下提高TOA定位算法精度的改進方法03-07
論提高數字化圖件輸出精度方法02-23
一種基于陣列運動擴展的高精度測向方法03-07
淺談提高統計預測精度的策略12-04
論如何提高機械加工精度03-18
介紹一種高精度位置環系統03-21
非接觸測距系統03-07
一種新型高精度激光輪對檢測裝置03-19