Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

wconv

1-D or 2-D convolution


Description

Compute the one- or two-dimensional convolution of two vectors or matrices.

Usage

wconv(
  type = c("1d", "2d", "row", "column"),
  a,
  b,
  shape = c("full", "same", "valid")
)

Arguments

type

Numeric or character, specifies the type of convolution to perform:

"1d"

For a and b as (coerced to) vectors, perform 1-D convolution of a and b;

"2d

For a and b as (coerced to) matrices, perform 2-D convolution of a and b;

"row"

For a as (coerced to) a matrix, and b (coerced to) a vector, perform the 1-D convolution of the rows of a and b;

"column"

For a as (coerced to) a matrix, and b (coerced to) a vector, perform the 1-D convolution of the colums of a and b;

a, b

Input vectors or matrices, coerced to numeric.

shape

Subsection of convolution, partially matched to:

"full"

Return the full convolution (default)

"same"

Return the central part of the convolution with the same size as A. The central part of the convolution begins at the indices floor(c(nrow(b), ncol(b)) / 2 + 1)

"valid"

Return only the parts which do not include zero-padded edges. The size of the result is max(c(nrow(a), ncol(b)) - c(nrow(b), ncol(b)) + 1, 0)

Value

Convolution of input matrices, returned as a matrix or a vector.

Author(s)

Lukas Reichlin, lukas.reichlin@gmail.com.
Conversion to R by Geert van Boxtel, G.J.M.vanBoxtel@gmail.com.

See Also

Examples

a <- matrix(1:16, 4, 4)
b <- matrix(1:9, 3,3)
w <- wconv('2', a, b)
w <- wconv('1', a, b, 'same')
w <- wconv('r', a, b)
w <- wconv('r', a, c(0,1), 'same')
w <- wconv('c', a, c(0,1), 'valid')

gsignal

Signal Processing

v0.3-1
GPL-3
Authors
Geert van Boxtel [aut, cre] (Maintainer), Tom Short [aut] (Author of 'signal' package), Paul Kienzle [aut] (Majority of the original sources), Ben Abbott [ctb], Juan Aguado [ctb], Muthiah Annamalai [ctb], Leonardo Araujo [ctb], William Asquith [ctb], David Bateman [ctb], David Billinghurst [ctb], Juan Pablo Carbajal [ctb], André Carezia [ctb], Vincent Cautaerts [ctb], Eric Chassande-Mottin [ctb], Luca Citi [ctb], Dave Cogdell [ctb], Carlo de Falco [ctb], Carne Draug [ctb], Pascal Dupuis [ctb], John W. Eaton [ctb], R.G.H Eschauzier [ctb], Andrew Fitting [ctb], Alan J. Greenberger [ctb], Mike Gross [ctb], Daniel Gunyan [ctb], Kai Habel [ctb], Kurt Hornik [ctb], Jake Janovetz [ctb], Alexander Klein [ctb], Peter V. Lanspeary [ctb], Bill Lash [ctb], Friedrich Leissh [ctb], Laurent S. Mazet [ctb], Mike Miller [ctb], Petr Mikulik [ctb], Paolo Neis [ctb], Georgios Ouzounis [ctb], Sylvain Pelissier [ctb], Francesco Potortì [ctb], Charles Praplan [ctb], Lukas F. Reichlin [ctb], Tony Richardson [ctb], Asbjorn Sabo [ctb], Thomas Sailer [ctb], Rolf Schirmacher [ctb], Rolf Schirmacher [ctb], Ivan Selesnick [ctb], Julius O. Smith III [ctb], Peter L. Soendergaard [ctb], Quentin Spencer [ctb], Doug Stewart [ctb], P. Sudeepam [ctb], Stefan van der Walt [ctb], Andreas Weber [ctb], P. Sudeepam [ctb], Andreas Weingessel [ctb]
Initial release
2021-05-02

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.