複素数の位相角を[-2π +2π]の範囲で計算する方法は?

複素数z=complex(re, im)の位相角を[-2π +2π]の範囲で計算するにはどういった方法がありますか?
angle(z)では[-π +π]の範囲で連続性が無くなってしまいます。

3 Comments

連続的に動く点の角度を周期的に測定すると「前回測定値との差分はπより大幅に少ない」事を活用できます。
「前回との差分(絶対値)がπを超えたら『非連続箇所を跨いだ』と判断し逆方向に2πを加減算する」事であたかも連続した角度の動きが続いているかの様に測定する事が可能です。
但し、連続的に動く点の値がゼロ点付近を通過すると角度が大きく変化してしまう難点があります。
[X,Y] = meshgrid(-4:0.1:4,-4:0.1:4);
P = angle(X + Y.*i);
surf(X,Y,P);
余談ですが、物理的な「多回転を測定出来るタイプの回転センサ」があり、その原理にも色々あります
  • ネジと同様にらせん状の道を辿るタイプ
  • ギア比の異なる1回転センサを複数個組み合わせるタイプ
  • 相対角エンコーダの出力を積算するタイプ
Akira Agata
Akira Agata on 1 Mar 2024
もし位相角変化の連続性を求めたいということであれば、関数 unwrap が利用可能かと思います。
Shuichi Nagamatsu
Shuichi Nagamatsu on 12 Jun 2024
unwrap関数で解決しました。ありがとうございました。

Sign in to comment.

Answers (0)

Categories

Find more on 一般分野への適用 in Help Center and File Exchange

Products

Release

R2023a

Asked:

on 28 Feb 2024

Commented:

on 12 Jun 2024

Community Treasure Hunt

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

Start Hunting!