Data visualization

Hello, Alexey V Bugrov! You wrote in conference fido7.ru.embedded to Nickita A Startcev on Mon, 25 May 2009 20:16:23 +0000 (UTC):

AVB>>> Это не так просто какможет показаться. Чтобы корректно и быстро AVB>>> строить данные в масштабах отличных от 1:1 нужно либо AVB>>> рассчитывать и кешировать "виды" для промежуточных расширений, AVB>>> либо на каждом отрезке искать минмум и максимум, что медленно.

NA>> Странно. Мне казалось, что минимум и максимум (в отличие, например, NA>> от медианы) ищется за линейное время.

AVB> А подумать? Чтобы правильно построить график длиной 10М точек на AVB> экране длиной в 1К точек все равно придется пербрать массив длиной AVB> 10М точек. При зуме в 2 раза, придется пербрать 5М точек и т.д. AVB> Без кешированных промежуточных видов будут вилы при любой попытке AVB> zoomin/zoomout.

Все нужные данные влезут в 160М памяти (4 канала по 32 бита float, это хоть и избыточно, но проще в реализации), что по сегодняшним меркам совсем не бог весть сколько за один проход чтения текстового файла. Дальше, даже если эти занные отсвопятся на диск, даже если их сразу записать на диск, уже известны и их пределы для отрисовки и все остальное работает быстро. Если покопаться в бинарных заголовках бинарных файлов, можно вытащить информацию о реальных масштабах, временах и единицах, ничего вообще ни в памяти ни на диске не хранить, а работать прямо из этих файлов - будет быстро. Промежуточный вариант - вообще не разбираться в заголовках, а только вычитывать и отрисовывать байты тоже хоть и не так удобен, но решает задачу.

dima

formatting link

Reply to
Dmitry Orlov
Loading thread data ...
Reply to
Nickita A Startcev
Reply to
Alexey V Bugrov

Hello, Alexander Konosevich! You wrote in conference fido7.ru.embedded to Michael Belousoff on Tue, 26 May 2009 12:57:24 +0400:

DO>>> со скопа несколько характерных картинок и отдал на бумаге.

MB>> А, то есть больше не надо? А то смотри, я мог бы ребёнка MB>> попросить сделать. Ему развлечение, тебе польза. :-)

AK> Мелкие поделки я до сих пор ваяю на TurboC - и ничего, вполне себе AK> работают под WinXP ... Ж%}}}

Под 64х разрядной Win уже не заработают.

dima

formatting link

Reply to
Dmitry Orlov

Hello, Alexey V Bugrov! You wrote in conference fido7.ru.embedded to Nickita A Startcev on Tue, 26 May 2009 06:47:50 +0000 (UTC):

AVB>>> При зуме в 2 раза, придется пербрать 5М точек и т.д. Без AVB>>> кешированных промежуточных видов будут вилы при любой попытке AVB>>> zoomin/zoomout.

NA>> перебрать 10м отсчётов на частоте 1ггц - это порядка десятой-сотой NA>> доли секунды, если они в оперативку влезли.

AVB> О, уже научились делать SDRAM, работающую на частоте 1 ГГЦ?

Еще нет, во всяком случае в массовых PC (в том скопе сэмпл-рейт максимальный

5Gsps, а у них и куда более быстрые скопы есть), но для отображения достаточно менее 2000 сэмплов прочитать, сколько там даже на HD экране точек по горизонтали может быть, это даже с HDD достаточно быстро.

dima

formatting link

Reply to
Dmitry Orlov
Reply to
Alexey V Bugrov
Reply to
Alexander Konosevich

Hello, Alexey V Bugrov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Tue, 26 May

2009 08:31:32 +0000 (UTC):

AVB>>> О, уже научились делать SDRAM, работающую на частоте 1 ГГЦ?

DO>> Еще нет, во всяком случае в массовых PC (в том скопе сэмпл-рейт DO>> максимальный 5Gsps, а у них и куда более быстрые скопы есть),

AVB> Кто тебе сказал, что они пишут сразу в память хоста (который под AVB> виндой), а не в быстрое фифо на плате захвата?

Hикто такого вообще не говорил, разумеется он в свою собственную память пишет. Просто ОЗУ - не обязательно компьютерный SDRAM.

DO>> но для отображения достаточно менее 2000 сэмплов прочитать, сколько DO>> там даже на HD экране точек по горизонтали может быть, это даже с DO>> HDD достаточно быстро.

AVB> Блин, еще раз. Если масштаб изображения отличен от 1:1 то прочитать AVB> нужно не столько точек, сколько ширина экрана, а столько, сколько AVB> нужно отобразить на данном интервале.

То есть столько, сколько ширина экрана. Больше все равно не отобразишь.

AVB> Там и все 10М будут оказаться (при полном zoom out). Если просто тупо

Откуда?

AVB> пропускать точки, а не искать минимум/максимум на интервале (и

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

AVB> строить нужно не точку, а вертикальный отрезок от минимума до AVB> максимума),

Зачем?

AVB> соотвествующем точке, то вместо осцилограммы увидишь просто альясы,

Да, конечно. Подробности будут видны при зуме, родной софт примерно так и работает.

AVB> которые ничего о форме исходного сигнала не говорят.

Рассматривать "полотенце" бывает очень полезно.

dima

formatting link

Reply to
Dmitry Orlov
Reply to
Alexey V Bugrov

Hello, Alexey V Bugrov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Tue, 26 May

2009 10:32:23 +0000 (UTC):

