Compute fft using fftw3

Share:

Description

These functions compute the FFT using the FFTW3 libraries. Use fftw_r2c(x, HermConj=0) for real to complex fft. This will return the result without the redundant complex conjugate. This follows the R convention for returning the unscaled inverse of the FFT. The function fftw_c2r(res, HermConj=0, n=length(x)) will invert the FFT from the result not containing the redundant complex conjugate. You must specify, n, the dimension of the original data–length–if the redundant complex conjugate is not included.

Usage

1
2
3
4
5
fftw(data, inverse=0, HermConj=1, n=NULL)
fftw(data, inverse=0, HermConj=1, n=NULL)
fftw_r2c(data, HermConj=1)
fftw_c2c(data, inverse=0)
fftw_c2r(data, HermConj=1, n=NULL)

Arguments

data

(complex or real) vector to be processed

inverse

(integer) 1 or 0 indicating if inverse FFT is preformed. The return follows the format of the R FFT commands–the output is not scaled.

HermConj

(integer) 1 or 0 indicating if either "Hermitian" redundant conjugate should be returned, or that the complex to real data includes the "Hermitian" redundant conjugate.

n

(integer) column length of the original data set. This is required when using the inverse complex to real FFT without providing the "Hermitian" redundant conjugate.

Author(s)

Karim Rahim

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
res <- fftw_r2c(1:9)
res
fftw_c2r(res)/9
res
fftw_c2r(res)/9

res <- fftw_r2c(1:10)
res
fftw_c2r(res)/10
res
fftw_c2r(res)/10

res <- fftw_r2c(1:9, HermConj=0)
res
fftw_c2r(res, HermConj=0, n=9)/9

res <- fftw_r2c(1:10, HermConj=0)
res
fftw_c2r(res, HermConj=0, n=10)/10

fftw_r2c(1:3)
fftw_c2r(fftw_r2c(1:3))/3
fftw_c2r(fftw_r2c(1:2))/2
fftw_c2r(fftw_r2c(1:4))/4


fftw_r2c(1:3, HermConj=1)
fftw_c2r(fftw_r2c(1:3, HermConj=0), HermConj=0, n=3)/3

fftw_c2r(fftw_r2c(1:4, HermConj=0), HermConj=0, n=4)/4
fftw_c2r(fftw_r2c(1:20, HermConj=0), HermConj=0, n=20)/20

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.