Description
Input Rs and Xs to calculate |z|, |ρ|, VSWR and R.Loss
The DM32/HP31Sii handles complex numbers by treating stack-X as Real, stack-Y and Imaginary for one complex number, and stack-Z as Real and stack-T as Imaginary for a second complex number.
This means the normal 4 level stack can hold 2 complex numbers. This is similar to the HP41 Advantage Pack's method.
To store a complex number in a register actually requires two to be used - one for Real part and one for Imaginary part. This is similar to the HP15C/DM15L.
Once the real and imaginary values are on the stack various “Complex” functions are accessed by SHIFTCMPLXFunction for example to add
Z1 = (10 + j20)
and
Z2 = (30 - j25)
gives
Z3 = Z1 + Z2 = ( 10 + j20 ) + ( 30 - j25 )
20 ENTER 10 ENTER 25 CHS ENTER 30
The stack will show
20.0000 10.0000 -25.0000 30.0000
Then carry out the addition
SHIFT CMPLX +
The display will show
20.0000 10.0000 -5.0000 40.0000
X has the real part of Z3 (40) and Y has the imaginary part of Z3 (-5)
Z3 = ( 40 - j5 )
LBL Z INPUT R INPUT X X<>Y ; swap so Real is R and Imag is X 0 ENTER 50 ; enter Zo as 50 + j 0 CMPLX + ; complex addition Z + Zo STO A ; store intermediate value Re (Z + Zo) R↓ STO B ; store intermediate value Im (Z + Zo) R↓ ; X and Y stack now holds input Z real & imag again 0 ENTER 50 ; enter Zo as 50 + j 0 (again) CMPLX - ; complex subtraction Z - Zo RCL B ; Im (Z + Zo) RCL A ; Re (Z + Zo) CMPLX ÷ ; complex divide (STACK z,t holds (Z - Zo) stack x,y holds (Z + Zo) (from reg. A & B) to calculate complex reflection coeff. ρ STO E ; save Re ρ R↓ STO F ; save Im ρ RCL E y,x -> θ, r ; convert complex rectangular ρ to mag/angle - X holds the magnitude |ρ| ( Y holds the angle, but we don't care) STO P ; save |ρ| 1 RCL+ P 1 RCL- P ÷ STO S ; store VSWR ( 1 + |ρ| ) / ( 1 - |ρ| ) RCL P LOG 20 X STO Y ; store Return Loss = 20 LOG |ρ| RCL X RCL R y,x -> θ, r STO Z ; store magnitude of impedance |z| RCL P ; |ρ| RCL S ; VSWR RCL Y ; Return Loss RTN
67.5598 0.2002 1.5006 -13.9718
— John Pumford-Green 19/07/23 06:08