Anda di halaman 1dari 3

Appendix to Section 7.

MATLAB Codes for


Diffraction Coefficients of
Acoustic Elementary
Fringe Waves
% -----------------------------------------------------------------------------------------------------------------------------------------
% Name : directivity_patternEEW_Section77.m
% Author : Feray Hacivelioglu, Levent Sevgi
% Purpose : to calculate directivity patterns of EEWs and 10log|F(1)s,h|
% -----------------------------------------------------------------------------------------------------------------------------------------
% ******************************************************************************************
%**************************************** Input parameters ************************************
%*******************************************************************************************
alfa = input('wedge angle [Deg] (pi < alfa <= 2*pi) = ');
angle0 = input('incident angle [Deg] (0 < angle0 < alfa) = ');
gamma0 = input('\gamma_0 angle [Deg] (0 < gamma0 < pi) = ');
Vtheta = input('\vartheta angle [Deg] (0 < Vtheta < pi) = ');
angle = input('observation angle [Deg] (0 <= angle <= alfa) = ');
%*******************************************************************************************
% -------------------------------------------- change the angles degrees to radians -----------------------------------------------
alfa = alfa*pi/180; angle0 = angle0*pi/180; gamma0 = gamma0*pi/180;
Vtheta = Vtheta*pi/180; angle = angle*pi/180;
% -------------------------------------------------------- length of the inputs --------------------------------------------------------
l1 = length(alfa); l2 = length(angle0); l3 = length(gamma0); l4 = length(Vtheta); l5 = length(angle);
% -----------------------------------------------------------------------------------------------------------------------------------------

if (l4 > 1)
Ar = Vtheta; nA = l4; var = 1; % for Figure 7.7
elseif (l5 > 1)
Ar = angle; nA = l5; var = 2; % for Figure 7.6 and Figure 7.8
end

Fundamentals of the Physical Theory of Diffraction, Second Edition. Pyotr Ya. Ufimtsev.
© 2014 John Wiley & Sons, Inc. Published 2014 by John Wiley & Sons, Inc.

439
440 MATLAB CODES FOR DIFFRACTION COEFFICIENTS OF ACOUSTIC ELEMENTARY FRINGE WAVES

for m = 1:nA
if (var == 1)
fprintf(1, 'Calculating directivity pattern for Vtheta %5.1f : \n',rad2deg(Ar(m))); Vtheta = Ar(m);
if (angle == alfa/2+pi)
teta(m) = 2*pi-Vtheta; Ar(m) = teta(m);
elseif (angle == alfa/2)
teta(m) = Vtheta; Ar(m) = teta(m);
end
elseif (var == 2)
fprintf(1, 'Calculating directivity pattern for angle %5.1f : \n',rad2deg(Ar(m))); angle = Ar(m);
end
[Fs1(m),Fh1(m)] = Fsh(angle,angle0,gamma0,Vtheta,alfa); % directivity patterns of EEWs
% calculating the quantities 10log|F(1)s| and 10log|F(1)h|
Fs(m) = 10*log10(abs(Fs1(m)));
Fh(m) = 10*log10(abs(Fh1(m)));
end
% ---------------------------------------------------------------- END ------------------------------------------------------------------
% -----------------------------------------------------------------------------------------------------------------------------------------
% Name : Fsh.m
% Author : Feray Hacivelioglu, Levent Sevgi
% Purpose : to calculate Fs1 and Fh1 directivity patterns of (7.91) and (7.92)
% -----------------------------------------------------------------------------------------------------------------------------------------
function [Fs1,Fh1] = Fsh(angle,angle0,gamma0,Vtheta,alfa)
if (Vtheta == pi-gamma0)
% for diffraction coefficients of elementary fringe waves for the diffraction cone
% Note that on the diffraction cone Fs1 and Fh1 do not depend on the gamma0:
[f1,g1] = fun_fg(angle,angle0,alfa);
Fs1 = f1; Fh1 = g1;
else
beta1 = acos(sin(gamma0)*sin(Vtheta)*cos(angle)-cos(gamma0)*cos(Vtheta)); % Eq.(7.75)
beta2 = acos(sin(gamma0)*sin(Vtheta)*cos(alfa-angle)-cos(gamma0)*cos(Vtheta)); % Eq.(7.95)
sgm1 = sigma12(beta1,gamma0); sgm2 = sigma12(beta2,gamma0);
Ut1 = (pi/(2*alfa*sin(gamma0).^2))*(cot(pi*(sgm1+angle0)/(2*alfa))-cot(pi*(sgm1-angle0)/(2*alfa)));
%Eq.(7.85)
U01 = -eps_x(angle0)*sin(angle0)/(cos(beta1)-cos(gamma0).^2+sin(gamma0).^2*cos(angle0)); % Eq.(7.86)
Vt1 = (pi/(2*alfa*sin(gamma0).^2*sin(sgm1)))*(cot(pi*(sgm1+angle0)/(2*alfa))+cot(pi*(sgm1-
angle0)/(2*alfa))); % Eq.(7.87)
V01 = eps_x(angle0)/(cos(beta1)-cos(gamma0).^2+sin(gamma0).^2*cos(angle0)); % Eq.(7.88)
Ut2 = (pi/(2*alfa*sin(gamma0).^2))*(cot(pi*(sgm2+alfa-angle0)/(2*alfa))-cot(pi*(sgm2-alfa+angle0)/(2*alfa)));
U02 = -eps_x(alfa-angle0)*sin(alfa-angle0)/(cos(beta2)-cos(gamma0).^2+sin(gamma0).^2*cos(alfa-angle0));
Vt2 = (pi/(2*alfa*sin(gamma0).^2*sin(sgm2)))*(cot(pi*(sgm2+alfa-angle0)/(2*alfa))+cot(pi*(sgm2-
alfa+angle0)/(2*alfa)));
V02 = eps_x(alfa-angle0)/(cos(beta2)-cos(gamma0).^2+sin(gamma0).^2*cos(alfa-angle0));

