- Main Page
- Tutorials
- Functions
- Release Notes
- Examples

signal.h
Go to the documentation of this file.
1 /*******************************************************
2 * Copyright (c) 2014, ArrayFire
3 * All rights reserved.
4 *
5 * This file is distributed under 3-clause BSD license.
6 * The complete license agreement can be obtained at:
7 * http://arrayfire.com/licenses/BSD-3-Clause
8 ********************************************************/
9
10 #pragma once
11 #include <af/defines.h>
12
13 #ifdef __cplusplus
14
15 namespace af
16 {
17 class array;
18 class dim4;
19
32 AFAPI array approx1(const array &in, const array &pos,
33 const interpType method = AF_INTERP_LINEAR, const float offGrid = 0.0f);
34
48 AFAPI array approx2(const array &in, const array &pos0, const array &pos1,
49 const interpType method = AF_INTERP_LINEAR, const float offGrid = 0.0f);
50
61 AFAPI array fftNorm(const array& in, const double norm_factor, const dim_t odim0=0);
62
74 AFAPI array fft2Norm(const array& in, const double norm_factor, const dim_t odim0=0, const dim_t odim1=0);
75
88 AFAPI array fft3Norm(const array& in, const double norm_factor, const dim_t odim0=0, const dim_t odim1=0, const dim_t odim2=0);
89
90 #if AF_API_VERSION >= 31
91
101 AFAPI void fftInPlace(array& in, const double norm_factor = 1);
102 #endif
103
104 #if AF_API_VERSION >= 31
105
116 AFAPI void fft2InPlace(array& in, const double norm_factor = 1);
117 #endif
118
119 #if AF_API_VERSION >= 31
120
131 AFAPI void fft3InPlace(array& in, const double norm_factor = 1);
132 #endif
133
146 AFAPI array fft(const array& in, const dim_t odim0=0);
147
161 AFAPI array fft2(const array& in, const dim_t odim0=0, const dim_t odim1=0);
162
177 AFAPI array fft3(const array& in, const dim_t odim0=0, const dim_t odim1=0, const dim_t odim2=0);
178
189 AFAPI array dft(const array& in, const double norm_factor, const dim4 outDims);
190
203 AFAPI array dft(const array& in, const dim4 outDims);
204
216 AFAPI array dft(const array& in);
217
228 AFAPI array ifftNorm(const array& in, const double norm_factor, const dim_t odim0=0);
229
241 AFAPI array ifft2Norm(const array& in, const double norm_factor, const dim_t odim0=0, const dim_t odim1=0);
242
255 AFAPI array ifft3Norm(const array& in, const double norm_factor, const dim_t odim0=0, const dim_t odim1=0, const dim_t odim2=0);
256
257 #if AF_API_VERSION >= 31
258
268 AFAPI void ifftInPlace(array& in, const double norm_factor = 1);
269 #endif
270
271 #if AF_API_VERSION >= 31
272
283 AFAPI void ifft2InPlace(array& in, const double norm_factor = 1);
284 #endif
285
286 #if AF_API_VERSION >= 31
287
298 AFAPI void ifft3InPlace(array& in, const double norm_factor = 1);
299 #endif
300
313 AFAPI array ifft(const array& in, const dim_t odim0=0);
314
328 AFAPI array ifft2(const array& in, const dim_t odim0=0, const dim_t odim1=0);
329
344 AFAPI array ifft3(const array& in, const dim_t odim0=0, const dim_t odim1=0, const dim_t odim2=0);
345
356 AFAPI array idft(const array& in, const double norm_factor, const dim4 outDims);
357
370 AFAPI array idft(const array& in, const dim4 outDims);
371
383 AFAPI array idft(const array& in);
384
385 #if AF_API_VERSION >= 31
386
398 template<int rank>
399 array fftR2C(const array &in,
400 const dim4& dims,
401 const double norm_factor = 0);
402 #endif
403
404 #if AF_API_VERSION >= 31
405
416 template<int rank>
417 array fftR2C(const array &in,
418 const double norm_factor = 0);
419 #endif
420
421 #if AF_API_VERSION >= 31
422
434 template<int rank>
435 array fftC2R(const array &in, bool is_odd = false,
436 const double norm_factor = 0);
437 #endif
438
461 AFAPI array convolve(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT, const convDomain domain=AF_CONV_AUTO);
462
480 AFAPI array convolve(const array& col_filter, const array& row_filter, const array& signal, const convMode mode=AF_CONV_DEFAULT);
481
497 AFAPI array convolve1(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT, const convDomain domain=AF_CONV_AUTO);
498
514 AFAPI array convolve2(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT, const convDomain domain=AF_CONV_AUTO);
515
531 AFAPI array convolve3(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT, const convDomain domain=AF_CONV_AUTO);
532
543 AFAPI array fftConvolve(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT);
544
555 AFAPI array fftConvolve1(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT);
556
567 AFAPI array fftConvolve2(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT);
568
579 AFAPI array fftConvolve3(const array& signal, const array& filter, const convMode mode=AF_CONV_DEFAULT);
580
590 AFAPI array fir(const array &b, const array &x);
591
604 AFAPI array iir(const array &b, const array &a, const array &x);
605
606 }
607 #endif
608
609 #ifdef __cplusplus
610 extern "C" {
611 #endif
612
627 AFAPI af_err af_approx1(af_array *out, const af_array in, const af_array pos,
628 const af_interp_type method, const float offGrid);
629
645 AFAPI af_err af_approx2(af_array *out, const af_array in, const af_array pos0, const af_array pos1,
646 const af_interp_type method, const float offGrid);
647
660 AFAPI af_err af_fft(af_array *out, const af_array in, const double norm_factor, const dim_t odim0);
661
662 #if AF_API_VERSION >= 31
663
675 AFAPI af_err af_fft_inplace(af_array in, const double norm_factor);
676 #endif
677
691 AFAPI af_err af_fft2(af_array *out, const af_array in, const double norm_factor, const dim_t odim0, const dim_t odim1);
692
693 #if AF_API_VERSION >= 31
694
706 AFAPI af_err af_fft2_inplace(af_array in, const double norm_factor);
707 #endif
708
723 AFAPI af_err af_fft3(af_array *out, const af_array in, const double norm_factor, const dim_t odim0, const dim_t odim1, const dim_t odim2);
724
725 #if AF_API_VERSION >= 31
726
738 AFAPI af_err af_fft3_inplace(af_array in, const double norm_factor);
739 #endif
740
753 AFAPI af_err af_ifft(af_array *out, const af_array in, const double norm_factor, const dim_t odim0);
754
755 #if AF_API_VERSION >= 31
756
768 AFAPI af_err af_ifft_inplace(af_array in, const double norm_factor);
769 #endif
770
784 AFAPI af_err af_ifft2(af_array *out, const af_array in, const double norm_factor, const dim_t odim0, const dim_t odim1);
785
786 #if AF_API_VERSION >= 31
787
799 AFAPI af_err af_ifft2_inplace(af_array in, const double norm_factor);
800 #endif
801
816 AFAPI af_err af_ifft3(af_array *out, const af_array in, const double norm_factor, const dim_t odim0, const dim_t odim1, const dim_t odim2);
817
818 #if AF_API_VERSION >= 31
819
831 AFAPI af_err af_ifft3_inplace(af_array in, const double norm_factor);
832 #endif
833
834 #if AF_API_VERSION >= 31
835
849 AFAPI af_err af_fft_r2c (af_array *out, const af_array in, const double norm_factor, const dim_t pad0);
850 #endif
851
852 #if AF_API_VERSION >= 31
853
868 AFAPI af_err af_fft2_r2c(af_array *out, const af_array in, const double norm_factor, const dim_t pad0, const dim_t pad1);
869 #endif
870
871 #if AF_API_VERSION >= 31
872
888 AFAPI af_err af_fft3_r2c(af_array *out, const af_array in, const double norm_factor, const dim_t pad0, const dim_t pad1, const dim_t pad2);
889 #endif
890
891 #if AF_API_VERSION >= 31
892
907 AFAPI af_err af_fft_c2r (af_array *out, const af_array in, const double norm_factor, const bool is_odd);
908 #endif
909
910 #if AF_API_VERSION >= 31
911
925 AFAPI af_err af_fft2_c2r(af_array *out, const af_array in, const double norm_factor, const bool is_odd);
926 #endif
927
928 #if AF_API_VERSION >= 31
929
943 AFAPI af_err af_fft3_c2r(af_array *out, const af_array in, const double norm_factor, const bool is_odd);
944 #endif
945
961 AFAPI af_err af_convolve1(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode, af_conv_domain domain);
962
978 AFAPI af_err af_convolve2(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode, af_conv_domain domain);
979
995 AFAPI af_err af_convolve3(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode, af_conv_domain domain);
996
1013 AFAPI af_err af_convolve2_sep(af_array *out, const af_array col_filter, const af_array row_filter, const af_array signal, const af_conv_mode mode);
1014
1027 AFAPI af_err af_fft_convolve1(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode);
1028
1041 AFAPI af_err af_fft_convolve2(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode);
1042
1055 AFAPI af_err af_fft_convolve3(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode);
1056
1066 AFAPI af_err af_fir(af_array *y, const af_array b, const af_array x);
1067
1080 AFAPI af_err af_iir(af_array *y, const af_array b, const af_array a, const af_array x);
1081 #ifdef __cplusplus
1082 }
1083 #endif
af_fft_c2r
AFAPI af_err af_fft_c2r(af_array *out, const af_array in, const double norm_factor, const bool is_odd)
C Interface for complex to real fast fourier transform for one dimensional signals.
af::fftConvolve2
AFAPI array fftConvolve2(const array &signal, const array &filter, const convMode mode=AF_CONV_DEFAULT)
C++ Interface for convolution on two dimensional signals.
af::fftConvolve
AFAPI array fftConvolve(const array &signal, const array &filter, const convMode mode=AF_CONV_DEFAULT)
C++ Interface for FFT-based convolution any(one through three) dimensional signals.
AF_INTERP_LINEAR
Linear Interpolation.
Definition: defines.h:191
af
Definition: algorithm.h:14
af_ifft_inplace
AFAPI af_err af_ifft_inplace(af_array in, const double norm_factor)
C Interface for fast fourier transform on one dimensional signals.
af::fftC2R
array fftC2R(const array &in, bool is_odd=false, const double norm_factor=0)
C++ Interface for complex to real fast fourier transform.
af_approx2
AFAPI af_err af_approx2(af_array *out, const af_array in, const af_array pos0, const af_array pos1, const af_interp_type method, const float offGrid)
C Interface for signals interpolation on two dimensional signals.
af::convolve
AFAPI array convolve(const array &signal, const array &filter, const convMode mode=AF_CONV_DEFAULT, const convDomain domain=AF_CONV_AUTO)
C++ Interface for convolution any(one through three) dimensional signals.
af::fft2
AFAPI array fft2(const array &in, const dim_t odim0=0, const dim_t odim1=0)
C++ Interface for fast fourier transform on two dimensional signals.
af_ifft2_inplace
AFAPI af_err af_ifft2_inplace(af_array in, const double norm_factor)
C Interface for fast fourier transform on two dimensional signals.
af::fft3InPlace
AFAPI void fft3InPlace(array &in, const double norm_factor=1)
C++ Interface for fast fourier transform on three dimensional signals.
af_fft2_c2r
AFAPI af_err af_fft2_c2r(af_array *out, const af_array in, const double norm_factor, const bool is_odd)
C Interface for complex to real fast fourier transform for two dimensional signals.
af::fftConvolve3
AFAPI array fftConvolve3(const array &signal, const array &filter, const convMode mode=AF_CONV_DEFAULT)
C++ Interface for convolution on three dimensional signals.
af::fft3Norm
AFAPI array fft3Norm(const array &in, const double norm_factor, const dim_t odim0=0, const dim_t odim1=0, const dim_t odim2=0)
C++ Interface for fast fourier transform on three dimensional signals.
AF_CONV_DEFAULT
Output of the convolution is the same size as input.
Definition: defines.h:226
af::fftConvolve1
AFAPI array fftConvolve1(const array &signal, const array &filter, const convMode mode=AF_CONV_DEFAULT)
C++ Interface for convolution on one dimensional signals.
af_ifft3_inplace
AFAPI af_err af_ifft3_inplace(af_array in, const double norm_factor)
C Interface for fast fourier transform on three dimensional signals.
af_fft_convolve2
AFAPI af_err af_fft_convolve2(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode)
C Interface for FFT-based convolution on two dimensional signals.
af_fft_convolve1
AFAPI af_err af_fft_convolve1(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode)
C Interface for FFT-based convolution on one dimensional signals.
af::iir
AFAPI array iir(const array &b, const array &a, const array &x)
C++ Interface for infinite impulse response filter.
af::fft
AFAPI array fft(const array &in, const dim_t odim0=0)
C++ Interface for fast fourier transform on one dimensional signals.
af::approx1
AFAPI array approx1(const array &in, const array &pos, const interpType method=AF_INTERP_LINEAR, const float offGrid=0.0f)
C++ Interface for data interpolation on one dimensional signals.
af_interp_type
af_interp_type
Definition: defines.h:189
af::ifft2InPlace
AFAPI void ifft2InPlace(array &in, const double norm_factor=1)
C++ Interface for fast fourier transform on two dimensional signals.
af::convolve3
AFAPI array convolve3(const array &signal, const array &filter, const convMode mode=AF_CONV_DEFAULT, const convDomain domain=AF_CONV_AUTO)
C++ Interface for convolution on three dimensional signals.
af_fft3
AFAPI af_err af_fft3(af_array *out, const af_array in, const double norm_factor, const dim_t odim0, const dim_t odim1, const dim_t odim2)
C Interface for fast fourier transform on three dimensional signals.
af_conv_domain
af_conv_domain
Definition: defines.h:234
af_fft
AFAPI af_err af_fft(af_array *out, const af_array in, const double norm_factor, const dim_t odim0)
C Interface for fast fourier transform on one dimensional signals.
af::fir
AFAPI array fir(const array &b, const array &x)
C++ Interface for finite impulse response filter.
af::ifft3InPlace
AFAPI void ifft3InPlace(array &in, const double norm_factor=1)
C++ Interface for fast fourier transform on three dimensional signals.
af::fftR2C
array fftR2C(const array &in, const dim4 &dims, const double norm_factor=0)
C++ Interface for real to complex fast fourier transform for one dimensional signals.
af::convolve2
AFAPI array convolve2(const array &signal, const array &filter, const convMode mode=AF_CONV_DEFAULT, const convDomain domain=AF_CONV_AUTO)
C++ Interface for convolution on two dimensional signals.
af::dft
AFAPI array dft(const array &in, const double norm_factor, const dim4 outDims)
C++ Interface for fast fourier transform on any(1d, 2d, 3d) dimensional signals.
af_err
af_err
Definition: defines.h:67
af_fft2_r2c
AFAPI af_err af_fft2_r2c(af_array *out, const af_array in, const double norm_factor, const dim_t pad0, const dim_t pad1)
C Interface for real to complex fast fourier transform for two dimensional signals.
af::ifft
AFAPI array ifft(const array &in, const dim_t odim0=0)
C++ Interface for inverse fast fourier transform on one dimensional signals.
af::ifft3Norm
AFAPI array ifft3Norm(const array &in, const double norm_factor, const dim_t odim0=0, const dim_t odim1=0, const dim_t odim2=0)
C++ Interface for inverse fast fourier transform on three dimensional signals.
af_fft3_inplace
AFAPI af_err af_fft3_inplace(af_array in, const double norm_factor)
C Interface for fast fourier transform on three dimensional signals.
af::ifftNorm
AFAPI array ifftNorm(const array &in, const double norm_factor, const dim_t odim0=0)
C++ Interface for inverse fast fourier transform on one dimensional signals.
defines.h
af::convolve1
AFAPI array convolve1(const array &signal, const array &filter, const convMode mode=AF_CONV_DEFAULT, const convDomain domain=AF_CONV_AUTO)
C++ Interface for convolution on one dimensional signals.
af_conv_mode
af_conv_mode
Definition: defines.h:221
af::fft3
AFAPI array fft3(const array &in, const dim_t odim0=0, const dim_t odim1=0, const dim_t odim2=0)
C++ Interface for fast fourier transform on three dimensional signals.
af::idft
AFAPI array idft(const array &in, const double norm_factor, const dim4 outDims)
C++ Interface for inverse fast fourier transform on any(1d, 2d, 3d) dimensional signals.
af_fft2
AFAPI af_err af_fft2(af_array *out, const af_array in, const double norm_factor, const dim_t odim0, const dim_t odim1)
C Interface for fast fourier transform on two dimensional signals.
dim_t
long long dim_t
Definition: defines.h:50
AF_CONV_AUTO
ArrayFire automatically picks the right convolution algorithm.
Definition: defines.h:235
af_convolve2
AFAPI af_err af_convolve2(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode, af_conv_domain domain)
C Interface for convolution on two dimensional signals.
af_ifft
AFAPI af_err af_ifft(af_array *out, const af_array in, const double norm_factor, const dim_t odim0)
C Interface for inverse fast fourier transform on one dimensional signals.
af::convDomain
af_conv_domain convDomain
Definition: defines.h:339
af::fft2Norm
AFAPI array fft2Norm(const array &in, const double norm_factor, const dim_t odim0=0, const dim_t odim1=0)
C++ Interface for fast fourier transform on two dimensional signals.
af_ifft3
AFAPI af_err af_ifft3(af_array *out, const af_array in, const double norm_factor, const dim_t odim0, const dim_t odim1, const dim_t odim2)
C Interface for inverse fast fourier transform on three dimensional signals.
AFAPI
#define AFAPI
Definition: defines.h:31
af::ifft2Norm
AFAPI array ifft2Norm(const array &in, const double norm_factor, const dim_t odim0=0, const dim_t odim1=0)
C++ Interface for inverse fast fourier transform on two dimensional signals.
af_ifft2
AFAPI af_err af_ifft2(af_array *out, const af_array in, const double norm_factor, const dim_t odim0, const dim_t odim1)
C Interface for inverse fast fourier transform on two dimensional signals.
af_fft_inplace
AFAPI af_err af_fft_inplace(af_array in, const double norm_factor)
C Interface for fast fourier transform on one dimensional signals.
af_fft3_c2r
AFAPI af_err af_fft3_c2r(af_array *out, const af_array in, const double norm_factor, const bool is_odd)
C Interface for complex to real fast fourier transform for three dimensional signals.
af_fft_r2c
AFAPI af_err af_fft_r2c(af_array *out, const af_array in, const double norm_factor, const dim_t pad0)
C Interface for real to complex fast fourier transform for one dimensional signals.
af::ifft2
AFAPI array ifft2(const array &in, const dim_t odim0=0, const dim_t odim1=0)
C++ Interface for inverse fast fourier transform on two dimensional signals.
af_convolve3
AFAPI af_err af_convolve3(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode, af_conv_domain domain)
C Interface for convolution on three dimensional signals.
af_iir
AFAPI af_err af_iir(af_array *y, const af_array b, const af_array a, const af_array x)
C++ Interface for infinite impulse response filter.
afcl::array
static af::array array(af::dim4 idims, cl_mem buf, af::dtype type, bool retain=false)
Create an af::array object from an OpenCL cl_mem buffer.
Definition: opencl.h:136
af_fft2_inplace
AFAPI af_err af_fft2_inplace(af_array in, const double norm_factor)
C Interface for fast fourier transform on two dimensional signals.
af::fftNorm
AFAPI array fftNorm(const array &in, const double norm_factor, const dim_t odim0=0)
C++ Interface for fast fourier transform on one dimensional signals.
af_approx1
AFAPI af_err af_approx1(af_array *out, const af_array in, const af_array pos, const af_interp_type method, const float offGrid)
C Interface for signals interpolation on one dimensional signals.
af_fft_convolve3
AFAPI af_err af_fft_convolve3(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode)
C Interface for FFT-based convolution on three dimensional signals.
af_convolve1
AFAPI af_err af_convolve1(af_array *out, const af_array signal, const af_array filter, const af_conv_mode mode, af_conv_domain domain)
C Interface for convolution on one dimensional signals.
af_fir
AFAPI af_err af_fir(af_array *y, const af_array b, const af_array x)
C++ Interface for finite impulse response filter.
af::ifftInPlace
AFAPI void ifftInPlace(array &in, const double norm_factor=1)
C++ Interface for fast fourier transform on one dimensional signals.
af_array
void * af_array
Definition: defines.h:187
af::ifft3
AFAPI array ifft3(const array &in, const dim_t odim0=0, const dim_t odim1=0, const dim_t odim2=0)
C++ Interface for inverse fast fourier transform on three dimensional signals.
af::approx2
AFAPI array approx2(const array &in, const array &pos0, const array &pos1, const interpType method=AF_INTERP_LINEAR, const float offGrid=0.0f)
C++ Interface for data interpolation on two dimensional signals.
af::filter
AFAPI array filter(const array &image, const array &kernel)
Image Filtering.
af::interpType
af_interp_type interpType
Definition: defines.h:331
af::convMode
af_conv_mode convMode
Definition: defines.h:338
af::fft2InPlace
AFAPI void fft2InPlace(array &in, const double norm_factor=1)
C++ Interface for fast fourier transform on two dimensional signals.
af_convolve2_sep
AFAPI af_err af_convolve2_sep(af_array *out, const af_array col_filter, const af_array row_filter, const af_array signal, const af_conv_mode mode)
C Interface for separable convolution on two dimensional signals.
af::fftInPlace
AFAPI void fftInPlace(array &in, const double norm_factor=1)
C++ Interface for fast fourier transform on one dimensional signals.
af_fft3_r2c
AFAPI af_err af_fft3_r2c(af_array *out, const af_array in, const double norm_factor, const dim_t pad0, const dim_t pad1, const dim_t pad2)
C Interface for real to complex fast fourier transform for three dimensional signals.