基于fpga的多路循環數據壓縮器和解壓縮器以及方法
【技術領域】
[0001] 本發明屬于數字信號處理領域,涉及一種基于FPGA的多路循環數據壓縮器和解 壓縮器以及方法。
【背景技術】
[0002] 直升機旋翼應變數據采集處理系統已經成為直升機機載處理系統中不可或缺的 一環,對旋翼進行實時監測和應變數據采集,完成飛行中的實時告警,可提高直升機的飛行 安全性,具有重大的實用價值和廣泛的應用前景。機載設計平臺對數據處理、傳輸性能有 著限制,需要處理的數據量大,但數據傳輸能力有限,因此必須對旋翼應變數據進行壓縮發 送、接收解壓縮的處理,才能滿足實時性。
[0003]目前,國外對于旋翼應變數據的實時數據處理技術非常重視,包括美國、俄羅斯、 日本等航空技術大國都已投入了大量的財力物力對其進行研宄。美國向來都非常重視旋翼 應變的實時數據監測技術,其在信號采集,數據處理,故障診斷方面都已進行大量研宄。美 國先后研制了"飛行中結構監控系統(FSMS) "和"飛行中裂紋探測系統(IFCDS) ";開發了 采用超聲波傳感疲勞損傷的實時無損評估技術(NDE),損壞感應系統被用于直升機旋翼結 構監測和新老飛機的機體結構壽命預測;M.Roemer開發了直升機旋翼實時監測與故障診 斷系統。基于這些研宄及實驗,美國的直升機飛行風險降低了 50%,飛機的運行預算降低了 1/3,而且還可能進一步降低。
[0004] 相比之下,國內的旋翼應變數據的實時數據處理技術起步較晚,在直升機旋翼應 變數據采集處理方面主要做了理論方面的研宄,提出了一些監測方法。朱旭程等人通過分 析典型故障對旋翼系統特征的影響,建立了故障診斷矩陣,提出了一種基于診斷矩陣的沖 突集生成方法。何克磊等人建立了一種系統健康評估模型,并在四旋翼直升機平臺上進行 了仿真應用。張明生等人采集處理了旋翼應變數據,在國內首次實現了沒有導電環情況下 的旋翼應變測量。黃捃等人完成了地面試驗條件下旋翼槳葉固有頻率的測試。但是國內對 于旋翼應變數據采集處理的研宄主要以地面診斷,建立模型為主,實際的系統開發比較少, 少數的旋翼應變測試系統完成了功能需求,但是存在數據量化精度不高、實時性不好等問 題。因此,對于旋翼應變數據的實時數據處理技術仍需進一步深入研宄。
【發明內容】
[0005] 要解決的技術問題
[0006] 為了避免現有技術的不足之處,本發明提出一種基于FPGA的多路循環數據壓縮 器和解壓縮器以及方法,采用基于FPGA的ASIC設計技術,可以滿足旋翼應變數據處理系統 功耗低、體積小、重量輕、集成度高、單位時間內數據處理量大、可擴展性好等性能要求。
[0007] 技術方案
[0008] 一種基于FPGA的多路循環數據壓縮器,其特征在于包括rampl存儲器、ramsl存 儲器、量化器、預測器、減法器和自適應因子計算器;
[0009] 減法器:輸入端為需要編碼的數據和rampl存儲器的輸出端;將輸入值Si與 rampl存儲器的輸出值相減,其結果輸出至與其相連的量化器;
[0010] 量化器:輸入端連接減法器和ramsl存儲器的輸出端,輸出端為壓縮器的輸出端, 同時連接自適應因子計算器和預測器的輸入端;從ramsl存儲器讀取當前自適應因子參數 indexi,對di進行量化產生一個有符號的4位二進制編碼值Ci;
[0011] 自適應因子計算器:輸出端連接ramsl存儲器的輸入端;編碼值Ci作為輸入,通 過自適應因子計算器求出自適應因子更新值Index;
[0012] 預測器:輸出端連接rampl存儲器的輸入端;編碼值Ci作為輸入,通過預測器求 出預測值更新值Sp;
[0013] rampl存儲器:輸出端連接減法器的輸入端;數據寬度16bit,用于多路壓縮的預 測值參數緩存,輸出為減法器提供當前樣本的預測值Spi;
[0014] ramsl存儲器:輸出端連接量化器的輸入端;數據寬度7bit,用于多路壓縮的自適 應因子參數緩存,輸出為量化器提供當前樣本數據處理所需要的參數自適應因子indexi。
[0015] -種采用所述壓縮器進行多路循環壓縮編碼的方法,其特征在于步驟如下:
[0016] 步驟1 :從存儲器rampl和存儲器ramsl中讀取第n路第i個預測值Spi和自適應 因子Indexi;
[0017] 步驟2:將當前第i個輸入值Si與第i個預測值Spi相減,得到當前差值di;對di 進行量化產生一個有符號的4位二進制編碼值Ci,
[0018] 所述Ci為補碼形式,最高位為符號位,表示正負,低三位為量化碼,對應0~7 ;
[0019] 步驟3 :以編碼值Ci的低三位Ci(2:0)為判定條件重構差值diff:
[0021] 然后由Ci的最高位Ci(3)計算得到預測值更新值SD:
[0023] 最后編碼值Ci作為輸入,通過自適應因子計算器求出自適應因子更新值Index:
[0024]
[0025] 步驟4 :將rampl和ramsl的高有效寫使能信號wepl和wesl置1,將預測值更新 值Sp寫入rampl中的第n個存儲單元,將自適應因子更新值Index寫入ramsl中的第n個 存儲單元,下一個時鐘上升沿到來時,ram中的第n個存儲單元數據由第i個更新為第i+1 個,為下一個循環的第n路使用;
[0026] 步驟5 :將rampl和ramsl的讀寫地址加1,同時wepl和wesl置0,使ram處于讀 狀態,多路數據循環壓縮模塊完成一個壓縮過程;
[0027] 重新返回步驟1,開始對第n+1路第i個數據進行壓縮。
[0028] 一種對所述基于FPGA的多路循環數據壓縮器得到的編碼進行解碼的多路數據循 環解壓縮器,其特征在于包括ramp2存儲器、rams2存儲器、逆量化器、自適應因子計算器和 加法器;
[0029] 逆量化器:輸入端接收需要解碼的編碼數據,以及連接ramp2存儲器的輸出端,逆 量化器的輸出端連接加法器的輸入端;從rams2存儲器讀取當前自適應因子參數,對編碼 值Ci的低三位進行差值重構;
[0030] 自適應因子計算器:輸入端接收需要解碼的編碼數據,輸出端連接rams2存儲器 的輸入端;編碼值Ci作為輸入,通過自適應因子計算器求出自適應因子更新值Index;
[0031] rams2存儲器:輸出端連接逆量化器的輸入端;數據寬度7bit,用于多路解壓縮 的自適應因子參數緩存,輸出為逆量化器提供當前樣本數據處理所需要的參數自適應因子 indexi;
[0032] ramp2存儲器:輸出端與加法器的輸入端相連;數據寬度16bit,用于多路解壓縮 的預測值參數緩存,為加法器提供當前樣本的預測值Spi。
[0033] 一種采用所述多路數據循環解壓縮器進行多路循環解壓縮編碼的方法,其特征在 于步驟如下:
[0034] 步驟1:從ramp2和rams2中讀取第n路第i個預測值Spi和自適應因子Indexi;
[0035] 步驟2:首先以編碼值Ci的低三位Ci(2:0)為判定條件重構差值diff:
[0039] 由Sp=SKi得到預測值更新值Sp;
[0040] 最后編碼值Ci作為輸入,通過自適應因子計算器求出自適應因子更新值Index:
[0041]
[0042] 步驟3 :將ramp2和rams2的高有效寫使能信號w印2和wes2置1,將預測值更新 值Sp寫入ramp2中的第n個存儲單元,將自適應因子更新值Index寫入rams2中的第n個 存儲單元,下一個時鐘上升沿到來時,ram中的第n個存儲單元數據由第i個更新為第i+1 個,為下一個循環的第n路使用;
[0043] 步驟4 :將ramp2和rams2的讀寫地址加1,同時wep2和wes2置0,使ram處于讀 狀態,多路數據循環解壓縮模塊完成一個壓縮過程;
[0044] 重新返回步驟1,開始對第n+1路第i個數據進行解壓縮。
[0045] 有益效果
[0046] 本發明提出的一種基于FPGA的多路循環數據壓縮器和解壓縮器以及方法,采用 基于FPGA的ASIC設計技術,滿足旋翼應變數據處理系統功耗低、體積小、重量輕、集成度 高、單位時間內數據處理量大、可擴展性好等性能要求;將應變量量化等級選為16bit,提 高了多旋翼應變采集數據的精度,保證量化精度的同時實現了實時處理;數據還原誤差在 KT3~KT2量級之間,符合精度需求;對異常應變值進行了及時還原。
【附圖說明】
[0047] 圖1是多路數據循環壓縮器結構框圖;
[0048] 圖2是多路數據循環解壓縮器結構框圖;
[0049] 圖3是多路數據循環壓縮流程圖;
[0050] 圖4是多路數據循環解壓縮流程圖;
[0051] 圖5是單路數據處理的時序仿真結果;
[0052] 圖6是多路數據處理的時序仿真結果。
【具體實施方式】
[0053] 現結合實施例、附圖對本發明作進一步描述:
[0054] 用于實施的硬件環境是:XILINX公司Spartan-6系列,型號為XC6SLX150的兩塊 FPGA芯片,示波器,邏輯分析儀,運行的軟件環境是:ISE14. 5。以四路數據處理為例,我們 用ISE14. 5軟件實現了本發明提出的方法。
[0055] 多路數據循環壓縮器模塊
[0056] 其實施按如附圖1所示的設計架構完成,該架構中包括的模塊及其結構實現關系 為:
[0057] rampl存儲器:采用VHDL編寫生成,數據寬度16bit,數據深度為4。其輸入端與 預測器的輸出端相連,用于多路壓縮的預測值參數緩存,輸出端與減法器的輸入端相連,為 減法器提供當前樣本的預測值Spi。
[0058]rams1存儲器:采用VHDL編寫生成,數據寬度7bit,數據深度為4。其輸入端與自 適應因子計算器的輸出端相連,用于多路壓縮的自適應因子參數緩存,輸出端與量化器的 輸入端相連,為量