V_G 11 20 января, 2014 Опубликовано 20 января, 2014 · Жалоба Странно, что люди изобрели БПФ, который делает вдвое больше работы, чем нужно. Там важную часть занимают перестановки входного массива (адресация с обратным порядком битов), и важно иметь массив двойной длины (с учетом мнимой части, понятно). Тем не менее, симметричность массива после БПФ является хорошим индикатором корректности работы программы. И этот индикатор пропадает при заполнении мнимой части входного массива вторым банком отсчетов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
task.solver 0 20 января, 2014 Опубликовано 20 января, 2014 · Жалоба Numerical Recipes in C http://apps.nrbook.com/c/index.html страница 511 "go to page: 511" всё, что нужно У меня оказывается эта книжка есть на винчестере. Тем не менее, симметричность массива после БПФ является хорошим индикатором корректности работы программы. И этот индикатор пропадает при заполнении мнимой части входного массива вторым банком отсчетов. Во время отладки можно заполнять только одну часть, удостовериться, что всё верно. А во время работы программы использовать обе части! Ведь так быстрее в 2 раза. Или тест написать, который будет с некоторым эпсилон сравнивать результаты вычислений (я так и сделал). Кстати, где то видел схему позволяющую не делать реверс в конце. Как то даные сразу во время вычислений берутся из нужных мест и пишутся в нужные места. Правда непонятно (не очевидно) будет ли это быстрее при реализации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 20 января, 2014 Опубликовано 20 января, 2014 · Жалоба У меня оказывается эта книжка есть на винчестере. А я в Интернете нашел. http://www2.units.it/ipl/students_area/imm...cal_Recipes.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 11 20 января, 2014 Опубликовано 20 января, 2014 · Жалоба Кстати, где то видел схему позволяющую не делать реверс в конце. Как то даные сразу во время вычислений берутся из нужных мест и пишутся в нужные места. Это стандартный режим работы многих ЦСП (бит-реверсная адресация данных). Ускоряет работу алгоритма БПФ, делая ненужной сортировку. Просто реверс в нужные моменты включается и выключается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
task.solver 0 20 января, 2014 Опубликовано 20 января, 2014 · Жалоба Это стандартный режим работы многих ЦСП (бит-реверсная адресация данных). Я имел в виду алгоритм программный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
task.solver 0 20 января, 2014 Опубликовано 20 января, 2014 · Жалоба А есть вариант, когда вначале несколько иначе? Например где значения не чередуются, массив делится на две части, в качестве действительной части берётся первая половина массива, в качестве мнимой вторая. Подозреваю, что есть, только после комплексного БПФ надо как то перевернуть массив спектра. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 21 января, 2014 Опубликовано 21 января, 2014 · Жалоба А есть вариант, когда вначале несколько иначе? Например где значения не чередуются, массив делится на две части, в качестве действительной части берётся первая половина массива, в качестве мнимой вторая. Подозреваю, что есть, только после комплексного БПФ надо как то перевернуть массив спектра. Такого варианта в природе не существует. Вернее, существует, но с бОльшим объемом вычислений. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
task.solver 0 6 апреля, 2014 Опубликовано 6 апреля, 2014 · Жалоба Всё же почему в конце действительное число получается? Если X(k+N/2) является разностью вещественного и комплексного? Поясните пожалуйста. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 6 апреля, 2014 Опубликовано 6 апреля, 2014 · Жалоба Task Solver: Всё же почему в конце действительное число получается? Если X(k+N/2) является разностью вещественного и комплексного? Поясните пожалуйста. Не понял вопроса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
task.solver 0 6 апреля, 2014 Опубликовано 6 апреля, 2014 (изменено) · Жалоба Не понял вопроса. X1(k) и X2(k) - комплексные числа? А X(k) в конце - зеркальный спектр? Тоже комплексный? Другой вопрос. Можно ли так же быстро за вызов обратного FFT половинной длины посчитать обратную функцию к действительному преобразованию? (Кажется что ДА) Изменено 6 апреля, 2014 пользователем Task Solver Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться