AnsweredAssumed Answered

ICCAP de-embedding VNA E5071C ENA

Question asked by benalcazardiego on Feb 20, 2017

Hey guys. I need to implement a de-embedding process in an application written in python. I have this reference in ICCAP but I do not know to interpret it since I know nothing about this programming language. Could you please explain me what it is doing and/or a reference to learn about ICCAP

 

! Deembedding: three-step method

!              Y parameter subtraction

 

 PRINT "Performing de-embedding..."

 

 

 COMPLEX Yinter.22[fp]

COMPLEX YA.22[fp]

COMPLEX YB.22[fp]

COMPLEX ZC.22[fp]

COMPLEX Zdut.22[fp]

 

 COMPLEX G1[fp]

COMPLEX G2[fp]

COMPLEX G3[fp]

COMPLEX Z1[fp]

COMPLEX Z2[fp]

COMPLEX Z3[fp]

 

 ! Defining temporary locations of open and short_all structures

tmpYopen = ../Open/Yopen.m

tmpYshorta = ../Shorta/Yshorta.m

 

 Y=TwoPort(S,"S","Y")    

 

 ! Model Parameters Extraction

 

 c=0

WHILE (c < 1)

    b=0

    WHILE (b < 1)

    f=0

    WHILE (f < fp)

    G3[f+b*fp+c*fp]= -tmpYopen.m.12[f]

    G1[f+b*fp+c*fp]= tmpYopen.m.11[f] - G3[f+b*fp+c*fp]

    G2[f+b*fp+c*fp]= tmpYopen.m.22[f] - G3[f+b*fp+c*fp]

 

     Yinter.11[f+b*fp+c*fp]= tmpYshorta.m.11[f] - tmpYopen.m.11[f]

     Yinter.12[f+b*fp+c*fp]= tmpYshorta.m.12[f] - tmpYopen.m.12[f]

     Yinter.21[f+b*fp+c*fp]= tmpYshorta.m.21[f] - tmpYopen.m.21[f]

     Yinter.22[f+b*fp+c*fp]= tmpYshorta.m.22[f] - tmpYopen.m.22[f]

     f=f+1

    END WHILE

     b=b+1

    END WHILE

    c=c+1

END WHILE

 

 Zinter=TwoPort(Yinter,"Y","Z")

 

 c=0

WHILE (c < 1)

    b=0

    WHILE (b < 1)

    f=0

    WHILE (f < fp)

    Z3[f+b*fp+c*fp]=Zinter.12[f+b*fp+c*fp]

    Z1[f+b*fp+c*fp]=Zinter.11[f+b*fp+c*fp]-Z3[f+b*fp+c*fp]

    Z2[f+b*fp+c*fp]=Zinter.22[f+b*fp+c*fp]-Z3[f+b*fp+c*fp]

    f=f+1

    END WHILE

     b=b+1

    END WHILE

    c=c+1

END WHILE

 

 ! Performing de-embedding

 

 c=0

WHILE (c < 1)

    b=0

    WHILE (b < 1)

    f=0

    WHILE (f < fp)

    YA.11[f+b*fp+c*fp]= Y.11[f+b*fp+c*fp]- G1[f+b*fp+c*fp]

    YA.12[f+b*fp+c*fp]= Y.12[f+b*fp+c*fp]

    YA.21[f+b*fp+c*fp]= Y.21[f+b*fp+c*fp]

    YA.22[f+b*fp+c*fp]= Y.22[f+b*fp+c*fp]- G2[f+b*fp+c*fp]

    f=f+1

    END WHILE

     b=b+1

    END WHILE

    c=c+1

END WHILE

 

 c=0

WHILE (c < 1)

    b=0

    WHILE (b < 1)

    f=0

    WHILE (f < fp)

    YB.11[f+b*fp+c*fp]= YA.11[f+b*fp+c*fp] - G3[f+b*fp+c*fp]

    YB.12[f+b*fp+c*fp]= YA.12[f+b*fp+c*fp] + G3[f+b*fp+c*fp]

    YB.21[f+b*fp+c*fp]= YA.21[f+b*fp+c*fp] + G3[f+b*fp+c*fp]

    YB.22[f+b*fp+c*fp]= YA.22[f+b*fp+c*fp] - G3[f+b*fp+c*fp]

    f=f+1

    END WHILE

     b=b+1

    END WHILE

    c=c+1

END WHILE

 

 ZB = TwoPort(YB,"Y","Z")

 

 c=0

WHILE (c < 1)

    b=0

    WHILE (b < 1)

    f=0

    WHILE (f < fp)

    ZC.11[f+b*fp+c*fp]= ZB.11[f+b*fp+c*fp] - Z1[f+b*fp+c*fp]

    ZC.12[f+b*fp+c*fp]= ZB.12[f+b*fp+c*fp]

     ZC.21[f+b*fp+c*fp]= ZB.21[f+b*fp+c*fp]

     ZC.22[f+b*fp+c*fp]= ZB.22[f+b*fp+c*fp] - Z2[f+b*fp+c*fp]

    f=f+1

    END WHILE

     b=b+1

    END WHILE

    c=c+1

END WHILE

 

 c=0

WHILE (c < 1)

    b=0

    WHILE (b < 1)

    f=0

    WHILE (f < fp)

    Zdut.11[f+b*fp+c*fp]= ZC.11[f+b*fp+c*fp] - Z3[f+b*fp+c*fp]

    Zdut.12[f+b*fp+c*fp]= ZC.12[f+b*fp+c*fp] - Z3[f+b*fp+c*fp]

    Zdut.21[f+b*fp+c*fp]= ZC.21[f+b*fp+c*fp] - Z3[f+b*fp+c*fp]

    Zdut.22[f+b*fp+c*fp]= ZC.22[f+b*fp+c*fp] - Z3[f+b*fp+c*fp]

    f=f+1

    END WHILE

     b=b+1

    END WHILE

    c=c+1

END WHILE

 

 Sdut = TwoPort(Zdut,"Z","S")

 

 print "fin"

Outcomes