Разверните фазовые углы в векторе, добавив кратные ±2π
Я работаю с Modelica и ищу функцию для "разворачивания" фазовых углов в векторе путем добавления кратных ±2π. Кто-нибудь может иметь идею или подсказку, чтобы сделать такой алгоритм под Modelica?
Я понимаю Matlab-подобную реализацию этого:
%Unwrap the signal xw(n)
xu = xw;
for i=2:length(xw)
difference = xw(i)-xw(i-1);
if difference > pi
xu(i:end) = xu(i:end) - 2*pi;
elseif difference < -pi
xu(i:end) = xu(i:end) + 2*pi;
end
Я бы предпочел делать это "непрерывно" в непрерывном домене, но не на выборочном пакете сигналов, как во фрагменте кода...
Если у вас есть идеи по реализации Modelica, я был бы очень признателен.
Спасибо. Питер
1 ответ
Зависит от использования. Может быть, это поможет взглянуть на функцию Modelica.Math.atan3 В противном случае описать ваш вариант использования. HTH Тони