Dimension of signal subspace
the number of signals,
nsig = mdltest(
nsig, present in a snapshot of
X, that impinges upon the sensors in an
array. The estimator uses the Minimum Description Length (MDL)
test. The input argument,
X, is a complex-valued
matrix containing a time sequence of data samples for each sensor.
Each row corresponds to a single time sample for all sensors.
Estimate the Signal Subspace Dimensions for Two Arriving Signals
Construct a data snapshot of two plane waves arriving at a half-wavelength-spaced uniform line array having 10 elements. The plane waves arrive from 0° and –25° azimuth, both with elevation angles of 0°. Assume the signals arrive in the presence of additive noise that is both temporally and spatially Gaussian white. For each signal, the SNR is 5 dB. Take 300 samples to build a 300-by-10 data snapshot. Then, solve for the number of signals using
N = 10; d = 0.5; elementPos = (0:N-1)*d; angles = [0 -25]; x = sensorsig(elementPos,300,angles,db2pow(-5)); Nsig = mdltest(x)
Nsig = 2
The result shows that the number of signals is two, as expected.
Estimate the Signal Subspace Dimensions Using Forward-Backward Averaging
Construct a data snapshot for two plane waves arriving at a half-wavelength-spaced uniform line array with 10 elements. Correlated plane waves arrive from 0° and 10° azimuth, both with elevation angles of 0°. Assume the signals arrive in the presence of additive noise that is both temporally and spatially Gaussian white noise. For each signal, the SNR is 10 dB. Take 300 samples to build a 300-by-10 data snapshot. Then, solve for the number of signals using
N = 10; d = 0.5; elementPos = (0:N-1)*d; angles = [0 10]; ncov = db2pow(-10); scov = [1 .5]'*[1 .5]; x = sensorsig(elementPos,300,angles,ncov,scov); Nsig = mdltest(x)
Nsig = 1
This result shows that
mdltest cannot determine the number of signals correctly when the signals are correlated.
Now, try the forward-backward smoothing option.
Nsig = mdltest(x,'fb')
Nsig = 2
The addition of forward-backward smoothing yields the correct number of signals.
X — Data snapshot
complex-valued K-by-N matrix
Data snapshot, specified as a complex-valued, K-by-N matrix. A snapshot is a sequence of time-samples taken simultaneous at each sensor. In this matrix, K represents the number of time samples of the data, while N represents the number of sensor elements.
Example: [ –0.1211 + 1.2549i, 0.1415 + 1.6114i, 0.8932 + 0.9765i; ]
Complex Number Support: Yes
nsig — Dimension of signal subspace
Dimension of signal subspace, returned as a non-negative integer. The dimension of the signal subspace is the number of signals in the data.
Estimating the Number of Sources
AIC and MDL tests
Direction finding algorithms such as MUSIC and ESPRIT require knowledge of the number of sources of signals impinging on the array or equivalently, the dimension, d, of the signal subspace. The Akaike Information Criterion (AIC) and the Minimum Description Length (MDL) formulas are two frequently-used estimators for obtaining that dimension. Both estimators assume that, besides the signals, the data contains spatially and temporally white Gaussian random noise. Finding the number of sources is equivalent to finding the multiplicity of the smallest eigenvalues of the sampled spatial covariance matrix. The sample spatial covariance matrix constructed from a data snapshot is used in place of the actual covariance matrix.
A requirement for both estimators is that the dimension of the signal subspace be less than the number of sensors, N, and that the number of time samples in the snapshot, K, be much greater than N.
A variant of each estimator exists when forward-backward averaging is employed to construct the spatial covariance matrix. Forward-backward averaging is useful for the case when some of the sources are highly correlated with each other. In that case, the spatial covariance matrix may be ill conditioned. Forward-backward averaging can only be used for certain types of symmetric arrays, called centro-symmetric arrays. Then the forward-backward covariance matrix can be constructed from the sample spatial covariance matrix, S, using SFB = S + JS*J where J is the exchange matrix. The exchange matrix maps array elements into their symmetric counterparts. For a line array, it would be the identity matrix flipped from left to right.
All the estimators are based on a cost function
plus an added penalty term. The value λi represent the smallest (N–d) eigenvalues of the spatial covariance matrix. For each specific estimator, the solution for d is given by
AIC for forward-backward averaged covariance matrices
MDL for forward-backward averaged covariance matrices
 Van Trees, H.L. Optimum Array Processing. New York: Wiley-Interscience, 2002.
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
Does not support variable-size inputs.