---
title: WinBartlett
description: "给指定向量加bartlett窗。其具体公式为："
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2200/accel/kunpengaccel_hmpp_06_0137.html
sourcePath: /source/zh/kunpengboostkithistory/2200/accel/kunpengaccel_hmpp_06_0137.html
indexId: b9268848075a7803b0e2cffc7b015de4dcea85da7528e6f98f6a460e1962c3eb75
---
# WinBartlett

给指定向量加bartlett窗。其具体公式为：


函数接口声明如下：

- 数据的常规操作：
  HmppResult HMPPS_WinBartlett_16s(const int16_t *src, int16_t *dst, int32_t len);

  HmppResult HMPPS_WinBartlett_32f(const float* src, float* dst, int32_t len);

  HmppResult HMPPS_WinBartlett_64f(const double* src, double* dst, int32_t len);

  HmppResult HMPPS_WinBartlett_16sc(const Hmpp16sc* src, Hmpp16sc* dst, int32_t len);

  HmppResult HMPPS_WinBartlett_32fc(const Hmpp32fc* src, Hmpp32fc* dst, int32_t len);

  HmppResult HMPPS_WinBartlett_64fc(const Hmpp64fc* src, Hmpp64fc* dst, int32_t len);

- 数据的原址操作：
  HmppResult HMPPS_WinBartlett_16s_I(int16_t* srcDst, int32_t len);

  HmppResult HMPPS_WinBartlett_32f_I(float* srcDst, int32_t len);

  HmppResult HMPPS_WinBartlett_64f_I(double* srcDst, int32_t len);

  HmppResult HMPPS_WinBartlett_16sc_I(Hmpp16sc* srcDst, int32_t len);

  HmppResult HMPPS_WinBartlett_32fc_I(Hmpp32fc* srcDst, int32_t len);

  HmppResult HMPPS_WinBartlett_64fc_I(Hmpp64fc* srcDst, int32_t len);


#### 参数

| 参数名 | 描述 | 取值范围 | 输入/输出 |
| --- | --- | --- | --- |
| dst | 指向目的向量的指针。 | 非空 | 输出 |
| len | 向量长度。 | (0,INT\_MAX] | 输入 |
| src | 指向源向量序列的指针。 | 非空 | 输入 |
| srcDst | 做原址操作时指向源和目的向量的指针。 | 非空 | 输入&输出 |


#### 返回值

- 成功：返回HMPP_STS_NO_ERR。
- 失败：返回错误码。


#### 错误码

| 错误码 | 描述 |
| --- | --- |
| HMPP\_STS\_NULL\_PTR\_ERR | dst这个入参中存在空指针。 |
| HMPP\_STS\_SIZE\_ERR | len小于3。 |


#### 示例

```
#define BUFFER_SIZE_T 10
int WinBartlettExample()
{
int32_t i;
int16_t dst[BUFFER_SIZE_T] = {0};
int16_t src[BUFFER_SIZE_T] = {0, 25863, 20143, -32768, -4362, 10220, -22644, 13540, -29236, 187};
HmppResult result = HMPPS_WinBartlett_16s(src, dst, BUFFER_SIZE_T);
printf("result = %d \ndst =", result);
for (i = 0; i < BUFFER_SIZE_T; i++) {
printf(" %d  ", dst[i]);
}
return 0;
}
```

运行结果：


```
result = 0
dst = 0  5747  8952  -21845  -3877  9084  -15096  6018  -6497  0
```
