정보통신실험

03 - 소신호 증폭기

 

부록 A: BJT CE 증폭기의 프로그래밍에 의한 특성계산

 

그림: BJT CE 증폭기

vs = 1 kHz, zero offset, 100 mVpp with A-A' terminal open-circuited

Rs = 50 Ω, Ci = 0.1 μF, R1 = 200 kΩ, R2 = 33 kΩ, RC = 4.7 kΩ

RE = 750 Ω, CE = 1 μF, CC = 0.1 μF, RL = 10 kΩ, Q1 = 2SC945, VCC = 12 VDC

 

그림: BJT CE 증폭기  full equivalent circuit

 

    (for 2SC945 트랜지스터)

 

  

    

    

 

    (input impedance)

    

    

    

    

 

    

 

    (voltage gain)

 

  

    (current gain)

 

Output impedance:  

    

 

수식을 프로그래밍하여 계산:

    

  

    

    

    

    

 

1) 소스코드 제시 (10)

Fortran 90 프로그램

! bjt-ce-amp.f90

! calculation for capacitor-coupled BJT CE amp

! Vcc: bias voltage(V)

! R1,R2: base bias resistor(ohm)

! Rs: source resistance(ohm)

! Ci: input coupling capacitor(F)

! RE: emitter (feedback) bias resistor

! CE: emitter shunt capacitor(F)

! RC: collector resistor(ohm)

! Cc: output coupling capacitor(F)

! RL: load resistance(ohm)

! rpi: tranistor input resistance(ohm)

! beta: transistor current gain

! Vbe: base-emitter voltate(V)

!

! DC bias analysis

real IB,IC,IE

complex j,Ribb,RiB,Ri,vi,is,ibb,iL,vL,Av,Ai,Ro

j=(0.,1.)

pi=3.14159265

write(*,*)'BJT CE Amp Analysis'

! DC Analysis

Vcc=12.; R1=200.e3; R2=33.e3

RC=4.7E3; RE=0.75e3

beta=200.; Vbe=0.62

 

write(*,*)'DC bias analysis:'

IB=(Vcc-(1.+R1/R2)*Vbe)/(R1+(1.+R1/R2)*(beta+1.)*RE)

IC=beta*IB

VC=Vcc-RC*IC

IE=(beta+1.)*IB

VE=IE*RE

VCE=VC-VE

VB=Vbe+VE

write(*,*)'IB,IC,IE(A)=',IB,IC,IE

write(*,*)'VB,VC,VE(V)=',VB,VC,VE

write(*,*)'VCE(v)=',VCE

! AC Analysis

vs=50e-3; Rs=50.

Ci=0.1e-6; Cc=0.1e-6; CE=1.e-6

rpi=6.e3

RL=10.e3

 

2 write(*,*)'f(Hz)=';read(*,*)f

write(*,*)'CE(F)=';read(*,*)CE

write(*,*)'Ci=Cc(F)=';read(*,*)C0

Ci=C0; Cc=C0

w=2.*pi*f

RB=R1*R2/(R1+R2)

Ribb=rpi+(beta+1.)*RE/cmplx(1.,w*RE*CE)

RiB=RB*Ribb/(RB+Ribb)

Ri=RiB-j/(w*Ci)

vi=vs*Ri/(Ri+Rs)

is=vi/Ri

ibb=is/(1.+Ribb/RB)

iL=-beta*ibb/(1.+(RL-j/(w*Cc))/RC)

vL=RL*iL

Av=vL/vi

Ai=iL/is

Ro=RC-j/(w*Cc)

write(*,*)'Ri(ohm)=',Ri

write(*,*)'Ro(ohm)=',Ro

call RECPOL(vi,0,1,zmag,zphs)

write(*,*)'mag(vi),phs(vi)=',zmag,zphs

call RECPOL(vL,0,1,zmag,zphs)

write(*,*)'mag(vL),phs(vL)=',zmag,zphs

call RECPOL(Av,0,1,zmag,zphs)

write(*,*)'mag(Av),phs(Av)=',zmag,zphs

call RECPOL(Ai,0,1,zmag,zphs)

write(*,*)'mag(Ai),phs(Ai)=',zmag,zphs

goto 2

end

!

! RECPOL: Convert a complex number into a polar form.

! Input

! Z: complex number to be converted

! IMAG: unit of ZMAG. 0 = linear, 10 = 10*log(Zmag), 20 = 20*log(Zmag)

! IPHASE: unit of ZPHASE. 0 = radian(from -pi to pi) , 1 = degree

! Output

! ZMAG: magnitude of Z

! ZPHASE: phase of Z

!

SUBROUTINE RECPOL(Z,IMAG,IPHASE,ZMAG,ZPHASE)

COMPLEX Z

ZMAG=CABS(Z)

IF(ZMAG.EQ.0.) THEN

IF(IMAG.GT.0) ZMAG=-1000.

ZPHASE=0.

ELSE

ZPHASE=ACOS(REAL(Z)/ZMAG)

IF(AIMAG(Z).LT.0.) ZPHASE=-ZPHASE

IF(IPHASE.EQ.1) ZPHASE=ZPHASE*180./3.141592654

IF(IMAG.EQ.10) ZMAG=10.*ALOG10(ZMAG)

IF(IMAG.EQ.20) ZMAG=20.*ALOG10(ZMAG)

ENDIF

RETURN

END

 

2) CE 따른 Av, Ai 변화 (10)

CE (μF)

Av

Ai

0.01

4.049 (-167.4°)

9.741 (-171.6°)

0.1

4.453 (-145.8°)

10.72 (-153.6°)

1

18.36 (-101.9°)

35.29 (-137.0°)

10

81.41 (-132.8°)

52.13 (-168.5°)

100

99.47 (-153.2°)

52.46 (-173.3°)

 

3) Ci = CC 따른  Av, Ai 변화 (10)

Ci = CC (μF)

Av

Ai

0.001

0.1928 (26.25°)

3.265 (-58.4°)

0.01

8.071 (-37.71°)

24.09 (-95.9°)

0.1

18.36 (-101.9°)

35.29 (-137.0°)

1

19.25 (-111.6°)

35.50 (-142.5°)

10

19.33 (-112.1°)

35.50 (-143.1°)

 

4) 주파수에 따른   Av, Ai 변화 (10)

f (kHz)

Av

Ai

0.1

2.469 (-76.1°)

7.313 (-112.5°)

1

18.36 (-101.9°)

35.29 (-137.0°)

10

92.20 (-150.2°)

52.44 (-174.1°)

100

106.4 (-176.7°)

52.76 (-179.4°)