View source: R/upfirdn.R View source: R/RcppExports.R
upfirdn | R Documentation |
Filter and resample a signal using polyphase interpolation.
upfirdn(x, h, p = 1, q = 1)
x |
input data, specified as a numeric vector or matrix. In case of a vector it represents a single signal; in case of a matrix each column is a signal. |
h |
Impulse response of the FIR filter specified as a numeric vector or
matrix. If it is a vector, then it represents one FIR filter to may be
applied to multiple signals in |
p |
Upsampling factor, specified as a positive integer (default: 1). |
q |
downsampling factor, specified as a positive integer (default: 1). |
upfirdn performs a cascade of three operations:
Upsample the input data in the matrix x
by a factor of the
integer p
(inserting zeros)
FIR filter the upsampled signal data with the impulse response
sequence given in the vector or matrix h
Downsample the result by a factor of the integer q
(throwing
away samples)
The FIR filter is usually a lowpass filter, which you must design using
another function such as fir1
.
output signal, returned as a vector or matrix. Each column has length
ceiling(((length(x) - 1) * p + length(h)) / q)
.
This function uses a polyphase implementation, which is generally
faster than using filter
by a factor equal to the downsampling
factor, since it only calculates the needed outputs.
Geert van Boxtel, G.J.M.vanBoxtel@gmail.com.
fir1
x <- c(1, 1, 1)
h <- c(1, 1)
## FIR filter
y <- upfirdn(x, h)
## FIR filter + upsampling
y <- upfirdn(x, h, 5)
## FIR filter + downsampling
y <- upfirdn(x, h, 1, 2)
## FIR filter + up/downsampling
y <- upfirdn(x, h, 5, 2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.