| cpsd | R Documentation | 
Estimates the cross power spectral density (CPSD) of discrete-time signals.
cpsd(
  x,
  window = nextpow2(sqrt(NROW(x))),
  overlap = 0.5,
  nfft = ifelse(isScalar(window), window, length(window)),
  fs = 1,
  detrend = c("long-mean", "short-mean", "long-linear", "short-linear", "none")
)
csd(
  x,
  window = nextpow2(sqrt(NROW(x))),
  overlap = 0.5,
  nfft = ifelse(isScalar(window), window, length(window)),
  fs = 1,
  detrend = c("long-mean", "short-mean", "long-linear", "short-linear", "none")
)
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.  | 
window | 
 If   | 
overlap | 
 segment overlap, specified as a numeric value expressed as a multiple of window or segment length. 0 <= overlap < 1. Default: 0.5.  | 
nfft | 
 Length of FFT, specified as an integer scalar. The default is the
length of the   | 
fs | 
 sampling frequency (Hertz), specified as a positive scalar. Default: 1.  | 
detrend | 
 character string specifying detrending option; one of: 
  | 
cpsd estimates the cross power spectral density function using
Welch’s overlapped averaged periodogram method [1].
A list containing the following elements:
freqvector of frequencies at which the spectral variables
are estimated. If x is numeric, power from negative frequencies is
added to the positive side of the spectrum, but not at zero or Nyquist
(fs/2) frequencies. This keeps power equal in time and spectral domains.
If x is complex, then the whole frequency range is returned.
crossNULL for univariate series. For multivariate series,
a matrix containing the squared coherence between different series.
Column i + (j - 1) * (j - 2)/2  of coh contains the
cross-spectral estimates between columns i and j of x,
where i < j.
The function cpsd (and its deprecated alias csd)
is a wrapper for the function pwelch, which is more complete and
more flexible.
Peter V. Lanspeary, pvl@mecheng.adelaide.edu.au.
Conversion to R by Geert van Boxtel, G.J.M.vanBoxtel@gmail.com.
[1] Welch, P.D. (1967). The use of Fast Fourier Transform for
the estimation of power spectra: A method based on time averaging over
short, modified periodograms. IEEE Transactions on Audio and
Electroacoustics, AU-15 (2): 70–73.
fs <- 1000
f <- 250
t <- seq(0, 1 - 1/fs, 1/fs)
s1 <- sin(2 * pi * f * t) + runif(length(t))
s2 <- sin(2 * pi * f * t - pi / 3) + runif(length(t))
rv <- cpsd(cbind(s1, s2), fs = fs)
plot(rv$freq, 10 * log10(rv$cross), type="l", xlab = "Frequency",
     ylab = "Cross Spectral Density (dB)")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.