Learn R Programming

imagefx (version 0.4.1)

run.avg: Perform Running Average via Convolution

Description

Smooth input data by convolution it with with a boxcar function of specified width. This is done in the frequency domain using multiplication.

Usage

run.avg(data, win)

Arguments

data

signal (vector) to convolve.

win

width of the boxcar in samples.

Value

Smoothed vector with the same dimension as data

Details

Convolution occurs in the frequency domain via a multiplication.

See Also

fft fftshift

Examples

Run this code
# NOT RUN {
## make a delta 2D (time series) function
delta <- rep(0,101)
delta[floor(length(delta)/2)] = 1

## define a window length to average over
win = 20

## filter the delta function...this will result in a boxcar
box.car <- run.avg(delta,win)

## note sum(box.car) should equal the sum of the original signal...
## in this case sum(box.car)==1

##############
## PLOTTING ##
##############

plot(delta,type='h',lwd=2)
lines(box.car,col='blue',lwd=2,type='h')

legend('topright',col=c('black','blue'),legend=c('delta','running average'),lwd=2)
# }

Run the code above in your browser using DataLab