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

In terv *= U_plus e l s e : In terv *= U_minus Beg += LnFragm End += LnFragm i f End >= LnFi le:break re turn LnFragm ######################### de f decodePow(Source,Dat,LnFragm): Out = [] Beg = 0 End = LnFragm wh i le End < l e n ( D a t ) : In t e r v l = n p . f l o a t _ ( Da t [Beg :End]) Interv2 = n p . f l o a t _ ( Source[Beg:End] ) Beg += LnFragm End += LnFragm Powl = sum(Interv l * I n t e r v l ) Pow2 = sum(Interv2 * Interv2 ) i f Powl > Pow2: Out. append(1) e l s e : Out. append(0) re turn Out [Fr ,Dat ] = r e a d ( ’ka .wav’ ) Wtr = ’Я автор этого произведения’ B i t = b i t a r r a yQ B i t . frombytes(Wtr) WtrBits = B i t . t oOK ) Dat l = n p . f l o a t , ( D a t ) A = 0 . 5 LnFrag = i n s e r tW t r (D a t l .W t rB i t s , A) Dat2 = n p . i n t l 6 ( D a t l ) p i t . p lo t (Da t -Da t2 )

RkJQdWJsaXNoZXIy MTExODQxMg==