Дискретное преобразование Фурье — различия между версиями
(→Пример) |
(→ДПФ в модульной арифметике) |
||
Строка 40: | Строка 40: | ||
В основе ДПФ используются комплексные числа, являющиеся корнями <tex>n</tex>-ой степени из единицы. Для эффективного вычисления использовались свойства комплексных корней, которые образуют [[Группа | группу]], то есть степень одного корня всегда является другим корнем. Среди них есть корень, называемый примитивным. | В основе ДПФ используются комплексные числа, являющиеся корнями <tex>n</tex>-ой степени из единицы. Для эффективного вычисления использовались свойства комплексных корней, которые образуют [[Группа | группу]], то есть степень одного корня всегда является другим корнем. Среди них есть корень, называемый примитивным. | ||
− | Однако, то же верно и в случае корней <tex>n</tex>-ой степени из единицы в модульной арифметике. Не для любого модуля <tex>p</tex> найдется <tex>n</tex> различных корней, но такие модули все же существуют. Необходимо найти примитивный корень, то есть: | + | Однако, то же верно и в случае корней <tex>n</tex>-ой степени из единицы в модульной арифметике. Не для любого модуля <tex>p</tex> найдется <tex>n</tex> различных корней, но такие модули все же существуют. Необходимо найти [[Примитивные корни | примитивный корень]], то есть: |
<center> | <center> |
Версия 21:58, 15 декабря 2016
Определение: |
Дискретное преобразование Фурье (англ. Discrete Fourier Transform, DFT) многочлена где — ый из комплексных корней из единицы. называется главным значением корня -ой степени из единицы, а все остальные корни являются его степенями: . | называют вектор значений этого многочлена в точках :
Определение: |
Обратное дискретное преобразование Фурье (англ. Inverse DFT) для вектора значений многочлена
| — вектор коэффициентов этого многочлена :
Содержание
Применение ДПФ
Дискретное преобразование Фурье используют для быстрого перемножения двух полиномов
и .Для того чтобы получить произведение двух многочленов за время, меньшее чем
, необходимо сначала посчитать обоих многочленов. Так как при умножении двух многочленов их значения просто перемножаются в каждой точке. Следовательно, если — это вектор значений многочлена, то мы можем получить значение произведения двух многочленов, просто перемножив их ДПФ. Значит, чтобы получить коэффициенты полученного многочлена, применим обратное ДПФ.
Так как ДПФ многолчена — это вектор его значений, значит, перемножение двух ДПФ требует только быстрое преобразование Фурье.
операций. Осталось только вычислять ДПФ и обратное ДПФ за время . Для этого используемДПФ в модульной арифметике
В основе ДПФ используются комплексные числа, являющиеся корнями группу, то есть степень одного корня всегда является другим корнем. Среди них есть корень, называемый примитивным.
-ой степени из единицы. Для эффективного вычисления использовались свойства комплексных корней, которые образуютОднако, то же верно и в случае корней примитивный корень, то есть:
-ой степени из единицы в модульной арифметике. Не для любого модуля найдется различных корней, но такие модули все же существуют. Необходимо найти
Как и с комплексными корнями, остальные
корней -ой степени из единицы по модулю можно получить как степени примитивного корняСледствия
Утверждение: |
Применим к обеим частям обратное ДПФ и получим:
Заметим, что слева у нас находится вектор значений многочлена с коэффициентами и обозначим его за . Заметим, что:
Теперь рассмотрим правую часть. По определению, справа у нас находится вектор коэффициентов многочлена со значениями в точках . Обозначим его как , где:
где
Тогда, подставляя значения , получаем:
А так как , получаем:
|
Пример
Посчитаем
для полинома степени .
Тогда подставляя значения
в получаем:
Построим матрицу Вандермонда:
Получаем вектор значений многочлена
:
В итоге получаем:
Аналогично, получаем обратное ДПФ.