@SergeySerge11

Как с MathNet.Numerics уменьшить число коэффициентов у преобразования Фурье?

Что за ерунда, уже бибилотек 10 проверил, почему все так однообразно все делают. И ни какого функционала не дают. Я делал, вроде ыче понятно, вижу смысл, куда применить. Но решил эти "Быстрые алгоритм Фурье " посмотреть. И не могу понять а зачем они(конкретно так как в 4 библиотеках что знаю). Опишу подробно.
Все что хочу, это упоковать 10на10 байтов в 10на2 к примеру? xЧто возможно с помощью моей нативной реализации. А в этих супер крутых библиотеках нету просто функционала, при том во всех топовых библиотеках так.
Fourier.Forward(data);  //mathnet-numerics
// во всех библиотеках, так  плюс там какие параметры. опять из которых информации ни какой. На вызоде РОВНО ТАКОЙ же массив. То есть пространство ХУ свернули в ТАКОГО ЖЕ размера пространства, даже в 2 раза больше(за счет того что комплексные числа). Типа а Где сжатие информации?

Типа и все и и ни куда ни как.
К примеру хоть и за О(n*n) времени, сумел реализовать. И вполне приемлемо не теряя качества особо могу в 1мб упаковать 50КБ.
Я что-то не понимаю. В чем разница Быстрого преобразования, что на выходе выходит? Почему у меня не получается применить к массиву результата, то же самое, что я делаю к примеру при обычном преобразовании фурье.

30159.png
Вот типа вот такое я получаю. Но это же вроде ожно и то же что и быстрое преобразование? Или нет? "Быстрое преобразование" это же как "Быстрая сортировка" аналогия,просто скорость или вообще что-то из другой сферы????
Потому что, если я получаю "быстрым преобразованием" то же самое. Т я это не могу, закинуть в
+=A*cos(i*n*x/T)+B*sin(...) ??? Но у меня не сходиться значения. Значит это какие разные коэффициенты. Или я обязан делать "обратное преобразования".
А тогда какой смысл в обычном преобразовании????
Я понимаю смысл, вот как у меня реализовано, и как примеры в Эксель. Где X*Y допустим 100*100 превращаться в 100*4 данных. Но не когда 100x100 d 100x100x2.
Либо я что-то не знаю.
  • Вопрос задан
  • 222 просмотра
Решения вопроса 1
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Быстрое преобразование Фурье - это алгоритм вычисления дискретного преобразования фурье. От интеграллов на картинках оно отличается тем, что там не функция от которой береться интеграл, а массив данных, которые как-то суммируются. Оно называется быстрым, потому что там идет вычисление не в лоб по формуле из википедии, а чуть хитрее, за счет чего оно работает быстрее.

В компьютерах используется дискретное преобразование, потому что ну не могут компьютеры работать с бесконечным неприрывным объектом, коим является функция.

И да, там результат - это массив комплексных чисел, поэтому выходные данные в 2 раза больше входных, которые являются вещественными.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Игнорируй младшие коэффициенты - вот и будет сжатие. Так оно и работает. Честно-честно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы