The group delay of a filter or model. The group delay is the time
delay for a sinusoid at a given frequency.
Usage
## Default S3 method:
grpdelay(filt, a = 1, n = 512, whole = FALSE, Fs = NULL, ...)
## S3 method for class 'Arma'
grpdelay(filt, ...)
## S3 method for class 'Ma'
grpdelay(filt, ...)
## S3 method for class 'Zpg'
grpdelay(filt, ...)
## S3 method for class 'grpdelay'
plot(x, xlab = if(x$HzFlag) 'Hz' else 'radian/sample',
ylab = 'Group delay (samples)', type = "l", ...)
## S3 method for class 'grpdelay'
print(x, ...)
Arguments
filt
for the default case, the moving-average coefficients of
an ARMA model or filter. Generically, filt
specifies an arbitrary model or filter operation.
a
the autoregressive (recursive) coefficients of an ARMA filter.
n
number of points at which to evaluate the frequency response.
whole
FALSE (the default) to evaluate
around the upper half of the
unit circle or TRUE to evaluate around the entire unit circle.
Fs
sampling frequency in Hz. If not specified, the frequencies
are in radians.
x
object to be plotted.
xlab,ylab,type
as in plot, but with more
sensible defaults.
...
for methods of grpdelay, arguments are passed to
the default method. For plot.grpdelay, additional arguments
are passed through to plot.
Details
For fastest computation, n should factor into a small number of
small primes.
If the denominator of the computation becomes too small, the group delay
is set to zero. (The group delay approaches infinity when
there are poles or zeros very close to the unit circle in the z plane.)
When results of grpdelay are printed, the group delay will be
plotted. As with lattice plots, automatic printing does not work
inside loops and function calls, so explicit calls to print or
plot are needed there.
Value
A list of class grpdelay with items:
gd
the group delay, in units of samples. It can be converted
to seconds by multiplying by the sampling period (or dividing by
the sampling rate Fs).
w
frequencies at which the group delay was calculated.
ns
number of points at which the group delay was calculated.
HzFlag
TRUE for frequencies in Hz, FALSE for frequencies in radians.
Author(s)
Original Octave version by Julius O. Smith III and Paul Kienzle. Conversion to R by Tom Short.
# Two Zeros and Two Poles
b <- poly(c(1/0.9*exp(1i*pi*0.2), 0.9*exp(1i*pi*0.6)))
a <- poly(c(0.9*exp(-1i*pi*0.6), 1/0.9*exp(-1i*pi*0.2)))
gpd <- grpdelay(b, a, 512, whole = TRUE, Fs = 1)
print(gpd)
plot(gpd)