Страница 1 из 2

Считывание длительности "хвостатого" импульса

Добавлено: 19 май 2016, 11:34
НиколайV
Всех приветствую. Одной из задач моей программы является считывание с экрана осциллографа длительности импульса, при этом в зависимости от ее значения амплитуда сигнала с генератора либо повышается, либо записывается в файл как пороговое значение. Сигнал с генератора подается на электронный формирователь нового сигнала, который и выводится на экран осциллографа.

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

Как это можно решить? Буду благодарен за помощь.

Скриншоты программы и осциллограмм прилагаются. Изменения параметра pulse number в Pulse measurements.vi не помогло.

Re: Считывание длительности "хвостатого" импульса

Добавлено: 19 май 2016, 12:54
Kosist
А как должен выглядеть импульс? Пробники осциллографа настроены хорошо? Я имею ввиду - Вы уверены, что импульс на самом деле так выглядит (т.е. проблемы на стороне его генерации), или проблемы могут быть на стороне измерительной установки (пробники, например)/пути сигнала?

Re: Считывание длительности "хвостатого" импульса

Добавлено: 19 май 2016, 13:09
НиколайV
Тут дело в усилителе-формирователе, на который поступает сигнал с генератора. Лучших исходящих сигналов от него добиться не получается, да и на самом деле, такой импульс удовлетворителен при эксплуатации усилителя-формирователя. Не получается лишь нормально их тестировать, так как идет вот такое неправильное считывание длительности.

Re: Считывание длительности "хвостатого" импульса

Добавлено: 19 май 2016, 15:53
IvanLis
НиколайV писал(а):Скриншоты программы и осциллограмм прилагаются.
Вы бы еще сам сигнал выложили, что бы можно было свои предложения опробовать.

Re: Считывание длительности "хвостатого" импульса

Добавлено: 19 май 2016, 17:18
НиколайV
IvanLis писал(а):
НиколайV писал(а):Скриншоты программы и осциллограмм прилагаются.
Вы бы еще сам сигнал выложили, что бы можно было свои предложения опробовать.
Вы имеете в виду сигнал с генератора, подающийся на электронный формирователь? Это прямоугольный импульс длительностью 70 нс и амплитудой 100 - 200 мв, но это, по-моему, не имеет значения в обсуждаемом вопросе.
Ну а преобразованный сигнал и приведен на осциллограммах.

Re: Считывание длительности "хвостатого" импульса

Добавлено: 19 май 2016, 17:43
IvanLis
НиколайV писал(а):Ну а преобразованный сигнал и приведен на осциллограммах.
Именно, тот на котором необходимо произвести измерения.

Re: Считывание длительности "хвостатого" импульса

Добавлено: 19 май 2016, 17:59
НиколайV
Вы имеете в виду его параметры? Этот сигнал не настраивается на генераторе, а подается с электронного преобразователя, так что никак, кроме скриншота осциллограммы, поделиться им я с Вами не могу.

Re: Считывание длительности "хвостатого" импульса

Добавлено: 19 май 2016, 19:19
IvanLis
НиколайV писал(а):Вы имеете в виду его параметры? Этот сигнал не настраивается на генераторе, а подается с электронного преобразователя, так что никак, кроме скриншота осциллограммы, поделиться им я с Вами не могу.
Но Вы же его каким-то образом в оцифровываете и компьютер вводите, для того чтобы с помощью программы написанной на :labview: провести измерения :dntknw:

Или Вас методика измерения линейкой на осциллографе интересует?

Re: Считывание длительности "хвостатого" импульса

Добавлено: 20 май 2016, 10:52
НиколайV
У меня есть кластерный набор данных, который выдает vi -драйвер осциллографа. Далее он напрямую подается на вход signal in анализирующего импульсы vi, который определяет длительность.

Тогда вопрос, как записать в файл кластерные данные? Я попробовал использовать Write To Measurement File, но в получившейся таблице записано явно не то, что нужно.

Re: Считывание длительности "хвостатого" импульса

Добавлено: 20 май 2016, 12:28
ladik
Можете попробовать записать данные в бинарный файл. Зная, какого типа данные были записаны, можно прочесть файл, указав тип данных на соответствующем терминале. Если Вы хотите так записать кластер, то вместе с файлом приложите typedef кластера.

Re: Считывание длительности "хвостатого" импульса

Добавлено: 20 май 2016, 15:55
НиколайV
Получилось, отправил кластерные данные на Get Waveform Components, а потом уже на write to measurement file. Прикрепляю файл, в нем данные на 4 сигнала друг за другом, но можно обрезать.

Re: Считывание длительности "хвостатого" импульса

Добавлено: 20 май 2016, 19:59
IvanLis
НиколайV писал(а):Такая проблема: сформированный импульс имеет нехороший вид и хвосты как спереди, так и сзади, и поэтому значение длительности зачастую выводится неправильное - намного меньше реальной.
Вы можете на скринах обозначить длительность импульса (начало и конец импульса), которая должна детектироваться.

Re: Считывание длительности "хвостатого" импульса

Добавлено: 24 май 2016, 11:52
НиколайV
Вы можете на скринах обозначить длительность импульса (начало и конец импульса), которая должна детектироваться.

Проще сказать - на среднем уровне, то есть примерно на 1.25В
Я пытаюсь интегрировать код в formula node, который бы, пробегая нужный диапазон точек, определял точку первого пересечения этого порога графиком, и точку последнего, и их разница была бы нужной длительностью. Но не уверен, что правильно подвожу массив, да и ошибку по коду выдает.

Re: Считывание длительности "хвостатого" импульса

Добавлено: 24 май 2016, 12:41
dadreamer
НиколайV писал(а):Но не уверен, что правильно подвожу массив, да и ошибку по коду выдает.
Formula Node всё-таки лучше избегать, когда логику можно реализовать на :labview: . Но если решили делать на нём, то корректнее так:
2016-05-24_14-37-36.jpg
2016-05-24_14-37-36.jpg (46.29 КБ) 12733 просмотра
Я подправил лишь синтаксис, а устроит ли этот код вас и насколько он вообще подходит к сабжу - :dntknw:

Re: Считывание длительности "хвостатого" импульса

Добавлено: 24 май 2016, 14:43
НиколайV
Formula Node всё-таки лучше избегать, когда логику можно реализовать на :labview:
Средствами labview реализовать не получилось, поэтому решил использовать formula node.
Я подправил лишь синтаксис, а устроит ли этот код вас и насколько он вообще подходит к сабжу -
Спасибо, больше ошибки не выдает. И правую границу он определяет правильно, если выставить нужный интервал i, так как в диапазон i от 0 до 10000 входит не один импульс. Но левую границу он пока неправильно считывает.

P.s. все считывается правильно после замены f1!=0 на f1==0.