Сделаем несколько пояснений к функциям, представленным в скрипте 26. Для получения оценок автокорреляционной функции в (3.6) использованы значения массива С гг = correlate(In, In,' fu ll'). Из описания функции correlate следует, что при вычислении значений Crr[Ln + X] для различных X фактически используют разное число слагаемых. Для больших значений Ln это не слишком существенно, но надо учитывать, что система для вычисления коэффициентов предсказания является плохо обусловленной, поэтому небольшие изменения в исходных данных ведут к большому разбросу решений. Отметим, что при нахождении коэффициентов предсказания не используется частота стробирования. При вычислении сглаженного преобразования Фурье эту частоту надо учитывать. Э го сделано в функции valLinPred. Теперь рассмотрим простейший вид атаки, когда меняется вдвое частота стробирования сигнала. Для обнаружения схожести интервалов используем сглаженное преобразование Фурье для соответствующих интервалов. Скрипт 27. Пример атаки и подсчет сглаженных преобразований Фурье Fr.Dat] = r e a d ( ’ka .wav ’ ) Datl = n p . f l o a t _ (D a t [10000 :12000 ]) Da tl = Datl - np.mean(Datl) Lnl = le n (D a t l ) Dat2 = D a t l [ : : 2 ] T1 = l . / F r T2 = 2 * T1 N = 60 Coel = crea teL inP red (D a t l,N ) Coe2 = crea teL inP red (D a t2 ,N /2 ) W = n p .a r a n g e (0 ,1 0 0 0 . ,1 0 ) P i c t l = [] P ic t2 = [] fo r Arg in W: V a il = va lL inP r ed (C o e l , Arg ,T l) Val2 = valL inPred(Coe2 ,Arg ,T2)
RkJQdWJsaXNoZXIy MTExODQxMg==