Путем проб и ошибок я нашел следующие строки кода Python,
for N in range(2**1,2**3):
print [(2**n % (3*2**(2*N - n))) % (2**N-1) for n in range(2*N+1)]
которые производят следующий вывод,
[1, 2, 1, 2, 1]
[1, 2, 4, 1, 4, 2, 1]
[1, 2, 4, 8, 1, 8, 4, 2, 1]
[1, 2, 4, 8, 16, 1, 16, 8, 4, 2, 1]
[1, 2, 4, 8, 16, 32, 1, 32, 16, 8, 4, 2, 1]
[1, 2, 4, 8, 16, 32, 64, 1, 64, 32, 16, 8, 4, 2, 1]
то есть степени от 2 до 2 ** (N-1)
, 1, и степени двойки меняются местами. Это именно то, что мне нужно для моей проблемы (связанные с fft и вейвлетами). Однако я не совсем уверен , почему это работает? Последняя операция по модулю, насколько я понимаю, дает 1 в середине ряда. Фактор 3 в первой операции по модулю вызывает у меня головную боль. Кто-нибудь может предложить объяснение? В частности, Какая связь между моей базой 2 и фактором 3?