Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Надо в ПЛИС сжать поток сырых данных с АЦП
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Koluchiy
Здравствуйте, уважаемые граждане.

Когда-нибудь будет плата с АЦП и Kintex-7.

В одном из вариантов реализации будет очень желательно прокидывать сырые данные из АЦП в ПК через гигабит езернет.
Файл принимаемых сырых данных с аналогичного изделия отлично жмется зипом и раром.

Хотелось бы попробовать поставить какой-нибудь готовый блок в Кинтекс, чтобы жал данные БЕЗ ПОТЕРЬ.
В связи с этим не будут ли любезны уважаемые гуру посоветовать какие-нибудь доступные готовые блоки архиваторов, которые можно было бы поставить в проект и посмотреть, что из этого получится.

Тему про радиоастрономов читал, но решил ее не поднимать, т.к. там размышления Великих о Великом.
А мне бы просто готовый(е) блок(и) в проект поставить, покидать туда данных и посмотреть, что из этого получится.

Соответственно, чтобы не распалять опять споры Великих о Великом, исходных данных не дам. Да и нет их у меня - плата в процессе производства.

Всем заранее спасибо за любые содержательные советы.
Lmx2315
Цитата(Koluchiy @ Apr 18 2017, 16:46) *
Тему про радиоастрономов читал, но решил ее не поднимать, т.к. там размышления Великих о Великом.
..
Всем заранее спасибо за любые содержательные советы.

а что это за тема - про радиоастрономов?
Koluchiy
Там задавался аналогичный вопрос про архивацию сырых данных для радиоастрономии. Легко ищется поиском.
yes
технически - засунуть процессор+память с зипом (zlib), раз им хорошо жмется

теоретически - арифметический кодер, с контекстом, например, номер бита в сэмпле
Koluchiy
Ах да, забыл. 200МГц АЦП sm.gif.
Процессор бы не хотелось...
krux
https://www.xilinx.com/products/intellectua...3.html#overview
https://opencores.org/project,lzrw1-compressor-core

т.е. для начала проверьте, как оно жмётся при помощи LZ77.
litv
Что только не придумают люди чтобы не делать 10G или PCI express lol.gif
А что архиваторы имеют гарантированный процент сжатия для любых данных?
Golikov A.
Цитата
А что архиваторы имеют гарантированный процент сжатия для любых данных?

для сильно коррелированных коими будут последовательные отчеты АЦП процент будет весьма хорошим.
Только любая задача сжатия, это поиск корреляции и ее устранение, то есть для нормального сжатия алгоритму нужен весь массив данных и тут без большой памяти и несколько проходной обработки не обойтись.
Что, естественно, удобнее делать на процессоре, потому без него это лучше и не затевать.

Другое дело если вы знаете распределение своих данных, тогда можно закодировать наиболее часто появляющиеся значение наименее коротким кодом, в таком случае по готовой таблице данные можно будет обрабатывать на лету. Это алгоритм Хаффмана, посмотрите. В вашем случае это просто таблица замены. Где входному числу ставиться в соответствие код, тем короче чем чаще появляется число. В оригинале таблица частоты появления строится по полному массиву данных, в вашем случае можно попробовать ее спрогнозировать заранее. Вероятность успеха я думаю процентов 40.
litv
"Наша плата только для сильнокоррелированных данных дорогие пользователи" sm.gif
Golikov A.
Данные с АЦП практически наверняка за счет фильтров будут сильно коррелированными.
Ну то есть даже если грубо брать 16 битный отсчет. Передавать его, а дальше передавать разность между текущим и предыдущим. Битность этой разности будет значительно меньше, потому что мгновенного изменения на АЦП ждать не стоит.

Можно расширить Н бит АЦП до Н+1. первый бит взять маркером, если он 0, то дальше Н бит с АЦП, если он 1, то дальше разность текущего и предыдущего, допустим размерности Н/2. Накладных расходов 1/Н, а в случае успеха почти в 2 раза зажатый поток.
AVR
Цитата(Golikov A. @ Apr 19 2017, 10:23) *
Можно расширить Н бит АЦП до Н+1. первый бит взять маркером, если он 0, то дальше Н бит с АЦП, если он 1, то дальше разность текущего и предыдущего, допустим размерности Н/2. Накладных расходов 1/Н, а в случае успеха почти в 2 раза зажатый поток.

