a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 汽車電子 > 設計應用 > 基于FPGA的專用信號處理器設計和實現

基于FPGA的專用信號處理器設計和實現

作者:■ 北京理工大學電子工程系 杜兆林 吳嗣亮 時間:2005-04-28 來源:eaw 收藏

摘 要:本文介紹基于、用VHDL語言編程實現矢量脫靶量測量專用信號處理器的方法。有效利用片內硬件資源,無需外圍電路,高度集成,實現了對復數數據進行去直流、加窗、和求模平方運算。
關鍵詞:

前言
矢量脫靶量測量系統中,信號處理電路模塊的主要任務是完成目標檢測、數據存儲以及給其它單元控制信號。系統所進行的目標檢測需要計算信號的功率譜,所以先要對采集到的多通道(8路)數據按512點為一幀,作FFT處理,得到其頻譜。為了監測接收機工作狀態,需要在頻域用恒虛警的方法,判斷各路接收通道是否正常。除此之外,還需要對數據進行去直流、加窗的初始化處理,FFT結果再進行求模平方、累加運算,結果以FIFO輸出。
選擇用FPGA完成上述功能有諸多優點。首先,FPGA實現FFT運算是硬件處理,采用多個硬件乘法器、加法器,運算周期短,加上內部集成的大量塊RAM可高速訪問,所以速度大大提高。其次,FPGA片內邏輯資源豐富,可用的寄存器、鎖存器、查找表和多路數據選擇器等,能夠實現硬件流水結構。這樣多種運算可同時流水進行,減少了中間等待時間,整體速度大幅提高。再次,用硬件處理數據時延固定,可準確預測。
當然,FPGA也有不足。在FPGA內設定的數據長度相對固定,不夠靈活,如果為實現高精度而采用浮點運算,則設計復雜,速度會降低,而且硬件開銷大。用“塊浮點”算法,可以很好地兼顧高速和高精度,并且硬件實現和控制相對簡單,彌補了FPGA這一不足。

各運算單元算法和實現
如圖1所示,信號處理器共包括4大部分:去直流、加窗的預處理單元,FFT運算單元,模平方累加與檢測單元,FIFO輸出單元。每個單元都分配有存儲器來存儲中間結果,它們是由FPGA中的塊RAM生成的,不占用邏輯資源,而且訪問快速。
預處理單元
如圖2所示,預處理單元首先讀入控制單元,在收到啟動信號后,產生讀信號和讀地址,讀取外部數據到內部存儲器R、I,同時數據送入累加單元求和,移位后得到平均值,也就是直流分量。然后,在讀取數據完畢時,讀入控制單元啟動加窗運算控制單元,讀取原始數據和窗函數,這時原始數據減掉直流分量后,與窗函數相乘,就得到去直流和加窗后的結果,為FFT單元作好準備。
FFT運算單元
如圖3所示,FFT運算單元主要包括、讀寫控制、塊浮點運算、數據存儲R、I和旋轉因子存儲單元。以下分別介紹。
單元
時域抽樣(DIT)的基-2蝶型運算算法可以表示為:
 
其中復乘運算可表示為:

 
由蝶形運算算法公式可以看出一個基-2蝶形運算要進行一個復乘、兩個復加。由復乘運算公式可知:若在一個時鐘周期內實現復乘,需4個實數乘法器和2個實數加法器。因為這里采用的是Xilinx公司的VirtexII系列FPGA,內部有硬件乘法器,不占用邏輯資源,因此為了簡化結構和提高系統的穩定性,采用4乘法器的直接實現結構(見圖4)。
讀寫控制
FFT讀寫控制單元負責產生FFT運算過程、各個階段RAM的讀寫信號和地址信號,以保證各級運算數據的正確調用和存儲。此外,還需要協調各部分的時序關系。因為按時間抽取的FFT是混序,在實際運算中,直接將輸入數據按原位運算要求的“亂序”存放是很不方便的。因此總是按自然順序將輸入序列存入存儲單元,再通過變址運算將自然順序變換成按時間抽取的FFT算法要求的順序。變址過程可以用程序安排加以實現。計數器順序計數(0~511),將計數器的最低位(第‘0’位)取反后,對應位進行交換,就能產生每一級的數據讀取地址。同樣的,旋轉因子的地址是由計數器地址交換后,特定位置零產生的。由于采用原位運算,每級蝶形運算的寫地址和抽取地址完全相同。
塊浮點
塊浮點由“溢出檢測”和“指數累加器”組成。如果輸入蝶形單元中的數據的實部和虛部是16比特,那么輸出數據實部和虛部最大溢出是2比特。所以,每一級蝶形運算中,“溢出檢測”根據輸出數據的高三位(最高位是符號位)就可以判斷溢出情況,由此決定下一級蝶形運算時,如何選擇上一級18位結果數據中的16位進入蝶形單元。溢出的位數由指數累加器累加,最后決定FFT運算結果的指數位。
數據存儲
FFT運算單元先讀取預處理結果的實部、虛部,送入蝶形運算單元。第一級結果也會分成實部、虛部存儲在本單元的數據存儲器中。此后每一級都進行原位操作,最終的結果也存于這兩片RAM中。旋轉因子事先單獨存儲在一片512



評論


相關推薦

技術專區

關閉