A computer tool for processing a signal, characterised in that it comprises: a working memory to receive input data, an auxiliary memory to store several approximation dictionaries, a reducer arranged to calculate iteratively approximation data on the input data, in which the successive iterations are of the matching pursuit type, a selector arranged to select an approximation dictionary in the auxiliary memory as a function of a selection rule based on at least some of the preceding iterations, in which the reducer calls the selector in each iteration, and uses the dictionary thus selected in the matching pursuit, wherein, for a given iteration, and in the presence of the approximation dictionary selected by the selector, the reducer: * determines an atom from the approximation dictionary corresponding to the current input data of the given iteration; * defines a corresponding atom identifier and a proportionality coefficient amongst the current input data and the atom as approximation data; * calculates a remainder corresponding to the difference between the input data and the atom, multiplied by its proportionality coefficient, and * calls the following iteration with the atom identifier for the selector, and the residue, as new current input data, the selection rule for the next iteration being based on the atom identifier defined during the given iteration. a working memory to receive input data, an auxiliary memory to store several approximation dictionaries, a reducer arranged to calculate iteratively approximation data on the input data, in which the successive iterations are of the matching pursuit type, a selector arranged to select an approximation dictionary in the auxiliary memory as a function of a selection rule based on at least some of the preceding iterations, in which the reducer calls the selector in each iteration, and uses the dictionary thus selected in the matching pursuit, wherein, for a given iteration, and in the presence of the approximation dictionary selected by the selector, the reducer: * determines an atom from the approximation dictionary corresponding to the current input data of the given iteration; * defines a corresponding atom identifier and a proportionality coefficient amongst the current input data and the atom as approximation data; * calculates a remainder corresponding to the difference between the input data and the atom, multiplied by its proportionality coefficient, and * calls the following iteration with the atom identifier for the selector, and the residue, as new current input data, the selection rule for the next iteration being based on the atom identifier defined during the given iteration. * determines an atom from the approximation dictionary corresponding to the current input data of the given iteration; * defines a corresponding atom identifier and a proportionality coefficient amongst the current input data and the atom as approximation data; * calculates a remainder corresponding to the difference between the input data and the atom, multiplied by its proportionality coefficient, and * calls the following iteration with the atom identifier for the selector, and the residue, as new current input data, the selection rule for the next iteration being based on the atom identifier defined during the given iteration.