一種基于fpga的采樣數據內插方法
【專利摘要】本發明提出了一種基于FPGA的采樣數據內插方法,適用于數字示波器。基于FPGA的采樣數據內插方法包括:內插開始階段:當采集數據結束后要進入內插時,首先通過快速加載使能端將起始數據快速填滿FIR濾波器流水線,填入數據的長度等于FIR濾波器的階數L;兩采樣點插值計算階段:內插計算根據內插倍數從濾波器系數存儲ROM中選取適當的系數;采樣點更新階段。本發明的方法在FPGA內部實現,充分利用了FPGA并行處理數據的能力,降低了硬件成本,減小了功耗和體積,加上FPGA高速并行特性,可以有效提高數據吞吐率,減少數據等待時間,增加波形捕獲率。
【專利說明】—種基于FPGA的采樣數據內插方法
【技術領域】
[0001]本發明涉及測試【技術領域】,特別涉及一種應用于數字示波器中對采樣點之間進行數據內插的方法。
【背景技術】
[0002]在高時間檔位下,傳統的示波器多采用隨機采樣技術或是軟件插值方法來顯示被測信號波形。
[0003]隨機采樣是一種等效采樣技術。由于每次采樣時,觸發時刻與其后第一個采樣點之間的時間間隔是隨機變化的,因此,隨機采樣需要精確地測量出此時的時間間隔,并根據測量結果將每次采樣得到的采樣點填入存儲器的相應位置,最終通過多次采樣來重新組合出原始信號的波形,隨機采樣原理如圖1所示。隨機采樣技術的關鍵是如何精確地測量觸發時刻與其后第一個采樣點之間的時間間隔,測量結果的精度決定了最終重組出波形的實際效果。隨機采樣技術采用的時間測量方法主要有時間電壓轉換方法和雙斜坡脈沖擴展法。
[0004]軟件內插方法,就是在每次采樣后,根據內插公式,采用軟件來計算采樣點之間的插值。但由于插值需要多次乘加運算,因此,軟件插值會影響波形捕獲率。
[0005]隨機采樣技術在波形顯示方面存在以下幾個問題:1)需要額外的電路測量時間間隔,增加了布局空間、成本和功耗;2)時間測量結果的誤差會積累到組合后信號中;3)需要多次采樣才能組合出信號波形,并且時間測量需要額外時間,降低了信號的波形捕獲率。
[0006]軟件插值技術由于受CPU處理能力限制,也存在信號波形捕獲率低的缺點。
【發明內容】
[0007]針對以上缺點,本發明提出了一種適用于數字示波器的基于FPGA的采樣數據內插方法。由于本發明在FPGA內部實現,充分利用了 FPGA并行處理數據的能力,降低了硬件成本,減小了功耗和體積,加上FPGA高速并行特性,可以有效提高數據吞吐率,減少數據等待時間,增加波形捕獲率。
[0008]本發明的技術方案是這樣實現的:
[0009]一種基于FPGA的采樣數據內插方法,包括以下步驟:
[0010]步驟(a),內插開始階段:
[0011]當采集數據結束后要進入內插時,首先通過快速加載使能端將起始數據快速填滿FIR濾波器流水線,填入數據的長度等于FIR濾波器的階數L ;
[0012]步驟(b),兩采樣點插值計算階段:
[0013]內插計算根據內插倍數從濾波器系數存儲ROM中選取適當的系數,選取適當的系數的步驟具體為:濾波器系數存儲ROM中共存放N組FIR濾波器系數,對應的地址分別為O?(N-1),內插倍數為I,其中I能被N整除,選取系數的地址分別為0,L/I,2*L/1...(1-1)L/1 ;
[0014]步驟(c),采樣點更新階段:
[0015]當計算完I個插值后,將需要載入新采集數據位置“1”,內插控制模塊根據采集數據有效位來判斷下一步狀態,如果采集數據沒有準備好,外部邏輯將采集數據有效位置“0”,則暫停插值運算,并將輸出數據有效位置“O” ;如果采集數據準備好,外部邏輯將采集數據有效位置“ I ”,則讀入采集數據進行內插運算,并將輸出數據有效位置“ I ”。
[0016]可選地,所述FIR濾波器采用流水線架構,由L個乘累加單元級聯而成。
[0017]可選地,所述L個乘累加單元通過配置FPGA的DSP單元來實現。
[0018]可選地,所述L為偶數。
[0019]可選地,所述濾波器系數存儲ROM由L個獨立ROM組成,存放的系數分別對應FIR濾波器L個乘累加單元的輸入系數。
[0020]本發明的有益效果是:
[0021](I)全部在FPGA內部實現,成本低、功耗小;
[0022](2)內插倍數可變,靈活;
[0023](3)采集數據在FPGA內部并行處理并且數據可快速加載流水線,速度快,使示波器波形捕獲率顯著提高。
【專利附圖】
【附圖說明】
[0024]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0025]圖1為隨機采樣原理示意圖;
[0026]圖2為本發明基于FPGA的采樣數據內插方法原理示意圖;
[0027]圖3為圖2中FIR濾波器的結構示意圖;
[0028]圖4為本發明基于FPGA的采樣數據內插方法的流程圖。
【具體實施方式】
[0029]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0030]在高時間檔位下,傳統的示波器多采用隨機采樣技術或是軟件插值方法來顯示被測信號波形。隨機采樣需要額外的電路來精確測量觸發點與采樣點之間的時間間隔,并根據所測時間間隔將多次采集的采樣點進行拼接。然而,額外的時間間隔測量電路有布局空間大、成本高、功耗大等缺點。軟件插值是將采集數據通過核心板上的CPU來計算插值,由于插值運算量巨大,此方法會影響示波器的波形捕獲率。
[0031]本發明提出了一種適用于數字示波器的基于FPGA的采樣數據內插方法,由于本發明在FPGA內部實現,因此,降低了硬件成本、減小了功耗和體積,加上FPGA高速并行特性,可以有效提高數據吞吐率,減少數據等待時間,增加波形捕獲率。
[0032]圖2為本發明基于FPGA的采樣數據內插方法的原理圖,其中的所有模塊均在FPGA內部實現。
[0033]圖2中,內插控制模塊,負責內插運算的時序控制及和外部模塊的交互。快速加載使能端可以控制采集數據是否按時鐘節拍填滿FIR濾波器的流水線。由于高檔位下,每采集一次波形都需要做內插運算,在新采集數據沒裝滿FIR濾波器流水線之前,由于誤差較大,輸出的內插數據都是無效的,而正常情況下,要間隔內插倍數I個時鐘周期才能讀入一個采集數據,當I值很大時,需要較長時間才能裝滿流水線。因此,每次采集數據后,都需要通過快速加載使能端來加快數據加載。當新數據裝滿流水線后,輸出數據有效位開始置“1”,表示FIR濾波器輸出的內插數據有效。在兩個采樣數據計算完I個內插值后,需要新的采樣點,此時需要載入新采集數據位置“ I ”,然后內插控制模塊就根據采集數據有效位來判斷下一步狀態,如果采集數據還沒準備好,則暫停插值運算,并將輸出數據有效位置“O” ;如果采集數據準備好,則載入采集數據接著進行內插運算,并將輸出有效位置“I”。在計算內插時,控制模塊通過內插倍數來計算濾波器系數ROM的存儲地址。內插控制模塊設置內插數據有效、快速加載使能、輸出數據有效、需要載入新采集數據、內插倍數等控制端口,方便與外部電路進行交互。
[0034]圖2中,FIR濾波器采用流水線架構,插值計算采用流水線方式,以增加數據的吞吐速率。
[0035]如圖3所示,FIR濾波器主要由L個乘累加單元MAC級聯而成,而MAC可以通過適當配置FPGA的DSP單元來實現,優選地,為了對稱設計,L為偶數。讀入新采樣數據時,送往MAC的采集數據,在時鐘節拍下依次移位到下一階MAC中,系數則是通過查找濾波器系數存儲ROM得到。
[0036]圖2中,濾波器系數存儲ROM由L個獨立ROM組成,存放的系數分別對應FIR濾波器L個MAC單元的輸入系數。濾波器系數存儲ROM依次存放著系統所需要最大內插值所需要的濾波器系數,當需要采用較低內插時,只需要通過控制模塊選取適當間隔的子濾波器即可實現。例如ROM中存放1000個子濾波器系數最多實現1000倍內插時,只需選取間隔50的子濾波器就可以實現20倍內插。計算內插數據時,在時鐘節拍下,ROM的讀取地址依次移位到下一階ROM的讀取地址中,從而實現流水線操作。
[0037]圖4中示出了基于FPGA的采樣數據內插方法的詳細流程,包括以下步驟:
[0038]步驟(a),內插開始階段:
[0039]當采集數據結束后要進入內插時,外部電路首先通過快速加載使能端將起始數據快速填滿FIR濾波器流水線,填入數據的長度等于FIR濾波器的階數L。當新數據裝滿流水線后,輸出數據有效位開始置“ I ”,表示FIR濾波器輸出的內插數據有效。
[0040]步驟(b),兩采樣點插值計算階段:
[0041]內插計算要根據內插倍數從濾波器系數存儲ROM中選取適當的值。ROM中共存放N組濾波器系數,對應的地址分別為O?(N-1),現在需要的內插倍數為I,I能被N整除,則應選取系數的地址分別為0,L/I,2*L/1...(1-1)L/I。
[0042]步驟(C),采樣點更新階段:
[0043]當計算完I個插值后,濾波器采樣點系數需要更新數據,此時將需要載入新采集數據位置“ 1”,然后內插控制模塊根據采集數據有效位來判斷下一步狀態,如果采集數據沒有準備好,外部邏輯將采集數據有效位置“O”,則暫停插值運算,并將輸出數據有效位置“O”;如果采集數據準備好,外部邏輯將采集數據有效位置“1”,則讀入采集數據進行內插運算,并將輸出數據有效位置“I”。
[0044]本發明的基于FPGA的采樣數據內插方法,全部在FPGA內部實現,成本低、功耗小;內插倍數可變,靈活;采集數據在FPGA內部并行處理并且數據可快速加載流水線,速度快,使示波器波形捕獲率顯著提高。
[0045]以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
【權利要求】
1.一種基于FPGA的采樣數據內插方法,其特征在于,包括以下步驟: 步驟(a),內插開始階段: 當采集數據結束后要進入內插時,首先通過快速加載使能端將起始數據快速填滿FIR濾波器流水線,填入數據的長度等于FIR濾波器的階數L ; 步驟(b),兩采樣點插值計算階段: 內插計算根據內插倍數從濾波器系數存儲ROM中選取適當的系數,選取適當的系數的步驟具體為:濾波器系數存儲ROM中共存放N組FIR濾波器系數,對應的地址分別為O?(N-1),內插倍數為I,其中I能被N整除,選取系數的地址分別為0,L/I,2*L/1...(1-1)L/I ; 步驟(c),采樣點更新階段: 當計算完I個插值后,將需要載入新采集數據位置“1”,內插控制模塊根據采集數據有效位來判斷下一步狀態,如果采集數據沒有準備好,外部邏輯將采集數據有效位置“0”,則暫停插值運算,并將輸出數據有效位置“O” ;如果采集數據準備好,外部邏輯將采集數據有效位置“ I ”,則載入采集數據進行內插運算,并將輸出數據有效位置“ I ”。
2.如權利要求1所述的基于FPGA的采樣數據內插方法,其特征在于,所述FIR濾波器采用流水線架構,由L個乘累加單元級聯而成。
3.如權利要求2所述的基于FPGA的采樣數據內插方法,其特征在于,所述L個乘累加單元通過配置FPGA的DSP單元來實現。
4.如權利要求3所述的基于FPGA的采樣數據內插方法,其特征在于,所述L為偶數。
5.如權利要求1所述的基于FPGA的采樣數據內插方法,其特征在于,所述濾波器系數存儲ROM由L個獨立ROM組成,存放的系數分別對應FIR濾波器L個乘累加單元的輸入系數。
【文檔編號】G01R13/02GK104077492SQ201410330675
【公開日】2014年10月1日 申請日期:2014年7月8日 優先權日:2014年7月8日
【發明者】張成森, 劉洪慶, 郭同華, 李云彬 申請人:中國電子科技集團公司第四十一研究所