working with angles and wraparound

21 visualizaciones (últimos 30 días)
michael
michael el 5 de Jul. de 2023
Comentada: michael el 5 de Jul. de 2023
Hi,
I have an antenna (the black dot) which is receiving pointing commands and sends pointing report.
Also I have a moving object around the antenna (the red line).
I'd like to compare the analytical analysis with the command and the report.
the issue is that when I cross from 360 to 0 I'll have a "spike" on the delta graph (of the command-report).
How to overcome the issue so that the transition would be smooth?

Respuestas (1)

Pramil
Pramil el 5 de Jul. de 2023
To overcome the issue of a "spike" in the delta graph when crossing from 360 to 0 degrees, you can use the concept of angular wrapping or circular arithmetic. This involves adjusting the values to ensure a smooth transition when crossing the 360-degree mark.
Here's an example of how you can implement angular wrapping in MATLAB:
% Generate sample data
command = [355, 358, 2, 5, 358, 1, 3, 6, 359, 2, 4, 357];
report = [354, 357, 3, 6, 357, 0, 2, 5, 358, 1, 3, 356];
% Convert the angles to the range [0, 360)
command_wrapped = mod(command, 360);
report_wrapped = mod(report, 360);
% Calculate the delta between command and report
delta = mod(report_wrapped - command_wrapped, 360);
% Plot the delta graph
plot(delta);
xlabel('Sample');
ylabel('Delta');
title('Command-Report Delta');
  1 comentario
michael
michael el 5 de Jul. de 2023
Your example is not good. in the delta you shall have in the first place difference of 1, rather than 359 degress
Also, put in report [354 357 359 ...]
This is more realistis scenario - the difference is

Iniciar sesión para comentar.

Categorías

Más información sobre Electrophysiology en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by