Main Content

angle

説明

theta = angle(z) は、複素数配列 z の各要素について区間 [-π,π] の位相角を返します。theta の角度は、z = abs(z).*exp(i*theta) を満たします。

すべて折りたたむ

複素数を作成し、その大きさと位相を計算します。

z = 2*exp(i*0.5)
z = 1.7552 + 0.9589i
r = abs(z)
r = 2
theta = angle(z)
theta = 0.5000

周波数 15 Hz および 40 Hz の 2 つの正弦波で構成される信号を作成します。1 番目の正弦波は位相 -π/4 をもち、2 番目の正弦波は位相 π/2 をもちます。この信号を 100 Hz で 1 秒間サンプリングします。

fs = 100;
t = 0:1/fs:1-1/fs;
x = cos(2*pi*15*t - pi/4) - sin(2*pi*40*t);

信号のフーリエ変換を計算します。変換の振幅を周波数の関数としてプロットします。

y = fft(x);
z = fftshift(y);

ly = length(y);
f = (-ly/2:ly/2-1)/ly*fs;

stem(f,abs(z))
xlabel 'Frequency (Hz)'
ylabel '|y|'
grid

Figure contains an axes object. The axes object with xlabel Frequency (Hz), ylabel |y| contains an object of type stem.

振幅の小さい変換の値を除去して、変換の位相を計算します。この位相を周波数の関数としてプロットします。

tol = 1e-6;
z(abs(z) < tol) = 0;

theta = angle(z);

stem(f,theta/pi)
xlabel 'Frequency (Hz)'
ylabel 'Phase / \pi'
grid

Figure contains an axes object. The axes object with xlabel Frequency (Hz), ylabel Phase / blank pi contains an object of type stem.

入力引数

すべて折りたたむ

入力配列。スカラー、ベクトル、行列または多次元配列として指定します。z の要素が非負の実数である場合、angle は 0 を返します。z の要素が負の実数である場合、angle は π を返します。

データ型: double | single
複素数のサポート: あり

アルゴリズム

angle は複素数 z = x + iy を取り、関数 atan2 を使用して、正の x 軸と、xy 平面上の原点から点 (x,y) までの線とがなす角度を計算します。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2006a より前に導入

参考

| |