clMatrix::PhaseSpectrum Method

Overload List

#SignatureDescription
1TOpenCLMtxVec *PhaseSpectrum(TOpenCLMtxVec *Vec) const;The phase angles (spectrum) of object elements.
2TOpenCLMtxVec *PhaseSpectrum(TOpenCLMtxVec *Vec, int VecIndex, int Index, int Len) const;Calculates the power spectrum from the Vec elements [VecIndex]..[VecIndex+Len-1].

Overload 1: TOpenCLMtxVec *PhaseSpectrum(TOpenCLMtxVec *Vec) const;

The phase angles (spectrum) of object elements.

#NameTypeDescription
1VecTOpenCLMtxVec *
Remarks:

Calculates the phase angles (spectrum) of all Vec object elements. Phase values are returned in radians and are in the range -PI,PI. Size and clMatrix::Complex properties of the calling object are set implicitly to match Vec object. The phase angles are calculated from the following equation:

Phase[k]=arctan⁡ℑ(Vec[k])ℜ(Vec[k])\text{Phase}[k] = \arctan \frac{\Im (\text{Vec}[k])}{\Re (\text{Vec}[k])}
Examples
#include "clMtxExpr.h"

using namespace Dew;
using namespace Dew::Math;

void Example()
{
    clMatrix a, b;

    a.CopyCplxFromArray(1, 2, DewArray<float>{1, 2, 3, -4});  // a = [1 + 2i, 3 - 4i]
    b.PhaseSpectrum(a);  // b = [arctan2(2,1), arctan2(-4,3)];
}
See Also: clMatrix::PowerSpectrum, clMatrix::ArcTan2
Declared in Dew::Math::clMatrix · Dew.Math/clMtxExpr.h · Cross-compiler

Overload 2: TOpenCLMtxVec *PhaseSpectrum(TOpenCLMtxVec *Vec, int VecIndex, int Index, int Len) const;

Calculates the power spectrum from the Vec elements [VecIndex]..[VecIndex+Len-1].

#NameTypeDescription
1VecTOpenCLMtxVec *
2VecIndexint
3Indexint
4Lenint
Remarks:

Store the results in calling object elements [Index]..[Index+Len-1]. An exception is raised if array borders are overrun/underrun.

Declared in Dew::Math::clMatrix · Dew.Math/clMtxExpr.h · Cross-compiler