---
title: asdConvolve
description: "| 硬件型号 | 支持情况 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/SiP/SIP_API_0069.html
sourcePath: /source/zh/canncommercial/900/API/SiP/SIP_API_0069.html
indexId: ec13fb2748e1806a8d73212292c059d68ae726517c4ef73b836bc55d5e0bd64055
---
# asdConvolve

#### 产品支持情况

| 硬件型号 | 支持情况 |
| --- | --- |
| Atlas 200I/500 A2 推理产品 | 不支持 |
| Atlas 推理系列产品 | 不支持 |
| Atlas 训练系列产品 | 不支持 |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | 支持 |
| Atlas A3 推理系列产品 / Atlas A3 训练系列产品 | 不支持 |


#### 功能描述

接口功能

asdConvolve：对给定的信号进行一维滤波操作。

计算公式

- asdConvolve计算公式：
  其中，w(k)为输出的k位置的元素，u(j)为输入位置为j的一维信号，v(k-j+1)为位置为k-j+1的滤波卷积核。一维信号为复数向量，滤波卷积核为实数向量。


- 示例：
  输入“u”为：

```
[[1.+1.j 2.+2.j]
[1.+1.j 2.+2.j]]
```


  输入“v”为：

```
[1. 2. 3. 4.]
```


  调用“asdConvolve”算子后，输出“result”为：

```
[[4.+4.j, 7.+7.j],
[4.+4.j, 7.+7.j]]
```


#### 函数原型

AspbStatus asdConvolve(const aclTensor *signal, const aclTensor *kernel, aclTensor *output, asdConvolveMode_t mode, void *stream, void *workspace)


#### 参数说明

asdConvolve| 参数名称 | Input/Output | 类型 | 描述 |
| --- | --- | --- | --- |
| signal | Input | aclTensor \* | 输入的一维信号。 |
| kernel | Input | aclTensor \* | 输入的滤波卷积核。 |
| output | Input/Output | aclTensor \* | 输出信号。 |
| mode | Input | asdConvolveMode\_t | 滤波卷积模式，当前仅支持ASD\_CONVOLVE\_SAME，即输入和输出的向量维度保持一致。 |
| stream | Input | void\* | 算子执行时的stream。 |
| workspace | Input | void \* | 算子所需的Workspace指针。 |


#### 返回值说明

返回值相关说明参见返回值。


#### 约束说明

asdMul

- 支持的CANN版本为CANN8.0及以上。
- 输入信号支持的数据类型为COMPLEX32、COMPLEX64，输入滤波卷积核支持的数据类型为FLOAT16、FLOAT32。
- 输出支持的数据类型为COMPLEX32、COMPLEX64。

- 算子输入信号shape为[BatchCount, n]，输出shape与输入shape保持一致，输入滤波卷积核shape为[k]。


#### 调用示例

算子的调用示例参见asdConvolve_complex32或者asdConvolve_complex64。
