Цитата(Михайлo @ Feb 28 2007, 13:22)

Алгоритм Винограда вычисления БПФ расписан везде (например, на
http://www.sibsutis.ru/~mavr/LIB/books.htm несколько книг: Нуссбаумер, Блейхут и др.), однако таким языком изложения, что требуется дополнительная консультация.
1. Везде пишут о тривиальных умножениях на +-1 и +-j. Как это понимать?
Например, Нуссбаумер (стр. 135 электронной книги) приводит формулы расчёта:
m0=1*(t7+t8)
m6=j*(x6-x2)
Это умножение приводится для указания на то, что результат в m0 - чисто действительный, а в m6 - чисто мнимый? Или как?
2. Во всех книгах (по крайней мере, в перечисленных) приводится список формул исходя з того, что входная последовательность х - массив чисто действительных чисел. Если же х - массив комплексных чисел? На сколько я понял, нужно провести расчёт двух БПФ отдельно: для массивов Re[x] и Im[x], а затем их объединить по соответствующим формулам. Вопрос: при расчёте m0 и m6 для массива Im[x] с точки зрения результирующего БПФ для комплексного массива х результат в m0 - станет чисто мнимым, а в m6 - чисто действительным?
ПФ - комплексное преобразование. Все числа на входе и выходе, как и промежуточные результаты - комплексные. Нужно посмотреть, нет ли в конкретной реализации алгоритма оптимизации, рассчитанной на то, что мнимая часть входа равна нулю. Если нет - нужно использовать алгоритм непосредственно для комплексного входа. Если есть - нужно эту оптимизацию выкинуть.
Умножение на 1 - это просто копирование.
Умножение на j - это перестановка действительной и мномой части и инверсия мнимой части.
Такие операции не требуют умножений или сложений, и поэтому считаются тривиальными.
Пишите в личку.