在前文中我提到過,要重視信號上升時間,很多信號完整性問題都是由信號上升時間短引起的。本文就談談一個基礎概念:信號上升時間和信號帶寬的關系。
對于數(shù)字電路,輸出的通常是方波信號。方波的上升邊沿非常陡峭,根據(jù)傅立葉分析,任何信號都可以分解成一系列不同頻率的正弦信號,方波中包含了非常豐富的頻譜成分。
拋開枯燥的理論分析,我們用實驗來直觀的分析方波中的頻率成分,看看不同頻率的正弦信號是如何疊加成為方波的。首先我們把一個1.65v的直流和一個100MHz的正弦波形疊加,得到一個直流偏置為1.65v的單頻正弦波。我們給這一信號疊加整數(shù)倍頻率的正弦信號,也就是通常所說的諧波。3次諧波的頻率為300MHz,5次諧波的頻率為500MHz,以此類推,高次諧波都是100MHz的整數(shù)倍。圖1是疊加不同諧波前后的比較,左上角的是直流偏置的100MHz基頻波形,右上角時基頻疊加了3次諧波后的波形,有點類似于方波了。左下角是基頻+3次諧波+5次諧波的波形,右下角是基頻+3次諧波+5次諧波+7次諧波的波形。這里可以直觀的看到疊加的諧波成分越多,波形就越像方波。
圖1
因此如果疊加足夠多的諧波,我們就可以近似的合成出方波。圖2是疊加到217次諧波后的波形。已經非常近似方波了,不用關心角上的那些毛刺,那是著名的吉博斯現(xiàn)象,這種仿真必然會有的,但不影響對問題的理解。這里我們疊加諧波的最高頻率達到了21.7GHz。
圖2
上面的實驗非常有助于我們理解方波波形的本質特征,理想的方波信號包含了無窮多的諧波分量,可以說帶寬是無限的。實際中的方波信號與理想方波信號有差距,但有一點是共同的,就是所包含頻率很高的頻譜成分。
現(xiàn)在我們看看疊加不同頻譜成分對上升沿的影響。圖3是對比顯示。藍色是基頻信號上升邊,綠色是疊加了3次諧波后的波形上升邊沿,紅色是基頻+3次諧波+5次諧波+7次諧波后的上升邊沿,黑色的是一直疊加到217次諧波后的波形上升邊沿。
圖3
通過這個實驗可以直觀的看到,諧波分量越多,上升沿越陡峭?;驈牧硪粋€角度說,如果信號的上升邊沿很陡峭,上升時間很短,那該信號的帶寬就很寬。上升時間越短,信號的帶寬越寬。這是一個十分重要的概念,一定要有一個直覺的認識,深深刻在腦子里,這對你學習信號完整性非常有好處。
這里說一下,最終合成的方波,其波形重復頻率就是100MHz。疊加諧波只是改變了信號上升時間。信號上升時間和100MHz這個頻率無關,換成50MHz也是同樣的規(guī)律。如果你的電路板輸出數(shù)據(jù)信號只是幾十MHz,你可能會不在意信號完整性問題。但這時你想想信號由于上升時間很短,頻譜中的那些高頻諧波會有什么影響?記住一個重要的結論:影響信號完整性的不是波形的重復頻率,而是信號的上升時間。
本文的仿真代碼很簡單,我把代碼貼在這里,你可以自己在matlab上運行一下看看。
clc; clearall; pack;
Fs = 10e9;
Nsamp = 2e4;
t = [0:Nsamp-1].*(1/Fs);
f1 = 1e6;
x0 = 3.3/2;
x1 = x0 + 1.65*sin(2*pi*f1*t);
x3 = x0;
forn=1:2:3
x3 = x3 + 3.3*2/(pi*n) * sin(2*pi*n*f1*t);
end
x5 = x0;
forn=1:2:5
x5 = x5 + 3.3*2/(pi*n) * sin(2*pi*n*f1*t);
end
x7 = x0;
forn=1:2:7
x7 = x7 + 3.3*2/(pi*n) * sin(2*pi*n*f1*t);
end
figure
subplot(221)
plot(x1)
subplot(222)
plot(x3)
subplot(223)
plot(x5)
subplot(224)
plot(x7)
x217 = x0;
forn=1:2:217
x217 = x217 + 3.3*2/(pi*n) * sin(2*pi*n*f1*t);
end
figure
plot(x217)
figure
plot(x217,"k")
holdon
plot(x1,"b")
plot(x3,"g")
plot(x7,"r")
holdoff
axis([8000 12000 -0.5 4])