楊晉泓 范俊杰 周繼燁



摘要:該文闡述了以STM32F103C8T6為主控,以多級晶體管放大電路為主體的放大器非線性研究裝置的設計與實現。通過模擬開關選擇電阻阻值,改變靜態工作點,得到放大后無明顯失真與四類非線性失真的波形。通過采集放大后的信號電壓值,利用FFT算法得到諧波幅值,實現THD的計算,通過OLED顯示波形編號及THD值。
關鍵詞:非線性失真;AD電壓采集;FFT算法;THD
中圖分類號:TP393? ? ? ?文獻標識碼:A
文章編號:1009-3044(2021)14-0228-03
1 引言
由非線性元件,系統產生的失真不僅含有原有信號的頻率成分,而且產生了新的頻率分量,我們稱之為非線性失真;在實際生產中,為了分析信號特性,檢查改善信號傳輸設備的性能,都需要對失真這一參數進行測量研究[1];同時THD(總諧波失真)對于度量各類系統的性能也有著重要的影響,從而對于非線性失真和THD具有很大的研究意義。本文設計研究的放大器非線性研究裝置可通過切換不同模式顯示不同非線性失真波形以及FFT處理計算各波形的THD值,來達到研究非線性失真信號的目的。
2 系統總體方案設計
本系統總體框圖如圖1所示,矩陣鍵盤與OLED屏作為人機交互部分,用于切換顯示各工作電路模式;信號發生器輸出正弦信號,輸入至放大電路并由模擬開關選擇電阻阻值來改變靜態工作點,從而切換不同放大電路,控制不同的失真狀態,實現在示波器上顯示放大后的無明顯失真波形與4種非線性失真波形;STM32F103C8T6為主控芯片,通過12位AD端口分壓采樣,定時器采集輸出放大后的波形信號的電壓值,由STM32的DSP庫FFT算法對采集到的各諧波進行FFT變換并計算前五個諧波的幅值,來實現對各波形的THD值的精確計算,使其THD值在OLED屏幕上顯示。
3 系統硬件設計
硬件電路主要包括控制及其外圍電路、三級放大電路及推挽電路、ADC電壓轉換電路和模擬開關電路四部分組成。
3.1 三級放大電路
前三級放大電路通過使用模擬開關來選擇電阻阻值來改變,模擬開關按下后,可切換不同放大電路,通過對晶體管靜態工作點和電路放大倍數分析計算,改變靜態工作點和電壓放大倍數,從而實現放大后的無失真波形、頂部失真波形、底部失真波形、雙向失真波形。
三級放大電路如圖2所示。
(1)輸出無失真電路:R21阻值調整為300歐姆,R10為10K歐姆,R3為680歐姆,放大電路經計算晶體管放大器靜態工作點設置合理,不會產生任何失真,故此時電路為輸出為無失真電路。
(2)輸出頂部失真電路:R21阻值調整為300歐姆,R10為20K歐姆,R3為680歐姆,第三級放大電路靜態工作點拉高,導致頂部失真。
(3)輸出底部失真電路:R21阻值調整為150歐姆,R10為10K歐姆,R3為680歐姆,第一級放大電路靜態工作點拉低,導致底部失真。
(4)輸出雙向失真電路:R21阻值調整為150歐姆,R10為20K歐姆,R3為680歐姆,第一級放大電路靜態工作點拉低,第三級放大電路的靜態工作點拉高,導致正負半周部分晶體管分別產生了頂部失真和底部失真。
3.2 推挽電路、ADC電壓轉換電路
推挽電路、ADC電壓轉換電路如圖3所示,在電阻R19與電阻R20兩端做ADC采樣分壓電路,用來保護微控制器并將信號波形進行拉高,以符合微控制器的電壓轉換標準。Q4(PNP型)、Q7(NPN型)兩個三極管構成推挽電路,通過調整R3的電阻阻值,以形成交越失真。
輸出交越失真電路: R3為0歐姆,使推挽電路中PNP和NPN兩個三級管存在死區,即在一定范圍內不能導通且輸入電壓較低,三極管產生截止,導致交越失真。
3.3 模擬開關電路
模擬開關電路如圖4所示,采用模擬開關控制波形的轉換,由于使能端的數字信號噪音干擾會對信號波形產生影響,采用0Ω電容將數字信號與模擬信號隔離,使噪聲干擾得到抑制。
3.4 控制及其外圍電路
本系統以STM32F103C8T6為控制器,其使用的OLED屏、矩陣按鍵、ADC引腳、模擬開關控制端口,STM32單片機I0口分配如下表1:
4 系統軟件設計
4.1 STM32程序設計
本系統以STM32為主控制器。系統上電后初始化硬件設備,通過按鍵切換工作模式,進入相應工作模式,OLED顯示電路工作模式和相應波形信號的THD值;并通過定時器采集AD端口放大后的信號的電壓值,通過STM32的DSP庫FFT算法處理數據,計算各次諧波幅值,并計算各波形的THD值。
STM32主程序圖如圖5所示。
4.2 THD算法設計
通過STM32進行FFT變化并進行數據處理,首先使用定時器設置20KHZ采樣率,每次定時器采集一次信號通過AD端口進行一次ADC轉換,轉換完成后的數據由DMA自動搬運到內存指定位置,這個采樣過程無需CPU干預,提高了效率[2]。為了保證進行FFT之后的精確程度,通過DSP庫FFT算法選擇進行256點傅里葉變換,256點全部采樣完成后進入到DMA中斷,將數據處理完成后完成標志置為1再繼續轉換。
256點FFT變換后進行FFT算法處理,將完成的數據結果進行求模除以2處理,即計算出各頻率點上的諧波幅值,再存放到數組中找出前五次諧波幅值,代入公式可得THD值。
4.2.1 ADC采集
通過定時器采集ADC端口信號電壓值,由于基頻頻率為1KHZ,第五次諧波頻率為5KHZ,為了滿足采樣定理,所以采樣頻率必須大于10KHZ,則采樣頻率設置為20KHZ。對信號進行256點采樣FFT變換,則分辨率為78HZ,即設置定時器周期為0.005ms。
4.2.2 FFT算法及THD計算
定時器采集ADC電壓數據后,調用STM32的DSP庫中的256點FFT算法,完成數據的FFT變換,DSP轉換出的結果相當于一個復數,保存在32位數組中,其中16位實部,16位虛部;對輸出結果進行處理,去掉直流分量后,將實部和虛部求均方根后除以2即可得到各諧波幅值,再利用循環函數找出最大諧波幅值對應的頻率點,即為基波幅值,依次將此頻率點乘以2、3、4、5倍得到前五次的諧波幅值,再取統計平均后代入THD公式從而得到精確的THD值。THD算法流程圖如圖5所示。
5 結論
本文設計的放大器非線性研究裝置能夠手動通過按鍵來切換不同工作模式實現輸出不同放大非線性失真波形的功能,還具有能夠在OLED屏上實時顯示出當前輸出波形的THD值的功能,且系統具有規模小,輸出波形良好等優點,系統成本低,易于實現,容易投入研究與實驗。模塊化的設計,提高了實際應用中的靈活性。因此,該系統對于研究非線性失真有很大幫助。
參考文獻:
[1]潘潔,許朝暉,王一麗.信號非線性失真的測量技術[C].//中國電子學會.中國電子學會第十二屆全國青年學術年會論文匯編.2006:164-165,168.
[2] 謝志平.一種基于STM32F103C8T6單片機DSP庫的音樂頻譜[J].軟件,2020,41(4):200-202,228.
【通聯編輯:梁書】