[그림 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()
This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.
댓글 없음:
댓글 쓰기