Threshold 1D Array

Простейшие вопросы в области инженерной разработки
Ответить
reed
user
user
Сообщения: 97
Зарегистрирован: 21 окт 2014, 09:39
Версия LabVIEW: 12
Контактная информация:

Threshold 1D Array

Сообщение reed »

Добрый день!
У меня возникла проблема с интерполяцией значений. На графике две кривые. Синюю интерполирует нормально, а вот красную не хочет. Выход функции Threshold 1D Array - массив нулей. И поэтому не могу интерполировать значения по оси Y. В чём может быть дело?
P.S. использую функции Threshold 1D Array и Interpolate 1D Array потому что мне нужно не сразу весь массив интерполировать, а частями в заданной полосе (200 кГц).
Вложения
1.png
1.png (6.45 КБ) 3598 просмотров
расчёт s и v модели (Модель с подстилающими).vi
Основной файл
(33.68 КБ) 96 скачиваний
блок - F слой + подстилающие.vi
SubVI
(13.88 КБ) 99 скачиваний
блок - Е слой.vi
SubVI
(11.86 КБ) 103 скачивания
Блок - fv.vi
SubVI
(8.97 КБ) 96 скачиваний
Блок расчёта s и v.vi
SubVI
(34.92 КБ) 94 скачивания
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Threshold 1D Array

Сообщение Borjomy_1 »

Ну потому, что красный график функцией, на самом деле, не является. Если синий график можно представить в виде функции x=f(y), то красный - ни y= f(x), ни x = f(y) представить не удастся, ибо одному и тому-же значению x может соответствовать два значения y, что справедливо и для пары y-x
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Threshold 1D Array

Сообщение Borjomy_1 »

Могу только порекомендовать сменить систему координать - перейти к полярной. Там считать интерполяцию и результат переводить обратно в декартову плоскость. Единственный вопрос возникает в выборе центра координат. Хотя вы можете принять центром - центр тренда, т.е среднее значение X и Y всех точек вашего графика, либо среднее значение от максимума и минимума по каждой координате.
Последний раз редактировалось Borjomy_1 24 апр 2017, 10:05, всего редактировалось 1 раз.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Threshold 1D Array

Сообщение Artem.spb »

про полярность на скажу, а вот по поводу нулей на выходе интерплоляции добавлю.
Дело вовсе не в том, чтобы кривая была функцией.
Threshold 1D Array жаждет возрастающе
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Threshold 1D Array

Сообщение Artem.spb »

про полярность на скажу, а вот по поводу нулей на выходе интерплоляции добавлю.
Дело вовсе не в том, чтобы кривая была функцией.
Threshold 1D Array жаждет возрастающей функции. Она находит первую точку, которая больше заданного значения, берёт предыдущую и строит линейную интерполяцию.
так что при поиске. например, 4.8 функция обнаружит, что первое значение УЖЕ больше искомого. значит и индекс точки =0.
я этут трудность обнаружил при работа с убывающими кривыми. Пришлось перед интерполяцией реверс массива делать, потом точки пересчитывать.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Threshold 1D Array

Сообщение Borjomy_1 »

Artem.spb писал(а):Дело вовсе не в том, чтобы кривая была функцией.
Threshold 1D Array жаждет возрастающе
Так это как раз и признак функции - каждой точке соответствует одно значение. Если будет перелом, то значение может быть не одно.
Кстати, ваше утверждение неверно. Подаем синус (5 периодов) и тресхолд вполне успешно ищет нужные точки при изменении стартового индекса.
Update: действительно, в синусе находит только точки на возрастании, на убывании выдает первый индекс, если начальное значение больше заданного, если меньше, то успешно ищет дальше.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Threshold 1D Array

Сообщение Artem.spb »

про возрастание мб не точно выразился.
кривая может и не возрастать, но алгоритм именно такой: найти первую "больше", интерполировать на шаг назад.
А вот функцией ей быть не обязательно, т.к. ищется первое совпадение.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»