
很多人第一次把示波器探頭接到功放輸出端時(shí)都會(huì)愣一下示波器屏幕上出現(xiàn)的波形和電路圖里“漂亮”的正弦波往往對不上。削波、振鈴、邊緣圓角、過零臺(tái)階、低頻傾斜、交越失真……花樣百出的波形其實(shí)不是示波器壞了而是信號源、負(fù)載和功放本身疊加在一起的結(jié)果。對于做音頻 DIY、功放調(diào)試或音頻系統(tǒng)維護(hù)的工程師來說示波器最大的價(jià)值不是告訴你“聲音好不好聽”而是告訴你“系統(tǒng)在哪里偏離了理想的放大幅度——以及為什么偏離”。這篇文章想給出一個(gè)明確的方法論先搞清楚聲音信號在時(shí)域上的基本特征再理解功放改變波形的幾類機(jī)制然后根據(jù)示波器上的波形形態(tài)一步步縮小問題范圍。讀完你會(huì)得到一套可以直接上手的思路如何準(zhǔn)備測試信號、如何設(shè)置示波器、如何判斷功放輸出是否正常、以及在遇到異常波形時(shí)優(yōu)先排查哪里。1. 為什么要把示波器接在功放輸出端音頻波形能告訴我們什么很多剛接觸音頻硬件的人會(huì)有一個(gè)疑問功放好不好直接聽不就行了為什么要用示波器看波形這個(gè)問題的答案在于人耳對很多失真并不敏感或者說很容易被非聽覺因素干擾。聲音開到很大時(shí)喇叭發(fā)出“破音”你可能會(huì)認(rèn)為是功放不行但很多情況下是輸入信號已經(jīng)削波功放只是忠實(shí)地把削波后的信號放大了。此時(shí)如果你只看功放電路本身怎么改都找不到問題。示波器能把“信號在哪一環(huán)開始變形”這件事拆開來看。從示波器測量中我們能獲得三類信息第一類是信號的形態(tài)變化。輸入一個(gè)標(biāo)準(zhǔn)的正弦波功放輸出端應(yīng)該還是大致相同的正弦波只是幅度放大、相位可能翻轉(zhuǎn)。如果輸出變成了削平的梯形波或者在過零附近出現(xiàn)臺(tái)階說明信號在功放這一級被“處理”過了。第二步是幅度信息。輸入信號的峰峰值是多少輸出信號的峰峰值是多少兩者的比值就是增益。通過觀察輸出電壓與電源電壓的關(guān)系可以判斷功放是否接近電源軌、是否處于削波邊緣。第三類是瞬態(tài)信息。方波邊沿是否陡峭、是否振蕩、是否傾斜反映了放大器的帶寬、相位裕度和低頻響應(yīng)。這里有一個(gè)容易踩的誤區(qū)示波器不是音頻分析儀。例如一個(gè)功放的總諧波失真在萬分之幾以下在示波器時(shí)域波形上根本看不出差別而音頻分析儀可以通過頻譜分析看到微小諧波。示波器適合觀察的是大幅度的、定性的波形異常而不是微小的 THD 數(shù)值測量。所以一個(gè)更務(wù)實(shí)的判斷是示波器不會(huì)替你判斷“哪種聲音更好聽”但它能幫你確認(rèn)“哪種波形已經(jīng)不再符合理想放大的要求”。當(dāng)波形開始“花樣百出”時(shí)背后一定有具體的電路原因這正是我們接下來要排查的。2. 看懂基礎(chǔ)波形時(shí)域、頻域與音頻信號的基本概念在看功放波形之前需要先統(tǒng)一幾個(gè)概念。波形圖是信號電壓隨時(shí)間變化的曲線橫軸是時(shí)間縱軸是電壓。聲音信號本質(zhì)上是一個(gè)隨時(shí)間變化的電壓值所以示波器是觀察音頻信號最直接的儀器。提到音頻波形常見的幾種基礎(chǔ)信號包括正弦波是所有純音的“原子結(jié)構(gòu)”。一個(gè)理想的正弦波只有一個(gè)頻率分量例如 1kHz 正弦波只包含 1kHz 的能量。在測試功放時(shí)正弦波是最基本的診斷信號因?yàn)樗牟ㄐ涡螤钭钪庇^任何一點(diǎn)點(diǎn)非線性失真都會(huì)讓波形“變形”。方波是另一種重要的測試信號。一個(gè) 1kHz 方波雖然聽起來仍然像是一種音調(diào)但它實(shí)際上包含基頻和一系列奇次諧波。理想方波的邊沿是垂直的這意味著方波中含有非常高的頻率分量。正因?yàn)槿绱朔讲梢杂脕頇z驗(yàn)功放的帶寬和瞬態(tài)響應(yīng)如果功放的高頻響應(yīng)不足方波邊沿會(huì)變圓如果低頻響應(yīng)不足方波頂部會(huì)傾斜。三角波和鋸齒波在音頻測試中相對少見但常出現(xiàn)在信號發(fā)生器中可以用來觀察非線性失真和對稱性。實(shí)際音樂信號則是最復(fù)雜的波形它沒有固定頻率幅度變化大直接用來做定性檢查還可以但難以定量判斷。在工程上我們還需要把時(shí)域和頻域分開思考。示波器默認(rèn)看到的是時(shí)域波形電壓隨時(shí)間的變化。但人耳聽到的其實(shí)是頻域信息不同頻率分量的組合。示波器上看到一個(gè)看似正常的波形背后可能已經(jīng)有若干頻率分量發(fā)生了改變。因此當(dāng)波形出現(xiàn)異常時(shí)我們通常會(huì)先用時(shí)域形態(tài)定方向再用頻譜分析確認(rèn)細(xì)節(jié)。對于幅度有幾個(gè)關(guān)鍵概念要分清楚。峰峰值 Vpp 是波形最高點(diǎn)到最低點(diǎn)的電壓差峰值 Vp 是最高點(diǎn)相對零線的電壓真正的有效值 Vrms 才是做功發(fā)熱和功率計(jì)算的依據(jù)。對于理想正弦波Vrms 等于 Vpp 除以 2 再除以根號 2約為 Vpp 的 0.3535 倍。如果使用的是真有效值數(shù)字萬用表測量功放輸出端電壓會(huì)更準(zhǔn)確。在觀察功率放大器的輸出時(shí)波形形態(tài)和功率之間也有關(guān)系。以一只 8Ω 的負(fù)載為例如果需要輸出 20W 有效值功率那么有效值電壓應(yīng)約為根號下20W × 8Ω也就是約 12.65Vrms對應(yīng)正弦波峰峰值約 35.8Vpp。這個(gè)計(jì)算在日常調(diào)試中非常實(shí)用可以避免在測試中盲目開大音量把喇叭或假負(fù)載燒掉。3. 功放為什么會(huì)“改”波形正常放大的邊界在哪里功放的本質(zhì)是一個(gè)線性電壓放大或電流放大級。所謂線性是指輸出波形與輸入波形形狀保持一致只是幅度被放大相位可能發(fā)生翻轉(zhuǎn)。理想情況下輸入一個(gè)正弦波輸出也應(yīng)該是一個(gè)形狀相同的正弦波輸入一個(gè)方波輸出也應(yīng)該接近方波。但在真實(shí)電路中功放會(huì)以多種方式改變波形。理解這些改變機(jī)制是后續(xù)波形判斷的基礎(chǔ)。第一種改變是幅度飽和也就是削波。功放的輸出電壓被電源電壓限制。如果輸入信號過大或增益設(shè)置過高輸出電壓達(dá)到電源軌后無法繼續(xù)上升波形的頂部和底部會(huì)被“削平”從正弦波變成梯形波。削波會(huì)產(chǎn)生豐富的諧波聽感上是明顯的破音或失真。削波不一定只由功放引起前置放大器、音源輸出級同樣可能先削波。第二種改變是頻率響應(yīng)造成的波形整形。任何功放都有帶寬限制低頻和高頻增益不可能完全相同。方波中包含從低頻到高頻的大量諧波如果功放的低頻響應(yīng)不足方波中的低頻分量會(huì)被衰減波形頂部會(huì)向下傾斜如果高頻響應(yīng)不足方波的諧波中高頻部分被衰減方波的上升沿和下降沿會(huì)變圓。所以測量方波比測量正弦波更容易暴露帶寬問題。第三種改變是非線性失真其中最典型的是交越失真。AB 類功放的兩個(gè)輸出管分別負(fù)責(zé)正半周和負(fù)半周放大。如果靜態(tài)偏置電流太小輸出管在信號過零的瞬間沒有及時(shí)導(dǎo)通波形會(huì)在零線附近出現(xiàn)一段“停滯”或臺(tái)階。這種失真在小信號時(shí)尤其明顯因?yàn)樾盘柗刃∵^零附近的臺(tái)階占整個(gè)波形的比例更大。交越失真讓聲音聽起來發(fā)破、干澀尤其在小音量下非常明顯。第四種改變是瞬態(tài)過沖和振鈴。功放是一個(gè)閉環(huán)反饋系統(tǒng)如果相位裕度不足在方波階躍時(shí)會(huì)產(chǎn)生過沖甚至衰減振蕩。方波邊沿出現(xiàn)振鈴?fù)f明功放的穩(wěn)定性設(shè)計(jì)存在問題也可能只是測量方式不對——探頭地線過長、示波器帶寬限制設(shè)置不當(dāng)都可能造成類似假象。第五種改變是電源紋波和噪聲的疊加。功放的電源如果濾波不足輸出波形上會(huì)疊加與工頻相關(guān)的波紋如果地線布局不好也可能引入高頻噪聲。在示波器上看到的輸出波形不再是一條纖細(xì)的線條而會(huì)變成帶有“毛刺”或周期性波紋的帶狀。功放正常放大和異常變形之間并沒有一條絕對清晰的界線。更穩(wěn)妥的判斷方法是先用一個(gè)已知良好的輸入信號分別測量功放輸入和輸出端波形通過對比來定位變形發(fā)生在哪一級。4. 示波器設(shè)置與測量準(zhǔn)備先別急著判斷拿到示波器就接上探頭直接看波形是最容易誤判的開局。觀察音頻信號前有幾項(xiàng)設(shè)置和準(zhǔn)備工作需要花幾分鐘確認(rèn)。首先是探頭衰減比例。示波器探頭通常有 1× 和 10× 兩個(gè)檔位。10× 檔位會(huì)把輸入信號衰減為原來的十分之一同時(shí)提高輸入阻抗對被測電路的影響更小。測量功放輸出時(shí)由于輸出電壓往往較高建議使用 10× 檔位。需要注意的是示波器通道設(shè)置里的探頭衰減比例也必須同步設(shè)為 10×否則示波器顯示的電壓幅度會(huì)相差十倍。很多初學(xué)者在這個(gè)環(huán)節(jié)踩坑誤以為功放增益異常。如果示波器支持探頭補(bǔ)償校準(zhǔn)在測量前應(yīng)把探頭接到示波器自帶的 1kHz 方波校準(zhǔn)端調(diào)整探頭上的補(bǔ)償電容使屏幕上方波邊沿平直、頂部不圓也不過沖。探頭補(bǔ)償不正確時(shí)即使測量一個(gè)標(biāo)準(zhǔn)方波也會(huì)看到邊緣圓角或明顯過沖這些會(huì)被誤判成功放問題。其次是輸入耦合方式。查看音頻信號主體時(shí)一般選擇 AC 耦合這樣可以隔掉信號中的直流偏置把波形放在屏幕中間觀察。但如果需要查看功放輸出端是否存在直流偏移故障就要切換到 DC 耦合。例如輸出級中點(diǎn)電壓漂移可能造成喇叭保護(hù)電路動(dòng)作這個(gè)直流成分在 AC 耦合下是看不到的。再次是時(shí)基設(shè)置。觀察波形時(shí)屏幕上最好顯示 2 到 5 個(gè)完整的波形周期這樣既能看出波形輪廓又不會(huì)因?yàn)橹芷谔賹?dǎo)致細(xì)節(jié)不明顯。以下表格可以作為參考測試頻率周期建議時(shí)基范圍20 Hz50 ms10 ms/div ~ 25 ms/div100 Hz10 ms2 ms/div ~ 5 ms/div1 kHz1 ms0.2 ms/div ~ 0.5 ms/div10 kHz0.1 ms20 us/div ~ 50 us/div20 kHz0.05 ms10 us/div ~ 25 us/div觸發(fā)方式通常使用邊沿觸發(fā)觸發(fā)源選擇輸入信號所在的通道觸發(fā)電平設(shè)置在波形幅度的中間附近。如果使用音樂信號作為測試源波形復(fù)雜且不定長觸發(fā)會(huì)比較不穩(wěn)定這也是建議使用正弦波和方波作為測試源的原因之一。數(shù)字示波器的采樣率也值得注意。如果想分辨高頻振鈴或比較陡的方波邊沿需要確保采樣率足夠高。適當(dāng)開啟峰值檢測或余暉功能可以幫助觀察偶發(fā)毛刺和信號抖動(dòng)。一般來說觀察 20kHz 以內(nèi)的音頻信號大多數(shù)示波器都能勝任但觀察功放是否產(chǎn)生幾 MHz 的高頻自激振蕩時(shí)就需要考慮示波器本身的模擬帶寬。常見的誤區(qū)是示波器標(biāo)稱帶寬 100MHz并不意味著能準(zhǔn)確測量 100MHz 的峰峰值測量高頻振蕩時(shí)帶寬越高的示波器越能反映真實(shí)幅度。最后要強(qiáng)調(diào)的是安全準(zhǔn)備。功放輸出端的電壓可能很高測試前應(yīng)確認(rèn)被測電路的具體工作電壓示波器探頭和輸入通道是否滿足峰值電壓要求。功放的負(fù)載喇叭最好換成額定功率足夠的大功率電阻假負(fù)載這樣既避免噪音干擾測試又避免在長時(shí)間測試中燒毀喇叭。整個(gè)測試過程中音量應(yīng)從最小位置開始緩慢增大這是必須養(yǎng)成的操作習(xí)慣。5. 花樣百出的波形——常見形態(tài)與對應(yīng)的工程含義當(dāng)準(zhǔn)備工作做完開始給功放輸入穩(wěn)定的測試信號時(shí)常見的波形異常就會(huì)陸續(xù)出現(xiàn)。這里整理幾種典型的“花樣”把它們與可能的電路原因?qū)?yīng)起來。5.1 正弦波頂部和底部被切平這是最容易識(shí)別的削波形態(tài)。輸入 1kHz 正弦波慢慢調(diào)大音量輸出波形幅度增大到一定程度后頂和底不再增長而是變成平整的截?cái)?。出現(xiàn)這一現(xiàn)象時(shí)先算一下當(dāng)前輸出有效值電壓對應(yīng)的功率是否接近功放額定功率。如果輸出功率遠(yuǎn)小于額定值就已經(jīng)削波說明電源電壓不足、功放增益異?;蜉斎胄盘栆呀?jīng)被前級削波。用雙通道同時(shí)觀察功放輸入和輸出就能快速判斷削波源頭。如果輸入波形已經(jīng)削平問題在前級如果輸入波形還非常圓潤而輸出波形被削平問題集中在功放電源或輸出級。5.2 過零附近的交越失真臺(tái)階把正弦波音量調(diào)小讓輸出幅度比較低再看波形過零附近如果波形并不是平滑過渡而是在零線附近出現(xiàn)一段短暫的近似水平線段或者看起來像被“捏扁”了一小塊這就是典型的交越失真信號特征。它往往在低音量、小信號時(shí)更明顯因?yàn)檩敵龉芷秒娏鞑蛔銜r(shí)小電流區(qū)域正好落在非線性段內(nèi)。排查方向是檢查功放輸出級的靜態(tài)偏置電流而不是先懷疑耦合電容或電源。5.3 方波頂部傾斜或下垂在功放輸入端加入 100Hz 左右的方法正常輸出方波頂部應(yīng)該保持平坦。如果方波頂部出現(xiàn)向下的斜坡說明低頻分量沒有被完整放大低頻增益相對下降。這種問題常見于輸入端有隔直電容、反饋回路電容偏小或者采用輸出變壓器耦合的電路中。降低測試頻率后如果傾斜更嚴(yán)重基本可以確認(rèn)是低頻轉(zhuǎn)折頻率過高。處理優(yōu)先級檢查輸入耦合電容、反饋電容以及輸出耦合電容的容量必要時(shí)適當(dāng)增大容量。5.4 方波邊沿變圓如果方波上升沿和下降沿不再陡直而是變成斜坡狀說明高頻諧波中的高頻成分被衰減放大器高頻響應(yīng)不足。這不一定代表故障因?yàn)槟承┕Ψ旁O(shè)計(jì)帶寬有限或在輸出級帶有低通濾波。判斷時(shí)結(jié)合器材定位如果是全頻帶功率放大器高頻響應(yīng)應(yīng)至少達(dá)到 20kHz 以上如果是超低音功放方波邊沿較圓可能是軟件設(shè)計(jì)導(dǎo)致。5.5 方波邊沿出現(xiàn)振鈴方波邊沿在上升后出現(xiàn)一圈衰減振蕩隨后進(jìn)入穩(wěn)定平臺(tái)這是典型的高頻不穩(wěn)定或相位裕度不足表現(xiàn)。晶體管結(jié)電容、反饋網(wǎng)絡(luò)補(bǔ)償電容、PCB 走線感抗都有可能影響相位裕度。在檢查電路前應(yīng)先用實(shí)踐排除測量假象如果示波器探頭的接地線是一根比較長的鱷魚夾線探頭夾在方波節(jié)點(diǎn)時(shí)地線自身的電感就可能與探頭輸入電容產(chǎn)生振鈴。改用很短的接地彈簧后如果振鈴消失問題不在功放而在測量方式。5.6 波形上疊加周期性波紋或毛刺當(dāng)輸入信號是比較干凈的正弦波但輸出波形上疊加了與工頻相關(guān)的低頻波動(dòng)或者附著高頻毛刺時(shí)第一優(yōu)先級檢查電源濾波和地線布局。電源波紋會(huì)通過供電回路進(jìn)入放大級在輸出波形上形成調(diào)制地線環(huán)路同樣會(huì)引入交流聲。如果毛刺頻率很高并且雜亂也可能說明功放電路存在高頻振蕩需要借助頻譜分析或更高帶寬的示波器進(jìn)一步確認(rèn)。在部分?jǐn)?shù)字功放或 D 類功放中方波或正弦波上疊加高頻開關(guān)紋波是正常的必須在濾波器后測量而不是直接測量開關(guān)節(jié)點(diǎn)。為了便于快速查閱把上述波形特征整理成一張對照表波形特征最可能的電路原因優(yōu)先排查方向正弦頂部削平輸出進(jìn)入電源飽和調(diào)低輸入電平檢查電源電壓過零附近臺(tái)階交越失真偏置不足輸出級靜態(tài)電流方波頂部下垂低頻響應(yīng)不足耦合電容偏小輸入/反饋/輸出耦合電容方波邊沿變圓高頻帶寬不足輸出濾波、放大級帶寬方波邊沿振鈴相位裕度不足或探頭地線過長先用短接地線排除測量假象波形疊加波紋電源紋波、地干擾電源濾波、接地方式波形毛刺高頻雜亂可能存在自激振蕩輸出端后級測量、頻譜確認(rèn)需要特別注意單次觀察一個(gè)波形不足以定案。同一個(gè)失真在不同頻率、不同音量和不同負(fù)載下表現(xiàn)可能差別很大。正確的做法是改變音量、改變測試頻率、更換負(fù)載后重復(fù)觀察確認(rèn)失真是否始終存在。6. 實(shí)操用測試信號完整觀察一次功放波形想要對功放波形做相對準(zhǔn)確的判斷最好使用可重復(fù)的確定性測試信號而不是隨機(jī)播放的音樂。這里介紹一套沒有高端信號源也能實(shí)現(xiàn)的信號生成方法用 Python 生成 WAV 測試文件通過電腦或手機(jī)播放到功放輸入端。對于沒有 Python 環(huán)境的讀者也可以使用任意信號發(fā)生器或手機(jī)音頻 App但相比固定音樂生成的正弦波和掃頻信號更方便觀察。6.1 生成 1kHz 正弦波測試文件以下代碼生成一個(gè) 1kHz、5 秒、相對幅度 0.3 的單聲道正弦波 WAV 文件。0.3 的幅度留有充足余量不會(huì)像一些測試文件那樣一開始就接近滿幅。文件路徑保存為generate_sine_wav.py。import numpy as np import wave sample_rate 44100 # 44.1kHz freq 1000.0 # 1kHz seconds 5.0 amplitude 0.3 t np.arange(int(sample_rate * seconds)) / sample_rate sine amplitude * np.sin(2.0 * np.pi * freq * t) pcm (sine * 32767).astype(np.int16) with wave.open(1khz_sine.wav, w) as wf: wf.setnchannels(1) wf.setsampwidth(2) wf.setframerate(sample_rate) wf.writeframes(pcm.tobytes()) print(output: 1khz_sine.wav)運(yùn)行方式是在命令行執(zhí)行python generate_sine_wav.py如果機(jī)器上沒有安裝 numpy需要先執(zhí)行pip install numpy。運(yùn)行后會(huì)在當(dāng)前目錄生成1khz_sine.wav可以直接用播放器播放也可以接入功放輸入端。6.2 生成掃頻信號快速摸底頻率響應(yīng)1kHz 正弦波只能觀察單個(gè)頻點(diǎn)的表現(xiàn)。想要快速發(fā)現(xiàn)低頻和高頻是否異??梢陨梢粋€(gè) 20Hz 到 20kHz 的線性掃頻信號播放的同時(shí)觀察示波器。文件路徑保存為generate_sweep_wav.py。import numpy as np import wave sample_rate 44100 f0 20.0 f1 20000.0 seconds 10.0 amplitude 0.25 t np.arange(int(sample_rate * seconds)) / sample_rate T seconds # 線性掃頻瞬時(shí)頻率從 f0 平滑變化到 f1 phase 2.0 * np.pi * (f0 * t (f1 - f0) / (2.0 * T) * t**2) sweep amplitude * np.sin(phase) pcm (sweep * 32767).astype(np.int16) with wave.open(sweep_20_20k.wav, w) as wf: wf.setnchannels(1) wf.setsampwidth(2) wf.setframerate(sample_rate) wf.writeframes(pcm.tobytes()) print(output: sweep_20_20k.wav)掃頻文件在示波器上會(huì)顯示為頻率不斷變化的波形。正常時(shí)輸出波形的包絡(luò)整體比較平滑如果在某個(gè)頻率附近幅度明顯跌落、波形形狀改變或出現(xiàn)嚴(yán)重失真就說明系統(tǒng)在那段頻率附近存在問題。不過掃頻只是快速摸底想要準(zhǔn)確判斷頻響大小仍應(yīng)該回到固定頻率點(diǎn)逐點(diǎn)測量。6.3 完整測試鏈路與示波器連接方式測試鏈路建議這樣連接將播放設(shè)備電腦或手機(jī)的輸出接入功放輸入端。如果播放設(shè)備輸出電平過高可以通過前級音量控制把輸出調(diào)低。示波器第一通道接功放輸入信號第二通道接功放輸出信號。功放輸出端連接 8Ω 或 4Ω 的大功率電阻作為假負(fù)載而不是直接接喇叭因?yàn)殚L時(shí)間測試可能燒毀喇叭并造成噪音干擾。示波器第二通道的接地夾要與功放輸出參考地連接而不是夾到機(jī)箱隨意位置。對于常見的單端功放輸出參考地通常和輸入地相通但測試前需要先確認(rèn)功放是單端結(jié)構(gòu)還是 BTL 橋接結(jié)構(gòu)。如果是 BTL 輸出輸出兩端對地都有一定電壓不能直接用普通單端探頭的一端接地去測量否則可能造成短路或測量錯(cuò)誤。遇到 BTL 功放時(shí)應(yīng)使用差分探頭或隔離探頭并遵循儀器說明書操作。完成接線后先把功放音量調(diào)到最小播放 1kHz 正弦波再慢慢增大音量。正常情況下第一通道和第二通道都顯示正弦波波形形狀一致只是第二通道幅度更大。如果功放反相第二通道波形會(huì)上下顛倒這在很多功放中是正?,F(xiàn)象不一定代表故障。下面給出一個(gè)簡單的示波器操作流程CH1 設(shè)置為 AC 耦合探頭衰減設(shè)為 10×。CH2 同樣設(shè)置為 AC 耦合和 10× 衰減。觸發(fā)源選擇 CH1邊沿上升沿觸發(fā)觸發(fā)電平調(diào)到波形中央。播放 1kHz 正弦波后先將兩個(gè)通道垂直靈敏度調(diào)大使波形清晰可見。時(shí)基從 0.2ms/div 開始調(diào)整直到屏幕顯示約兩到五個(gè)完整周期。觀察兩個(gè)通道波形是否形狀相同、幅度比例是否穩(wěn)定。6.4 用 FFT 輔助分析偶次諧波與噪聲示波器屏幕上看到的時(shí)域波形實(shí)際上只能反映信號隨時(shí)間的變化。如果想要看到失真產(chǎn)生的新頻率分量FFT 功能非常有幫助。很多數(shù)字示波器自帶 FFT 菜單也可以把采集到的 WAV 文件保存下來用 Python 做離線分析。下面的代碼讀取一個(gè) WAV 文件計(jì)算它的頻譜并輸出能量最高的幾個(gè)頻率點(diǎn)。文件路徑保存為analyze_wav_fft.py。import wave import numpy as np def load_wav_mono(path): with wave.open(path, rb) as wf: nchannels wf.getnchannels() sampwidth wf.getsampwidth() framerate wf.getframerate() frames wf.readframes(wf.getnframes()) data np.frombuffer(frames, dtypenp.int16).astype(np.float32) if nchannels 2: data (data[0::2] data[1::2]) * 0.5 return data / 32768.0, framerate def main(path): signal, fs load_wav_mono(path) if len(signal) 1024: print(signal too short) return signal signal - np.mean(signal) win np.hanning(len(signal)) spectrum np.fft.rfft(signal * win) magnitude np.abs(spectrum) freqs np.fft.rfftfreq(len(signal), 1.0 / fs) peak_indexes np.argsort(magnitude)[-5:][::-1] for idx in peak_indexes: db 20.0 * np.log10(magnitude[idx] 1e-12) print(f{freqs[idx]:10.1f} Hz {db:8.1f} dB) if __name__ __main__: main(output_recording.wav)這段代碼適用于從功放輸出衰減后錄制下來的 WAV 文件。必須強(qiáng)調(diào)一點(diǎn)功放輸出功率很大絕對不能直接把功放輸出端接到聲卡或電腦音頻輸入否則很容易燒毀聲卡。要通過功率衰減器或高阻抗衰減網(wǎng)絡(luò)確保進(jìn)入聲卡的電壓在允許范圍內(nèi)。如果使用的是示波器的波形保存功能把 CSV 或 WAV 文件導(dǎo)出后同樣可以用類似方式分析頻譜。正常功放輸出 1kHz 正弦波時(shí)FFT 中基頻 1kHz 的能量最高2kHz、3kHz 等諧波峰值應(yīng)遠(yuǎn)低于基頻。如果諧波峰值明顯抬高說明失真程度較高如果整條頻譜都出現(xiàn)雜散峰則要懷疑電源紋波或噪聲問題。7. 常見問題與排查思路在功放波形測量中幾乎所有異常都能歸納為