Tone
产生给定频率、相位和幅度的音调。
函数接口声明如下:
- 整型数的操作:
HmppResult HMPPS_Tone_16s(int16_t *dst, int32_t len, int16_t magn, float freq, float *phase);
HmppResult HMPPS_Tone_16sc(Hmpp16sc *dst, int32_t len, int16_t magn, float freq, float *phase);
- 浮点数的操作:
HmppResult HMPPS_Tone_32f(float *dst, int32_t len, float magn, float freq, float *phase);
HmppResult HMPPS_Tone_64f(double *dst, int32_t len, double magn, double freq, double *phase);
HmppResult HMPPS_Tone_32fc(Hmpp32fc *dst, int32_t len, float magn, float freq, float *phase);
HmppResult HMPPS_Tone_64fc(Hmpp64fc *dst, int32_t len, double magn, double freq, double *phase);
参数
参数名 |
描述 |
取值范围 |
输入/输出 |
---|---|---|---|
dst |
指向目的向量的指针。 |
非空 |
输出 |
len |
向量长度。 |
(0,INT_MAX] |
输入 |
phase |
指向相位的指针。 |
[0.0, 2π) |
输入 |
magn |
震幅。 |
视类型而定 |
输入 |
freq |
频率。 |
实数:[0.0, 0.5) 复数:[0.0, 1.0) |
输入 |
返回值
- 成功:返回HMPP_STS_NO_ERR。
- 失败:返回错误码。
错误码
错误码 |
描述 |
---|---|
HMPP_STS_NULL_PTR_ERR |
dst这个入参中存在空指针。 |
HMPP_STS_SIZE_ERR |
len小于或等于0。 |
HMPP_STS_PARAMETER_ERR |
振幅小于0,频率,相位超出范围。 |
示例
#define BUFFER_SIZE_T 10 int main() { int16_t dst[BUFFER_SIZE_T]; int32_t i; int16_t magn = 25; float freq = 0.4; float phase = 5.1415901; HmppResult result = HMPPS_Tone_16s(dst, BUFFER_SIZE_T, magn, freq, &phase); printf("result = %d \ndst =", result); for (i = 0; i < BUFFER_SIZE_T; i++) { printf(" %d ", dst[i]); } return 0; }
运行结果:
result = 0 dst = 10 4 -18 24 -21 10 4 -18 24 -21