cpsd
Compute cross power spectral density.
Syntax
Pxy=cpsd(x,y)
Pxy=cpsd(x,y,window)
Pxy=cpsd(x,y,window,overlap)
Pxy=cpsd(x,y,window,overlap,nfft)
Pxy=cpsd(x,y,window,overlap,nfft,fs)
Pxy=cpsd(x,y,window,overlap,nfft,fs,range)
[Pxy,freq]=cpsd(...)
cpsd(...)
Inputs
- x
 - The first signal.
 - y
 - The second signal.
 - window
 - The window size, or the window vector.
 - overlap
 - The number of overlapping points in adjacent windows.
 - nfft
 - The size of the fft.
 - fs
 - The sampling frequency.
 - range
 - The spectrum type: 'onesided' or 'twosided'.
 
Outputs
- Pxy
 - The cross power spectral density.
 - freq
 - The vector of frequencies corresponding to the density values.
 
Example
n = 1125;                           
fs = 1000;                             
ts = 1/fs;              
t = [0:1:(n-1)]*ts;
f1 = 24;
f2 = 56;
omega1 = 2 * pi * f1;
omega2 = 2 * pi * f2;
signal1 = 3 + 5 * cos(omega1 * t) + 7 * cos(omega2 * t);
signal2 = 3 + 7 * cos(omega1 * t) + 3 * sin(omega2 * t);
window = hann(250,'periodic');
overlap = 125;
fftsize = 250;
range = 'onesided';
[Pxy,frq]=cpsd(signal1,signal2,window,overlap,fftsize,fs,range);
f = frq([1, 2, 6, 7, 8, 14, 15, 16])'
p = Pxy([1, 2, 6, 7, 8, 14, 15, 16])'
      f = [Matrix] 1 x 8
0  4  20  24  28  52  56  60
p = [Matrix] 1 x 8
1.50000  0.75000  0.72917  2.91667  0.72917  0.43750  1.75000  0.43750
    Comments
With no return arguments, the function will automatically plot the magnitude response.
The 'onesided' output has a length of nfft/2+1 if nfft is even, or (nfft+1)/2 if nfft is odd.
It is often recommended to remove the signal means prior to calling cpsd. The function does not remove the mean automatically.
- window
 - A Hamming window with the largest length that produces eight data segments.
 - overlap
 - One half of the window length.
 - nfft
 - The window length. A larger value will pad zeros to each block of windowed data.
 - fs
 - 1.0 Hz.
 - range
 - 'onesided'