Jump to content

    
Sign in to follow this  
Koluchiy

Надо в ПЛИС сжать поток сырых данных с АЦП

Recommended Posts

Здравствуйте, уважаемые граждане.

 

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

 

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

Файл принимаемых сырых данных с аналогичного изделия отлично жмется зипом и раром.

 

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

В связи с этим не будут ли любезны уважаемые гуру посоветовать какие-нибудь доступные готовые блоки архиваторов, которые можно было бы поставить в проект и посмотреть, что из этого получится.

 

Тему про радиоастрономов читал, но решил ее не поднимать, т.к. там размышления Великих о Великом.

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

 

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

 

Всем заранее спасибо за любые содержательные советы.

Share this post


Link to post
Share on other sites
Тему про радиоастрономов читал, но решил ее не поднимать, т.к. там размышления Великих о Великом.

..

Всем заранее спасибо за любые содержательные советы.

а что это за тема - про радиоастрономов?

 

Share this post


Link to post
Share on other sites

технически - засунуть процессор+память с зипом (zlib), раз им хорошо жмется

 

теоретически - арифметический кодер, с контекстом, например, номер бита в сэмпле

 

Share this post


Link to post
Share on other sites

Что только не придумают люди чтобы не делать 10G или PCI express :lol:

А что архиваторы имеют гарантированный процент сжатия для любых данных?

Share this post


Link to post
Share on other sites
А что архиваторы имеют гарантированный процент сжатия для любых данных?

для сильно коррелированных коими будут последовательные отчеты АЦП процент будет весьма хорошим.

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

Что, естественно, удобнее делать на процессоре, потому без него это лучше и не затевать.

 

Другое дело если вы знаете распределение своих данных, тогда можно закодировать наиболее часто появляющиеся значение наименее коротким кодом, в таком случае по готовой таблице данные можно будет обрабатывать на лету. Это алгоритм Хаффмана, посмотрите. В вашем случае это просто таблица замены. Где входному числу ставиться в соответствие код, тем короче чем чаще появляется число. В оригинале таблица частоты появления строится по полному массиву данных, в вашем случае можно попробовать ее спрогнозировать заранее. Вероятность успеха я думаю процентов 40.

Share this post


Link to post
Share on other sites

Данные с АЦП практически наверняка за счет фильтров будут сильно коррелированными.

Ну то есть даже если грубо брать 16 битный отсчет. Передавать его, а дальше передавать разность между текущим и предыдущим. Битность этой разности будет значительно меньше, потому что мгновенного изменения на АЦП ждать не стоит.

 

Можно расширить Н бит АЦП до Н+1. первый бит взять маркером, если он 0, то дальше Н бит с АЦП, если он 1, то дальше разность текущего и предыдущего, допустим размерности Н/2. Накладных расходов 1/Н, а в случае успеха почти в 2 раза зажатый поток.

Share this post


Link to post
Share on other sites
Можно расширить Н бит АЦП до Н+1. первый бит взять маркером, если он 0, то дальше Н бит с АЦП, если он 1, то дальше разность текущего и предыдущего, допустим размерности Н/2. Накладных расходов 1/Н, а в случае успеха почти в 2 раза зажатый поток.

Сначала показалось очень красивым, однако далеко не все сигналы имеют относительно низкую полосу, чтобы хорошо жаться таким способом.

Share this post


Link to post
Share on other sites
Ах да, забыл. 200МГц АЦП :).

Процессор бы не хотелось...

Прямо точно нужно все 100МГц спектра после АЦП иметь внизу? Обычный даунсемплинг хотя бы раза в 4 помог бы решить проблему. Ну понятно что это не бесплатно - полоса тоже в 4 раза Уже будет.

Share this post


Link to post
Share on other sites
Сначала показалось очень красивым, однако далеко не все сигналы имеют относительно низкую полосу, чтобы хорошо жаться таким способом.

Между соседними точками на 200 МГц, будет достаточно малое изменение для достаточно широких полос) сколько в цифрах прям так прикинуть не могу.

Share this post


Link to post
Share on other sites
Можно расширить Н бит АЦП до Н+1. первый бит взять маркером, если он 0, то дальше Н бит с АЦП, если он 1, то дальше разность текущего и предыдущего, допустим размерности Н/2. Накладных расходов 1/Н, а в случае успеха почти в 2 раза зажатый поток.
Изобретение велосипеда.

 

Перед Хаффманом можно использовать 1D DCT. Трудно представить что-то более эффективное.

Но, возможно, ТС хватит и дифференциальной ИКМ.

Share this post


Link to post
Share on other sites
Что только не придумают люди чтобы не делать 10G или PCI express :lol:

..а 10g реально поднять новичку?

(Если новичёк аврору xilinx-ксовую к примеру поднимал.)

Или там нужен особый опыт?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this