---
title: Triangle
description: "产生三角波。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/251RC1/accel/kunpengaccel_hmpp_06_0176.html
sourcePath: /source/zh/kunpengboostkithistory/251RC1/accel/kunpengaccel_hmpp_06_0176.html
indexId: 713aa8588048227b24bdb9c8f79f622c5fa710d77855dbc16fa77aeea5c0baeb77
---
# Triangle

产生三角波。

公式：

实数：x[n] = magn * cth(2π* rFreq*n + phase), n = 0, 1, 2,...

复数：x[n] = magn * [cth(2π* rFreq*n + phase) + j * sth(2π* rFreq*n + phase)], n = 0, 1, 2,...

函数接口声明如下：

- 整型数的操作：
  HmppResult HMPPS_Triangle_16s(int16_t *dst, int32_t len, int16_t magn, float freq, float sym, float *phase);

  HmppResult HMPPS_Triangle_16sc(Hmpp16sc *dst, int32_t len, int16_t magn, float freq, float sym, float *phase);

- 浮点数的操作：
  HmppResult HMPPS_Triangle_32f(float *dst, int32_t len, float magn, float freq, float sym, float *phase);

  HmppResult HMPPS_Triangle_64f(double *dst, int32_t len, double magn, double freq, double sym, double *phase);

  HmppResult HMPPS_Triangle_32fc(Hmpp32fc *dst, int32_t len, float magn, float freq, float sym, float *phase);

  HmppResult HMPPS_Triangle_64fc(Hmpp64fc *dst, int32_t len, double magn, double freq, double sym, double *phase);


#### 参数

| 参数名 | 描述 | 取值范围 | 输入/输出 |
| --- | --- | --- | --- |
| dst | 指向目的向量的指针。 | 非空 | 输出 |
| len | 向量长度。 | (0,INT\_MAX] | 输入 |
| phase | 指向相位的指针。 | [0.0, 2π) | 输入 |
| magn | 振幅。 | 视类型而定 | 输入 |
| freq | 频率。 | [0.0, 0.5) | 输入 |
| sym | 对称性。 | （\-π, π） | 输入 |


#### 返回值

- 成功：返回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;
float sym = 1.3;
HmppResult result = HMPPS_Triangle_16s(dst, BUFFER_SIZE_T, magn, freq, sym, &phase);
printf("result = %d \ndst =", result);
for (i = 0; i < BUFFER_SIZE_T; i++) {
printf(" %d    ", dst[i]);
}
return 0;
}
```

运行结果：

```
result = 0
dst = -5     9     -18     23     -4     -5     9     -18     23     -4
```
