Цифровая обработка сигналов. Водяные знаки в аудиофайлах: учебное пособие / Е.Л. Столов.

w r i t e ( ’wka.wav’ ,Fr ,Dat2) AnswB = decodePow(Dat,Dat2,LnFrag) Answ = b i t a r r a yO Answ. extend(AnswB) p r i n t Answ . toby tesO Код, реализующий представленный выше алгоритм, помещен в скрипт 11. Несмотря на кажущуюся простоту, этот алгоритм содержит «пару подводных каменей», связанных с форматом intlG, в котором хранятся отсчеты файла. Если значение А очень маленькое, то может случиться, что в результате округления фрагмент Interv совпадет с In t e rv * U_minus или In t e rv * U_plus. Эго относится к случаю, когда отсчеты внутри фрагмента сами являются малыми числами. Другая проблема возникает, если какой-то оригинальный отсчет по модулю близок к 215. В этой ситуации в результате модификации возможен выход значений за этот предел, и тогда при преобразовании в intlG результат окажется непредсказуемым. Как правило, приемлемый набор параметров сводится к выбору А Е [0.1,0.5,] и длительности фрагмента порядка 10 мс. 2.7. Создание водяных знаков с помощью эха Идея этого ЦВЗ основана на еще одной особенности человеческого слухового аппарата. Если подряд идут сильный и слабый сигнал, то сильный сигнал подавляет (маскирует) при прослушивании следующий за ним более слабый сигнал. Соответствующий метод получил название Echo hiding. В последнее время возник интерес к этому методу внедрения ЦВЗ, поскольку он не требует доступа к оригинальному сигналу.

RkJQdWJsaXNoZXIy MTExODQxMg==