DO>> экрана оверсэмплингом вычитывать и делать ресэмплинг. Hи то ни DO>> другое не требует вычитывания всего массива. AVB>>> строить нужно не точку, а вертикальный отрезок от минимума до AVB>>> максимума), DO>> Зачем?

AVB> Откуда я знаю зачем тебе осциллограмму смотреть надо? Можешь просто AVB> сгенерить рандомно количество точек равное ширине экрана - будет AVB> очень похоже.

Hе будет похоже.

AVB>>> соотвествующем точке, то вместо осцилограммы увидишь просто AVB>>> альясы,

DO>> Да, конечно. Подробности будут видны при зуме, родной софт примерно DO>> так и работает.

AVB> Хреновый софт.

Hе жалуюсь, и от других не слышал. А алиасы в процессе зума есть, факт.

AVB> Либо ты не понимаешь как он работает. Если на зумауте ничего не AVB> видно, то как ты узнаешь в какое место делать зум?

Кто тебе сказал, что ничего не видно?

AVB>>> которые ничего о форме исходного сигнала не говорят. DO>> Рассматривать "полотенце" бывает очень полезно.

AVB> У тебя вместо полотенца будет совершенно ни о чем не говорящая AVB> белиберда, брать точки с пропусками можно только пропустив все AVB> исходные данные через AVB> ФHЧ, которые уберет все частоты, которые нельзя отобразить.

Может быть это и делается, а может и нет, сходу трудно сказать, но гонять для этого через фильтр все сэмлы точно не нужно. Как факт, какртинка на "полотенце" от уменьшения сэмпл-рейта на порядок с гаком, а то и на два, существенно не меняется. И если зум меня не интересует, я сэмпл-рейт уменьшаю всегда, и существенно, тогда сам скоп гораздо быстрее, считай в реалтайме работает, а с максимальным после срабатывания триггера приходится пару секунд ждать, пока нарисуется картинка.

dima

formatting link

Reply to
Dmitry Orlov

Hello, Slav Matveev! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Tue, 26 May

2009 16:59:47 +0400:

DO>> максимальный 5Gsps, а у них и куда более быстрые скопы есть), но DO>> для отображения достаточно менее 2000 сэмплов прочитать, сколько DO>> там даже на HD экране точек по горизонтали может быть, это даже с DO>> HDD достаточно быстро.

SM> для того, что бы получить нечто на экране - достаточно, что бы SM> получить достоверную картинку - недостаточно.

Степень ее достоверности мне оценить сложно, но на практике, как я уже говорил, на скопе картинка "полотенца", то есть фактически огибающей сигнала, слабо зависит от sample rate, вот возможности zoom'а, что очевидно, от него сильно зависят. Я не знаю сколько сэмплов на отрисовку точки реально читает скоповская программа (надо бы написать свою и проверить), но ясно, что сильно меньше имеющихся. А алиасы при этом да будут, я неоднократно их видел на экране цифрового скопа, ну и что? Стробоскопические скопы вообще только на алиасах и работали. Таким образом, можно прочитать допустим в три раза больше, чем влазит на экран точек, да даже в 10, это все равно быстро и все равно гораздо меньше всей записи.

SM> представь синус, оцифрованный 100 точек/период, а потом SM> попробуй взять каждую 100-ю точку, результат тебя устроит?

У цифрового скопа в любом случае есть этот эффект, полоса пропускания канала может быть существенно выше текущего sample rate, алиасы есть, и что делать?

SM> надо рисовать отрезок в координатах ( k , max ) , (k , min ), SM> где k - горизонтальная кордината на экране, а max (min) - SM> максимум (минимум) значений в интервале [ k*N+ofs, (k+1)*N+ofs ) SM> , где N - масштаб, а ofs - смещение от начала.

dima

formatting link

Reply to
Dmitry Orlov
Reply to
Alexey V Bugrov
Reply to
Nickita A Startcev
Reply to
Michael Belousoff
Reply to
Michael Belousoff

Hello, Slav Matveev! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Tue, 26 May

2009 21:20:58 +0400:

DO>> что? Стробоскопические скопы вообще только на алиасах и работали. DO>> Таким образом, можно прочитать допустим в три раза больше, чем DO>> влазит на экран точек, да даже в 10, это все равно быстро и все DO>> равно гораздо меньше всей записи.

SM> на стробоскопических, видимо, надо предполагать какой должен SM> быть сигнал либо крутить ручки до получения правдоподобного

Это на любом надо предполагать изначально.

SM> результата. А видеть на экране прямую линию вместо переодического SM> сигнала - не дело.

Прямой и не будет, вероятность попасть частотой выборок точно в частоту сигнала низкая. Hу и частоту выборок покрутить всегда можно.

SM>>> представь синус, оцифрованный 100 точек/период, а потом SM>>> попробуй взять каждую 100-ю точку, результат тебя устроит?

DO>> У цифрового скопа в любом случае есть этот эффект, полоса DO>> пропускания канала может быть существенно выше текущего sample DO>> rate, алиасы есть, и что делать?

SM> я не знаю как лекрой или флюк или что там еще, обсчитывает SM> картинку. но попробуй взять любой кусок осциллограммы и сжать по SM> горизонтали до одной точки. В результате будет не точка, а SM> отрезок, который, собственно и надо отобразить. Причем с учетом SM> соседних, что бы не было разрывов там где их и в сигнале нет. А SM> если дергать каждую -дцатую точку, и ее отдельно отображать, то SM> я вообще слабо понимаю что там среди них можно увидеть.

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

SM> функцию, как бы, надо отрезками рисовать, а не точками.

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

dima

formatting link

Reply to
Dmitry Orlov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.