реклама на сайте
подробности

 
 
> Как посчитать FFT используя Cooley-Tukey алгоритм ?
tocha
сообщение Aug 3 2009, 16:58
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 92
Регистрация: 16-05-05
Из: Kiev
Пользователь №: 5 080



Хочу посчитать FFT используя Cooley-Tukey алгоритм.

Представляю отсчёты в виде квадратной матрицы, считаю дпф столбцов, умножаю на коэффициенты, потом дпф строк - получаю спектр.
Хочу поменять порядок расчёта (сначала дпф строк, потом столбцов) - не могу получить спектр.
Кто-то реализовывал расчёт иммено в таком порядке (сначала дпф строк, потом столбцов)?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_ea_
сообщение Aug 9 2009, 15:12
Сообщение #2





Группа: Участник
Сообщений: 4
Регистрация: 9-08-09
Пользователь №: 51 803



Цитата(tocha @ Aug 3 2009, 23:58) *
Хочу посчитать FFT используя Cooley-Tukey алгоритм.

Представляю отсчёты в виде квадратной матрицы, считаю дпф столбцов, умножаю на коэффициенты, потом дпф строк - получаю спектр.
Хочу поменять порядок расчёта (сначала дпф строк, потом столбцов) - не могу получить спектр.
Кто-то реализовывал расчёт иммено в таком порядке (сначала дпф строк, потом столбцов)?

В таком порядке БПФ не работает. В Рабинере-Голде в этом месте ошибка.
Go to the top of the page
 
+Quote Post
shasik
сообщение Aug 10 2009, 06:00
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 3-09-05
Из: Беларусь, Новополоцк
Пользователь №: 8 188



Цитата(_ea_ @ Aug 9 2009, 18:12) *
В таком порядке БПФ не работает

Это почему еще?
X*W1*W2=(X*W1)*W2=(X*W2)*W1 - знаете такое?
Go to the top of the page
 
+Quote Post
fontp
сообщение Aug 10 2009, 07:51
Сообщение #4


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Цитата(shasik @ Aug 10 2009, 10:00) *
Это почему еще?
X*W1*W2=(X*W1)*W2=(X*W2)*W1 - знаете такое?


Там, видимо, не двумерное преобразование, а вывод одномерного через двумерную факторизацию.
Типа того http://fpga.parallel.ru/fft/

Приколист говорит, что типа Рабинер дал маху и БПФ с прорежением по времени больше не работает rolleyes.gif
Отменяется. Только по частоте. Это будет посильней "неверной" теоремы Котельникова biggrin.gif
Go to the top of the page
 
+Quote Post
_ea_
сообщение Aug 10 2009, 13:43
Сообщение #5





Группа: Участник
Сообщений: 4
Регистрация: 9-08-09
Пользователь №: 51 803



Цитата(fontp @ Aug 10 2009, 14:51) *
Там, видимо, не двумерное преобразование, а вывод одномерного через двумерную факторизацию.
Типа того http://fpga.parallel.ru/fft/

Приколист говорит, что типа Рабинер дал маху и БПФ с прорежением по времени больше не работает rolleyes.gif
Отменяется. Только по частоте. Это будет посильней "неверной" теоремы Котельникова biggrin.gif


Прореживание по времени работает, что оно не работает никто не писал.
Не работает формула, по которой БПФ вычисляется как умножение на поворачивающие множители - ДПФ столбцов - ДПФ строк.
И она никакого отношения к прореживанию по времени не имеет.
А Рабинер действительно дал маху, сначала напутав с индексами при выводе формулы, а затем назвав это прореживанием по времени.

Прореживания по времени и по частоте отличаются тем, что вы разбиваете массив на 2 строки и n/2 столбцов в одном случае, и n/2 строк и 2 столбца в другом (см., например, книгу Блейхута).
Go to the top of the page
 
+Quote Post
fontp
сообщение Aug 10 2009, 14:00
Сообщение #6


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Цитата(_ea_ @ Aug 10 2009, 17:43) *
Прореживание по времени работает, что оно не работает никто не писал.
Не работает формула, по которой БПФ вычисляется как умножение на поворачивающие множители - ДПФ столбцов - ДПФ строк.
И она никакого отношения к прореживанию по времени не имеет.
А Рабинер действительно дал маху, сначала напутав с индексами при выводе формулы, а затем назвав это прореживанием по времени.

Прореживания по времени и по частоте отличаются тем, что вы разбиваете массив на 2 строки и n/2 столбцов в одном случае, и n/2 строк и 2 столбца в другом (см., например, книгу Блейхута).



И что просчитав ДПФ по строкам, умножив на некую прорежённую матрицу и сделав ДПФ по столбцам нельзя получить результат?
По типу алгоритма Гуда-Томаса (для взаимно простых множителей декомпозиции, где вообще нет вращений и вычисления производятся в любом порядке), но с вращениями для Кули -Тьюки.
Не верю, хоть и не проверял )) Мне кажется этих алгоритмов факторизации было придумано на любой вкус миллион.

Что в формулах возможны ошибки - это не вопрос. Они во всех книгах есть
Go to the top of the page
 
+Quote Post
tocha
сообщение Aug 11 2009, 11:49
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 92
Регистрация: 16-05-05
Из: Kiev
Пользователь №: 5 080



Вроде разобрались...

Цитата(fontp @ Aug 10 2009, 17:00) *
И что просчитав ДПФ по строкам, умножив на некую прорежённую матрицу и сделав ДПФ по столбцам нельзя получить результат?

Нельзя. Если данные расположены в виде:
x_0 x1 ... x_n-1
x_n x_n+1 ... x_2n-1
то вначале нужно делать ДПФ-столбцов, потом умножение на матрицу, потом ДПФ-строк.

Если в обратном порядке (ДПФ-строк, потом умножение на матрицу, потом ДПФ-столбцов),
то надо делать не одно умножение на матрицу (для вычисления каждого элемента вертикального ДПФ матрица разная), то есть два.
Шо и выходит из формулы в Рабинере и Голде. А формула, как это ни удивительно, правильная. Только объём вычислений возрастает, а они это не учитывают и ничего не говорят об этом. Так шо немного, но обманули. И к типам прореживания это не имеет отношения, и по-времени и по-частоте вначале считают ДПФ-столбцов, просто разбиение, как выше сказали, разное (2xN или Nx2)

Цитата
По типу алгоритма Гуда-Томаса (для взаимно простых множителей декомпозиции, где вообще нет вращений и вычисления производятся в любом
порядке), но с вращениями для Кули -Тьюки.

Тут переставляют данные в хитром порядке. Можна как хочешь расставить, и построкам начинать, и по столбцам.



Смысл был в том, чтоб без переставления начать с ДПФ-последовательного блока данных(x0,x1,...,xN-1) как написано в книге, а нельзя. Вот так.
Go to the top of the page
 
+Quote Post
shasik
сообщение Aug 11 2009, 12:47
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 3-09-05
Из: Беларусь, Новополоцк
Пользователь №: 8 188



Исходники вашей телеги к БПФ в студию. Т.к. написали Вы уже много, но с увеличением количества букв смысл все дальше и дальше.

Лично я сначала алгоритмы проверяю в Matlabe, а затем уже пихаю в MC.
Так вот, не считая погрешности вычисления, то ДПФ=БПФ(строки-столбцы)=БПФ(столбцы-строки).

Значит, дело явно не в бобине.

Или я не понимаю, о чем Вы говорите. sad.gif
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 18:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.02129 секунд с 7
ELECTRONIX ©2004-2016