A system for creating an audio watermark signal by encoding a message comprising multiple bits of data, the message being encoded into a host signal in audible frequency range whereby all the bits of the message are located in a frame of the audio watermark signal and, the system comprising at least one encoding device comprising at least one encoding device comprising a processing device to:
- receive data representing a message comprising a plurality of message bits to be encoded;
- create a message vector based on the message, the message vector comprising a plurality of key sequences, each key sequence corresponding to a different message bit in the message, wherein each key sequence comprises more than two frequency components that represent frequencies of a frame of a host signal at which a message bit of the message corresponding to the key sequence is encoded within the frame, wherein a value associated with the key sequence represents the value of the message bit, and wherein each key sequence has an equal number of positive components and negative components, each having substantially the same amplitude;
- read a frame of the host signal;
- transform the frame of the host signal from time domain to frequency domain, wherein the frame comprises more than two frequency components, wherein each of the key sequences of the message vector comprises frequency components that correspond to frequency components of the frame of the host signal;
- apply each of the key sequences of the message vector to the frame of the host signal, thereby resulting in an encoded frequency domain frame that represents all the bits of data of the message;
- wherein applying each key sequence of the message vector to the frame comprises:
- multiplying each of the message vector frequency components of each key sequence by the corresponding frame frequency components that correspond to the frequency components in the respective key sequence, resulting in the encoded frequency domain frame;
- transform the encoded frequency domain frame from the frequency domain to the time domain, thereby resulting in an encoded time domain frame that represents all the bits of data of the message;
- and
- compile the audio watermark signal based at least in part on the encoded time domain frame.