@Black_and_green
Developer - chigrin.xyz

Как проще найти точки пересечения с OX в дискретной осциллограмме?

Снимал данные с осциллографа Textonix в csv. Получил пары значений время-напряжение. Необходимо найти время в точках пересечения 0, но только тех, что не являются помехами. Кроме того, т.к. значения дискретны не обязательно существует точка с напряжением 0. Таких файлов пара десятков, конечно можно как-то вручную искать эти точки, но 1 - это долго, 2 - это не точно (с таким же успехом можно было воспользоваться курсорами на осциллографе).
5a19bb8040be4413401549.pngПример файла
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ответы на вопрос 2
zamboga
@zamboga
Аналитика данных, BI-аналитика, дашборды
Мне кажется, Mathcad для такой задачи подойдёт лучше. Как минимум, там можно апроксимировать функцию по заданным точкам, а потом получить значения в интересующих точках.

Что касается решения через Excel, то примерный алгоритм такой:
1. Определить "коридор" помех (задать численно диапазон значений, внутри которого данные, которыми можно пренебречь)
2. Определить все значения, которые выходят за рамки значений коридора (это будут нужные импульсы)
3. Выкинуть все значения, которые внутри коридора (выкинуть помехи), при этом не трогать данные, которые имеют отношения к импульсам.
4. На наборе значений для каждого импульса через формулы уже несложно определить точку пересечения нуля.

Если число импульсов в каждом файле одинаково, и число дискретных значений -- тоже, то задача решается формулами. Если нет -- то скрипт на VBA (ну или тоже формулами, но с ручной работой по их написанию для каждого файла индивидуально)
Ответ написан
Комментировать
Vmalin
@Vmalin
Системный инженер
Итак задача по словам задавшего вопрос:
Необходимо найти время в точках пересечения 0, но только тех, что не являются помехами. Кроме того, т.к. значения дискретны не обязательно существует точка с напряжением 0.

С моей точки зрения, эта задача нуждается в уточнении:
1. Что в данном конкретном случае считается "нулем":
1.1 Это просто какое-то статичное условное значение (пример +0,01 В)
1.2 Уловный ноль зависит от конкретного пакета данных (в одном пакете он может оказаться 0,1 В в другом и -20 В)
1.3 Может я глазастый, может это мне действительно привиделось, но на приведенном графике этот условный средний "ноль" плавает непосредственно в самом пакете (где-то от 0,5 до 0).
В зависимости от этого можно определить алгоритм пересечения с условным "нулем" для каждого из приведенных случаев, при условии что:
2. Вы точно знаете, что не является "нулем". Другими словами - определить погрешность.
Ну а дальше задача вообще тривиальна - текущее временное значение или является нулем или не является.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы