From beb56eccf2e7be72e69719e201291b1687df29bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Frey=20Bal=C3=A1zs?= <frey.balazs96@gmail.com> Date: Sun, 7 Jun 2020 20:02:37 +0200 Subject: [PATCH] =?UTF-8?q?FarField=20sz=C3=A1m=C3=ADt=C3=A1s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RTX class/FarField.m | 27 +++++++++++++++++++++++++++ RTX class/simclass_test.m | 9 ++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 RTX class/FarField.m diff --git a/RTX class/FarField.m b/RTX class/FarField.m new file mode 100644 index 0000000..a1ce28d --- /dev/null +++ b/RTX class/FarField.m @@ -0,0 +1,27 @@ +classdef FarField + + properties + + end + + methods (Static) + function field = CalculateFarField(ntheta, nfi, apertureSize, wavelength, histogram) + field = zeros(1, ntheta); + theta = linspace(-pi/6, pi/6, ntheta); + fi = linspace(0, 2*pi, nfi); + nr = floor(length(histogram)/2); + r = linspace(0, apertureSize/2, nr); + for i = 1:ntheta + er = [cos(theta(i)) sin(theta(i)) 0]; + for j = 1:nr + for k = 1:nfi + rv = [0 r(j)*sin(fi(k)) r(j)*cos(fi(k))]; + area = (apertureSize/(2*nr)) * r(j)*2*pi/nfi; + field(i) = field(i) + histogram(2*nr-j+1)*exp(1i*2*pi*rv*er'/wavelength)*area; + end + end + end + end + end +end + diff --git a/RTX class/simclass_test.m b/RTX class/simclass_test.m index cfc17e5..4daa74a 100644 --- a/RTX class/simclass_test.m +++ b/RTX class/simclass_test.m @@ -4,7 +4,7 @@ reflectors(end+1) = ParabolaReflector([0 0], 4, 3); reflectors(end+1) = BalazsAperture([3 0], 20, 1000); start = Vect(1, 0); -n_ray = 100000; +n_ray = 10000; phi_start = -pi;%angle(1-1i); phi_stop = pi;%angle(1+1i); phi = linspace(phi_start, phi_stop, n_ray); @@ -31,3 +31,10 @@ ylim([-4 4]); histogram = reflectors(end).getCollisionHistogram(); figure(2); plot(histogram); + +%field = FarField.CalculateFarField(1000, 500, 20, 0.01, histogram); +%field = abs(field); +%field = field/max(field); + +%plot(20*log10(field)); + -- GitLab