王國慶,甄喆,袁毅,楊會龍,孫艷麗
(海軍航空大學,山東煙臺 264001)
目前測量波形失真度的儀器按原理主要分為基于基波抑制法的模擬式和基于頻譜分析法的數字式[1]。二者各有特點,其中基波抑制法對200 kHz 以內波形測試準確度較高,成本較低,但測試失真范圍和頻率范圍較窄,而且無法重構并顯示波形;基于頻譜分析法因需對信號進行模數轉換(ADC),頻率較高的信號測試精度受限于AD 采樣的上限頻率,誤差也與量化、采樣間隔的非均勻、非整周期采樣導致頻譜泄露等有關,且儀器價格昂貴[2]。針對以上信號失真度測量方法一種優缺點,該文設計一種基于MSP432 的波形分析及顯示系統。該系統采用頻譜分析法,利用MSP432 自帶ADC 具有高采樣率、高精度優勢,借助Matlab 仿真通過取前后多個值的均方根提高幅值精度,并根據頻率改變采樣率,減少非整周期采樣導致頻譜泄露,從而實現對任意周期信號的各諧波分量幅值進行高精度測量,計算失真度并重構波形進行顯示。
系統硬件結構主要包括MSP432 微處理器、模數轉換器(ADC)、電平轉換電路及滯回電壓比較器等部分。電平轉換電路將輸入信號電壓轉換成ADC支持的0~3.3 V 電壓,ADC 將待測試的模擬信號轉變成微處理器識別的數字信號,MSP432 微處理器主要進行FFT 變換、基波分量查找、諧波分量幅值計算,失真度計算及波形重構。滯回電壓比較器將輸入信號轉換成方波,由處理器進行頻率粗測量。
以MSP432P401R 微控器作為系統的主控與數據處理核心,允許最多32 個獨立的ADC 通道進行轉換并支持16 位量化(文中采用14 位量化),采樣精確度高,采用FFT 進行數據處理。同時MSP432 單片機的ADC 采樣時鐘由單片機內部的48 MHz 時鐘分頻得到,分頻系數是48、49、50 等整數,因此分頻系數為48 時有最高的采樣頻率1 MHz,基本滿足100 kHz 高頻率信號及其2、3、4、5 次諧波信號的采樣要求,可以采集幅度調理后的待分析波形信號。MSP432P401R 微控器自帶8 路串口,可以與計算機和迪文屏通信。
在輸入信號電壓峰峰值范圍10~600 mV,基波頻率為10 Hz~100 kHz 條件下,需要考慮MSP432 內部ADC 的測量信號單極性的特點和運算放大器的帶寬限制。由于該單片機集成的ADC 只能支持輸入0~3.3 V 電壓[3-6],因此需要在單片機之前加上放大電路和上拉電路,其目的就是將小幅度信號放大并把信號源輸出的雙極性信號變為單極性信號,確保MSP432 內部ADC 正常工作。選擇帶寬較大的AD8055AR 運算放大器,并通過設計負反饋環節展寬電路帶寬及提升帶負載能力[7-8]。仿真電路如圖1所示。

圖1 電平轉換仿真電路
集成運放的輸出電壓(AD8055AR 的6 腳)為Uo1與輸入電壓Ui(XFG1 的輸出端+)關系為:
運算放大后增加了一個電壓抬升電路,通過電壓源UDD與R1、R2組成的分壓電路與Uo1疊加,把信號的電壓抬升至Uo(XSC1 的A 端),保證其在ADC 合理范圍之內,從而實現正常測量。送至MSP432 內部ADC 的電壓Uo為:
在模數轉換完成后去掉抬高電平所用的直流分量,即可通過FFT 進行解算。
ADC 處理給后續的FFT 處理提供原始數據[9-11]。MSP432 內部帶4 點數的FFT 函數,該文在單次波形分析時,選擇處理1024 點連續采樣的數據。
當輸入信號頻率1 kHz,采樣率為2、4、8、16、32、64、128、256、512 kHz 時,取1 024 個采樣點做FFT時,這1 024 個采樣點正好對應著整數個周期的輸入信號,這種采樣率與頻率之間的關系,經過FFT 后,其基波及2、3、4、5 次諧波的位置比較準確,THD 的計算值也比較準確,但輸入信號頻率越高,采樣率如果不能相應地增高,誤差就會變大,因非整周期采樣導致頻譜泄露,經過FFT 后,基波與2、3、4、5 次諧波的位置與理論上的位置有偏差。
為了減小頻譜泄露導致的誤差,采取了兩種措施:1)取測量的基波和諧波位置的前后2 個點,共5 個點求其均方根作為該頻點的幅度,再利用失真度計算公式計算失真度;2)根據基波頻率,選擇較合適的采樣率,盡量減少由于非整周期采樣導致的頻譜泄露,這個過程需要額外測量出基波信號頻率。測量基波信號頻率可采用兩種方法:一種是用滯回比較器形成方波,再將方波接入單片機的數字口,用定時器設定時間,然后計算設定時間內方波的個數來換算出基波頻率;另一種方法是直接用640 kHz 采樣時鐘采集輸入信號,粗略計算基波頻率。
滯回比較器采用集成運放構成正反饋電路,通過與門限電壓1.65 V 進行比較,將輸入信號整形為方波信號,電路圖如圖2 所示。通過MSP432粗測該方波信號頻率,從而選擇合適的采樣率能夠獲得整數個周期信號,減少頻譜泄露[12-13]。同時還為FFT 變換后找到基波峰值及諧波分量峰值作參考,起到加快算法尋找基波與諧波峰值的輔助作用。