U1 = Ut1-U01; V1 = Vt1-V01; % Eq.(7.83); Eq.(7.84)


U2 = Ut2-U02; V2 = Vt2-V02; % Eq.(7.93); Eq.(7.94)
if (sgm1 == angle0)
U1 = pi*cot(pi*angle0/alfa)/(2*alfa*sin(gamma0).^2)-cot(angle0)/(2*sin(gamma0).^2); % Eq.(7.106)
V1 = U1/sin(angle0); % Eq.(7.107)
end
if (sgm2 == alfa-angle0)
U2 = pi*cot(pi*(alfa-angle0)/alfa)/(2*alfa*sin(gamma0).^2)-cot(alfa-angle0)/(2*sin(gamma0).^2); %Eq.(7.108)
V2 = U2/sin(alfa-angle0); % Eq.(7.109)
end
Fs1 = -(U1+U2).*sin(gamma0).^2; % Eq.(7.91)
Fh1 = -(V1*sin(angle)+V2*sin(alfa-angle))*sin(gamma0)*sin(Vtheta); % Eq.(7.92)
% --------------------------------------------------------------------------------------------------------------------------------------
% Note that the functions Fs1 and Fh1 are singular in the two grazing
% directions:
% angle0 = alfa-pi; and angle0 = pi;
% --------------------------------------------------------------------------------------------------------------------------------------
end
% --------------------------------------------------------------------- END-------------------------------------------------------------
MATLAB CODES FOR DIFFRACTION COEFFICIENTS OF ACOUSTIC ELEMENTARY FRINGE WAVES 441

% ----------------------------------------------------------------------------------------------------------------------------------------
% Name : sigma12.m
% Author : Feray Hacivelioglu, Levent Sevgi
% Purpose : to calculate the functions (7.76) and (7.77)
% ----------------------------------------------------------------------------------------------------------------------------------------
function result = sigma12(beta,gamma)
if (gamma >= 0) && (gamma <= pi/2)
betak = 2*gamma;
elseif (gamma > pi/2) && (gamma <= pi)
betak = 2*(pi-gamma);
end
if (beta >= 0) && (beta <= betak)
result = pi-acos((cos(beta)-cos(gamma).^2)./(sin(gamma).^2));
elseif (beta > betak) && (beta <= pi)
result = 1i*log(cos(gamma).^2-cos(beta)+sqrt((cos(gamma).^2-
cos(beta)).^2-sin(gamma).^4))-1i*2*log(sin(gamma));
end
% ---------------------------------------------------------------- END ----------------------------------------------------------------

The codes above were tested by reproducing the figures presented in Section 7.7
of the first edition.

Anda mungkin juga menyukai