桂 丹,喻宗杰
(1.華中科技大學武漢光電國家研究中心,湖北 武漢 430074;2.武漢軟件工程職業學院電子工程學院,湖北 武漢 430205; 3.烽火通信科技股份有限公司,湖北 武漢 430205)
小信號放大電路是模擬電路中常見的設計電路,信號的放大效果直接影響電路的整體性能。因此,小信號經過放大后的信號失真度對于后續信號的采樣、數據處理等起著非常關鍵的作用。目前,小信號放大電路的常見設計包括單管放大電路、集成運算放大器和功率放大電路等。然而,模擬電路由于其信號弱,精度不夠,理論與實踐差距較大等問題,嚴重影響著信號的準確提取及應用[1]。尤其對于音頻信號,傳統的語音質量測量方法相對主觀,同時面臨成本高、開發周期長和測試過程繁瑣等困境。
在微電子與計算機領域,考慮到實用性、開發成本及便攜程度等因素,小信號放大電路一般是由放大元器件、模擬開關等基本元件的組合電路來實現,但因小信號的放大受頻率、幅值、噪聲、增益和阻抗等影響,容易形成性能干擾,造成最終放大后的信號完整性難以保證,導致信號失真程度不易判斷。晶體管放大器電路理論設計與仿真結果及實際測試指標常存在誤差,與實際電路元件特性非理想和分布參數導致寄生振蕩等問題相關[2]。
傳統檢測信號放大后失真程度的儀器,一方面存在體積較大、機身笨重等問題,在實驗室或機房等測試環境下還可以適應,一旦到戶外或測試環境受限的場所就困難重重。而且,針對不同的測試方法,還需配備頻譜儀、示波器等輔助測量工具,整體測量成本及空間占用問題不可忽略。另一方面繁瑣的儀器連接及分析過程,對專業度有一定的要求,那么,對于專業基礎相對欠缺的工作人員實用性會大打折扣[3]。因此,開發一種操作簡單、調節方便、一鍵式流程、獨立顯示、小型化的快速自動計算總諧波失真THD(Total Harmonic Distortion)度的裝置及配套軟件,實現小信號放大電路任意波形輸出的THD值自動識別及測量,對電路設計人員實時觀測電路實際狀況具有重要意義。
為高精度測量放大信號的失真度,本文采用快速傅里葉變換FFT(Fast Fourier Transform)算法,對放大后的信號進行模數轉換ADC(Analog-to-Digital Converter)并采樣。對輸入信號為1 kHz的小信號,以500 Hz為基準,提取256個離散點,然后利用離散傅里葉變換DFT(Discrete Fourier Transform)的共軛對稱性,最終以128個點為采集數據,進行FFT運算,在保證精度的同時,降低單片機的計算量和存儲空間,以保證測量系統快速地得出結果[4]。小信號放大電路的失真度測量系統以 stm32f103c6單片機為運算控制核心,實時識別并顯示當前輸出波形的類型及THD值,以便電路設計人員快速準確地判斷放大電路的信號狀態。經Multisim電路仿真,由虛擬失真度測試儀測量出當前放大電路的THD值,和小信號放大電路任意波形THD自動測量系統在OLED屏幕上實際顯示的結果進行對比,驗證了本文設計的小信號放大電路失真度測量系統的實測結果與電路仿真結果接近。
理想情況下,信號經過放大、傳輸等過程不會發生改變。但是,由于元件非理想、分布參數導致寄生振蕩及信道中各種干擾等,信號在實際中不可能理想放大和傳輸,多少會發生畸變,出現信號失真。信號失真分為線性失真和非線性失真。非線性失真也就是常說的諧波失真,信號經過非線性信道產生的新頻率分量,使得輸出信號的頻率不再是單一的原頻率,而是包含了二次、三次及多次諧波分量的頻率組合,這些多余出來的諧波成分與實際輸入信號的比值,通常被用來計算總諧波失真。對于音頻信號,這種失真對最終信號質量的影響非常大,也是衡量音頻電子產品設計優劣的重要指標。
從測量失真度的原理來講,根據測量過程中新頻率分量是直接還是間接得到,測量方法分別采用諧波分析法和基波剔除法。諧波分析法需要獲得各諧波分量的幅值,該方法利用頻譜分析方法選頻,可得出基波和各諧波分量,從而計算出失真度?;ㄌ蕹▌t通過選頻網絡(比如電橋、陷波網絡等)抑制基波,將其從整個信號中剔除,由原信號和基波抑制后的信號功率來計算出失真度。由于其測量過程中需提供無失真信號,測量范圍為1 Hz~1 MHz。而剔除基波的過程中還有噪聲存在,計算結果因此也會受到影響。對于低頻信號測量誤差達5%~30%,對于音頻信號來講,這種方法就不適用了[5]。而諧波分析法一般借助數字或模擬的方式選頻得到基波和各諧波的能量,利用離散傅里葉變換、諧波計算公式近似等方法,可快速計算出總諧波失真值。測量系統的性能主要取決于模擬信號到數字信號轉換的精度及數據處理算法的可靠程度。因此,諧波分析法的測量系統在設計時需綜合考慮以上指標來選擇合適的硬件及軟件。同時,諧波分析法由于其測量系統的硬件結構相對簡單,且計算速度快和精度高等優勢,已成為常用的信號失真度檢測方法。
小信號放大電路任意輸出波形全自動THD測量系統,以諧波分析法為理論基礎,結構上分為晶體管放大電路和單片機采樣計算2部分,如圖1所示。

Figure 1 Structure of the THD measurement system圖1 總諧波失真測量系統結構圖
理論上,任何連續測量的時域信號都可以表示為不同頻率的正弦波信號的無限疊加,以累加的方式來計算該信號中不同信號的頻率、振幅和相位??傊C波失真的定義:輸入為正弦信號時,其非線性失真表現為輸出信號中出現諧波分量,如果輸入電壓如式(1)所示:
ui=Uimcosωt
(1)
其中,ui為輸入瞬時電壓,Uim為輸入電壓最大值,ω為角頻率。
含有非線性失真的輸出交流電壓如式(2)所示:
uo=Uo1cos(ωt+φ1)+Uo2cos(2ωt+φ2)+
Uo3cos(3ωt+φ3)+…+Uoncos(nωt+φn)+L
(2)
其中,n為諧波分量的個數,Uo1~Uon為各諧波分量的電壓最大值,φ1~φ2為各諧波分量的初相,L為直流分量。
則有式(3):
(3)
為了方便計算,取前5次諧波,可得式(4):
(4)
因此,本文設計的全自動THD測量系統使用FFT算法來得到各諧波分量有效值,然后由二次、三次、四次和五次諧波分量均方根與基波的比值自動計算出放大電路的總諧波失真(THD)值[6]。
由于音頻放大器放大了人類聽到的信號,考慮到人類聽覺的心理聲學,人類通常無法檢測到失真度低于1%的信號,而失真度超過10%的信號又會有明顯的失真。人類的靈敏度取決于頻率,對高階失真也更敏感。通過訓練某些類型的失真,可以聽到一些低至0.3%的失真效應。也就是說,總諧波失真(THD)值越小,信道的非線性失真越小,信號就越純凈。同時,在設計音頻放大器時還需考慮成本,信號頻率是否低于人類聽覺閾值,權衡成本與收益。因此,一般設計音頻電子產品時THD值需小于或在1%附近,這個數值越小,表明該電子產品的品質越高。THD值在電子產品信號檢測方面具有非常重要的意義[7]。
理論分析和電路仿真表明,對于信號源輸出的1 kHz的正弦信號,總諧波失真的近似值越小,表示放大電路的信號失真測量越精準,THD基本在1%以內。對于信號源輸出的1 kHz的方波信號,總諧波失真的近似值大約是38.87%(前5次諧波計算的近似值)。現實中,被測信號是一個包含基波和各次諧波分量的周期失真正弦波,其表達式如式(5)所示:
(5)
其中,ω0為角頻率,A0~An為傅里葉系數,其傅里葉級數展開如式(6)所示:
(6)
(7)
將式(6)和式(7)代入式(4)可得:
(8)
從式(8)可知,通過對信號進行離散傅里葉變換 DFT,求各級傅里葉級數,得出信號在各階的諧波有效值,可計算出總諧波失真。本文進一步對離散傅里葉級數進行抽樣,利用快速傅里葉變換,在保證精度的前提下,加快計算速度?;诖死碚?,設計單片機的波形失真度測量程序,自動計算出多次諧波分量均方根與基波分量的比值,最終得出THD值。
測量放大電路失真度的系統主要包括2大部分:(1)由多級晶體管放大器、模擬開關和阻容元件組成的放大電路。為實現多種不同失真波形的識別與讀取,該部分包括了二級放大、三級放大等多級級聯電路,還包括推挽電路以形成無明顯失真、消底失真、消頂失真、雙向失真和交越失真5種常見輸出波形。(2)以stm32f103c6單片機為核心的測量部分。將小信號放大電路的輸出連接到stm32f103c6單片機的高頻ADC采樣進行FFT運算,準確提取離散點的有效值,并將計算后的結果在線顯示到OLED屏上。將信號輸出端引到示波器,實時顯示當前波形狀態??傊C波失真(THD)測量系統框圖如圖1所示。

