⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rs1dg.m

📁 The EM Wave MATLAB Library consists of a collection of MATLAB programs related to electromagnetic wa
💻 M
字号:
function [tsd,sig,sigka,sigspm]=rs1dg(wave,nr,N,rL,h,lc,g,tid,nsa,seed)
%rs1dg computes the bistatic scattering coefficient for Gaussian rough surfaces 
%   with Gaussian spectrum.
%
%   [tsd,sig,sigka,sigspm]=rs1dg(wave,nr,N,rL,h,lc,g,tid,nsa,seed)
%
%   INPUT:
%
%   wave=wavelength
%   nr=total number of surface realizations
%   N=total number of sample points
%   rL=rough surface length
%   h=rms height
%   lc=correlation length
%   g=tapering parameter for incident wave
%   tid=incident angle in degree
%   nsa=number of scattered angles from -90 deg to 90 deg
%   seed=seed for random number generator
%
%   OUTPUT:
%
%   tsd=scattered angles in degree
%   sig=bistatic scattering coef (MoM)
%   sigka=bistatic scattering coef (KA)
%   sigspm=bistatic scattering coef (SPM)
%
%	 REQUIRES: rsgeng.m for generation of Gaussian rough surfaces
%
% -- Part of the Electromagnetic Wave MATLAB Library (EWML)--
%    <http://www.emwave.com/>

% Original: L. Tsang, 1998

tai=tid*pi/180;
h2=h^2;
k=2*pi/wave;
ti=tan(tai);
ci=cos(tai);
denom=1+2*ti^2;
denom=denom/(2*(k*g*ci)^2);
denom=8*pi*k*g*sqrt(pi/2)*ci*(1-denom);

sig=zeros(nsa,1);
randn('seed',seed);
for ir=1:nr
  fprintf('Processing realization %i ...\n',ir);
  [f,df,x]=rsgeng(N,rL,h,lc,seed);
  seed=randn('seed');
  b=incid(k,x,f,tai,g);
  dx=rL/N;
  [xm,xn]=meshgrid(x);
  [fm,fn]=meshgrid(f);
  arg=k*sqrt((xm-xn).^2+(fm-fn).^2);
  for m=1:N
	  arg(m,m)=1;
  end
  A=dx*i*besselh(0,1,arg)/4;
  euler=1.78107;
  e=exp(1);
  for m=1:N
    dl=sqrt(1+df(m)*df(m))*dx;
    A(m,m)=(i/4)*dx*(1+(2*i/pi)*(log(euler*k*dl/4)-1));
  end
  b=b.';
  u=A\b;
  u=u.';
  
  dan=180/(nsa+1);
  for m=1:nsa
    tsd(m)=-90+m*dan;
    tas=tsd(m)*pi/180;
    ss=sin(tas);
    cs=cos(tas);
    integ=exp(-i*k*(ss*x+f*cs));
    integ=integ.*u*dx;
    psis=sum(integ);
    sige=abs(psis)^2/denom;
    sig(m)=(sige+(ir-1)*sig(m))/ir;
  end
end

% Kirchhoff Approximation
for m=1:nsa;
  tas=tsd(m)*pi/180;
  ss=sin(tas);
  cs=cos(tas);
  csa(m)=cs^2;
  kxq=k*(ss-sin(tai));
  kx(m)=kxq;
  csum=ci+cs;
  fac=(1+cos(tai+tas))^2*k^3/ci*exp(-(k*h*csum)^2);
  p=0;
  arr=1/(k*csum)^2;
  for ma=1:20;
    term=lc/(2*sqrt(pi));
    term=term/sqrt(ma);
    term=term*exp(-(kxq*lc/2)^2/ma);
    arr=arr*(k*csum*h)^2/ma;
    term1=arr*term;
    p=p+term1;
  end
  sigka(m)=p*fac;
end;

%Small Perturbation Method
sigspm=csa.*wk(kx,h,lc)*4*k^3*cos(tai);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                              incid.m                               %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function b=incid(k,x,z,tai,g)
% generates the spatial tapered incident wave

ti=tan(tai);
ci=cos(tai);
si=sin(tai);
fac=((x+z*ti)/g).^2;
kg=(k*g*ci)^2;
w=(2*fac-1)/kg;
b=exp(i*k*(x*si-z*ci).*(1+w)-fac);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                               wk.m                                 %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=wk(kx,h,L)
% Gaussian spectral density

y=h^2*L*exp(-(kx*L*0.5).^2)/(2*sqrt(pi));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -