www.pudn.com > Noise.rar > mfdtdd2.cpp
#include"stdio.h"
#include"math.h"
#include"conio.h"
int i,j,n,k,m0,n0,m,mm0,k1,mfar,ithat;
double pi,lam,v,ep0,u0,a,vin,vin0;
double detat,detas,detar,ph,a1,a2,a3;
double ez1[200][200],hy1[200][200],er1[200][200],ci[50000],vi;
double ez2[200][200],hy2[200][200],er2[200][200];
double ez3[200][200],hy3[200][200],er3[200][200];
double fer[95][2000],fei[95][2000],eamp[95][960],eph[95][960];
double ezi,za=50.,r0=0.220701824,b=2.3*r0,arf,r1,r2,r3,h,taop;
double ampv[400],phv[400],ampi[400],phi[400],re,ri,rfar,ra,efar0[95][2000],efar1[95][2000],efar2[95][2000],efar3[95][2000],efar4[95][2000];
double that,cm;
FILE *pp,*pp1,*pp2,*pp3,*pp4,*pp5;
void main(void)
{
int i0,i01,jj0,jj01,jj02,jj03;
double y0,y1,bei1,bei2;
int k0,k1,k2,f1,f2;
double omag,srvi[400],sivi[400],srci[400],sici[400],x1,x2,x11;
/*-------------------------initialization----------------------------*/
pi=3.1415926;
m0=30;
n0=5000;
i0=80;
i01=0;
jj0=80;
jj01=0;
jj02=0;
jj03=15;
mfar=355;
ep0=8.854*pow(10,-12);
u0=4*pi*pow(10,-7);
v=sqrt(1./(ep0*u0));
h=6.25;
detas=h/15;
k=2;
detat=detas/(k*v);
a=detat/(detas);
rfar=12.7*h;
pp=fopen("c:\\dwb\\td21.dat","w");
pp1=fopen("c:\\dwb\\dlrv.dat","w");
pp2=fopen("c:\\dwb\\mrin15_80.dat","w");
pp3=fopen("c:\\dwb\\dlvin.dat","w");
pp4=fopen("c:\\dwb\\dlefar1.dat","w");
pp5=fopen("c:\\dwb\\dlez2.dat","w");
/*-------------------- input volage paramaters-------------------------*/
ra=i0*detas;
taop=.361*h/v;
that=90;
for(i=0;i<=i0;i++)
{
for(j=0;j<=jj0;j++)
{
ez1[i][j]=0.;
hy1[i][j]=0.;
er1[i][j]=0.;
ez2[i][j]=0.;
hy2[i][j]=0.;
er2[i][j]=0.;
ez3[i][j]=0.;
hy3[i][j]=0.;
er3[i][j]=0.;
// printf("i=%d\n",i);
}
}
/*-------------------start to calculate-----------------------------------*/
for(n=0;n<=n0;n++)
{
for(j=0;j<=jj02;j++)
{
ci[n]=0.;
}
}
/* for(ithat=90;ithat<=90;ithat++)
{
for(n=0;n<360+n0;n++)
{
efar1[ithat][n]=0.;
efar2[ithat][n]=0.;
efar3[ithat][n]=0.;
efar4[ithat][n]=0.;
}
}
*/ for (n=0;njj02)&(j=jj03)&(j8.e6) vi=0.;
else vi=exp(x1);
er3[i][j]=-vi/(detas*log(detas/r0));
// x1=-((140-n-1)*(140-n-1)*detat*detat)/(2.*taop*taop);
ez3[i][j]=0.;//vi;
}
else if((j>jj02)&(j=jj03)&(j=jj02)
{
/*--------------------------right down point--------------------------------*/
if(j==jj02)
{
arf=0.;;
if(n-1<0)
{
a1=0.;
ez3[i][j]=0.;
}
else
{
hy3[i][j]=0.;
a1=(1.-sin(arf))*(1.-cos(arf))*ez1[i][j]+(1.-sin(arf))*(cos(arf))*ez1[i-1][j];
ez3[i][j]=a1+sin(arf)*(1.-cos(arf))*ez1[i][j+1]+sin(arf)*cos(arf)*ez1[i-1][j+1];
}
er3[i][j]=0.;
}
/*-------------------------right up point----------------------------------*/
else if(j==jj0)
{
er3[i][j]=0.;
ez3[i][j]=0.;
hy3[i][j]=0.;
}
else if(j==jj0-1)
{
arf=atan((j-jj02+1)/i0);
if(n-1<0)
{
ez3[i][j]=0.;
}
else
{
a1=(1.-sin(arf))*(1.-cos(arf))*ez1[i][j]+(1.-sin(arf))*cos(arf)*ez1[i-1][j];
ez3[i][j]=a1+sin(arf)*(1.-cos(arf))*ez1[i][j-1]+sin(arf)*cos(arf)*ez1[i-1][j-1];
}
hy3[i][j]=0.;//hy2[i][j]+a*(ez2[i+1][j]-ez2[i][j])/u0-a*(er2[i][j+y]-er2[i][j])/u0;;
er3[i][j]=0.;//er3[i][j]-a*(hy3[i][j]-hy3[i][j-1])/ep0;
}
else
{
if(n-1<0)
{
a1=-(ez3[i-1][j])/3.;
a2=7.*(ez2[i][j]+ez2[i-1][j])/6.;
a3=(ez2[i][j+1]+ez2[i][j-1]+ez2[i-1][j+1]+ez2[i-1][j-1])/12.;
ez3[i][j]=a1+a2+a3;
}
else
{
a1=-ez1[i-1][j]-(ez3[i-1][j]+ez1[i][j])/3.;
a2=7.*(ez2[i][j]+ez2[i-1][j])/6.;
a3=(ez2[i][j+1]+ez2[i][j-1]+ez2[i-1][j+1]+ez2[i-1][j-1])/12.;
ez3[i][j]=a1+a2+a3;
}
hy3[i][j]=0.;//hy2[i][j]+a*(ez2[i+1][j]-ez2[i][j])/u0-a*(er2[i][j+y]-er2[i][j])/u0;;
er3[i][j]=0.;//er3[i][j]-a*(hy3[i][j]-hy3[i][j-1])/ep0;
}
}
else
{
hy3[i][j]=0.;
er3[i][j]=0.;
ez3[i][j]=0.;
}
}
/*-----------------------down boundary-----------------------------------------*/
else if(j==jj02)
{
r1=1.*i+.5;
r2=1.*i-.5;
r3=1.*i;
er2[i][j]=0.;
hy3[i][j]=hy2[i][j]+a*(ez2[i+1][j]-ez2[i][j])/u0-a*(er2[i][j+1]-er2[i][j])/u0;
ez3[i][j]=ez2[i][j]+a*(r1*hy3[i][j]-r2*hy3[i-1][j])/(r3*ep0);
}
/*-----------------------up boundary-----------------------------------------*/
else if(j==jj0)
{
if(i==i0-1)
{
arf=atan((j-jj02)/i0);
if(n-1<0)
{
er2[i][j]=0.;
}
else
{
a1=(1.-sin(arf))*(1.-cos(arf))*er1[i][j]+(1.-sin(arf))*cos(arf)*er1[i-1][j];
er3[i][j]=a1+sin(arf)*(1.-cos(arf))*er1[i][j-1]+sin(arf)*cos(arf)*er1[i-1][j-1];
}
hy3[i][j]=0.;//hy2[i][j]+a*(ez2[i+1][j]-ez2[i][j])/u0-a*(er2[i][j+1]-er2[i][j])/u0;;
ez3[i][j]=0.;//ez2[i][j]+a*((1.*i+.5)*hy3[i][j]-(1.*i-.5)*hy3[i][j])/(i*ep0);
}
else
{
if(n-1<0)
{
a1=-(er3[i][j-1])/3.;
a2=7.*(er2[i][j]+er2[i][j-1])/6.;
a3=(er2[i+1][j]+er2[i-1][j]+er2[i+1][j-1]+er2[i-1][j-1])/12.;
er3[i][j]=a1+a2+a3;
}
else
{
a1=-er1[i][j-1]-(er3[i][j-1]+er1[i][j])/3.;
a2=7.*(er2[i][j]+er2[i][j-1])/6.;
a3=(er2[i+1][j]+er2[i-1][j]+er2[i+1][j-1]+er2[i-1][j-1])/12.;
er3[i][j]=a1+a2+a3;
}
hy3[i][j]=0.;//hy2[i][j]+a*(ez2[i+1][j]-ez2[i][j])/u0-a*(er2[i][j+1]-er2[i][j])/u0;;
ez3[i][j]=0.;//ez2[i][j]+a*((1.*i+.5)*hy3[i][j]+(1.*i-.5)*hy3[i][j])/(i*ep0);
}
}
// fprintf(pp,"Hy[%d][0]=%f Hy[%d][1]=%f b=%f\n",n,hy2[1],n+1,hy3[1],b);
// fprintf(pp,"Ez[%d][1]=%f Ez[%d][1]=%f Ez[%d][0]=%f Ez[%d][0]=%f\n",n,ez2[1],n+1,ez3[1],n,ez2[0],n+1,ez3[0]);
else if(j=0)
{
efar1[ithat][355+n]=efar1[ithat][355+n]+2.*.5*detas*pi*detas*(er3[0][jj02]*(1.-(detar-mm0))*(cos(bei2)))/(cm*180.);
efar1[ithat][355+n+1]=efar1[ithat][355+n+1]+2.*.5*detas*pi*detas*(er3[0][jj02]*(detar-mm0)*(cos(bei2)))/(cm*180.);
}
arf=k*pi/180.;
detar=2.*(ra-.5*detas*cos(arf))*sin(that)/(detas)+2.*(jj0-jj02)*cos(that);//+2*(i-1)*sin(that);
mm0=detar;
m=n-mm0;
if(m>=0)
{
efar1[ithat][355+n]=efar1[ithat][355+n]+120.*pi*2.*.5*detas*pi*detas*(hy3[0][jj02]*(1.-(detar-mm0))*cos(bei2))*cos(that)/(cm*180.);
efar1[ithat][355+n+1]=efar1[ithat][355+n+1]+120.*pi*2.*.5*detas*pi*detas*(hy3[0][jj02]*(detar-mm0)*cos(bei2))*cos(that)/(cm*180.);
}*/
for(i=1;i<=i0;i++)
{
/*----------------------------------------Er up face---------------------------------*/
detar=2.*(ra-(i)*detas*cos(arf))*sin(that)/(detas);//+2*(i-1)*sin(that);
mm0=detar;
m=n-mm0;
// else m=n-mm0+(2.*jj0/cos(that)-2*jj0);
bei1=(k-1)*pi/180.;
bei2=k*pi/180.;
if((m)>=0)
{
cm=4.*pi*detat*v;
if(m>=0)
{
efar1[ithat][mfar+n]=efar1[ithat][mfar+n]-2.*(ra-(i0-i)*detas)*pi*detas*(er3[i-1][jj0]*(1.-(detar-mm0))*(cos(bei2)))/(cm*180.);
efar1[ithat][mfar+n+1]=efar1[ithat][mfar+n+1]-2.*(ra-(i0-i)*detas)*pi*detas*(er3[i-1][jj0]*(detar-mm0)*(cos(bei2)))/(cm*180.);
}
// else efar1[ithat][mfar+n]=efar1[ithat][mfar+n]-2.*(ra-(i-.5)*detas)*pi*detas*(er3[i0-i][jj0]*(1.-(detar-mm0))*(cos(bei2)))/(cm*180.);
}
/*----------------------------------------Er down face---------------------------------*/
detar=2.*(ra-(i)*detas*cos(arf))*sin(that)/(detas)+4.*(jj0-jj02)*cos(that);//+2*(i-1)*sin(that);
mm0=detar;
m=n-mm0;
// else m=n-mm0+(2.*jj0/cos(that)-2*jj0);
bei2=k*pi/180.;
cm=4.*pi*detat*v;
if(m>=0)
{
efar1[ithat][mfar+n]=efar1[ithat][mfar+n]-2.*(ra-(i0-i)*detas)*pi*detas*(er3[i-1][jj0]*(1.-(detar-mm0))*(cos(bei2)))/(cm*180.);
efar1[ithat][mfar+n+1]=efar1[ithat][mfar+n+1]-2.*(ra-(i0-i)*detas)*pi*detas*(er3[i-1][jj0]*(detar-mm0)*(cos(bei2)))/(cm*180.);
}
/*---------------------------------hy-----------------------------------------------*/
/*----------------------------------hy up-------------------------------------------*/
detar=2.*(ra-(i)*detas*cos(arf))*sin(that)/(detas);//+2*(i-1)*sin(that);
mm0=detar;
m=n-mm0;
// else m=n-mm0+(2.*jj0/cos(that)-2*jj0);
bei2=(k)*pi/180.;
if((m)>=0)
{
cm=4.*pi*detat*v;
if(m-1>=0)
{
efar4[ithat][mfar+n]=efar4[ithat][mfar+n]-120.*pi*2.*(ra-(i0-i)*detas)*pi*detas*(hy3[i-1][jj0-1]*(1.-(detar-mm0))*cos(bei2))*cos(that)/(cm*180.);
efar4[ithat][mfar+n+1]=efar4[ithat][mfar+n+1]-120.*pi*2.*(ra-(i0-i)*detas)*pi*detas*(hy3[i-1][jj0-1]*(detar-mm0)*cos(bei2))*cos(that)/(cm*180.);
}
// else efar4[ithat][mfar+n]=efar4[ithat][mfar+n]-120.*pi*2.*(ra-(i-.5)*detas)*pi*detas*(hy3[i0-i][jj0-1]*(1.-(detar-mm0))*cos(bei2))*cos(that)/(cm*180.);
}
/*------------------------------------------hy down----------------------------------*/
detar=2.*(ra-(i)*detas*cos(arf))*sin(that)/(detas)+4.*(jj0-jj02)*cos(that);//+2*(i-1)*sin(that);
mm0=detar;
m=n-mm0;
// else m=n-mm0+(2.*jj0/cos(that)-2*jj0);
bei1=(k-1)*pi/180.;
bei2=(k)*pi/180.;
if((m)>=0)
{
cm=4.*pi*detat*v;
if(m>=0)
{
efar4[ithat][mfar+n]=efar4[ithat][mfar+n]+120.*pi*2.*(ra-(i0-i)*detas)*pi*detas*(hy3[i-1][jj0-1]*(1.-(detar-mm0))*cos(bei2))*cos(that)/(cm*180.);
efar4[ithat][mfar+n+1]=efar4[ithat][mfar+n+1]+120.*pi*2.*(ra-(i0-i)*detas)*pi*detas*(hy3[i-1][jj0-1]*(detar-mm0)*cos(bei2))*cos(that)/(cm*180.);
}
// else efar4[ithat][mfar+n]=efar4[ithat][mfar+n]+120.*pi*2.*(ra-(i-.5)*detas)*pi*detas*(hy3[i0-i][jj02]*(1.-(detar-mm0))*cos(bei2))*cos(that)/(cm*180.);
}
}
}
/*-----------------------------------Ez------------------------------------------*/
for(k=0;k<=180;k++)
{
arf=k*pi/180.;
for(j=jj02;j=0)
{
cm=4.*pi*detat*v;
if(m>=0)
{
efar2[ithat][mfar+n]=efar2[ithat][mfar+n]+2.*ra*pi*detas*(ez3[i0][j]*(1.-(detar-mm0))*(cos(bei2)))/(cm*180.);
efar2[ithat][mfar+n+1]=efar2[ithat][mfar+n+1]+2.*ra*pi*detas*(ez3[i0][j]*(detar-mm0)*(cos(bei2)))/(cm*180.);
}
// else efar2[ithat][mfar+n]=efar2[ithat][mfar+n]+2.*ra*pi*detas*(ez3[i0][j]*(1.-(detar-mm0))*(cos(bei2)))/(cm*180.);
}
/*-------------------------------------side face2(down)---------------------------------*/
detar=2.*ra*(1.-cos(arf))*sin(that)/(detas)+2*(jj0-2*jj02+j)*cos(that);
mm0=detar;
m=n-mm0;
// else m=n-mm0+(2.*jj0/cos(that)-2*jj0);
bei1=(k-1)*pi/180.;
bei2=k*pi/180.;
if((m)>=0)
{
cm=4.*pi*detat*v;
if(m>=0)
{
efar2[ithat][mfar+n]=efar2[ithat][mfar+n]+2.*ra*pi*detas*(ez3[i0][j]*(1.-(detar-mm0))*(cos(bei2)))/(cm*180.);
efar2[ithat][mfar+n+1]=efar2[ithat][mfar+n+1]+2.*ra*pi*detas*(ez3[i0][j]*(detar-mm0)*(cos(bei2)))/(cm*180.);
}
// else efar2[ithat][mfar+n]=efar2[ithat][mfar+n]+2.*ra*pi*detas*(ez3[i0][j]*(1.-(detar-mm0))*(cos(bei2)))/(cm*180.);
}
/*-----------------------------------Hy-------------------------------------------*/
/*-------------------------------------side face1(up)---------------------------------*/
arf=k*pi/180.;
detar=2.*(ra)*(1.-cos(arf))*sin(that)/(detas)+2*(jj0-j)*cos(that);
mm0=detar+1;
m=n-mm0;
// else m=n-mm0+(2.*jj0/cos(that)-2*jj0);
if(m>=0)
{
cm=4.*pi*detat*v;
if(m>=0)
{
efar3[ithat][mfar+n]=efar3[ithat][mfar+n]-120.*pi*2.*(ra)*pi*detas*((hy3[i0-1][j])*(1.-(detar-mm0)))*sin(that)/(cm*180.);
efar3[ithat][mfar+n+1]=efar3[ithat][mfar+n+1]-120.*pi*2.*(ra)*pi*detas*((hy3[i0-1][j])*(detar-mm0))*sin(that)/(cm*180.);
}
// else efar3[ithat][mfar+n]=efar3[ithat][mfar+n]-120.*pi*2.*(ra-.5*detas)*pi*detas*((hy3[i0-1][jj0-j])*(1.-(detar-mm0)))*sin(that)/(cm*180.);
}
/*-------------------------------------side face2(down)---------------------------------*/
detar=2.*(ra)*(1.-cos(arf))*sin(that)/(detas)+2*(jj0-2*jj02+j)*cos(that);
mm0=detar+1;
m=n-mm0;
// else m=n-mm0+(2.*jj0/cos(that)-2*jj0);
if(m>=0)
{
cm=4.*pi*detat*v;
if(m>=0)
{
efar3[ithat][mfar+n]=efar3[ithat][mfar+n]-120.*pi*2.*(ra)*pi*detas*((hy3[i0-1][j])*(1.-(detar-mm0)))*sin(that)/(cm*180.);
efar3[ithat][mfar+n+1]=efar3[ithat][mfar+n+1]-120.*pi*2.*(ra)*pi*detas*((hy3[i0-1][j])*(detar-mm0))*sin(that)/(cm*180.);
}
// else efar3[ithat][mfar+n]=efar3[ithat][mfar+n]-120.*pi*2.*(ra-.5*detas)*pi*detas*((hy3[i0-1][jj0-j])*(1.-(detar-mm0)))*sin(that)/(cm*180.);
}
}
continue;
}
}
}
for(ithat=25;ithat<=25;ithat++)
{
for(n=0;n8.e6) vi=0.;
else vi=-exp(x11);
/* if(k1>48000)
{
fprintf(pp2,"k1=%d x1=%f x11=%f vi=%f\n",k1,x1,x11,vi);
}
*/
srvi[k0]=srvi[k0]+x1*vi;//ezi;
sivi[k0]=sivi[k0]-x2*vi;//ezi;
srci[k0]=srci[k0]+x1*ci[k1];
sici[k0]=sici[k0]-x2*ci[k1];
}
fprintf(pp2,"k0=%d rvi=%f ivi=%f rci=%f ici=%f\n",k0,srvi[k0],sivi[k0],srci[k0],sici[k0]);
}
for(k0=f1;k0<=f2;k0++)
{
ampv[k0]=sqrt(srvi[k0]*srvi[k0]+sivi[k0]*sivi[k0]);
if(srvi[k0]<0.) phv[k0]=pi+atan(sivi[k0]/srvi[k0]);
else phv[k0]=atan(sivi[k0]/srvi[k0]);
ampi[k0]=sqrt(srci[k0]*srci[k0]+sici[k0]*sici[k0]);
if(srci[k0]<0.) phi[k0]=pi+atan(sici[k0]/srci[k0]);
else phi[k0]=atan(sici[k0]/srci[k0]);
}
for(i=f1;i<=f2;i++)
{
// y0=ampi[i]/ampv[i];
// y1=phi[i]-phv[i];
y0=ampv[i]/ampi[i];
y1=phv[i]-phi[i];
re=y0*cos(y1);
ri=y0*sin(y1);
// fprintf(pp2,"fre=%d ve=%f vi=%f\n",i,ampv[i],phv[i]);
// fprintf(pp2,"fre=%d Ie=%f Ii=%f\n",i,ampi[i],phi[i]);
fprintf(pp2,"%f %f %f\n",1.+0.5*i,re,ri);
}
/*------------------------------caculation far area pattern---------------------------*/
/* for(ithat=0;ithat<=45;ithat++)
{
for(i=0;i