<!--
{
  "availability" : [
    "iOS: 4.0.0 -",
    "iPadOS: 4.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.4.0 -",
    "tvOS: -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/vDSP_zrdesamp",
  "metadataVersion" : "0.1.0",
  "role" : "Function",
  "symbol" : {
    "kind" : "Function",
    "modules" : [
      "Accelerate"
    ],
    "preciseIdentifier" : "c:@F@vDSP_zrdesamp"
  },
  "title" : "vDSP_zrdesamp"
}
-->

# vDSP_zrdesamp

Performs complex-real single-precision FIR filtering with decimation and antialiasing.

```
extern void vDSP_zrdesamp(const DSPSplitComplex *__A, vDSP_Stride __DF, const float *__F, const DSPSplitComplex *__C, vDSP_Length __N, vDSP_Length __P);
```

## Parameters

`__A`

Single-precision complex input vector. The size of `A` must be at least `DF * (N-1) + P` (see below).

`__DF`

Decimation factor.

`__F`

Single-precision real filter vector.

`__C`

Single-precision complex output vector.

`__N`

Length of output vector `C`.

`__P`

Length of filter vector `F`.

## Discussion

Performs finite impulse response (FIR) filtering at selected positions of the input vector `C`, with the filter `F`, using the decimation factor `DF`. Results are left in the output vector `C`.

This function can run in place, but `C` cannot be in place with `F`.

This function’s operation is indicated by the following pseudocode:

```objc
for (n = 0; n < N; ++n)
{
    sum = 0;
    for (p = 0; p < P; ++p)
        sum += A[n*DF+p] * F[p];
    C[n] = sum;
}
```

> Note:
> This function may rearrange the order of operations and use various floating-point precisions, so actual results may not be calculated in exactly the same way as the pseudocode above.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)