run.avg {imagefx} | R Documentation |
Smooth input data by convolution it with with a boxcar function of specified width. This is done in the frequency domain using multiplication.
run.avg(data, win)
data |
signal (vector) to convolve. |
win |
width of the boxcar in samples. |
Convolution occurs in the frequency domain via a multiplication.
Smoothed vector with the same dimension as data
This function uses fft
which can take significantly long run times if the input signal is prime or is divisible by few integers.
Alex J.C. Witsil
## 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)