Figure 2 Part circuit schematic diagram in transistor amplifier circuit圖2 晶體管放大電路部分電路原理圖
晶體管放大電路由模擬開關、晶體管和阻容元件等元件組合而成,通過合理設計電路,尤其是針對單管放大電路靜態工作點的設置,經過一級放大、二級放大和三級放大,實現輸入小信號(20 mV)到輸出峰峰值在2 V以上的輸出波形,滿足單片機ADC采樣基本需求。針對不同原因造成的失真,單片機進行高頻采樣并識別波形,在滿足精度要求的同時,減少了需要存儲的離散點數,提高了失真度測量系統的工作效率。部分電路原理圖如圖2所示。
晶體管放大電路的波形失真與靜態工作點設置、輸入信號幅值等因素相關,需要針對不同波形輸出需求進行相應設置。常見波形有5種,分別是無明顯失真、底部失真、頂部失真、雙向失真和交越失真。
(1) 無明顯失真。
無明顯失真的狀態為:靜態工作點設置合理,三極管工作在放大狀態。設置步驟為:調節二級放大三極管基極與地之間的電阻大小,使發射結正向偏置,集電結反向偏置三極管處于放大工作狀態,出現無明顯失真波形。
(2) 底部失真。
底部失真的狀態為:靜態工作點偏高,三極管工作在飽和狀態,輸入信號負半周正常放大,正半周畸變。設置步驟為:調節二級放大三極管基極與地之間的電阻大小,使發射結正向偏置,集電結正向偏置三極管處于飽和工作狀態。輸出波形負半周畸變,正半周正常放大,出現底部失真波形,
(3) 頂部失真。
頂部失真的狀態為:靜態工作點偏低,三極管工作在截止狀態,輸入信號負半周畸變,正半周正常放大。設置步驟為:調節二級放大三極管基極與地之間的電阻大小,使發射結反向偏置。三極管處于截止狀態。輸出波形出現負半周正常放大,正半周畸變,出現頂部失真波形。
(4) 雙向失真。
雙向失真的狀態為:靜態工作點設置合理,但輸入信號幅值較大,三極管既有飽和狀態也有截止狀態。設置步驟為:調節放大器處于二級放大或三級放大,達到較高的放大倍數,出現雙向失真。
(5) 交越失真。
交越失真的狀態為:交越失真與三極管的導通電壓相關,輸入電壓較小,低于晶體管門限電壓,導致三極管截止。設置合適的靜態工作點,三極管處于微導通。利用二極管和電阻的壓降產生偏執電壓是解決交越失真較為常用的方法。設置步驟為:通過調節繼電器短接功率放大器2個三極管基極,出現交越失真。
總諧波失真THD是衡量線性放大器非線性失真程度的常用手段,其非線性失真表現為輸出信號中出現諧波分量?,F實中有硬件和軟件2種方式實現THD值的自動測量。
從硬件角度來實現時,輸出波形的一路信號經陷波電路濾除基波分量,有效值檢波后送入單片機內部的ADC采樣得有效波X1,另一路信號直接通過有效值檢波送入單片機內部的ADC采樣,所得有效波為X2,采樣得到的2個有效值比值即為諧波失真率,即THD=X1/X2。

Figure 3 Matlab simulation diagram of FFT operation圖3 FFT運算的Matlab仿真圖

Figure 4 Simulation waveform of a circuit without significant distortion圖4 無明顯失真電路仿真波形
從軟件角度來實現時,單片機對采集到的波形進行ADC采樣和FFT運算,取每階的有效值,共取5階,對第2階到第5階的有效值即Uo2~Uo5進行均方根運算,其結果與基波諧波分量Uo1的比值即為總諧波失真值。本文采用軟件實現的方法,不僅電路簡潔,方便調試,而且成本也低。
本文利用單片機stm32f103c6進行信號采集及運算,放大后的波形經ADC高頻采樣,此時的采樣點數可以是1 024,512和256等,出于對系統成本、單片機運算量、存儲空間及效率等多方考慮,本文以1 kHz為基準,提取256個離散點,利用離散傅里葉變換的共軛對稱特性,最終采樣128個點,進行快速傅里葉運算,得到各諧波分量有效值。提取前5次諧波分量值Uo2~Uo5的有效值進行均方根運算,并以該結果與Uo1的比值作為THD值[8]。在終端配合OLED屏幕,在線顯示當前計算結果,實時讀出當前狀態下波形的失真度并告知失真波形類型,便于電路設計人員準確判斷信號狀態。
在進行仿真測量之前,先以Matlab仿真驗證FFT運算的正確性。在0~1 200 Hz內,擬提取0 Hz,200 Hz,800 Hz和1 000 Hz的諧波分量,如果結果在對應位置提取,則FFT運算程序設計正確,如果不在或偏差較大,則表示程序設計有誤,Matlab仿真結果如圖3所示。由圖3可知,提取位置準確,可依此進行諧波分量的均方根運算,并由該結果與基波的比值計算出THD值。
將虛擬仿真測試儀器連接到小信號放大電路的各級,設置輸入正弦波的峰峰值為20 mV,頻率為1 kHz,虛擬示波器接信號輸出端,并同時引出失真度測試儀,實時讀取THD值。與實際設計的小信號放大電路THD自動測量系統的顯示結果進行對比,得出信號失真度測量的準確程度,以判斷小信號放大電路的設計合理性和單片機FFT運算的準確度。虛擬仿真測量的所有波形如圖4~圖8所示。

