一種低成本高精度嵌入式信號採集分析系統和方法與流程
2023-05-19 03:57:22 1

本發明涉及一種信號採集方法和系統,尤其涉及一種交流電信號的高精度採集方法和採集系統。
背景技術:
各類通用性儀表的設計,尤其是高精度電學儀器設備的設計過程中,數據採集一直是不可或缺的一環,數據採集系統的指標直接影響了所設計的儀表、傳感器的技術指標。目前在儀表的設計和通用信號的幅頻特性測試過程中,其信號採集及顯示一般採用示波器,而一般示波器的垂直分辨力為8位、內置計數器分辨力為6位,這就難以滿足高精度儀表的設計需求,而垂直分辨力或頻率指標較高的專用示波器的價格在普通示波器基礎上會成幾何量的增加,這就對低成本、高精度的信號採集方法提出了迫切的需求。
通常為了滿足高精度的要求,需要採用更為高級的晶片和處理電路,這樣就會使成本非常高昂。因此,如何採用低成本的硬體電路、配合高精度的採樣算法,降低採樣系統對硬體條件的需求、同時提高系統處理能力、加快處理速度是目前的一個急需的技術。
技術實現要素:
為了解決上述問題,本發明提供一種信號採集分析系統,包括:主控制器、數據轉換器ADC,其特徵在於:還包括測頻模塊,其中主控制器包括主控制單元、輔助控制單元、邏輯門陣列,邏輯門陣列負責驅動ADC、測量並計算被測信號頻率,主控單元負責人機互動及與輔助控制單元、上位機通信其中:邏輯門陣列及前端電路能精確測量信號頻率,在信號頻率已知的情況下主控制單元能精確計算出信號幅值,輔助控制單元能擴展主控制單元的其他低速需求,其中所述系統的工作過程包括:a)測頻模塊將被測信號進行處理,調整為邏輯門陣列的輸入輸出單元(IO)輸入範圍能的電晶體-電晶體邏輯(TTL)電平;由邏輯門陣列內部的等精度測頻模塊測量並計算出被測信號的精確頻率值,並上傳至主控制單元;作為快速傅立葉變換所得頻譜計算幅值的參考頻率;b)邏輯門陣列驅動數據轉換器對測量數據進行數據轉換,配合前端電路測量並計算出被測信號頻率值,並將數據發送給主控制單元;c)主控制單元對被測信號的進行加窗、快速傅立葉變換計算進而得到該信號的頻譜,計算出信號的幅度。
進一步地,其特徵在於:所述步驟c)的具體實現如下,將頻譜內最大的幅值所對應的頻率標號乘以頻率解析度,可得到與被測信號頻率差最小的解析度頻率值。通過比較測頻模塊所得頻率值與FFT(快速傅立葉變換)計算得出的頻率,可確定頻譜上的被測信號頻率在該解析度頻率的左旁瓣還是右旁瓣,同時與得到的次最大幅度值作為對比驗證,在確定信號頻譜的解析度頻率範圍內後即可以通過內差法得到該頻率點處的更精確的幅度值。
進一步地,其特徵在於:所述系統還包括通信模塊、外圍擴展模塊、觸摸顯示屏,主控制單元Core1通過通信模塊可與遠程終端連接,可與系統內 的觸控顯示屏進行交互;輔助控制單元Core2可通過外圍擴展模塊與外圍其他電路連接。
進一步地,其特徵在於:邏輯門陣列內部具有IP,在所述a)步驟中,通過調用IP核生成抗混疊數字濾波器,濾掉2倍採樣頻率以上及FFT(快速傅立葉變換)窗配置過程中的無效旁瓣頻率的無用信號。
進一步地,其特徵在於:測頻模塊內的波形處理電路包括同向比例放大電路、限幅電路、濾波放大電路、施密特觸發器;被測信號先經同向比例放大電路,隨後經過限幅電路將1~12V的信號限制在0.7V以下,再經過後級濾波放大後輸入遲滯比較器轉換成方波,此時信號幅值範圍滿足可編程邏輯門陣列(FPGA)的IO輸入範圍。
進一步地,其特徵在於:主控制單元在多線程的支持下可以將邏輯門陣列發送來的原始數據通過通信模塊轉發給遠程終端,同時支持接收遠程終端的控制命令;輔助控制單元接收到主控制單元的命令後,將頻譜圖輸出到觸摸顯示屏顯示,並可選擇當前顯示的波形為原始信號的波形或者加窗後的波形或者頻譜圖。
進一步地,其特徵在於:所述C步驟中,採用Flat Top窗函數進行分析,其中,函數的形式為
其中,
ωj=1-1.985844164102cos(z)+1.71176438506cos(2z)
-1.282075284005cos(3z)+0.667777530266cos(4z)
+0.240160796576cos(5z)+0.056656381764cos(6z)
-0.008134974479cos(7z)+0.000624544650cos(8z)
-0.000019808998cos(9z)+0.000000132974cos(10z)
其中ck為關於k的常數,k為窗函數的階數,N為FFT計算點數,
進一步地,其特徵在於:原始信號為:
其中Adc為直流分量幅值,f1為被測信號頻率,P1為初始相位,fn為幹擾信號頻率。
進一步地,其特徵在於:得到FFT結果後通過下面的公式可得到更精確的幅度值:
其中Aavr為最終計算恢復得到的幅度值,Aindex為幅度頻譜中幅度值最大點的值。
本發明還提供一種前面所述信號採集分析系統的分析方法,其特徵在於:包括如下步驟:
測頻模塊將被測信號進行處理,調整為邏輯門陣列的輸入輸出單元(IO)輸入範圍能的電晶體-電晶體邏輯(TTL)電平;由邏輯門陣列內部的等精度測頻模塊測量並計算出被測信號的精確頻率值,並上傳至主控制單元;作為快速傅立葉變換計算的參考頻率;
邏輯門陣列驅動數據轉換器對測量數據進行數據轉換,配合前端電路測量並計算出被測信號頻率值,並將數據發送給主控制單元;
主控制單元對被測信號的進行加窗、快速傅立葉變換計算進而得到該信號的頻譜,計算出信號的幅度;
其中,所述C步驟中,採用Flat Top窗函數進行分析,其中,函數的形式為
其中,
ωj=1-1.985844164102cos(z)+1.71176438506cos(2z)
-1.282075284005cos(3z)+0.667777530266cos(4z)
+0.240160796576cos(5z)+0.056656381764cos(6z)
-0.008134974479cos(7z)+0.000624544650cos(8z)
-0.000019808998cos(9z)+0.000000132974cos(10z)
其中ck為關於k的常數,N為FFT計算點數,
發明效果:
通過本發明的系統,能實時採集被測信號,分析出被測信號中的頻譜成分,給出信號頻率的精確測量結果、幅值測量精確結果、實時畫出被測信號波形、頻譜、還可以通過TCP與遠程終端協同工作、控制外圍電路。而且本發明在硬體上採用了FPGA取代了傳統的高級晶片和處理電路,從而使系統處理能力提高、速度加快、成本降低。
基於本發明的數據採樣和分析方法所設計的數據採集系統,可以實現交直流信號的高精度測量,仿真和試驗結果表明,對頻率未知信號採樣,其幅值精度可達10-4,頻率精度可達10-6,而一般示波器的垂直分辨力為8位、內置計數器分辨力為6位,因此與傳統的示波器相比,基於本發明所設計的數據採集系統結構簡單、成本低、精度高。垂直分辨力最高可達14位,頻率測量精度可達12位,因此基於本發明設計的數據採集系統能夠切實提高準確度,有良好的應用前景。
本方案還有一個優點在於整套系統都基於一個平臺設計,設備接口簡單還可以根據實際需要進行更換,且系統集成度高、可擴展性強,系統後續的優化升級都較為方便,同時,本方案設計的數據採集系統採樣數據和示波器的測試波形和結果進行對比驗證是一致的,證明了系統的可靠性和準確度。
附圖說明
圖1是本發明數據採集分析系統框圖。
圖2是本發明分析方法時域及頻域圖。
圖3是原始時域波形。
圖4是加窗後時域波形。
圖5是經過FFT變換後時域波形。
圖6是採用本發明分析方法的計算實例。
圖7是測頻模塊的波形調理電路。
具體實施方式
參見圖1,示出了本發明信號採集分析系統,包括主控制器、數據轉換器ADC、測頻模塊、通信模塊、外圍擴展模塊、電源模塊和觸摸顯示屏幕等。
其中,主控制器包括主控制單元Core1、輔助控制單元Core2、邏輯門陣列FPGA,主控制單元Core1可與輔助控制單元Core2和邏輯門陣列之間發送接收信號。並且主控制單元Core1通過通信模塊可與遠程終端連接;輔助控制單元Core2可通過外圍擴展模塊與外圍其他電路連接,並且可與觸摸顯示屏之間收發信號。邏輯門陣列FPGA分別通過數據轉換器ADC、測頻模塊接入 被測信號。
數據轉換器ADC用於將測量信號轉換為數位訊號,測頻模塊能將被測信號轉換為FPGA的IO輸入能力範圍內的TTL電平;
通過通信模塊,計算的結果可以上傳至遠程終端,遠程終端也可以與主控制單元Core1、輔助控制單元Core2、邏輯門陣列FPGA進行通信,調整各個參數,顯示測量結果,保存實時採集的數據以便後期回調、分析數據;
外圍擴展模塊包括各種通信接口、連接方式等,優選採用低功耗高性能的ATXMega128作為控制器,包括1路USB、16路AD採集(12bit/1MSPS)、4路SPI、4路IIC等,可以完外圍電路的控制、數據採集、通信等功能。
此外,數據採集電路優選採用工業級ADC,擁有8通道同時輸入,位數高達16位,採樣速率510kHz,滿足絕大部分採集需求,同時通過COX-M口可選擇使用外部時鐘還是內部時鐘,使用外部時鐘可以實現同步採樣傳輸。
測頻模塊內的波形調理電路包括同向比例放大電路、限幅電路、濾波放大電路、施密特觸發器;被測信號先經過同比例放大電路,隨後經過限幅電路將1~12V的信號限制在0.7V以下,再經過後級濾波放大後輸入遲滯比較器轉換成方波,此時信號幅值範圍滿足FPGA的IO輸入範圍。利用FPGA內的等精度測量模塊可測量並計算出被測信號頻率值。測頻模塊和FGPA等實現了完整的測頻功能。
下面說明所述系統的工作過程:
(1)邏輯門陣列FPGA驅動數據轉換器ADC對測量數據進行數據轉換,同時調用內部的IP核(Intellectual Property core)生成抗混疊數字濾波器(例如FIR濾波器),濾掉2fs(採樣頻率)以上及FFT窗配置過程中的無 效旁瓣頻率的無用信號,將數據發送至主控制單元Core1(例如通過內部的AHP總線),由主控制單元Core1進行加窗運算等操作。
(2)測頻模塊將被測信號進行限幅、放大、波形轉換,調整為FPGA的IO輸入範圍能的TTL電平,由FPGA內部的等精度測頻模塊測量並計算出被測信號的準確頻率,該頻率精度能達到10-7級別。同時通過通信總線將該頻率值數據發送至主控制單元Core1,作為FFT(快速傅立葉變換)計算的參考頻率。
(3)主控制單元Core1進行被測信號的加窗、FFT計算進而得到該信號的頻譜。將頻譜內最大的幅值處標號(即坐標軸橫軸序號)乘以頻率解析度,可以得到與被測信號頻率差最小的解析度頻率值。通過比較測頻模塊所得頻率值與FFT計算得出的頻率,可以確定頻譜上的被測信號頻率在該解析度頻率的左旁瓣還是右旁瓣(FFT計算得頻率小於測量頻率則在左旁瓣,FFT計算頻率大於測量頻率則在右旁瓣),同時與得到的次最大幅度值作為對比驗證,在確定信號頻譜在哪兩個解析度頻率範圍內後即可以通過內差法的公式得到該頻率點處的較精確的幅度值。
(4)主控制單元Core1在多線程的支持下可以將FPGA發送來的原始數據通過通信模塊轉發給遠程終端,同時支持接收遠程終端的控制命令。
(5)主控制單元Core1向輔助控制單元Core2發送命令後,Core2將頻譜圖輸出到觸摸顯示屏顯示,可以選擇當前顯示的波形為原始信號的波形或者加窗後的波形或者頻譜圖。
(6)根據需要Core2通過外圍擴展模塊向外圍電路發出命令。
其中,第3)步中,為了在被測信號頻率未知的情況下能夠快速分析出 信號的頻率及幅值,本發明提出了一種較新穎的信號分析方法,該方法以等精度測量得到的頻率值為輔助參考,通過改變FFT計算點數,將被測信號頻率無限靠近FFT計算的頻率解析度所在頻率,以得到更精確的幅值結果。,其幅值測量範圍為0~12V,準確度達0.05%。
該方法採用了Flat Top窗函數,Flat Top窗函數的基本函數形式為
其中,ωj為窗函數,ck為關於k的常數,k為窗函數的階數,N為FFT計算點數,j為計算參量(計算所需的點數、是一個整數值序號)。
Flat Top窗的不同維度能得到不同的精度,經過試驗比較,本發明了採用了誤差較小的10維FlatTop算法公式,公式具體內容如下:
ωj=1-1.985844164102cos(z)+1.71176438506cos(2z)
-1.282075284005cos(3z)+0.667777530266cos(4z)
+0.240160796576cos(5z)+0.056656381764cos(6z)
-0.008134974479cos(7z)+0.000624544650cos(8z)
-0.000019808998cos(9z)+0.000000132974cos(10z)
其中,
其時域、頻域的波形如圖2所示,左圖為FlatTop的時域波形,右圖為頻譜圖,Flat Top窗的主瓣稍胖,對於計算某頻率點幅值很重要。
假如原始信號為:
其中Adc為直流分量幅值,f1為被測信號頻率,P1為初始相位,fn為幹擾信號頻率。
在Adc=1.5,A1=3.1,A2=1.5,f1=6274.25,f2=2000.5,P1=-30,P2=90時,其時域波形如圖3所示,N點的Flat Top加窗操作即每個點對應乘以Flat Top窗函數,加窗後時域波形如圖4所示,FFT結果如圖5所示。原始信號的時域波形可與看出是4個信號的疊加,圖4加窗後減小了頻譜的洩露,該數據進行FFT計算後就可得到各頻率分量的幅度譜,如圖5所示。
得到FFT結果後,通過所述內差法可得到更精確的幅度值,優選地,所述內差法的公式為:
其中Aavr為最終計算恢復得到的幅度值,Aindex為FFT計算得幅度頻譜中幅度值最大點的值,Aindex±1為幅度值次大的點的幅度值,index為該點的標號,fres為頻率解析度。此時根據Flat top的頻譜特性可知被測信號頻率在該點的0.5bin內。
如圖6所示,計算得出被測信號附近的頻率解析度點分別為6250Hz、6347.6Hz,由Flat top窗的頻譜分析可以將這兩點間的幅度近似成線性關係,所以在這區間內的頻率點的幅度值可以用內差法得出。通過仿真計算,該方法得到的幅值Aavr=3.1008,且在整個解析度範圍內精確能達到0.05%。
在一優選的方案中,測頻模塊的波形調理電路如圖7所示,包括同比例放大電路、限幅電路、濾波放大電路、遲滯比較器;被測信號經過同比例放大電路,防止後級的限幅電路影響被測信號的幅值特性。隨後經過限幅電路將0.1~12V的信號限制在0.7V以下,再經過後級濾波放大後輸入遲滯比較器轉換成方波,此時信號幅值範圍滿足FPGA的IO輸入範圍,此時利用等精度測量模塊即可測量該信號的頻率值。