Je doelt denk ik op het effect, waarbij twee frequenties, een van bv. 30 khz, en een van 31 khz, samen een hoorbare verschil frequentie van 1 khz produceren. Maar je gaat er hierbij van uit dat het watermerk eigen frequenties toevoegt aan het signaal.
Zoals Nexxennium al opmerkte, is mp3 gebaseerd op het 'weglaten' van informatie die voor ons niet 'hoorbaar' is (nauwkeuriger gezegd: mp3 werkt op basis van een 'psycho-akoestisch luister model' van het menselijk gehoor, aan de hand waarvan wordt bepaald welke elementen van het geluid wij wel _horen_, maar niet _ervaren_ [bv. omdat zwakkere elementen worden gemaskeerd door gelijktijdige luidere elementen]).
Door de mp3 standaard zijn wij dus in staat om een bepaalde redundantie in het signaal te benoemen, en deze redundantie kunnen wij er ofwel geheel uitfilteren zoals normaal gebruikelijk bij mp3, of wij kunnen het handig gebruiken voor andere doeleinden zoals een watermerk.
Hoe werkt dat dan ? Stel je begint met een .wav bestand, je algoritme verdeelt dit in een N aantal segmenten elk van een vaste lengte, en bepaalt voor elk segment of er volgens het model sprake is van redundantie. Bij elk segment heb je nu de keuze om deze redundantie er uit te filteren of niet : filter je 'm eruit, dan is er sprake van een '0', laat je 'm zitten, dan is er sprake van een '1'. Elk segment komt nu overeen met 1 bit, en de hele stroom van aldus 'verborgen' bits vormt je watermerk. Let wel, dit is maar een heel rudimentair voorbeeld van een implementatie, het kan natuurlijk veel complexer met optimalisatie voor zoveel mogelijk 'nullen' (-> hogere compressie), variabele segment-grootte, extra redundantie in de bits van het watermerk zelf om verminkingen te 'overleven', enz.
En het kan ook haast niet anders of SunnComm moet gebruik maken van een (iets) ander luister-model van mp3, anders zou alle redundantie en daarmee het watermerk er simpel uit te rippen zijn bij conversie naar mp3. Vooropgesteld natuurlijk dat ze inderdaad gebruik maken van redundantie a.d.h.v. een of ander luistermodel. Iemand anders hier in deze thread had het over het gebruiken van fasering en daar zit misschien ook wel iets in, maar ook bij mij zijn de colleges natuurkunde en signal-processing te ver weggezakt.
offtopic:
Kort geleden stond op slashdot ook nog een leuk artikel over het gebruik van inherente redundantie in bv. de x86 instructieset om extra informatie in .exe bestanden te coderen: de instructie "add -5, xx" heeft hetzelfde effect als "sub 5, xx". Overal in de code waar zo'n soort instructie gebruikt wordt kun je dus kiezen voor de ene of de andere variant, en daarmee een 0 of een 1 coderen.