劉歡,沈陽,曹洪奎
(1.遼寧工業大學 電子與信息工程學院,遼寧錦州,121000;2.遼寧工業大學 理學院,遼寧錦州,121000)
總諧波失真作為信號的重要參數被廣泛應用于音頻、無線電和電力系統的測量和測試中。目前普遍應用的以基波抑制法為原理的THD 測量儀,由于受到基波抑制網絡的限制,會導致較大的測量誤差。因此,設計一種可以精確測量THD 等各項指標的低頻信號失真度測量儀具有十分重要的現實意義。目前,用于失真度測量的儀器種類繁多,大多數失真度計的設計方法都采用基波消去法或頻譜分析法(快速傅里葉變換法)。兩種方法都有各自的優點,但以基波消去法為原理做成的失真度計精度不高,只能達到一般儀器的精度的5%,快速傅里葉變換雖然這種方法的準確度很高但其抗干擾能力較差,現場應用效果不理想。失真度測量儀用途廣泛,大量使用在在音頻和低頻設備或系統中,例如麥克風、音響。電力系統中,理想供電采用純正弦交流電,但由于諧波干擾等影響,電力系統也需要測試信號的失真度。失真度計除了用于上述領域外,在電子產品的生產和測試中也起著極其重要的作用。當今正處通信電子時代,通信電子技術飛速發展,在通信系統的實現和電子產品的設計過程中,應用了越來越多的先進技術。為此,對在設計、生產和檢測中都起著重要作用的失真度計的性能和精度要求也越來越高。
本論文采用一種基于FFT 的諧波分析方法來設計一種低頻信號失真度測量儀。研究被測電壓信號偏離正弦波的程度,完成對被測電壓信號的頻率、幅值、波形和THD 值等參數進行采集、分析和顯示等功能。編制系統軟件實現信號采集、FFT 運算、THD 計算和幅值計算等功能程序。
本文設計的低頻信號失真度測量儀,主要由主控電路、信號調理電路、頻率測量電路、OLED 顯示電路、按鍵電路和電源電路這六部分構成。系結構框圖如圖1 所示。

圖1 低頻信號失真度測量儀結構框圖
系統以STM32 微控制器為核心,其中頻率測量電路將被測信號轉換為脈沖信號,經STM32 微控制器處理后可得到被測信號的頻率。信號調理電路將被測信號由雙極性轉化為可由微控制器采集的單極性信號,通過STM32 微控制器自帶的12 位ADC 和DMA 完成信號的高速采集,得到的數據由STM32 微控制器進行FFT 運算并分析得到各點模值,再由頻率得到基波和各次諧波幅值。根據THD 的定義取7次諧波進行THD 運算得到被測信號的THD 值。系統通過OLED 顯示模塊實時顯示被測信號的THD 值、波形、頻率和峰峰值等信息。
系統采用ST 公司的STM32F103VET6 微控制器,該微控制器內部包含三個獨立ADC 通道、2 個DMA 控制器、3個USART 接口、2 個I2C 接口以及多達37 個通用IO 口等等,運行頻率高達72MHz,片上資源豐富,存儲空間大,串口資源豐富。功耗很低,數據處理極快并且支持在線編程與數據仿真。
ST 公司的32 位微控制器STM32F103VET6 其內部集成的12 位高速ADC 加DMA。STM32F103VET6微控制器內部具有512K 的FLSAH 存儲芯片、三個獨立ADC 通道和2 個DMA,可以說,STM32 微控制器的ADC 是一個非常強大且靈活的外設,它不僅有著大量的通道,同時具備良好的精度。STM32 微控制器的ADC 屬于SAR 型(逐次逼近型),在多個通道同時轉換的場合下常采用ADC+DMA 實現軟件編程,可以大大提高系統運行效率。
信號調理電路將被測信號由雙極性轉化為可由微控制器采集的單極性信號,該信號由STM32 微控制器自帶的12位高速AD 采樣,采樣得到的數據由STM32 微控制器進行FFT 運算并分析,即可得到各點模值,再由頻率得到基波和各次諧波幅值。根據THD 的定義取7 次諧波進行THD 運算得到被測信號的THD 值。
由于被測輸入信號為雙極性信號,單片機A/D 采集信號只能采集0V 以上的單極性信號,可采用求和電路實現雙極性向單極性的轉換,將被測輸入信號加上一個由ADR1581 提供精確的1.25 V 輸出電壓之后抬升到0V 以上供單片機采集。信號調理電路圖如圖2 所示。

