f o r I in x r an g e ( l ,N ) : S t a t e = oneStep(Matr , S ta t e ,V e c * O u t [ I - l ] ) Out [I] = (np . dot (Matr, S t a t e ) [0] + Y[I] ) '/.2 re turn Out Обратим внимание, что битовая последовательность и восстановленная последовательность реализованы с помощью списков, а не битовых строк. Скрипт 5. Внедрение водяного опака с применением ЛПМ ConvMatr = n p . i n t _ ( [ [ 0 , 1 , 0 , 0 , 0 ] , [ 0 , 0 , 1 , 0 , 0 ] , \ [ 0 , 0 , 0 , 1 , 0 ] , [ 0 , 0 , 0 , 0 , 1 ] , [ 1 , 0 , 0 , 1 , 0 ] ] ) ConvState =np. i n t _ ( [ 1 , 1 , 1 , 0 , 0 ] ) # Матрица и состояние для кодирования # бинарной последовательности PosMatr = n p . i n t _ ( [ [ 0 , 1 , 0 , 0 ] , [ 0 , 0 , 1 , 0 ] , [ 0 , 0 , 0 , 1 ] , \ [ 3 , 3 , 4 , 0 ] ] ) Po sS ta te = np . in t _ ( [ 1 , 0 , 0 , 0 ] ) Vec = n p . i n t _ ( [ 0 , 0 , 0 , 0 ] ) [Fr ,Dat] = r e a d ( ’ka .wav’ ) Wtr = ’Я автор этого произведения’ B i t = b i t a r r a yO B i t . frombytes(Wtr) WtrBits = B i t . t oO lO WtrB i tsL i s t =[] f o r Symb in WtrBits: W t rB i t sL i s t . append( int (Symb) ) # Преобразование строки в список ConvBits = convertWater(ConvMatr.ConvState, WtrB i t sL i s t ) DatN = Da t .copyO f o r I in x r a n g e ( l e n (W t rB i t s ) ) : В = ConvBi ts [I ] #Меняем адрес Po sS ta te = oneS t ep (Po sMa tr .Po sS ta te , Vec ,5) P2S = s t r (P o sS t a t e )
RkJQdWJsaXNoZXIy MTExODQxMg==