Estimate crossspectral density
The dsp.CrossSpectrumEstimator
computes the
cross spectrum density of a signal, using the Welch algorithm and
the Periodogram method.
To implement the crossspectrum estimation object:
Define and set up your crossspectrum estimator object. See Construction.
Call step
to implement the estimator
according to the properties of dsp.CrossSpectrumEstimator
.
The behavior of step
is specific to each object in
the toolbox.
Starting in R2016b, instead of using the step
method
to perform the operation defined by the System
object™, you can
call the object with arguments, as if it were a function. For example, y
= step(obj,x)
and y = obj(x)
perform
equivalent operations.
cse = dsp.CrossSpectrumEstimator
returns
a System
object, cse
, that computes the crosspower
spectrum of real or complex signals using the periodogram method and
Welch’s averaged, modified periodogram method.
cse = dsp.CrossSpectrumEstimator('
returns
a PropertyName
', PropertyValue
,...)CrossSpectrum Estimator
System
object, cse
,
with each specified property name set to the specified value. You
can specify additional namevalue pair arguments in any order as (Name1,Value1,...,NameN,ValueN).

Sample rate of input Specify the sample rate of the input, in hertz, as a finite
numeric scalar. The default value is 

Number of spectral averages Specify the number of spectral averages as a positive, integer
scalar. The CrossSpectrum Estimator computes the current crossspectral
estimate by averaging the last 

Source of the FFT length value Specify the source of the FFT length value as one of 

FFT Length Specify the length of the FFT that the CrossSpectrum Estimator
uses to compute crossspectral estimates as a positive, integer scalar.
This property applies when you set the 

Window function Specify a window function for the crossspectral estimator as
one of 

Side lobe attenuation of window Specify the side lobe attenuation of the window as a real, positive
scalar, in decibels (dB). This property applies when you set the 

Frequency range of the crossspectrum estimate Specify the frequency range of the crossspectrum estimator
as one of If you set the If you set the If you set the 
getFrequencyVector  Get the vector of frequencies at which the crossspectrum is estimated 
getRBW  Get the resolution bandwidth of the crossspectrum 
reset  Reset the internal states of the crossspectrum estimator 
step  Estimate the crossspectrum of a signal 
Common to All System Objects  

clone  Create System object with same property values 
getNumInputs  Expected number of inputs to a System object 
getNumOutputs  Expected number of outputs of a System object 
isLocked  Check locked states of a System object (logical) 
release  Allow System object property value changes 
Given two signals x
and y
as
inputs. We first window the two inputs, and scale them by the window
power. We then take FFT of the signals, calling them X
and Y
.
This is followed by taking the cross correlation of the FFT, i.e., Z
= X*conj(Y)
. We average the last N number of Z
’s,
and scale the answer by the sample rate.
For further information, refer to the Algorithms section in Spectrum Analyzer, which uses the same algorithm.
[1] Hayes, Monson H. Statistical Digital Signal Processing and Modeling. Hoboken, NJ: John Wiley & Sons, 1996.
[2] Kay, Steven M. Modern Spectral Estimation: Theory and Application. Englewood Cliffs, NJ: Prentice Hall, 1999.
[3] Stoica, Petre, and Randolph L. Moses. Spectral Analysis of Signals. Englewood Cliffs, NJ: Prentice Hall, 2005.
[4] Welch, P. D. ''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. Vol. 15, No. 2, June 1967, pp. 70–73.