Figure 5 Simulation waveform of a circuit with bottom distortion圖5 底部失真電路仿真波形

Figure 6 Simulation waveform of a circuit with top distortion圖6 頂部失真電路仿真波形

Figure 7 Simulation waveform of a circuit with bidirectional distortion圖7 雙向失真電路仿真波形

Figure 8 Simulation waveform of a circuit with crossover distortion圖8 交越失真電路仿真波形
從圖4~圖8可以看出,無明顯失真波形,也就是常說的正常波形,其理想情況下的THD值在1%附近,頂部失真波形和底部失真波形的THD值約為10%,交越失真波形的THD值在20%左右,而雙向失真波形的失真度受輸入信號影響較大,其THD值的范圍也較大。
本節以正常波形(無失真波形)為例,給出實物測試結果,如圖9所示。信號發生器輸入頻率為1 kHz,峰峰值為20 mVpp的正弦波至小信號放大電路,測量系統的按鍵切換到1號位置(圖9板卡左側位置),單片機自動計算出THD值并顯示到OLED屏上。

Figure 9 Physical test diagram of normal waveform THD value圖9 正常波形THD值實物測試圖
將開關撥至2,輸入信號設置為2Vpp,改變電路結構。原電路結構為:輸入小信號經過放大電路,得到的結果輸入單片機進行采樣及計算。改變后的電路結構為:輸入信號直接輸入到單片機進行采樣及計算。環路測試的目的是為了驗證小信號放大電路THD測量系統的準確性。測量系統正常工作情況,開關直接撥至1即可。經正弦波、三角波和方波測試,小信號放大電路實測的THD值分別為1.351%,10.899%和42.902%,如圖10所示。與仿真電路測試結果接近,方波情況稍有差異,將在誤差分析部分具體描述[9,10]。

Figure 10 THD test results of three waveforms圖10 3種波形的THD測試結果
電路經過晶體管放大電路和直接接入單片機2種情況下,下面分別進行FFT運算的結果對比:
正弦波的失真度分別為1.351% 和0.739%;三角波的失真度分別為10.406%和11.201%;方波的失真度分別為42.002%和38.412%。此結果表明,晶體管放大電路放大小信號過程中,存在一定程度誤差,但是誤差范圍在0.1%左右,可滿足普通電子產品關于信號失真度測量的基本要求,能夠作為測試儀器提供商業應用。需要說明的是,對于方波,由于方波是取前5次諧波分量的計算結果,為38.412%。如果是取前7次計算結果,THD值約為42%,與小信號放大電路失真度測量結果的42.002%幾乎無差。此結果與FFT運算取的階數越多,精度越高,結果越接近理論值??梢姡藴y量系統可高精度地自動計算出任意輸出波形的總諧波失真。操作簡便,顯示清晰,誤差可控,系統性能指標良好[11,12]。
小信號放大電路任意波形THD全自動測量系統,通過對低頻小信號進行電壓放大、高頻ADC采樣和FFT運算提取各諧波分量的有效值等操作,實現高精度快速波形識別和THD值測量。經Multisim仿真及實物測試表明,以晶體管、模擬開關等放大電路組成的小信號放大電路,電路理論設計完整,放大倍數可控,精確度高,較集成運算放大器組成的放大電路具有更好的可調控性;以stm32f103c6單片機為核心的全自動波形識別及THD測量系統,高效實時,利用離散傅里葉變換的共軛對稱性,以快速傅里葉變換將信號采集量從1 024降低到128,在幾乎不影響波形檢測精度的情況下,有效減少了存儲壓力和計算量。測量系統識別準確,總諧波失真計算值與環路測試結果接近,誤差在1%以內,滿足高精度失真度測試儀器標準。體積小便攜,一鍵式設計使操作簡單,顯示清晰,具備良好的實用價值。