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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Два действительных БПФ за один комплексный..., ... или один действительный двойной длины.
V_G
сообщение Jan 20 2014, 02:11
Сообщение #16


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(ViKo @ Jan 18 2014, 22:34) *
Странно, что люди изобрели БПФ, который делает вдвое больше работы, чем нужно.

Там важную часть занимают перестановки входного массива (адресация с обратным порядком битов), и важно иметь массив двойной длины (с учетом мнимой части, понятно).
Тем не менее, симметричность массива после БПФ является хорошим индикатором корректности работы программы. И этот индикатор пропадает при заполнении мнимой части входного массива вторым банком отсчетов.
Go to the top of the page
 
+Quote Post
Task Solver
сообщение Jan 20 2014, 09:06
Сообщение #17





Группа: Участник
Сообщений: 14
Регистрация: 17-01-14
Пользователь №: 80 083



Цитата(utherVV @ Jan 20 2014, 05:49) *
Numerical Recipes in C
http://apps.nrbook.com/c/index.html

страница 511
"go to page: 511"

всё, что нужно

У меня оказывается эта книжка есть на винчестере. biggrin.gif

Цитата(V_G @ Jan 20 2014, 06:11) *
Тем не менее, симметричность массива после БПФ является хорошим индикатором корректности работы программы. И этот индикатор пропадает при заполнении мнимой части входного массива вторым банком отсчетов.

Во время отладки можно заполнять только одну часть, удостовериться, что всё верно. А во время работы программы использовать обе части! Ведь так быстрее в 2 раза. Или тест написать, который будет с некоторым эпсилон сравнивать результаты вычислений (я так и сделал).

Кстати, где то видел схему позволяющую не делать реверс в конце. Как то даные сразу во время вычислений берутся из нужных мест и пишутся в нужные места. Правда непонятно (не очевидно) будет ли это быстрее при реализации.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 20 2014, 10:34
Сообщение #18


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Task Solver @ Jan 20 2014, 12:06) *
У меня оказывается эта книжка есть на винчестере. biggrin.gif

А я в Интернете нашел.
http://www2.units.it/ipl/students_area/imm...cal_Recipes.pdf
Go to the top of the page
 
+Quote Post
V_G
сообщение Jan 20 2014, 11:05
Сообщение #19


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(Task Solver @ Jan 20 2014, 19:06) *
Кстати, где то видел схему позволяющую не делать реверс в конце. Как то даные сразу во время вычислений берутся из нужных мест и пишутся в нужные места.

Это стандартный режим работы многих ЦСП (бит-реверсная адресация данных). Ускоряет работу алгоритма БПФ, делая ненужной сортировку. Просто реверс в нужные моменты включается и выключается.
Go to the top of the page
 
+Quote Post
Task Solver
сообщение Jan 20 2014, 12:30
Сообщение #20





Группа: Участник
Сообщений: 14
Регистрация: 17-01-14
Пользователь №: 80 083



Цитата(V_G @ Jan 20 2014, 15:05) *
Это стандартный режим работы многих ЦСП (бит-реверсная адресация данных).

Я имел в виду алгоритм программный.
Go to the top of the page
 
+Quote Post
Task Solver
сообщение Jan 20 2014, 21:26
Сообщение #21





Группа: Участник
Сообщений: 14
Регистрация: 17-01-14
Пользователь №: 80 083



Цитата(thermit @ Jan 18 2014, 13:35) *

А есть вариант, когда вначале несколько иначе? Например где значения не чередуются, массив делится на две части, в качестве действительной части берётся первая половина массива, в качестве мнимой вторая. Подозреваю, что есть, только после комплексного БПФ надо как то перевернуть массив спектра.
Go to the top of the page
 
+Quote Post
thermit
сообщение Jan 21 2014, 13:01
Сообщение #22


Знающий
****

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



Цитата(Task Solver @ Jan 21 2014, 00:26) *
А есть вариант, когда вначале несколько иначе? Например где значения не чередуются, массив делится на две части, в качестве действительной части берётся первая половина массива, в качестве мнимой вторая. Подозреваю, что есть, только после комплексного БПФ надо как то перевернуть массив спектра.


Такого варианта в природе не существует. Вернее, существует, но с бОльшим объемом вычислений.
Go to the top of the page
 
+Quote Post
Task Solver
сообщение Apr 6 2014, 05:28
Сообщение #23





Группа: Участник
Сообщений: 14
Регистрация: 17-01-14
Пользователь №: 80 083



Цитата(thermit @ Jan 18 2014, 13:35) *

Всё же почему в конце действительное число получается? Если X(k+N/2) является разностью вещественного и комплексного? Поясните пожалуйста.
Go to the top of the page
 
+Quote Post
thermit
сообщение Apr 6 2014, 06:55
Сообщение #24


Знающий
****

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



Цитата
Task Solver:
Всё же почему в конце действительное число получается? Если X(k+N/2) является разностью вещественного и комплексного? Поясните пожалуйста.


Не понял вопроса.
Go to the top of the page
 
+Quote Post
Task Solver
сообщение Apr 6 2014, 11:46
Сообщение #25





Группа: Участник
Сообщений: 14
Регистрация: 17-01-14
Пользователь №: 80 083



Цитата(thermit @ Apr 6 2014, 10:55) *
Не понял вопроса.

X1(k) и X2(k) - комплексные числа? А X(k) в конце - зеркальный спектр? Тоже комплексный?

Другой вопрос. Можно ли так же быстро за вызов обратного FFT половинной длины посчитать обратную функцию к действительному преобразованию? (Кажется что ДА)

Сообщение отредактировал Task Solver - Apr 6 2014, 13:29
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 18:18
Рейтинг@Mail.ru


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