---
title: Tone
description: "产生给定频率、相位和幅度的音调。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/251RC1/accel/kunpengaccel_hmpp_06_0133.html
sourcePath: /source/zh/kunpengboostkithistory/251RC1/accel/kunpengaccel_hmpp_06_0133.html
indexId: b8c0d0b7343ae8f37277fb71c1542249725277ff12a2e26c2047fbfbd564cf2877
---
# 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
```
