Calculate Burg maximum-entropy power spectral density.
pburg(
x,
p,
criterion = NULL,
freq = 256,
fs = 1,
range = NULL,
method = if (length(freq) == 1 && bitwAnd(freq, freq - 1) == 0) "fft" else "poly"
)
input data, specified as a numeric or complex vector or matrix. In case of a vector it represents a single signal; in case of a matrix each column is a signal.
model order; number of poles in the AR model or limit to the number of poles if a valid criterion is provided. Must be < length(x) - 2.
model-selection criterion. Limits the number of poles so that spurious poles are not added when the whitened data has no more information in it. Recognized values are:
approximate corrected Kullback information criterion (recommended)
Kullback information criterion
corrected Akaike information criterion
Akaike information criterion
final prediction error
The default is to NOT use a model-selection criterion (NULL)
vector of frequencies at which power spectral density is calculated, or a scalar indicating the number of uniformly distributed frequency values at which spectral density is calculated. Default: 256.
sampling frequency (Hz). Default: 1
character string. one of:
"half"
or "onesided"
frequency range of the spectrum
is from zero up to but not including fs / 2
. Power from negative
frequencies is added to the positive side of the spectrum.
"whole"
or "twosided"
frequency range of the spectrum
is -fs / 2
to fs / 2
, with negative frequencies stored in
"wrap around order" after the positive frequencies; e.g. frequencies for a
10-point "twosided"
spectrum are 0 0.1 0.2 0.3 0.4 0.5 -0.4 -0.3
-0.2. -0.1.
"shift"
or "centerdc"
same as "whole"
but with
the first half of the spectrum swapped with second half to put the
zero-frequency value in the middle. If freq
is a vector,
"shift"
is ignored.
Default: If model coefficients a
are real, the default range is
"half"
, otherwise the default range is "whole"
.
method used to calculate the power spectral density, either
"fft"
(use the Fast Fourier Transform) or "poly"
(calculate
the power spectrum as a polynomial). This argument is ignored if the
freq
argument is a vector. The default is "poly"
unless the
freq
argument is an integer power of 2.
An object of class "ar_psd" , which is a list containing two
elements, freq
and psd
containing the frequency values and
the estimates of power-spectral density, respectively.
# NOT RUN {
A <- Arma(1, c(1, -2.7607, 3.8106, -2.6535, 0.9238))
y <- filter(A, 0.2 * rnorm(1024))
plot(pb <- pburg(y, 4))
# }
Run the code above in your browser using DataLab