public function table(nx,mv,x,v) r="" r=r&"" for i=0 to nx r=r&""&"" for im=0 to mv r=r&"" next r=r&"" next r=r&"
FREQ (GHz)S00 (dB)S01 (dB)
"&x(0,i)&""&FormatNumber(-v(im,i),5)&"
" table=r end function Public Function Graph(dL,Gx,Gy,Ny,Ymax,Np,N,x,y) on error resume next dim xo(500),yo(500) x0=x(0,0):x1=x(0,Np): y0=0: y1=ymax call ScaleX(x(0,0),x(0,Np),Nx,x0,x1) if Nx<=5 then Nx=2*Nx if Nx>=14 then Nx=int(Nx/2) dxw=Gx/2:dyw=Gy/2:xw=Gx*Nx:yw=Gy*Ny LN="" LN= "" for i=0 to N for j=0 to Np: xo(j)=x(i,j):yo(j)=y(i,j):next LN=LN&Plot(i+1,dL,dxw,dyw,xw,yw,x0,y0,x1,y1,Np,xo,yo) next Graph=LN &Axes(Gx,Gy,x0,y0,x1,y1,Nx,Ny) if ERR<>0 then msgbox "An error # "&ERR&" occured while plotting. Please review your data." end function function Axes(Gx,Gy,x0,y0,x1,y1,Nx,Ny) on error resume next rx="" ry="
" 'msgbox ry 'exit function for iy=0 to Ny-1 y=y0+(y1-y0)*iy/Ny ry=ry&"" next rx=rx&"" for ix=0 to Nx x=x0+(x1-x0)*ix/Nx rx=rx&"" next ry=ry&"
"&FormatNumber(y,1)&"
"&FormatNumber(x,4)&"
" rx=rx&"" 'msgbox ry Axes=ry&rx end function function U(xmin,ymin,xmax,ymax,i,x,y) on error resume next kv=chr(34) if y>ymax then exit function if yxmax then exit function if x" 'US="/IMGO SRC=s"&i&".bmp style="&chr(34)&ay&ax&chr(34)&"/" end function Function LineDraw(xmin,ymin,xmax,ymax,ind,dL,x0,y0,x1,y1) on error resume next dx=x1-x0:dy=y1-y0 N=int(sqr(dx*dx+dy*dy)/dL):r="" if N=0 then LineDraw=U(xmin,ymin,xmax,ymax,ind,x0,y0):exit function for i=1 to N x=x0+dx*i/N y=y0+dy*i/N r=r+U(xmin,ymin,xmax,ymax,ind,x,y) next LineDraw=r end function Sub ReScale(dxw,dyw,xw,yw,x0,y0,x1,y1,x,y,xp,yp) on error resume next xp=dxw+xw*(x-x0)/(x1-x0) yp=dyw+yw*(y-y0)/(y1-y0) end sub Function Plot(ind,dL,dxw,dyw,xw,yw,x0,y0,x1,y1,N,x,y) on error resume next LN="" for i=1 to N call ReScale(dxw,dyw,xw,yw,x0,y0,x1,y1,x(i-1),y(i-1),xp0,yp0) call ReScale(dxw,dyw,xw,yw,x0,y0,x1,y1,x(i),y(i),xp1,yp1) LN=LN& LineDraw(dxw,dyw,dxw+xw,dyw+yw,ind,dL,xp0,yp0,xp1,yp1) next Plot=LN End Function sub ScaleX(x0,x1,nxs,xs0,xs1) on error resume next dx=x1-x0 idxs=int(log(dx)/log(10)-0.5):dxs=10^idxs xs0=dxs*int(x0/dxs):xs1=dxs*int(x1/dxs) if xs1