圖2 信號調理電路圖
頻率測量電路的主要作用是產生與被測信號頻率、相位一致的脈沖信號,利用STM32 微控制器自帶的通用定時器定時捕獲該脈沖信號的上升沿,設置CNT 以1MHz 進行計數,然后定時器定時捕獲該脈沖信號的下降沿,兩者相減就是被測信號的脈沖寬度,單片機經過處理后可得到被測信號的頻率。
采用比較器芯片LM393 對被測信號進行過零比較,主要作用是產生與被測信號頻率、相位一致的脈沖信號。頻率測量電路圖如圖3 所示,LM358 輸出與被測信號頻率、相位一致的脈沖信號給到STM32 微控制器的PA0 引腳,由STM32 微控制器采集并處理后得到被測信號的頻率值。

圖3 頻率測量電路圖
本設計顯示屏采用0.96 寸的OLED 顯示模塊,此款顯示模塊分辨率128×64,具有自發光的特性,無需背光,只要有電流通過時,OLED 顯示屏就會發光,而且OLED 顯示屏幕可視角度大,并且功耗極低。
選用的LM2576 降壓開關穩壓器是美國國家半導體公司生產的單片集成電路,主要作用就是為了給低頻信號失真度測量儀各電路中的不同的芯片提供適合的供電電壓。LM2576 芯片內部包含52kHz 振蕩器、1.23V 基準穩壓電路,同時輸出開關包括逐周期電流限制,以及可以在故障條件下進行全保護的熱關斷功能。
本系統采用了一種基于FFT 的諧波分析方法,相比于傳統低頻信號失真度測量儀,此方法精度更高。系統分兩路對信號進行頻率測量和信號采集,一路是通過比較器將被測信號轉換為脈沖信號進行頻率測量,通過定時器捕獲第一次上升沿和下降沿得到脈沖寬度,進而計算頻率;根據采樣定理,對另一路進行諧波分析,通過STM32 微控制器自帶的12 位ADC 和DMA 完成信號的高速采集,得到的數據由STM32 微控制器進行FFT 運算并分析得到各采樣點模值。通過頻率和采樣頻率得到基波和3、5、7 次諧波幅值,根據THD 的定義進行運算得到被測信號的THD 值。
信號采集程序設計是系統程序運行中最為關鍵的部分。通過ADC 采樣被測信號并進行FFT 運算分析。采用ADC+DMA+定時器觸發的方式,由定時器定時觸發AD轉換,通過DMA 將采集的數據會直接被存儲在用戶自定義的內存單元中,當每次采集完1024 個點的采樣數據后,才會被再一次傳輸到用戶自定義內存單元。信號采集分析轉換程序流程圖如圖4 所示。

圖4 信號采集分析程序流程圖
信號經過模數轉換器之后進行FFT 運算,這里系統對運算數據采用倒位序輸入,正序輸出的方式,對蝶形運算單元采取順序調用方式,可以采用64 點、256 點和1024 點三種不同的FFT 運算,本設計選用的STM32VET6 內部包含512K 的FLSAH 存儲芯片,存儲空間完全滿足要求,在不考慮耗時的情況下,采樣點越多FFT 運算越準確,所以采用1024 點。
獲取ADC 采樣結果和FFT 分析的程序代碼如下:
低頻信號失真度測量儀可以測量頻率范圍在20Hz~1kHz 不同波形的被測信號,選用1024 點FFT 運算,分辨率為10Hz,根據THD 的定義公式進行THD 運算采集7 次諧波幅值就可以得到被測信號的THD 值。系統測試圖如圖5 和圖6 所示。

圖5 信號參數測量圖

圖6 系統THD 與波形顯示測試
從不同波形的被測信號選取兩端最高最低的頻率和中間三個頻率點的THD 測量結果為比較依據,列出如表1 所示。

表1 THD功能測試分析結果
如表1 所示,顯示的是使用低頻信號失真度測量儀測量的THD 值和理論計算值之間的對比,根據測試結果分析顯示,被測信號THD 值測試和理論值的誤差均小于3%,且THD 測量穩定,符合設計要求。
根據對各功能測試結果分析,本系統裝置可以測量任意波形、頻率范圍在20Hz~1kHz 信號的THD 值,通過按鍵電路控制OLED 顯示電路實時顯示被測信號的頻率、峰峰值、波形和THD 值等信息,測量誤差小于3%,各部分功能均達到指標,能夠很好地實現顯示被測信號偏移正弦波的程度。