圖2 電壓比較器仿真電路
系統的信號采集、波形分析與數據顯示模塊基于MSP432 開發板和迪文屏開發實現,軟件工程文件由keil 開發環境編寫[14-16]。在keil 工程文件中,ADC、串口等都有例程。在配置ADC函數時,先設置分頻系數,用48 MHz 除以該分頻系數得到不同的采樣率(例如設置分頻系數為750時,得到采樣率為64 kHz),再設置每采集1 024 個數據點產生一次中斷,進行數據讀取與分析。在配置串口函數時,設置各個串口前置分頻器系數為26,使MSP432 單片機與計算機、迪文屏的串行波特率均為115 200 bps。
在main.c 函數中依流程進行如下操作:根據迪文屏輸出的數據協議,與迪文屏實時通信,響應迪文屏按鍵命令;響應ADC 數據準備好中斷,得到1 024點待分析數據;利用MSP432 自帶的FFT 庫函數,計算待分析數據的基頻以及2、3、4、5 次諧波幅度,得到待分析數據的基頻和諧波頻率位置坐標;根據基頻和諧波頻率位置坐標計算失真度、用計算出的各次諧波幅度,乘以理想的點頻信號,疊加后重構待分析波形;將失真度等結果數據、原始波形以及重構波形等送迪文屏顯示;程序調試過程中的測試數據通過串口送計算機等[17-18]。流程如圖3 所示。

圖3 軟件流程圖
由于輸入信號頻率范圍為10 Hz~100 kHz,并且采樣率要不低于基波信號頻率的10 倍,所以設計時,需要分段設置采樣率。在改變信號頻率和諧波參數時,可以通過在觸摸屏上設置按鍵來實現。在程序調試過程中,利用串口將不同節點的數據傳送給計算機,通過Matlab 軟件讀取數據,驗證每一步是否正確。
迪文屏也配有專門的上位機開發軟件DGUS Tool V7.388,該軟件設計用到“按鈕返回”、“數據變量顯示”、“動態曲線顯示”等功能,“按鈕返回”需要配置鍵值和變量地址,選擇數據自動上傳,配置完成后,點擊此處按鈕屏幕發送響應指令;“動態曲線顯示”功能稍微復雜,該設計專門編寫了動態曲線顯示函數,需要用到波形曲線數據,通道號、數據長度等參數,其中波形曲線數據用無符號16 位二進制數表示,占兩個字節,通道號、數據長度用無符號8 位表示,占一個字節。該設計中設置一個波形的總點數為180 點,而每個數據占用兩個字節,即一個波形的總點數占用360 字節,由于360 大于255,因此無法用一個無符號8 位來表示一個波形所占用的總字節數,在發送180 點波形數據時,分兩次發送,第一次發送100 點,發送時先向迪文屏發送16 進制指令,再發送200個字節的波形數據。第二次發送80點,發送時先向迪文屏發送16 進制指令,再發送80 個字節的波形數據。
在波形重構方面,基本思路:不管波形的基波頻率是多少,都要在迪文屏上顯示基波一個周期的完整時域波形。相應地,為了顯示比例一致,也要在迪文屏上顯示2 次諧波兩個周期的完整時域波形、3次諧波3 個周期的完整時域波形、4 次諧波4 個周期的完整時域波形以及5 次諧波5 個周期的完整時域波形。因此需要先在程序中存儲1-5 次諧波波形變量,每個變量180 點,對應著1-5 個周期的正弦波形,均由Matlab 程序生成。當計算出各次諧波系數后,用諧波系數加權相應的諧波波形變量,最后疊加在一起,完成重構波形,并送迪文屏顯示[17-18]。
通過Matlab 軟件模擬基波頻率、諧波幅度,設置采樣率,仿真基波和諧波的時域波形,用自帶的FFT函數計算信號的頻譜,排除直流分量后,用最大值函數找到了基波位置和幅度,并根據基波的位置預測2、3、4、5 次諧波的位置,找出其波形各諧波分量的電壓有效值,如圖4 所示。進而利用式(3)進行相關計算,最終輸出信號失真度。在Matlab 中對失真度標稱值THD0進行求解并記錄結果。

圖4 信號基波及諧波分量位置仿真
將設計的外圍電路與MSP432P401R 開發板及迪文屏進行連接如圖5 所示,信號源分別設置基波、多次諧波的頻率與幅值,產生的信號作為系統的輸入信號,輸出接到迪文液晶屏,多次改變基波、多次諧波的頻率與幅值,記錄顯示結果并與Matlab 仿真結果比較,如表1 所示。

表1 輸入諧波信號的MSP432實測諧波失真率

圖5 液晶顯示波形及失真度
根據實測結果可知,基于MSP432 的波形分析及量示系統實測值與Matlab 仿真結果接近,誤差很小,說明該系統能以較高的精度測量信號的諧波分量及失真度。
該文設計的波形分析及顯示系統可以實現電壓范圍10~600 mV,基波頻率10 Hz~100 kHz 的5 次內諧波值及失真度值測量與計算,且能夠重構波形。對電壓大于600 mV 的信號可使用電壓衰減電路處理后再輸入該系統。此外,該文所提的波形重構及針對頻譜泄露進行采樣分段可為失真度測量提供有益參考。