Fourier 0 13 февраля, 2013 Опубликовано 13 февраля, 2013 (изменено) · Жалоба Здравствуйте, уважаемые форумчане! Стоит задача в реальном времени делать БПФ с частотой оцифровки не менее 600 МГц, входной сигнал комплексный, поступает с 12 разрядных АЦП, количество точек - 1024. Данные обрабатываются непрерывным потоком. Склоняюсь к применению Virtex-7. Судя по даташиту на LogiCORE IP Fast Fourier Transform v8.0 одним IP ядром не обойтись, т.е. нужно делать конвейер или что-то в этом духе. Вопрос к людям, имеющим реальный опыт разработки высокоскоростных систем ЦОС: является ли данная задача потенциально решаемой, или даже и возится не стоит? :) Изменено 13 февраля, 2013 пользователем Fourier Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 5 13 февраля, 2013 Опубликовано 13 февраля, 2013 · Жалоба На правах совета, если область использования подойдёт то можно вот - полифазное БПФ http://www.dsplib.ru/content/polyphasefft/polyphase.html Снизит частоту поступления данных, но есть ограничения на применение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fourier 0 13 февраля, 2013 Опубликовано 13 февраля, 2013 · Жалоба На правах совета, если область использования подойдёт то можно вот - полифазное БПФ http://www.dsplib.ru/content/polyphasefft/polyphase.html Снизит частоту поступления данных, но есть ограничения на применение. Нужно делать именно БПФ. Задача связана с формированием OFDM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
soldat_shveyk 3 13 февраля, 2013 Опубликовано 13 февраля, 2013 · Жалоба Надеюсь, Вы не скользящий БПФ вычислять собираетесь, когда БПФ вычисляется с каждым отсчетом входного сигнала? Задача решаемая. Но БПФ надо делать самому, и архитектуру его вычисления подбирать, чтобы уложиться в жесткие тайминги и логические ресурсы. Реально работает БПФ 128 точек на 1000 МГц, правда на Альтере. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
crono 0 13 февраля, 2013 Опубликовано 13 февраля, 2013 · Жалоба FFT Radix-2 За 1 такт расчет 2-х точек, соответственно 600МГц -> 300МГц. Уже нормальная частота Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 5 13 февраля, 2013 Опубликовано 13 февраля, 2013 · Жалоба ..ещё можно входным сигналом - минуя АЦП промодулировать лазер, лазер подать на призму с призмы сфоткать ПЗС матрицей , с матрицы снять БПФ получившийся :) . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fourier 0 13 февраля, 2013 Опубликовано 13 февраля, 2013 · Жалоба Надеюсь, Вы не скользящий БПФ вычислять собираетесь, когда БПФ вычисляется с каждым отсчетом входного сигнала? Задача решаемая. Но БПФ надо делать самому, и архитектуру его вычисления подбирать, чтобы уложиться в жесткие тайминги и логические ресурсы. Реально работает БПФ 128 точек на 1000 МГц, правда на Альтере. Спсибо. БПФ не скользящий. Набрали 1024 семпла - посчитали. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 35 13 февраля, 2013 Опубликовано 13 февраля, 2013 · Жалоба Приветствую! Без проблем такое. Но естественно придется паралелить обработку. В зависимости от структуры последующей обработки либо делая параллельное FFT (несколько параллельно работающих FFT меньшей длинны и объединяющая "бабочка" на выходе), либо запуская несколько одинаковых FFT нужной длины работать по очереди и мультиплексирование на выходе. У меня так вот сейчас в реале считается 2K точек FFT для 2.2 GHz данных, с окном и перекрытием 50 % (суммарно 4.4 Gs/s). 8 потоков FFT, Правда поскольку данные реальные то на длине FFT сэкономил в 2 раза, считая входные данные как 1024 комплексные с последующей коррекцией на выходе. Сами FFT стандартные из coregen. Все это добро занимает ~25 % в Virtex5sx240 и работает на 312 MHz. Успехов. Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 5 13 февраля, 2013 Опубликовано 13 февраля, 2013 · Жалоба Спсибо. БПФ не скользящий. Набрали 1024 семпла - посчитали. А записать весь поток и потом посчитать, нельзя никак? связь не сеансовая? А то записали бы не спеша на несколько винтов, а потом считайте хоть 64к БПФ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fourier 0 13 февраля, 2013 Опубликовано 13 февраля, 2013 · Жалоба А записать весь поток и потом посчитать, нельзя никак? связь не сеансовая? А то записали бы не спеша на несколько винтов, а потом считайте хоть 64к БПФ. Такой вариант тоже рассматривается. Но на передаче все равно надо БПФ делать. Поэтому от реалтайма не уйти. У меня так вот сейчас в реале считается 2K точек FFT для 2.2 GHz данных, с окном и перекрытием 50 % (суммарно 4.4 Gs/s). Круто. Спасибо за информацию. Вдохновляет)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 5 13 февраля, 2013 Опубликовано 13 февраля, 2013 · Жалоба Такой вариант тоже рассматривается. Но на передаче все равно надо БПФ делать. Поэтому от реалтайма не уйти. ..немного не понятно, если для приёма теоретически прокатит запись, то почему нельзя в обратную сторону повторить всё? Не спеша сформировать поток на компе, записать на несколько винтов и выдать на нужной скорости на ЦАП? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fourier 0 13 февраля, 2013 Опубликовано 13 февраля, 2013 (изменено) · Жалоба ..не много не понятно, если для приёма теоретически прокатит запись, то почему нельзя в обратную сторону повторить всё? Не спеша сформировать поток на компе, записать на несколько винтов и выдать на нужной скорости на ЦАП? Линия однонаправленная, от гипотетического устройства поступают данные их надо в реальном времени замодулировать (тут то и надо посчитать БПФ) и передать. На приемной же стороне допустимо оцифрованные данные записать и обработать позднее. Т.е. в общем случае БПФ нужно делать в реальном времени. Изменено 13 февраля, 2013 пользователем Fourier Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimidrol 0 13 февраля, 2013 Опубликовано 13 февраля, 2013 · Жалоба Приветствую! Без проблем такое. Но естественно придется паралелить обработку. В зависимости от структуры последующей обработки либо делая параллельное FFT (несколько параллельно работающих FFT меньшей длинны и объединяющая "бабочка" на выходе), либо запуская несколько одинаковых FFT нужной длины работать по очереди и мультиплексирование на выходе. У меня так вот сейчас в реале считается 2K точек FFT для 2.2 GHz данных, с окном и перекрытием 50 % (суммарно 4.4 Gs/s). 8 потоков FFT, Правда поскольку данные реальные то на длине FFT сэкономил в 2 раза, считая входные данные как 1024 комплексные с последующей коррекцией на выходе. Сами FFT стандартные из coregen. Все это добро занимает ~25 % в Virtex5sx240 и работает на 312 MHz. Успехов. Rob. Извиняюсь за флуд, кажется мы с Rob одним и тем же занимаемся :) Задача ТС вполне решаема, 7 виртекс для этого врятли нужен, но будет не лишним. А вообще нужно в сторону кинтексов посмотреть. По Фурье – во многих случаях можно обойтись корегенератором. Само фурье поддается распараллеливанию, так что были бы ресурсы... Ну и как Rob написал, если сигнал действительный, то можно сэкономить на мнимомй ветви, заставив ее работать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
maugli 0 13 февраля, 2013 Опубликовано 13 февраля, 2013 · Жалоба Свежая статья из Xcell Journal Issue 82 : "Using the Parallel FFT for Multigigahertz FPGA Signal Processing" Вам в помощь . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
anton_lama 0 14 февраля, 2013 Опубликовано 14 февраля, 2013 · Жалоба Свежая статья из Xcell Journal Issue 82 : "Using the Parallel FFT for Multigigahertz FPGA Signal Processing" Вам в помощь . Познавательно, спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться