1. A system comprising: a processor for classifying an input signal, and memory for storing data, wherein the processor is configured to: receive the input signal for classification and a set of pre-classified signals, wherein the input signal and each signal in the set of pre-classified signals comprises a vector representation of an object having a plurality of vector elements; determine a sparse vector comprising a plurality of sparse vector coefficients, each sparse vector coefficient corresponding to a signal in the set of pre-classified signals and representing a likelihood of a match between the object represented in the input signal and the object represented in the corresponding signal of the set of pre-classified signals, and compare a largest sparse vector coefficient of the determined sparse vector with a predetermined threshold; wherein, if the largest sparse vector coefficient is less than the predetermined threshold, the processor is further configured to: remove the signal of the set of pre-classified signals corresponding to the largest sparse vector coefficient from the set of pre-classified signals to produce a reduced set of pre-classified signals, and repeat, iteratively, the determining and comparing using the input signal and the reduced set of pre-classified signals, wherein, each iteration of the input signal includes determining whether there has been a previous iteration for the input signal; determining whether the largest sparse vector coefficient in a current iteration is less than the largest sparse vector coefficient in a previous iteration for the input signal, if there has been a previous iteration for the input signal, and providing a classification output based on the signal of the set of pre-classified signals corresponding to the largest sparse vector coefficient in the previous iteration, if the largest sparse vector coefficient in the current iteration is less than the largest sparse vector coefficient in a previous iteration.