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