kt368 0 8 октября, 2012 Опубликовано 8 октября, 2012 · Жалоба Здравствуйте! С ПЛИС только начинаю работать, до этого чуть-чуть пробовал "писать" на VHDL. Есть задача: за 1 мксек оцифровать с частотой семплирования 40МГц два аналоговых сигнала (т.е. 40 точек на сигнал), за следующие несколько микросекунд (до десяти) над полученными массивами провести преобразование Герцеля для определения амплитуды и фазы 1-ой гармоники, затем сравнить амплитуду и фазу отношения первой гармоники первого сигнала к первой гармонике второго сигнала с заранее заданными константами и принять несложное решение. Параллельно в ПЛИС будет крутиться подобие ядра DDS, собственно частота его выходного сигнала и будет определяться результатом сравнения (предыдущее предложение). Реально ли такое сделать (и насколько сложно)? ПЛИС, наверное, будет определяться в зависимости от того сколько ЛУТов для этого всего потребуется, но пока думаю над XC6SLX9-3TQG144C. Заранее спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
litv 0 8 октября, 2012 Опубликовано 8 октября, 2012 · Жалоба реально, несложно(from my point of view), а вместо герцеля прямо fft. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 8 октября, 2012 Опубликовано 8 октября, 2012 · Жалоба Может быть я чего то не понял, но алгоритм Герцеля вроде бы не дает информации о фазе. Я не прав? Не проще ли реализовать фильтр Гильберта для обоих сигналов и вычислить разницу фаз? А для оценки амплитуд FFT? Информация о сигналах есть? Это синусоиды? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kt368 0 8 октября, 2012 Опубликовано 8 октября, 2012 (изменено) · Жалоба Так Герцеля вроде-бы быстрее должен быть при малом количестве частотных компонент на выходе. И ещё насколько будет сложно подключить к этой ПЛИС память, чтобы в неё можно было сохранить 10 МБ данных, которые потом неспешно будут передаваться в ПК? Например, память IS42S16400J-7TL? Вообще, для таких целей (учитывая мои слабые познания в ПЛИС) наверно имеет смысл использовать SDRAM? А АЦП подобрал примерно такой: AD9629BCPZ-40, драйвер АЦП - ADA4938-1. ЦАП (для DDS) - AD9760ARUZ50. Они оба с параллельной шиной. Тактовую хочу брать с отдельной микросхемы-генератора с низким джиттером, а на ПЛИС, ЦАП и АЦП подавать через Fanout Buffer NB3L553DG. Будет это все в связке работать? Судя по википедии алгоритм Герцеля дает информацию и о фазе. Сигналы....ну синусоиды, с шумком, вернее пачки синусоид с колоколоподобной огибающей (для уменьшения ширины спектра, приближения спектра к одной "палочке"). Известны частоты сигналов. Про фильтр Гилберта пошёл читать, было в универе что-то про преобразование Гильберта, надо вспоминать... Изменено 8 октября, 2012 пользователем kt368 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivan219 0 8 октября, 2012 Опубликовано 8 октября, 2012 · Жалоба С помощью вот этого http://www.dsplib.ru/content/goertzel/goertzel.html алготитма Герцеля можно и фазу и амплитуду узнать. Вся проблема Герцеля в том что он сам является генератором и если на его основе что то делать то надо в серьёзе подойти к точности вычислений. Внутри алгоритма. В противном случает частота входного сигнала и частота измеренного сигнала могут не совпадать. На его же основе можно сделать и DDS я этот вариант на Циклоне 3 продумывал так там с 45 бит. шиной на умножение скорость была в районе 60 МГц шаг в алгоритме 1 кГц точность по частоте 0.01 Гц. Мне нужно было 80 МГц по этому я эту идею бросил и решил попробовать классический ДПФ и DDS из библиоткеи. Для вас думаю в пол не подойдёт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kt368 0 8 октября, 2012 Опубликовано 8 октября, 2012 · Жалоба ...На его же основе можно сделать и DDS...На основе алгоритма Герцеля? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Timmy 1 8 октября, 2012 Опубликовано 8 октября, 2012 · Жалоба В случае FPGA удобнее просто скалярно умножить входную последовательность на комплексный вектор из тех же 40 точек. Так можно получить нормальную точность на стандартном 18 битовом перемножителе, а с рекурсивным Герцелем придётся извращаться с умножениями. Кроме того, можно ещё непрямоугольное окно наложить, если надо. SDRAM лучше взять DDR, с 8 битной шиной данных, так как Spartan 6 имеет встроенный MCB, который поддерживает DDR SDRAM, а вот SDR - не поддерживает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 73 8 октября, 2012 Опубликовано 8 октября, 2012 · Жалоба На основе алгоритма Герцеля? ну алгоритм Герцеля это просто обычный интеграл Фурье для заданной частоты, только прямое вычисление синуса заменено на цифровой осциллятор Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TRILLER 0 8 октября, 2012 Опубликовано 8 октября, 2012 (изменено) · Жалоба реально, несложно(from my point of view), а вместо герцеля прямо fft. Полностью согласен. И на счёт FFT тоже. Герцеля пидётся ручками делать, а это ненужные сложности. FFT же стандартный, и его скорости хватит с головой - зачем усложнять? Изменено 8 октября, 2012 пользователем TRILLER Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kt368 0 8 октября, 2012 Опубликовано 8 октября, 2012 · Жалоба В случае FPGA удобнее просто скалярно умножить входную последовательность на комплексный вектор из тех же 40 точек. Так можно получить нормальную точность на стандартном 18 битовом перемножителе, а с рекурсивным Герцелем придётся извращаться с умножениями. Кроме того, можно ещё непрямоугольное окно наложить, если надо. SDRAM лучше взять DDR, с 8 битной шиной данных, так как Spartan 6 имеет встроенный MCB, который поддерживает DDR SDRAM, а вот SDR - не поддерживает. А про умножение "скалярно умножить входную последовательность на комплексный вектор" это что имеется в виду? Это используется в FFT? Не понял... Спасибо за совет, возьму память W9412G6JH-5I. Полностью согласен. И на счёт FFT тоже. Герцеля пидётся ручками длеать, а это ненужные сложности. FFT же стандартный, и его скорости хватит с головой - зачем усложнять? В общем по ходу разберусь, наверно всё-таки не буду трогать Герцеля. З.Ы. Чувствую, будет очень много вопросов (и касательно проектирования этого устройства, и касательно конфигурирования ПЛИС), буду их наверное где-то здесь спрашивать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kt368 0 8 октября, 2012 Опубликовано 8 октября, 2012 · Жалоба Да, и ещё: Если обмен АЦП, ЦАП и ПЛИС будут тактироваться от внешнего генератора через Fanout Buffer, можно ли в ПЛИС задействовать что-то типа PLL, чтобы внутренние рассчёты производились на скорости повыше, чем Fclk АЦП/ЦАП, а обмен данными с АЦП/ЦАП был на Fclk АЦП/ЦАП? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Timmy 1 8 октября, 2012 Опубликовано 8 октября, 2012 · Жалоба А про умножение "скалярно умножить входную последовательность на комплексный вектор" это что имеется в виду? Это используется в FFT? Не понял... Спасибо за совет, возьму память W9412G6JH-5I. Если скалярно умножить кусок входного сигнала на кусок комплексной синусоиды нужной частоты, то получится как раз один бин DFT, с амплитудой и фазой, Герцель делает тоже самое меньшим числом умножений, однако требователен к точности. Вы моделировали свой алгоритм в каком-нибудь Матлабе? А то возможны неприятные сюрпризы. Если не нужна пропускная способность шины памяти в 800мегабайт/сек. , то лучше взять восьмибитную, развести будет проще, да и свободные пины на FPGA могут внезапно закончиться, это только кажется, что их много. Использовать PLL в FPGA для умножения внутренней частоты - это святое. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kt368 0 8 октября, 2012 Опубликовано 8 октября, 2012 · Жалоба Блин, у Spartan-6 Memory Controller Block присутствует только у микросхем в БГА исполнении... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться