Data visualization

Hello, Michael Belousoff! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Wed, 27 May

2009 07:45:57 +0400:

DO>> Да нет, надо, такая ситyация навеpняка еще не pаз возникнет. Если DO>> делать, то непpеменно с зyмом синхpонным для всех каналов, и с DO>> запоминанием истоpии зyмов, чтобы можно было "пpиблизить" DO>> выделенное, pассмотpеть, "отодвинyть" обpатно, выделить дpyгой DO>> кyсок. Hy и не смотpя на то, что в файле данные float, pеально это DO>> данные с восьмиpазpядного АЦП, потомy даже если считывать и хpанить DO>> как float за один пpоход в память, под мантиссy можно много памяти DO>> не отводить.

MB> Сейчас не полyчается. Выяснилось, что июнь y него загpyжен MB> полностью. Может быть, не весь. Так что, если вpемя теpпит - то MB> веpнёмся к этомy pазговоpy недели чеpез две-тpи.

В принципе, я уже нашел ArbExpress:

formatting link
человек один мейлом прислал, спасибо ему), правда отам только 2 канала в один экран загрузить можно, и csv файлы редактирования требуют (заголовок мешает, я его пробелами забил). Зато зум, как я и говорил, с историей.

dima

formatting link

Reply to
Dmitry Orlov
Loading thread data ...

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

2009 13:41:26 +0400:

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

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

SM> на старом аналоговом в место переодического сигнала можно SM> увидеть широкую полосу, но не тонкую линию.

Hе угадал с частотой развертки и тоже вместо синуса линию горизонтальную увидел.

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

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

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

Да, легче. В конце концов я разберусь что там за сигнал и как его смотреть.

SM>>> отдельно отображать, то я вообще слабо понимаю что там среди них SM>>> можно увидеть.

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

SM> полоса пропускания канала в данном случае не имеет никакого SM> значения. У тебя уже есть оцифрованная функция, которую надо SM> правильно отобразить.

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

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

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

SM> даже отрезки между каждой N-ой точкой дадут неверную картину.

Так любой цифровой скоп работает. Сейчас попробовал менять сэмпл-рейт с

50ksps до 20Msps, вид примерно трехсоткилогерцового сигнала на "полотенце" меняется не значительно при 100ms на всю картинку. Разумеется делать зум при низкой частоте выборки бессмысленно, там уже только бессмысленные горизонтальные прямые, когда на 20Msps - четкая осмысленная картинка.

dima

formatting link

Reply to
Dmitry Orlov

Здравствуйте Dmitry Orlov пишет:

Которая плавно вверх-вниз перемещается, а не стоит на месте

Это как? Амплитудой меньше - понимаю, но период?

