[Fr.Dat] = wf1 . r e a d ( ’ka . wav’ ) В, A = s g n . b u t t e r (7 , . 8 , ’h i g h p a s s ’ ) P= n p .p o l y I d ( [ 0 . 6 , - . 1 j , . 1 j ] .T r u e ) # roo t s В = P . c o e f f s . r e a l Dat l = s g n . l f i l t e r ( B , A , D a t ) # i n t r u s i o n watermark Pos = i n t ( l e n ( D a t ) / 2 ) N = 127 Wtr = crea teWa ter (Da t l ,N ,Po s ) # создание ЦВЗ с помощью PCA D a t l [P o s :Pos+N] += Wtr Dat2 = s g n . l f i l t e r ( A , B , D a t l ) #DDat2 =np . in t l 6 (D a t 2 ) Crr2 = np . cor r e la t e (Da t2 [Po s -10 :Po s+N+10 ] ,W t r , ’v a l i d ’ ) p i t . p l o t (C r r 2 , ’к ’ ) Dat3 = s g n . l f i l t e r ( B ,A ,D a t 2 ) Crr3 = np . co r r e la t e (Da t3 [Po s -10 :Po s+N+10 ] ,Wtr, ’v a l i d ’ ) p i t . f igu r eQ p i t . p l o t (СггЗ, ’к ’ ) 3 .4 .2 . Сравнение результатов фильтрации Ц В З с помощью FIR- и IIR -фильтров Как было показано выше, водяной знак можно внедрить с помощью произвольного фильтра. Важно только соблюсти условие, чтобы у этого фильтра существовал обратный. Рассмотрим общую схему. Предположим, что исходный сигнал Dat преобразуется с помощью фильтра F1 в сигнал Dat l . В некоторые участки последнего внедряются водяные знаки,!! результате будет создан модифицированный файл Dai2. К нему применяем обратный фильтр F2, и полученный сигнал Da 13 выставляем в открытый доступ. В силу линейности фильтра для обнаружения влияния водяного знака достаточно применить F 2 к сгенерированному водяному знаку. Теоре-
RkJQdWJsaXNoZXIy MTExODQxMg==