Reduces the dimensionality of a data matrix if the signal-to-noise ratio (SNR) is above a certain threshold.

dimensionalityReduction(data, p, SNR = estSNR(data, p))

Arguments

data

Data matrix. Samples in rows frequencies in columns.

p

Number of endmembers.

SNR

The Signal-to-Noise ratio of the data. By default it will be estimated using estSNR.

Value

Data matrix with dimensionality equal to p.

Details

The SNR threshold is calculated as 15 + 10*log10(p). If the input matrix SNR exceeds this value, the data is reduced to dimension p. If the SNR is below this value, the data is first reduced to p-1 and then later restored to dimension p.

References

Nascimento, J.M.P. and Bioucas Dias, J.M. "Vertex component analysis: a fast algorithm to unmix hyperspectral data," Geoscience and Remote Sensing, vol. 43, no. 4, pp. 898-910, April 2005, doi: 10.1109/TGRS.2005.844293