park, inv_park

Perform forward and inverse Park transform.


DSP style:

void ippsq_park_f32 (float32_t Ialpha, float32_t Ibeta, float32_t *pId, float32_t *pIq, float32_t sinVal, float32_t cosVal);

void ippsq_inv_park_f32 (float32_t Id, float32_t Iq, float32_t *pIalpha, float32_t *pIbeta, float32_t sinVal, float32_t cosVal);

void ippsq_park_q31 (q31_t Ialpha, q31_t Ibeta, q31_t *pId, q31_t *pIq, q31_t sinVal, q31_t cosVal);

void ippsq_inv_park_q31 (q31_t Id, q31_t Iq, q31_t *pIalpha, q31_t *pIbeta, q31_t sinVal, q31_t cosVal);

Include Files



Ialpha, Ibeta

Orthogonal stationary quantities.

pIalpha, pIbeta

Pointers to orthogonal stationary quantities.

sinVal, cosVal

Sin and Cos components for coordinate system rotation.

Id, Iq

Orthogonal rotating quantities.

pId, pIq

Pointers to orthogonal rotating quantities.


These functions use the Park transform for forward and inverse conversion between two-phase orthogonal components, in which Ialpha (along α axis) and Ibeta (along β axis) are perpendicular to each other and orthogonal components rotated to angle θ, in which Id is at an angle θ (rotation angle) to the α axis and Iq is perpendicular to Id along the q axis (see the figure below).

The Forward Park functions compute the orthogonal rotating quantities by the following equations:

Id = IalphacosVal + IbetasinVal,

Iq = IbetacosValIalphasinVal,


sinVal and cosVal are input parameters for rotating an angle θ with functions ippsqSinCosOne or ippsq_sin_cos:

sinVal = sin(θ)

cosVal = cos(θ)



For more complete information about compiler optimizations, see our Optimization Notice.