Multichannel Wavelet Deconvolution with Additive Long Memory Noise

Computes the Wavelet deconvolution estimate of a common signal present in multiple channels that have possible different levels of blur and long memory additive error, see Kulik, Sapatinas and Wishart (2015), .

Build StatusCRAN_Status_Badge DL_Total

mwaved is a set of functions that generalise the waved package for wavelet deconvolution in the Fourier domain. These generalisations are the following extensions:

  • Allow a multichannel model where the practitioner has access to multiple channels of data of a common signal of interest.
  • Allow additive long memory errors to be present in the multichannel signals (independent between signals but exhibit long memory within each signal)
  • Allow a data-driven resolution choice in the presence of box car blur (waved does not have this feature)

The user is encouraged to view the embedded Shiny applet that showcases the mwaved pacakge and importantly lists the appropriate R commands to recreate the output given by Shiny applet. The embedded Shiny applet can be viewed as long as the user has the shiny package installed on their machine and then using R command > mwaved::mWaveDDemo().

The code is also written with the use of the Rcpp package to help use the external C FFTW library to achieve speeds around 8-15 times faster than the usual WaveD package (comparing the performance of a single channel waved code to the same code in the mwaved package with various sample sizes). The relative performance improves as the sample size increases.

The package is being developed at and any bug reports, comments or suggestions are welcomed at

Optional source compilation instructions (currently only tested in Ubuntu, Slackware Linux and Windows 10)

  • Ensure you have the FFTW3 libraries installed. For ubuntu this requires sudo apt-get install libfftw3-dev. For Windows 8 this requires downloading the windows fftw3 binaries and adding the installed directories to your PATH.
  • Download and install the package from your favourite CRAN repository. That is, run install.packages('mwaved') from the R prompt or download the tarball and run R CMD INSTALL mwaved_1.x.x.tar.gz (where x.x is replaced with the appropriate version name) from the linux terminal.


mwaved 1.1.5

  • Fixed bug in plot code in direct setting using ggplot
  • Maintenance update adhering to CRAN policies

mwaved 1.1.4

  • Scripts to have LF (Unix style) line endings.

mwaved 1.1.3

  • Updated testthat function calls to be compatible with the new testthat package. i.e. new testthat version is backwards incompatible.

mwaved 1.1.2

  • Update maintainer's email address.

mwaved 1.1.1

  • Fixed to adhere to POSIX standard.
  • Removed the require commands from the source code.
  • Dropped Suggests gridExtra in favour of leaner import of a few select functions from the r-base grid package.
  • Cleaned some code to improve readability.

mwaved 1.1.0

  • Added HTML vignette to document the package.
  • Added unit tests via the testthat package.
  • Fixed plotting errors for smooth resolution method.
  • Fixed ggplot labelling issue.
  • Fixed bug in coarse coefficient computation in multiWaveD code.
  • Added blur detection function, detectBlur, to validate input G matches structure of direct or blur and returns character string 'direct' or '' respectively, (returns 'smooth' otherwise). This removes the need to specify the blur argument to control inversion type in functions since detectBlur can identify the appropriate inversion required.
  • Added resolution argument so that the user can specify the resolution selection method, warnings are thrown if the detectBlur function does not match the desired selection type.
  • Slightly tweaked directBlur input arguments to be (n, m) instead of (dim(G)) for consistency between Blur functions.

mwaved 1.0.1

  • Fixed memory leak in multiProj
  • Fixed code to ensure windows binary computes j1 correctly
  • Changed C code to allow compilation on OSX Snow Leopard (avoid overloaded int in pow statements)

mwaved 1.0.0

  • Added which argument to plot.mWaveD method to specify certain plots to be output.

mwaved 0.9.0 (development)

  • Added ggplot2 support as a suggested package (also included a suggestion of gridExtra to help facilitate multiple ggplot outputs on same window)
  • Added interactive Shiny applet to showcase the method, can run by calling mWaveDDemo() at R prompt

mwaved 0.2.0 (development)

  • Standardised the mWaveD object to contain wavelet coefficients for the empirical and hard-shrinked coefficients both in the format of waveletCoef objects. Standardises the plotting of such coefficients using the plot.waveletCoef method.
  • Defensively programmed input arguments to avoid infeasible input being processed (throws warnings or errors)

mwaved 0.1.1 (development)

  • Proof read and updated documentation and added references.

mwaved 0.1 (development)

  • new set of functions included with a multi prefix that handle Multichannel deconvolution using the WaveD paradigm.
  • plot and summary methods for the mWaveD objects created by the multiWaveD function.
  • Added a waveletCoef object with a plot method to help ease plotting of wavelet coefficients.
  • included simulation functions using a make prefix (including LIDAR, Doppler, Blocks, Bumps and Cusp).
  • included gammaBlur and blurSignal functions to help ease simulation.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


1.1.7 by Justin Rory Wishart, a year ago

Report a bug at

Browse source code at

Authors: Justin Rory Wishart [aut, cre]

Documentation:   PDF Manual  

GPL license

Imports Rcpp, shiny, grid

Suggests fracdiff, ggplot2, testthat, knitr, rmarkdown

Linking to Rcpp

System requirements: fftw3 (>= 3.3.4)

See at CRAN