PolarToCart
极坐标转直角坐标。
公式如下:
函数接口声明如下:
- 整型数的操作:
HmppResultHMPPS_PolarToCart_16sc_S(constint16_t*srcMagn, constint16_t*srcPhase, Hmpp16sc*dst, int32_tlen, doublemagnScale, double phaseScale);
- 浮点数的操作:
HmppResultHMPPS_PolarToCart_32f(constfloat*srcMagn, constfloat*srcPhase, float*dstRe, float*dstIm, int32_tlen);
HmppResultHMPPS_PolarToCart_64f(constdouble*srcMagn, constdouble*srcPhase, double*dstRe, double*dstIm, int32_tlen);
HmppResultHMPPS_PolarToCart_32fc(constfloat*srcMagn, constfloat*srcPhase, Hmpp32fc*dst, int32_tlen);
HmppResultHMPPS_PolarToCart_64fc(constdouble*srcMagn, constdouble*srcPhase, Hmpp64fc*dst, int32_tlen);
参数
参数名 |
描述 |
取值范围 |
输入/输出 |
---|---|---|---|
srcMagn |
指向极径源向量的指针。 |
非空 |
输入 |
srcPhase |
指向极角源向量的指针。 |
非空 |
输入 |
len |
向量长度。 |
(0,INT_MAX] |
输入 |
dst |
指向复数目标向量的指针。 |
非空 |
输出 |
dstRe |
指向复数实部目标向量的指针。 |
非空 |
输出 |
dstIm |
指向复数虚部目标向量的指针。 |
非空 |
输出 |
magnScale |
极径的缩放因数。 |
(0, inf)且为2n |
输入 |
phaseScale |
极角的缩放因数。 |
(0, inf)且为2n |
输入 |
返回值
- 成功:返回HMPP_STS_NO_ERR。
- 失败:返回错误码。
错误码
错误码 |
描述 |
---|---|
HMPP_STS_NULL_PTR_ERR |
当任何指定的指针为空时指示错误。 |
HMPP_STS_SIZE_ERR |
len小于或等于0。 |
HMPP_STS_SCALE_ERR |
magnScale或者phaseScale不在(0,INF)范围内或输入为NAN。 |
HMPP_STS_MALLOC_FAILED |
Init函数中进行算法模型所需内存申请失败。 |
示例
#define SRC_LEN 8 void PolarToCartExample(void) { int32_t len = SRC_LEN; float srcMagn[SRC_LEN] = { 4.94, -2.39, -6.89, 54602.84, 8.17, 9.61, -7.003, 8.9 }; float srcPhase[SRC_LEN] = { 4.0, 2.67, -1.02, -1.23, -6.84, -5.73, 3.89, 9.54 }; float dstRe[SRC_LEN] = { 0.0f }; float dstIm[SRC_LEN] = { 0.0f }; HmppResult result = HMPPS_PolarToCart_32f(srcMagn, srcPhase, dstRe, dstIm, len); printf("HMPPS_PolarToCart_32f result = %d\n", result); if (result != HMPP_STS_NO_ERR) { return; } int32_t i; printf("len = %d\ndstRe =", len); for(i = 0; i < len; ++i){ printf(" %f", dstRe[i]); } printf("\ndstIm ="); for(i = 0; i < len; ++i){ printf(" %f", dstIm[i]); } printf("\n"); }
运行结果:
HMPPS_PolarToCart_32f result = 0 len = 8 dstRe = -3.228999 2.129122 -3.605992 18250.328125 6.935862 8.176719 5.131613 -8.840986 dstIm = -3.738604 -1.085790 5.871024 -51462.562500 -4.317721 5.049095 4.765349 -1.023208