|
|
  |
Интерполяция сигнала с получением двух отсчётов за такт, Интерполяция в целое число раз на частоте оцифровки исходного сигнала |
|
|
|
Jun 9 2017, 07:32
|
Группа: Участник
Сообщений: 14
Регистрация: 10-11-10
Пользователь №: 60 787

|
Есть модуль ЦАП, принимающий данные по два отсчёта за такт обмена. Т.е. частота оцифровки сигнала 500 МГц, а обмен идёт на 250 МГц, но по два отсчёта. Модуль подключён к ПЛИС.
Есть сигнал с частотой оцифровки 250 МГц. Соответственно, необходимо произвести передискретизацию (интерполяцию) сигнала на частототу оцифровки 500 МГц и, далее, группировку симплов парами.
Проблема в том, что привычные методы (например, FIR и CIC ядра для ПЛИС), выдают по одному отсчёту за такт и требуют тактовой частоты не менее 500 МГц, соответственно. На такой частоте проект у меня не собирается даже в пустой ПЛИС. Само по себе это странно, используется Kintex-7, Xilinx FIR пишет в конфигураторе допустимую тактовую до 700 с лишним МГц, но, возможно, проблема в том, что используется LabView FPGA и это добавляет какие-то дополнительные модули, не дающие проекту собраться на такой частоте. На 250 МГц всё собирается нормально даже в больших проектах.
Есть ли какие-то методы, позволяющие проводить интерполяцию "параллельно", получая сразу N-й и N-1 отсчёты выходного сигнала?
|
|
|
|
|
Jun 13 2017, 07:04
|
Группа: Участник
Сообщений: 14
Регистрация: 10-11-10
Пользователь №: 60 787

|
Цитата(_Anatoliy @ Jun 9 2017, 11:52)  Это называется полифазная реализация. Ищите. Спасибо огромное! Нашёл описание у Айфичера, сделал на двух фильтрах из FIR compiler-a. Единственный странный момент: судя по описанию, Xilinx FIR Compiler тоже применяет полифазную интерполяцию. Но у него нельзя убрать выходной коммутатор, собирающий данные с отдельных трактов. Поэтому он выдаёт отсчёты только последовательно (а не парами, как надо). И странно, что из-за этого коммутатора он, видимо, по таймингам и не собирается. Цитата(Lmx2315 @ Jun 10 2017, 09:16)  Если человек разрабатывает прошивку с помощью костылей то начинаешь подозревать что проблема не там где он её видит , ТС - вы не могли бы сказать какой тип ЦАП вы применяете и в МГц какой частоты сигнал вы на выходе цап ждёте? Почему Вы считаете, что с помощью костылей? Интерполяция сигнала к частоте работы ЦАП - это штатная операция. Модуль ЦАП - NI 5782.
|
|
|
|
|
Jun 13 2017, 07:56
|
Группа: Участник
Сообщений: 14
Регистрация: 10-11-10
Пользователь №: 60 787

|
Цитата(ViKo @ Jun 13 2017, 11:47)  Подумал, что же здесь не так... Интерполяцией вы дополнительной информации в сигнал не добавите. Значит, хватит и 250 МГц выборок. Дальше можно фильтровать аналоговм фильтром. Просто. Аналоговый (восстанавливающий) фильтр уже встроен в блок ЦАП (потому я и написал, что у меня модуль, а не микросхема). И рассчитан на частоту дискретизации 500 МГц - по сути это оцифровка с запасом по частоте, позволяет упростить фильтр и сделать его более линейным. Но требования Найквиста-Котельникова нужно соблюдать :-)
|
|
|
|
|
Jun 13 2017, 09:35
|

отэц
    
Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684

|
Цитата(Lionet @ Jun 13 2017, 10:04)  Почему Вы считаете, что с помощью костылей? Интерполяция сигнала к частоте работы ЦАП - это штатная операция. Модуль ЦАП - NI 5782. это я про лабвью так по хамски сказал, прошу прощения, потом посмотрел описание на ваш модуль цап и увидел что лабвью - это нормально. Кстати , в описании на ваш DAC - http://www.ti.com/lit/ds/symlink/dac5682z.pdf , сказано что внутри есть интерполяционные фильтры и как я понял вовсе не надо на него лить поток на 500 Мгц , чтобы иметь эту тактовую на нём.
--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0 SHA-256
|
|
|
|
|
Jun 13 2017, 12:03
|
Группа: Участник
Сообщений: 14
Регистрация: 10-11-10
Пользователь №: 60 787

|
Цитата(Lmx2315 @ Jun 13 2017, 13:35)  Кстати , в описании на ваш DAC - http://www.ti.com/lit/ds/symlink/dac5682z.pdf , сказано что внутри есть интерполяционные фильтры и как я понял вовсе не надо на него лить поток на 500 Мгц , чтобы иметь эту тактовую на нём. Да, ЦАП там TI-евский, но специфика технологии LabView FPGA в том, что ко всем модулям прилагается одно или несколько IP-ядер, осуществляющих взаимодействие по правилам этой системы и имеющих поддержку в среде разработки и прочее... Можно сделать и что-то своё, но это весьма нетривиальный процесс и вся инициализация ЦАП и передача данных ложится на разработчика. В условиях прототипирования единичной системы этого хотелось избежать. Конкретно с 5782 идёт два ядра - одно с обменом 2 семпла/такт на 250 МГц, другое - 4 семпла/такт на 125 МГц. Т.е. в любом случае фактическая частота дискретизации - 500 МГц.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|