Кули-Тьюки по основанию 2 пойдет почти во всех случаях, как самый простой и незаморочливый алгоритм. Изобретательство алгоритмов БПФ в свое время двигалось по бедности и прекратилось с появлением умножителей с аккумулятором, а тем более - с плавающей запятой. Поэтому навскидку, алгоритмы, кроме основания 2, простому инженеру не нужны. Игра с производительностью - неблагодарное дело - и чаще всего выигрыш съедается другими накладными расходами типа системные дела. смена контекста и т.п. Несколько лучше - БПФ по основанию 4, но чаще всего в аппаратных конвейерах, в ПЛИСах, например. Кули-Тьюки по составному основанию - когда очень нужно конкретное число точек - те же 1000. Так например, для универсальности сделано в Матлабе. Алгоритмы Винограда - это для очень специальных процессоров, например, в ASIC, т.к. имеют минимум умножений и очень заморочливые в плане организации вычислений. Причем так как сложения,в отличие от умножений, в них делаются безошибочно, то и алгоритм в целом получается точнее. Алгоритмы по высоким основаниям (на блоках Винограда, например) имеют-таки большую точность, чем другие, т.к. количество стадий усечения результатов (которые собственно и вносят ошибки) в несколько раз меньше. Другое преимущество - если это конвейер, то ему нужно меньше памяти. которая ставится между ступенями.
|