Select Git revision
simclass_test.m
lmaresz authored
simclass_test.m 1.27 KiB
clear
close all
progressBar1 = waitbar(0,'Generating rays...','Name','Tracing rays...',...
'CreateCancelBtn','setappdata(gcbf,''canceling'',1)');
setappdata(progressBar1,'canceling',0);
reflectors = PlaneReflector.empty;
reflectors(end+1) = PlaneReflector([2 0], 2);
reflectors(end+1) = ParabolaReflector([0 0], 4, 3);
reflectors(end+1) = BalazsAperture([3 0], 20, 1000);
phi_start = -pi;
phi_stop = pi;
n = 100000;
wavelength = 3e8/1e9;
stepSize = n/100;
antenna = Antenna(Vect(1,0), [ones(1,125), zeros(1,750), ones(1,125)], zeros(1,1000));
rays = antenna.generateRaysB(n);
figure(1);
plot(0, 0);
xlim([0 4]);
ylim([-4 4]);
hold on;
antenna.plot_antenna();
for k = 1:size(reflectors, 2)
reflectors(k).plot_self;
end
for k = 1:size(rays, 2)
if getappdata(progressBar1,'canceling')
break;
end
if mod(k, stepSize) == 0
waitbar(k/n,progressBar1,sprintf('Tracing rays... [%0.1f%%]',k/n*100));
end
traces(k) = Trace(k, rays(k), wavelength, reflectors, 5);
%traces(k).plot_trace(3);
end
delete(progressBar1)
hold off;
histogram = reflectors(end).getCollisionHistogram();
figure(2);
plot(abs(histogram));
%field = FarField.CalculateFarField(1000, 500, 20, 0.01, histogram);
%field = abs(field);
%field = field/max(field);
%plot(20*log10(field));