Только в нормальном осцилографе должен перестраиваться фильтр или аналоговый до АЦП (тогда и частота выборки с АЦП меняется) или цифровой (ЦФ) после АЦП (тогда с АЦП выборки идут с постоянной частотой, а ЦФ прореживает). Впрочем, были и дешёвые осцилографы и без этого - говно редкое, у нас такое, ещё и бракованное - захват по уровню не работает :(

Если бы без доп.фильтрации, то ты бы видел чаще всего говно - у нас умник писал программу для ЭКГ, вначале так и делал, как ты говоришь, насмотрелся

----- С уважением, Шаповалов Алексей

Reply to
Shapovalov Alexey Ivanovich

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

2009 19:33:14 +0400:

SM>>> на старом аналоговом в место переодического сигнала можно SM>>> увидеть широкую полосу, но не тонкую линию.

DO>> Hе угадал с частотой развертки и тоже вместо синуса линию DO>> горизонтальную увидел.

SM> Это, извините, как?

Попробуй увидеть 50Гц на развертке, приспособленной для сотен килогерц.

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

DO>> Да, легче. В конце концов я разберусь что там за сигнал и как его DO>> смотреть.

SM> ну если цель стоит создать себе трудности, что бы их с честью SM> преодолеть...

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

dima

formatting link

Reply to
Dmitry Orlov

Hello, Shapovalov Alexey Ivanovich! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Wed, 27 May

2009 18:10:19 +0000 (UTC):

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

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

SM>>> на старом аналоговом в место переодического сигнала можно SM>>> увидеть широкую полосу, но не тонкую линию.

SAI> Которая плавно вверх-вниз перемещается, а не стоит на месте

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

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

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

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

SAI> Это как? Амплитудой меньше - понимаю, но период?

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

SM>>>>> отдельно отображать, то я вообще слабо понимаю что там среди них SM>>>>> можно увидеть.

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

SM>>> полоса пропускания канала в данном случае не имеет никакого SM>>> значения. У тебя уже есть оцифрованная функция, которую надо SM>>> правильно отобразить.

SAI> Только в нормальном осцилографе должен перестраиваться фильтр или

В _нормальном_ фильтр перестраивается независимо от сэмпл-рейта.

SAI> аналоговый до АЦП (тогда и частота выборки с АЦП меняется) или SAI> цифровой (ЦФ) после АЦП (тогда с АЦП выборки идут с постоянной SAI> частотой, а ЦФ прореживает). Впрочем, были и дешёвые осцилографы и SAI> без этого - говно редкое, у нас такое, ещё и бракованное - захват SAI> по уровню не работает :(

Упомянутый скоп не дешевый и исправный. Там же в заголовке файла название скопа есть: LECROY Wave Runner 44Xi

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

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

SM>>> даже отрезки между каждой N-ой точкой дадут неверную картину.

SAI> Если бы без доп.фильтрации, то ты бы видел чаще всего говно - у нас SAI> умник писал программу для ЭКГ, вначале так и делал, как ты SAI> говоришь, насмотрелся

Фильтрация есть, но на куда более высокой частоте. Вот при sample rate 5ksps "полотенце" уже заметно искажено, но общий вид еще угадывается. Hапоминаю, что сам сигнал порядка 300kHz (частота не постоянна).

dima

formatting link

Reply to
Dmitry Orlov
Reply to
Andrew O. Shadoura

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

2009 09:37:37 +0400:

SM>>> Это, извините, как?

DO>> Попробуй увидеть 50Гц на развертке, приспособленной для сотен DO>> килогерц.

SM> если не включить синхронизацию, то я увижу плавающую по SM> вертикали линию, что лично меня сразу наведет на мысль

Если правильно угадаешь с усилением/ослаблением по вертикали. Использование любого прибора предполагает как знание того что и как он меряет, так и что предполагается увидеть, и цифровой скоп - не исключение. Вещи, по-моему, абсолютно очевидные, что тут обсуждать?

DO>> Отнюдь. А для рассматриваемой задачи я уже знаю и что там за DO>> сигналы и какой зум может понадобиться для грубого и какой для DO>> тонкого просмотра.

SM> тогда проще всего было бы написать небольшой скриптик, SM> который был отбирал 64К строк с нужного места с нужным шагом, а SM> 64К - ексель вполне съедает.

Вот уж точно ен эксель, чем он тут удобен? Как в нем зум делать? 64к точек из 10М скриптом искать вместо того, чтобы посмотреть глазами - извращение. Еще когда не хватает физически памяти в самом скопе, приходится применять какие-то хитрые условия для срабатывания триггера, тут деваться некуда, но уже имея запись процесса заниматься этим нелепо, тем более, что софт-то такой есть...

dima

formatting link

Reply to
Dmitry Orlov

Здравствуйте Dmitry Orlov пишет:

Это уже "двойной отказ" :)

Угу, я просто рассматривал только один случай

Угу - и это тоже должен уметь, но это уже фича, а не необходимость

А я и не говорил, что твой - дерьмо

А как ты определил на какой частоте фильтрация?

----- С уважением, Шаповалов Алексей

Reply to
Shapovalov Alexey Ivanovich

Здравствуйте Slav Matveev пишет:

Понял, я только про случай каждую Т точку подумал

----- С уважением, Шаповалов Алексей

Reply to
Shapovalov Alexey Ivanovich

Hello, Shapovalov Alexey Ivanovich! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Thu, 28 May

2009 15:49:44 +0000 (UTC):

SAI> Это уже "двойной отказ" :)

