FInterv [1] = changeMod(FInterv[1].Epsilon) else: FInterv [1] = changeMod(FInterv[1],-Epsilon) FInterv[Lnlnterv-l] = conj(FInterv[1]) if Bits[1] == ’O’: FInterv [2] = changeMod(FInterv[2].Epsilon) else: FInterv [2] = changeMod(FInterv[2],-Epsilon) FInterv[LnInterv-2] = conj(FInterv[2]) B1 = abs(FInterv[1]) B2 = abs(FInterv[2]) Diff = 2.*(A1*A1 +A2 *A2 -B1 *B1 -B2 *B2) \ / real(PowerOldRest) +1. Coe = np.sqrt(abs(Diff)) FInterv[0] *= Coe for X in xrange(3,LnInterv-2): FInterv [X] *= Coe Res = np.real(np.fft.ifft(FInterv)) Interv[:] = Res[:] ####################################### def restoreBits(InOrig.InModi): Out = [0,0] FOrig = abs(np.fft.fft(InOrig)) FModi = abs(np.fft.fft(InModi)) if F0rig[l] < FModi[l]: Out[0] = 1 if FOrig[2] < FModi[2]: 0ut[l] = 1 return Out Сделаем несколько замечаний к представленному скрипту. Выбор е = 0.005 обеспечивает отсутствие шума. Более т о го, даже увеличение этого параметра до 0.5 не приводит к значительному искажению. Основная проблема с этим параметром — увеличение модуля отдельного коэффициента может привести к тому, что при восстановлении фрагмен
RkJQdWJsaXNoZXIy MTExODQxMg==