public function table(nx,mv,x,v)
r="
"
r=r&"| FREQ (GHz) | S00 (dB) | S01 (dB) |
"
for i=0 to nx
r=r&""&"| "&x(0,i)&" | "
for im=0 to mv
r=r&""&FormatNumber(-v(im,i),5)&" | "
next
r=r&"
"
next
r=r&"
"
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&"| "&FormatNumber(y,1)&" |
"
next
rx=rx&""
for ix=0 to Nx
x=x0+(x1-x0)*ix/Nx
rx=rx&"| "&FormatNumber(x,4)&" | "
next
ry=ry&"
"
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