А если с амплитудой не угадаешь, реально вообще пожечь или проб или скоп или и то и другое. Или просто ничего не увидеть.

SAI>>> Только в нормальном осцилографе должен перестраиваться фильтр или

SAI> Угу - и это тоже должен уметь, но это уже фича, а не необходимость

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

SAI>>> аналоговый до АЦП (тогда и частота выборки с АЦП меняется) или SAI>>> цифровой (ЦФ) после АЦП (тогда с АЦП выборки идут с постоянной SAI>>> частотой, а ЦФ прореживает). Впрочем, были и дешёвые осцилографы SAI>>> и без этого - говно редкое, у нас такое, ещё и бракованное - SAI>>> захват по уровню не работает :(

SAI> А я и не говорил, что твой - дерьмо

Дело не в оценке (есть применения, для которых он не пригоден вовсе, aka дерьмо), а в возможностях прибора.

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

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

SM>>>>> даже отрезки между каждой N-ой точкой дадут неверную SM>>>>> картину.

SAI>>> Если бы без доп.фильтрации, то ты бы видел чаще всего говно - у SAI>>> нас умник писал программу для ЭКГ, вначале так и делал, как ты SAI>>> говоришь, насмотрелся

SAI> А как ты определил на какой частоте фильтрация?

Вообще-то, полоса пропускания канала в соответствующем меню на эране отображается, но я же кроме сигнала и зум его одновременно смотрю и вижу точки, соответствующие сэмплам (у меня как раз включено отображение линиями с показом точек выборок, показываются они если они могут быть видны и не сливаются). Hу и если бы при 5ksps фильтр резал все выше 2.5kHz, то от своего 300kHz сигнала я бы только 0 видел, а я пусть и изрядно искаженную, но огибающую вполне вижу. Внутри - алиасы. При более высокочастотной, но все еще весьма редкой выборке алиасы перестают быть видны (разрешения экрана не хватает), а огибающая становится ближе к реальности.

dima

formatting link

Reply to
Dmitry Orlov

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

2009 20:44:38 +0400:

SM>>> если не включить синхронизацию, то я увижу плавающую по SM>>> вертикали линию, что лично меня сразу наведет на мысль

DO>> Если правильно угадаешь с усилением/ослаблением по вертикали.

SM> ну я как бы по схеме представляю возможную амплитуду.

А я, типа, не представляю что я должен увидеть...

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

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

Множество случайных точек - это плод твоего воображения.

SM>>> который был отбирал 64К строк с нужного места с нужным шагом, SM>>> а 64К - ексель вполне съедает.

DO>> Вот уж точно ен эксель, чем он тут удобен?

SM> он удобен тем, что его не надо неделю искать.

Hо совершенно непригоден для решаемой задачи, всего на порядок прореженный файл тот же gnuplot покажет (правда мне надо весь), а я, как уже говорил, нашел подходящий софт. Да, он только для двух каналов, еще два можно в другое окошко загрузить, но в принципе этого достаточно.

dima

formatting link

Reply to
Dmitry Orlov

Hello, Slav Matveev! You wrote in conference fido7.ru.embedded to Andrew O. Shadoura on Thu, 28 May 2009 20:42:05 +0400:

AS>> Эмм. А то, что эксель для этих целей совершенно не предназначен, AS>> тебя не смущает?

SM> если он сделает то, что мне нужно - то не смущает. особенно SM> когда задача в единичном экземпляре.

А он не сделает.

dima

formatting link

Reply to
Dmitry Orlov

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

2009 20:44:38 +0400:

SM>>> если не включить синхронизацию, то я увижу плавающую по SM>>> вертикали линию, что лично меня сразу наведет на мысль

DO>> Если правильно угадаешь с усилением/ослаблением по вертикали. SM> ну я как бы по схеме представляю возможную амплитуду.

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

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

Короче говоря, выдалось у меня немного свободного времени и я набросал программку. Hа первом проходе она вычитывает текстовый файл, определяет минимумы, максимумы и число сэмплов и пишет их и амплитуды в виде 32хбитных float в бинарный файл. Дальше из этого файла с задаваемым оверсэмплом (но не чаще, чем данные записаны, интерполяции я не делаю) вычитываются амплитуды и рисуется линия, соединяющая предыдущую и текущую выборки. Уже при 5-10 вычитываемых на одну экранную точку сэмплах получается вполне реальная картинка, не слишком отличающаяся и от реальной на экране скопа, и от вычитывания и рисования всех точек. Как я и говорил, и с десятикратным оверсэмплом картинка рисуется быстро, обычными средствами CBuilder'a и винды (как умею, так и пишу, я тот еще win-программер):

void __fastcall TOscForm::Plot(const AnsiString fName) { FILE *fFlt; int points = 0; float min_time, max_time, min_ampl, max_ampl; float ampl; min_time = max_time = min_ampl = max_ampl = 0;

fFlt = fopen(fName.c_str(), "rb"); if (fFlt) { Stop = false;

//надо бы заголовок в структуру объединить fread(&min_time, sizeof(min_time), 1, fFlt); fread(&max_time, sizeof(max_time), 1, fFlt); fread(&min_ampl, sizeof(min_ampl), 1, fFlt); fread(&max_ampl, sizeof(max_ampl), 1, fFlt); fread(&points, sizeof(points), 1, fFlt);

ReDraw(); int count = XMax-XMin; int delta = points/count; int over = PlotOversampling; if (over == 0) over = 1; float pkpk = (max_ampl-min_ampl); float dY = (float)(YMax-YMin)/2.0;

if (delta > over) delta /= over; else over = 1; Canvas->MoveTo(XMin,(YMax-YMin)/2); //Тут мне лень вычитывать первый сэмпл и я просто с середины начинаю Canvas->Pen->Color = clRed; int pX = XMin; int pY = (YMax-YMin)/2; for(int xi = 0; xi <= count*over; xi++) { int offset = xi*delta*sizeof(float)+4*sizeof(float)+1*sizeof(int); fseek(fFlt, offset, 0); fread(&ampl, sizeof(ampl), 1, fFlt); int X = XMin + xi/over; int Y = YMin+(YMax-YMin)/2 - (int)(dY*ampl/pkpk); if ((pX != X) || (pY != Y)) Canvas->LineTo(X, Y); // на скорость заметно не влияет, похоже эта проверка внутри функции первым делом делается pX = X; pY = Y; if (Stop) break; }

}

fclose(fFlt); }

В общем, если с этим еще поработать, то сделать весь нужный интерфейс вокруг этого примитивного алгоритма - совершенно не проблема, а если поколдовать над двоичными файлами со скопа и разобраться в их заголовке, то все просто летать будет (первое преобразование в двоичный файл изрядно тормозит), тем более, что и пишутся скопом они раз в 20 с гаком быстрее (занимая соответственно в 20 раз меньший объем).

dima

formatting link

Reply to
Dmitry Orlov

Sun May 24 2009 16:26, Andrew O. Shadoura wrote to Dmitry Orlov:

Эта жалкая поделка финских студентов более 32000 строк понимать научилась?

AOS> Gnumeric, Excel, etc.

Уверен, на 10e6 строк -- выпадут в своп.

Reply to
Kirill Frolov

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.