LC串聯諧振的意義
有了上一節的基礎,這一節我們來看看D類音頻功放的LC濾波器如何設計,思路是怎麼樣的,可以看作是一個案例。
考慮到有些同學沒接觸過D類音頻功放,我會先簡單介紹下D類功放的工作原理,然後D類功放為什麼要用LC濾波器,再到LC濾波器設計具體過程。
TI公司也有介紹D類放大器LC濾波器的設計文檔,文末會分享出來。我寫的與TI的區別,TI的主要介紹具體如何設計,我主要想說明思路過程,並指出裡面的一些細節,為什麼是這樣。我希望的是,有了思路,即使沒有任何文檔,遇到類似的問題,也能自己去分析。
D類功放工作原理
D類功放相對於A,B,C類來說更不好理解,因為它是需要調製的,看起來就是佔空比不同的PWM波,波形看著與我們的音頻模擬波形一點都不像。
下面來看一看它的原理。
簡單理解就是:音頻信號與三角波高頻載波經過比較器進行比較,得到佔空比不同的PWM波,然後將得到PWM信號通過MOS管對管,經過濾波器輸入到喇叭。調製後得到的PWM裡面含有音頻分量,然後通過LC濾波器濾掉高頻載波還原成原始信號。
原理確實非常簡單,但是我們可能會有如下問題,僅僅理解以上內容還是遠遠不夠的。
為什麼有的電路喇叭兩端用示波器量就是PWM波,但是卻能正常發出聲音?
LC濾波器該如何設計,L,C如何取值?
有的D類放大器要LC濾波,有的用磁珠就可以了,為什麼?
還有的廠家的宣稱它們的放大器不需要濾波,用了什麼技術?
下面來看看這些問題是怎麼分析的。
典型的D類放大器電路
D類放大器,我們常用的方式是差分的方式,即兩個MOS對管中間接喇叭。下面就只分析這種差分方式,單端的分析方法也差不多。
首先,D類放大器是一個大類,主要區別在於有不同的調製方式,下面先介紹兩種,AD類,和BD類。
AD類是經過三角波調製後再反相,用了一個比較器。BD類是先將音頻信號反相,再將原信號和反相後的信號分別通過調製,用了兩個比較器,從圖中看不出來差別,下面來看看波形的區別。
紅色的為音頻信號,三角波是調製信號,我們可以很容易的得到濾波之前的差分輸出信號。從波形上看到,AD與BD的差分輸出有著明顯的區別,但是二者的電平都是高低變化,我們沒法從上面直接得到有用的信息,比如看不出來哪種效率更高,哪種輻射會小一些等等。
這時候,我之前的文章「信號在腦子裡面應該是什麼樣的」就要派上用場了,我們需要把輸出信號進行傅立葉變換,得到它們的頻譜,有了頻譜,就很容易看出差別。為此,我藉助了Matlab軟體,分別畫出它們的頻譜。
註:為了減小Matlab軟體的計算量(計算量大了電腦會卡),我設定的音頻信號為1Hz,調製三角波為20Hz,雖然實際音頻信號頻率肯定是比1Hz要高的,但是分析結果應是一樣的。
下圖是用幅度為1,頻率為20Hz的三角波,來調製幅度為0.9,頻率為 1Hz的正弦波。
從上圖看出,調製之後的有用信號1Hz被保留,幅度都是0.9,兩種方式都是一樣的,這說明都能達到目的,包含了完整的音頻信號。
AD調製方式,除了有用信號1Hz在,還有調製三角波頻率20Hz的幅度也很大。而BD調製方式,20Hz頻率消失了,只存在更高的諧波。從這個角度說, BD的方式是要更好的,損耗降低了。
在音頻輸入為0的時候,也就是說放大器空閒,更能看出AD與BD的區別,如下圖:
在輸入為0的時候,AD方式的差分輸出為方波,而BD方式輸出為0,毫無疑問,BD方式功耗更低。
事實上,我們拿到了頻譜,就能知道很多事情了。
首先,這些開關信號實在看起來不像是模擬音頻信號,但是其確實包含了完整的音頻頻率信號在其中,所以直接通到喇叭也是可以正常響的,雖然額外多了高頻載波,但是頻率太高,超過人耳範圍,高頻分量是聽不見的。
其次,這些開關信號除了包含有用信號,還有豐富的高頻頻率,這些高頻頻率從調製頻率開始往上。這些高頻分量通到喇叭是沒有什麼好處的,反而會額外帶來功率損耗,還有會造成EMI的問題。所以,我們需要一個濾波器來濾掉高頻分量。並且,因為驅動喇叭需要的功率較大,而RC濾波器會有額外損耗,所以,LC低通濾波器就自然而然被選中了。
最後,我們知道頻譜裡面的高頻的頻譜分布,那麼濾波器的截止頻率自然就出來了。截止頻率必須高於音頻頻率上限20Khz,而要小於三角波的調製頻率,在這個範圍內,截止頻率越低,去除高頻分量越好。
下面分享下上面波形的Matlab源碼,有興趣的同學可以去試試。
f_audio=1; %被調製信號(音頻信號)頻率為1Hz f_sanjiao=20; %三角波調製頻率為20Hz
%%%%%%%%%%%%%%%%%%%%%%%% fft採樣設置Fs=10000; %採樣率為Fs L=(Fs/f_audio)*100; %信號長度(採樣總點數):100個周期的信號,長度越長,fft精度越高,但是執行時間越長T=1/Fs; %採樣周期t=(0:L)*T; %時間長度
A_audio = 0.9; %音頻信號的幅度為 0.9----可以修改為不同的值嘗試S1=A_audio*sin(2*pi*f_audio*t); %被調製信號(音頻信號)為幅度A_audio的正弦波S2=sawtooth(2*pi*f_sanjiao*t,0.5); %調製信號(三角波)為幅度為1的三角波
N=length(t);PWM1=zeros(1,N); %定義PWM1的長度 AD調製後差分波形PWM2=zeros(1,N); %定義PWM2的長度 BD調製後差分波形tmp=zeros(1,N); %定義tmp的長度 計算用(中間變量)for i=1:N if S1(i)>S2(i) PWM1(i) = 1; tmp(i) = 1; else PWM1(i) = -1; tmp(i) = 0; endend
for i=1:N if -S1(i)>S2(i) PWM2(i) = tmp(i)-1; else PWM2(i) = tmp(i); endend
%%%%%%%%%%%%%%%%%%%%%%%% AD調製subplot(3,2,1);plot(t,S1,t,S2,'k');set(gca,'XLim',[0 2/f_audio]);%x軸的數據顯示基頻2個周期set(gca,'YLim',[-1.1 1.1]);title('AD調製');xlabel('t (s)');ylabel('幅度');
subplot(3,2,3);plot(t,PWM1);set(gca,'XLim',[0 2/f_audio]);%x軸的數據顯示範圍set(gca,'YLim',[-1.1 1.1]);title('AD方式調製之後的-差分-信號');xlabel('t (s)');ylabel('幅度');
X1=abs(fft(PWM1));subplot(3,2,5);semilogx(Fs*(0:(L/2))/L,X1(1:L/2+1)*2/L); set(gca,'XLim',[0.1 10000]);%x軸的數據顯示範圍set(gca, 'XTickLabel' ,{'0.1','1','10','100','10K','100K'}); %x軸頻率數據title('AD方式調製之後的-差分-頻譜');set(gca,'YLim',[-0.1 1.5]);xlabel('f (Hz)');ylabel('幅度');
%%%%%%%%%%%%%%%%% BD調製差分信號subplot(3,2,2);plot(t,S1,t,-S1,'--r',t,S2,'k');set(gca,'XLim',[0 2/f_audio]);%x軸的數據顯示基頻2個周期set(gca,'YLim',[-1.1 1.1]);title('BD調製');xlabel('t (s)');ylabel('幅度');
subplot(3,2,4);plot(t,PWM2);set(gca,'XLim',[0 2/f_audio]);%x軸的數據顯示範圍set(gca,'YLim',[-1.1 1.1]);title('BD方式調製之後的-差分-信號');xlabel('t (s)');ylabel('幅度');
X2=abs(fft(PWM2));subplot(3,2,6);semilogx(Fs*(0:(L/2))/L,X2(1:L/2+1)*2/L); set(gca,'XLim',[0.1 10000]); %x軸的數據顯示範圍title('BD方式調製之後的-差分-頻譜');set(gca, 'XTickLabel' ,{'0.1','1','10','100','10K','100K'}); %x軸頻率數據set(gca,'YLim',[-0.1 1.5]);xlabel('f (Hz)');ylabel('幅度');
這一節我們看了Class D的輸出信號波形,並分析了其頻譜,我們要學會看頻譜。本節就先寫到這裡吧,下一節會具體看看LC濾波器的設計過程。
-- END --