The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

RFIF — Fast Iterative Filtering for R

RFIF provides an R interface to a C implementation of Fast Iterative Filtering (FIF) for decomposing a univariate signal into intrinsic mode functions (IMFs) plus a residual.

Installation

Install from a source tarball:

install.packages("RFIF_1.0.tar.gz", repos = NULL, type = "source")

Fast FFT backend (FFTW3)

RFIF performs many FFTs during decomposition. To guarantee portability, the package ships with a self-contained fallback FFT that works everywhere, but it can be much slower.

For best performance, RFIF can use FFTW3 when available.

Backend selection

During installation:

When FFTW3 is found, installation prints:

Found fftw3 via pkg-config (enabling fast FFT).

macOS (MacPorts)

sudo port install pkgconfig
sudo port install fftw-3

Verify:

pkg-config --modversion fftw3

macOS (Homebrew)

brew install pkg-config fftw

Linux (Ubuntu / Debian)

sudo apt-get install libfftw3-dev pkg-config

Windows (Rtools + MSYS2)

  1. Install Rtools: https://cran.r-project.org/bin/windows/Rtools/

  2. Open the Rtools MSYS2 shell, then install FFTW and pkg-config:

pacman -S mingw-w64-x86_64-fftw
pacman -S mingw-w64-x86_64-pkg-config

Verify:

pkg-config --modversion fftw3

Then install RFIF from source in R as usual.

Basic usage

library(RFIF)

t <- seq(0, 1, length.out = 1000)
x <- sin(2*pi*5*t) + 0.5*sin(2*pi*20*t)

res <- rfif(x)

str(res)

Returned object:

Reconstruction check

recon <- if (res$nimf > 0) colSums(res$imfs) + res$residual else res$residual
max(abs(x - recon))

Vignette

browseVignettes("RFIF")

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.