|
Вычисление максимумов серии импульсов
|
|||
---|---|---|---|
#18+
Здравствуйте! Есть 500 000+ чисел - координат y графика, полученных с осциллографа через АЦП. Импульсы идут по три, первый из них не значимый. А вот второй и третий импульсы играют роль в обработке. Их максимумы мне нужно записать в два отдельных столбца для дальнейших расчетов. Дополнительная проблема состоит в том, что третий импульс не всегда есть. Прикрепил часть выборки к сообщению (Полностью файл прикрепить не могу, он 15 Мб весит). Пробовал находить максимальное значение в диапазоне следующих подряд 85 ячеек с помощью МАКС. Затем, используя функцию =ЕСЛИ(), выводил номер ячейки (ЯЧЕЙКА("строка";номер элемента)), в которой есть это максимальное значение y. Затем искал второй максимум в диапазоне 20 ячеек, начиная с номера ячейки первого максимума + 3 ячейки. Если честно, решение не устраивает, потому что, во-первых не всегда попадал в диапазон из-за погрешностей в записи данных. Бывает, что диапазон ячеек, в который попадают все три импульса, составляет порядка 40 ячеек (достаточно редко, исправлял вручную). Во-вторых, третий импульс не всегда есть. В-третьих, второй и третий импульсы могут идти практически вплотную друг к другу (замечаю это и исправляю вручную). Всвязи с тем, что таких файлов с результатами у меня в районе 30 штук, появился вопрос: есть ли у кого то мысли по поводу, как это все автоматизировать для дальнейшей обработки? Как я это вижу: импульс максимальной амплитуды всегда больше 150, можно его найти и затем, вычислив номер ячейки с этим значением, найти следующее максимальное значение, начиная с ячейки n+3 (в некоторых случаях, импульс уменьшается с максимального значения до значения в несколько десятых через 3 числа, в основном, через 2). Затем ищем следующее максимальное значение (1 импульс). И так далее, пока все координаты не запишем Но я не знаю, как в этом случае уйти от задания диапазона ячеек, в которых производим поиск. Буду признателен за любой совет! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2013, 13:59 |
|
Вычисление максимумов серии импульсов
|
|||
---|---|---|---|
#18+
Slava_post, Не совсем понятно что требуется. Попроще можно изложить суть? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2013, 14:22 |
|
Вычисление максимумов серии импульсов
|
|||
---|---|---|---|
#18+
Ну да, что-то я сложно написал=) Есть столбец чисел. Каждое число - это координата y графика. Его вид есть в прикрепленном файле к 1 сообщению. График состоит из серий трех импульсов, следующих друг за другом. Мне необходимо получить 2 столбца значений: максимальные значения 2 импульса и максимальные значения 3 импульса. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2013, 14:38 |
|
Вычисление максимумов серии импульсов
|
|||
---|---|---|---|
#18+
Slava_post, Я всё равно не понял. Как определить второй и третий импульс импульс? так как на картинке? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2013, 14:48 |
|
Вычисление максимумов серии импульсов
|
|||
---|---|---|---|
#18+
невкурил, ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2013, 14:49 |
|
Вычисление максимумов серии импульсов
|
|||
---|---|---|---|
#18+
или так? я не могу понять последовательность импульсов ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2013, 15:05 |
|
Вычисление максимумов серии импульсов
|
|||
---|---|---|---|
#18+
На картинке показал. Три синих скачка на графике - серия из трех импульсов (есть на картинке). Каждый импульс задается несколькими точками. Выделил желтым. Среди точек, задающих второй и третий импульсы нужно найти максимальные значения. Далее, после первой серии из трех импульсов идет через небольшой интервал вторая (еще три синих скачка на графике), третья и так далее. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2013, 15:33 |
|
Вычисление максимумов серии импульсов
|
|||
---|---|---|---|
#18+
Slava_post, в общем логика импульсов мне не понятна совершенно. помочь в этом деле ничем не смогу. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2013, 15:40 |
|
Вычисление максимумов серии импульсов
|
|||
---|---|---|---|
#18+
спасибо за попытку! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2013, 15:42 |
|
Вычисление максимумов серии импульсов
|
|||
---|---|---|---|
#18+
Вообще-то, можно выделить импульсы, если фильтровать не от максимума, а от некоторых (возможно, задаваемых) пороговых значений аплитуды и скважности. Отсутствие третьего импульса вычисляется, если для ряда гарантированно неизменна частота дискретизации, и импульсы сами по себе (именно внутри тройки) - тоже периодические. А анализировать можно и формулами, но я бы написал макрос... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2013, 17:16 |
|
Вычисление максимумов серии импульсов
|
|||
---|---|---|---|
#18+
У меня такой же вопрос возник: скажите, пожалуйста, Вам надо именно в экселе это сделать? или ,например, код написанный в С++ также сойдет? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2013, 22:06 |
|
Вычисление максимумов серии импульсов
|
|||
---|---|---|---|
#18+
И еще один вопрос: у Вас идут 3 числа подряд 155,151 156,792 17,573 что здесь все таки второй импульс? или все три числа можно брать за второй импульс? И такой вопрос: второй импульс будет,если у нас будет небольшой интервал между значениями? Немного напомните суть эксперимента,если это не сложно?=) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2013, 22:11 |
|
Вычисление максимумов серии импульсов
|
|||
---|---|---|---|
#18+
Как я понял задание, то я бы предложил Вам такой алгоритм(на псевдокоде, если дадите время могу попробовать сделать на С++): если максимум, это амплитуда =150, то 1) идем сверху вниз 2)если амплитуда > 150, то счетчик(k) увеличиваем на 1 3) далее смотрим,если остаток от деления числа k на 3 равен 2, то записываем число и справа значок: второй максимум, ежели остаток равен 0, то 3 максимум, если 1, то ичего не пишем. Как то так ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2013, 22:17 |
|
Вычисление максимумов серии импульсов
|
|||
---|---|---|---|
#18+
Насчет эксперимента: с аналогового осциллографа снимается видеосигнал. В ждущем режиме он представлен тремя скачками на его экране. Таким образом, если отключить синхронизацию, то это и будет повторяющиеся во времени серии из трех скачков (по сути это и есть импульсы, которые мне необходимы). АЦП позволяет описать каждый импульс несколькими точками. Одна из них максимальна по своему значению координаты y (пик импульса на графике). Первый импульс мне не нужен для работы, второй импульс по своей амплитуде практически не изменяется во времени и имеет значение 155-156 единиц (+-1). Третий импульс наоборот, может принимать значения от 0 и выше, не может превышать второй импульс. После этих трех импульсов проходит небольшой промежуток во времени и импульсы повторяются. kuzoИ еще один вопрос: у Вас идут 3 числа подряд 155,151 156,792 17,573 что здесь все таки второй импульс? или все три числа можно брать за второй импульс? Второй импульс описывается всеми тремя числами и имеет амплитуду 156,792. Просто за длительность этого импульса было получены координаты 3 точек, его описывающих. По этим точкам он и был построен в дальнейшем. Как раз моей задачей и является составить 2 столбца: в первом из них будут максимальные значения вторых импульсов (то есть, если он задается числами 155,151; 156,792; 17,573, в столбец запишется 156,792. Во втором столбце: максимальные значения третьих импульсов. Насчет того, что я пытаюсь сделать обработку в excel - просто для меня это понятнее. Моя задача заключается именно в обработке результата любым способом, а не получение его за счет формул excel. Какой угодно способ или подсказка, куда двигаться для получения результата будет огромной помощью для меня! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2013, 23:12 |
|
Вычисление максимумов серии импульсов
|
|||
---|---|---|---|
#18+
В данном случае, для второго импульса максимальное (нужное для меня) значение составляет 156,792. Для третьего импульса 9,136 (тоже нужное для меня). Ну и для первого оно составляет 25,464, но оно мне не нужно. Все три импульса построены в excel по полученным значениям и представлены на картинке графиком синего цвета. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2013, 23:17 |
|
Вычисление максимумов серии импульсов
|
|||
---|---|---|---|
#18+
Ну, я бы тогда Вам все-таки так посоветовал бы сделать, причем написать все-таки отдельно код, а не в самом экселе: 1)пробежаться по нескольми значениям. 2) Если у Вас 1 или несоклько значений подряд больше, допустим 2-ки, тогда это пик номер 3, если от 2 до 156 несколько раз подряд, и он идет за единицей, тогда это будет двойка. 3) Выписываете значения где двойка и где тройка ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2013, 00:12 |
|
Вычисление максимумов серии импульсов
|
|||
---|---|---|---|
#18+
разбить все значения по минимумам(относительно соседних 2х точек). получится несколько областей. в каждой такой области найти максимум. разложить по убыванию области в зависимости от максимума в каждой из них. выводить график трёх областей с наибольшими максимумами. 3ю область лучше фиксить по величине значения ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2013, 01:52 |
|
Вычисление максимумов серии импульсов
|
|||
---|---|---|---|
#18+
kuzoНу, я бы тогда Вам все-таки так посоветовал бы сделать, причем написать все-таки отдельно код, а не в самом экселе: 1)пробежаться по нескольми значениям. 2) Если у Вас 1 или несоклько значений подряд больше, допустим 2-ки, тогда это пик номер 3, если от 2 до 156 несколько раз подряд, и он идет за единицей, тогда это будет двойка. 3) Выписываете значения где двойка и где тройка Немного не понял. А почему, если несколько значений больше 2, то это именно пик номер три, а не пик номер один. Причем, третий пик, в отличии от первого, может и отсутствовать. Клеверразбить все значения по минимумам(относительно соседних 2х точек). получится несколько областей. в каждой такой области найти максимум. разложить по убыванию области в зависимости от максимума в каждой из них. выводить график трёх областей с наибольшими максимумами. 3ю область лучше фиксить по величине значения Вот это более подходит, как мне кажется, только вопрос: "разбить все значения по минимумам(относительно соседних 2х точек). получится несколько областей." - немного не понимаю принцип, как это можно получить и в каком виде. То есть идет сравнение соседних значений и если есть какое то число, большее других и относительно него предыдущие и последующие числа уменьшаются, то берутся порядковые номера точек? как-то так? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2013, 07:59 |
|
|
start [/forum/topic.php?fid=60&msg=38469984&tid=2156691]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 266ms |
total: | 429ms |
0 / 0 |