2013년 1월 6일 일요일

상승시간(Rise Time)과 주파수대역(Bandwidth) (2)


이번에는 지난 시간에 이어 rise time을 가지고 어떻게 f-3dB를 알아내는지 살펴보기로 하겠다.

[그림 1]은 간단한 RC회로와 그 회로에서 얻을 수 있는 step response(계단응답)이다. 회로이론 교과서에 나와 있듯이 step function(계단함수)을 입력에 인가하면 케패시터 C에 걸리는 전압은 exponential함수에 따라서 나타나게 된다. 정확히 말하면 다음과 같다.




R*C는 time constant(시상수)라고 하는데 RC회로에서-3dB bandwidth는 angular frequency(각주파수)로 time constant의 역수로  표현한다. 다시말하면, ω-3dB = 1/(RC) radian/sec이며 ω-3dB= 2πf-3dB이므로 f-3dB는 다음과 같다.





상승시간(Rise time)은 signal level이 전환되는 edge의 10%시점에서 90%시점까지 걸리는 시간으로 정의되므로 Rise time(Tr) = t90  - t10이다. [그림 1]의 응답곡선을 보면 t90은 2.3RC이고 t10은 0.1RC 이므로 Tr = 2.3RC – 0.1RC = 2.2RC가 되며 이 결과를 위의 식에 대입하면 다음과 같다.





이것이 바로 rise time과 bandwidth의 관계가 된다. 그러나 f-3dB = 0.35/Tr는 정확한 값은 아니며 실제값과 가장 근사한 값이라고 할 수 있다.

[그림 1]에서 만약에 R이 50ohm이고 C가 2pF라면 Tr은 2.2*(50*2*10^-12) = 220psec이고 그에 대한 f-3dB는 0.35/220psec = 1.6GHz가 된다.



그림 1] RC회로와 Step response(계단응답)

밑의 코드는 [그림 1]의 계단응답을 구현한 파이선(Python)소스이다.


## RC 회로응답 by Python 2.7
## Written by SimpliPHY

from numpy import *
from pylab import *

R = 2000
C = 47e-6

tau = R*C

m = 500

t = []
v = []

for i in range(m):
    t.append(i/1000.0)
    v.append(1*(1-exp(-t[i]/tau)))

plot(t,v)
hold(True)
plot(t,sign(t), linestyle='--', color='red', linewidth='3')

xlim(-.1, .6)
ylim(-.1, 1.1)
xticks([0, 0.1, 0.2, 0.3, 0.4, 0.5],['0', 'RC', '2RC', '3RC', '4RC', '5RC'])
grid(True)
hold(False)

show()



Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.

댓글 없음:

댓글 쓰기