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

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

3 件のコメント

Atsushi Ueno
Atsushi Ueno 2024 年 2 月 28 日
連続的に動く点の角度を周期的に測定すると「前回測定値との差分はπより大幅に少ない」事を活用できます。
「前回との差分(絶対値)がπを超えたら『非連続箇所を跨いだ』と判断し逆方向に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 2024 年 3 月 1 日
もし位相角変化の連続性を求めたいということであれば、関数 unwrap が利用可能かと思います。
Shuichi Nagamatsu
Shuichi Nagamatsu 2024 年 6 月 12 日
unwrap関数で解決しました。ありがとうございました。

サインインしてコメントする。

回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange一般分野への適用 についてさらに検索

製品

リリース

R2023a

タグ

質問済み:

2024 年 2 月 28 日

コメント済み:

2024 年 6 月 12 日

Community Treasure Hunt

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

Start Hunting!