#include #include #define SETN 201 #define FREQ_S 4.0e9 #define FREQ_E 6.0e9 #define AA 4.740 /*waveguide's size (cm) */ #define OFFSET 1.875 /*offset length of short circuit 2 (cm) */ #define PI 3.141592654 typedef struct{ double Re,Im;}complex; complex com(rc,ic) double rc,ic; { complex oolong; oolong.Re=rc; oolong.Im=ic; return oolong; } double cabs(cx) complex cx; { double ccx; ccx=cx.Re*cx.Re+cx.Im*cx.Im; ccx=sqrt(ccx); return ccx; } complex ac(cx,cy) complex cx,cy; { complex oolong; oolong.Re=cx.Re+cy.Re; oolong.Im=cx.Im+cy.Im; return oolong; } complex sc(cx,cy) complex cx,cy; { complex oolong; oolong.Re=cx.Re-cy.Re; oolong.Im=cx.Im-cy.Im; return oolong; } complex mc(cx,cy) complex cx,cy; { complex oolong; oolong.Re=cx.Re*cy.Re-cx.Im*cy.Im; oolong.Im=cy.Re*cx.Im+cy.Im*cx.Re; return oolong; } complex dc(cx,cy) complex cx,cy; { complex oolong; oolong.Re=(cx.Re*cy.Re+cx.Im*cy.Im)/(cy.Re*cy.Re+cy.Im*cy.Im); oolong.Im=(cy.Re*cx.Im-cy.Im*cx.Re)/(cy.Re*cy.Re+cy.Im*cy.Im); return oolong; } double phase(cx) complex cx; { double pp; if(cx.Re==0) { if(cx.Im>0) pp=PI/2.0; else if(cx.Im<0) pp=PI/(-2.0); else pp=0.0; } else { pp=cx.Im/cx.Re; pp=atan(pp); if(pp>0) { if(cx.Re>0) pp=pp; else pp=pp-PI; } else { if(cx.Re>0) pp=pp; else pp=pp+PI; } } return pp; } /*********************************************************** *******************************************************/ complex short1[SETN],short2[SETN],short22[SETN],ss[8][SETN]; complex edf[SETN],erff[SETN],esf[SETN],s11m[SETN],s11a[SETN]; get_cal_data() { FILE *oolong[7]; char filename[7][15]; int i,j,ln; double ooo; /* Load the short circuit cal data */ printf("Input file name for short circuit......\n"); scanf("%s",filename[0]); oolong[0]=fopen(filename[0],"r"); for(i=0;i