Сначала показалось очень красивым, однако далеко не все сигналы имеют относительно низкую полосу, чтобы хорошо жаться таким способом.
Bad0512
Цитата(Koluchiy @ Apr 18 2017, 21:12) *
Ах да, забыл. 200МГц АЦП sm.gif.
Процессор бы не хотелось...

Прямо точно нужно все 100МГц спектра после АЦП иметь внизу? Обычный даунсемплинг хотя бы раза в 4 помог бы решить проблему. Ну понятно что это не бесплатно - полоса тоже в 4 раза Уже будет.
Golikov A.
Цитата(AVR @ Apr 19 2017, 12:12) *
Сначала показалось очень красивым, однако далеко не все сигналы имеют относительно низкую полосу, чтобы хорошо жаться таким способом.

Между соседними точками на 200 МГц, будет достаточно малое изменение для достаточно широких полос) сколько в цифрах прям так прикинуть не могу.
x736C
Цитата(Golikov A. @ Apr 19 2017, 10:23) *
Можно расширить Н бит АЦП до Н+1. первый бит взять маркером, если он 0, то дальше Н бит с АЦП, если он 1, то дальше разность текущего и предыдущего, допустим размерности Н/2. Накладных расходов 1/Н, а в случае успеха почти в 2 раза зажатый поток.
Изобретение велосипеда.

Перед Хаффманом можно использовать 1D DCT. Трудно представить что-то более эффективное.
Но, возможно, ТС хватит и дифференциальной ИКМ.
Lmx2315
Цитата(litv @ Apr 19 2017, 09:05) *
Что только не придумают люди чтобы не делать 10G или PCI express lol.gif

..а 10g реально поднять новичку?
(Если новичёк аврору xilinx-ксовую к примеру поднимал.)
Или там нужен особый опыт?
litv
Надо поднимать 10G - а то так и останешься в новичках.....
Golikov A.
там будет куча НДА по той же физике...

Цитата(x736C @ Apr 19 2017, 13:07) *
Изобретение велосипеда.

Перед Хаффманом можно использовать 1D DCT. Трудно представить что-то более эффективное.
Но, возможно, ТС хватит и дифференциальной ИКМ.


бесспорно, но это просто демонстрация общих принципов.
Lmx2315
Цитата(litv @ Apr 19 2017, 13:32) *
Надо поднимать 10G - а то так и останешься в новичках.....

..а какой путь посоветуют уважаемые Доны , с чего начать ?
(допустим железо есть)
litv
Начать работать например с 1G. Сначала UDP прямо из ПЛИС, потом TCP IP с ARM.
Для 102 платы уже есть пример 10G https://www.xilinx.com/support/documentatio...et-solution.pdf.
bugdesigner
10G хлопотное дело - его ведь еще чем-то принять нужно. Может PCI express будет более уместен в данном приложении?
Lmx2315
Цитата(bugdesigner @ May 3 2017, 19:47) *
10G хлопотное дело - его ведь еще чем-то принять нужно. Может PCI express будет более уместен в данном приложении?


кстати , уважаемые - порекомендуйте чем принять на комп 10g оптику sfp+
RobFPGA
Приветствую

Цитата(bugdesigner @ May 3 2017, 19:47) *
10G хлопотное дело - его ведь еще чем-то принять нужно. Может PCI express будет более уместен в данном приложении?


По сравнению с PCIe 10G Ethernet это просто халява. Тем более если "железо уже есть"
Да и принимать 10G не проблема - сетевая карта + стандартный UDP soket.

Удачи! Rob.
krux
Цитата(Lmx2315 @ May 3 2017, 20:30) *
кстати , уважаемые - порекомендуйте чем принять на комп 10g оптику sfp+

на данный момент intel x520 - лучший по проработанности вариант
Lmx2315
Цитата(krux @ May 3 2017, 23:11) *
на данный момент intel x520 - лучший по проработанности вариант

спасибо!
Doka
Цитата(x736C @ Apr 19 2017, 13:07) *
Но, возможно, ТС хватит и дифференциальной ИКМ.


тогда уж докучи и компрессор рассмотреть а-ля a-Law/u-Law
реализация примитивна, да и по природе своей сигналы с АЦП статистически будут в "нижнем сегменте" (можно убедиться на записанных выборках)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.