1. A method for embedding a watermark in data, including a processor to perform the steps of: analysing the data to derive a transform matrix for extracting from the data amplitudes of statistically mutually independent components of the data; encoding the data using the transform matrix; classifying said components in accordance with their energies, into higher, lower and medium energy ranges; selecting the components classified in said medium energy range; modifying at least a portion of the selected components using a watermark pattern; and decoding the data using an inverse of the transform matrix to obtain watermarked data in which the watermark pattern is embedded.