RF antenna azimuth, plotting improvements
This commit is contained in:
+37
-20
@@ -7,32 +7,49 @@ function f = plotParameters(obj)
|
||||
end
|
||||
|
||||
% Distance and tilt sample points
|
||||
d_values = [0.01, 0.1, 0.25, 0.5, 0.75, 1, 2, 3, 4, 5:5:100];
|
||||
% t = zeros(size(d));
|
||||
t_values = -90:15:90;
|
||||
d_values = [0.1, 0.5, 1:1:9, 10:2:19, 20:5:49, 50:10:100];
|
||||
t_values = -90:0.5:90;
|
||||
a_values = 0:0.5:360;
|
||||
|
||||
% Make grid of values of distances and tilts
|
||||
[d_mg, t_mg] = meshgrid(d_values, t_values);
|
||||
d = d_mg(:); t = t_mg(:); % flatten
|
||||
[d_mg, t_mg, a_mg] = meshgrid(d_values, t_values, a_values);
|
||||
d = d_mg(:); t = t_mg(:); a = a_mg(:); % flatten
|
||||
|
||||
% Sample SINR (SNR) function by distances, tilts
|
||||
% using SINR method with no other transmitters defined is equivalent to SNR
|
||||
s_x = obj.sensorPerformance(d, t); % don't define other sensors
|
||||
% Sample received signal strength (no interference or noise)
|
||||
s_x = obj.RSS(d, t, a);
|
||||
s_x = reshape(s_x, size(d_mg));
|
||||
|
||||
% Plot resultant sigmoid curves
|
||||
[T, A] = meshgrid(t_values, a_values); % Naz x Nel
|
||||
Tr = deg2rad(T);
|
||||
Ar = deg2rad(A);
|
||||
|
||||
figure;
|
||||
plot(d_values.', s_x(repmat((t_values == 0).', 1, size(d_values, 2))), "LineWidth", 2);
|
||||
grid("on");
|
||||
title("SNR vs Distance at 0 tilt");
|
||||
xlabel("Distance (m)");
|
||||
ylabel("SNR (dB)");
|
||||
hold("on");
|
||||
|
||||
figure;
|
||||
surf(d_mg, t_mg, s_x);
|
||||
for ii = 1:numel(d_values)
|
||||
% geometry (your "tilt from nadir, stack by distance")
|
||||
X = d_values(ii) * cos(Ar) .* sin(Tr);
|
||||
Y = d_values(ii) * sin(Ar) .* sin(Tr);
|
||||
Z = d_values(ii) * ones(size(X));
|
||||
|
||||
% evaluate or extract this slice
|
||||
Fslice = squeeze(s_x(:, ii, :))';
|
||||
|
||||
% plot as its own surface
|
||||
h = surf(X, Y, Z, Fslice);
|
||||
h.EdgeColor = 'none';
|
||||
h.FaceColor = 'interp';
|
||||
h.FaceAlpha = 0.25;
|
||||
end
|
||||
|
||||
colormap(turbo);
|
||||
colorbar;
|
||||
daspect([1 1 0.2]) % Separate Z further for more distinct layers
|
||||
xlabel('X'); ylabel('Y'); zlabel('Distance (m)');
|
||||
set(gca,'ZDir','reverse');
|
||||
view(3);
|
||||
axis("vis3d");
|
||||
grid("on");
|
||||
title("SNR vs Distance and Tilt");
|
||||
xlabel("Distance (m)");
|
||||
ylabel("Tilt (deg)");
|
||||
zlabel("SNR (dB)");
|
||||
scatter3(0, 0, 0, 'rx');
|
||||
hold("off");
|
||||
end
|
||||
Reference in New Issue
Block a user