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