Добрый день!
У меня возникла проблема с интерполяцией значений. На графике две кривые. Синюю интерполирует нормально, а вот красную не хочет. Выход функции Threshold 1D Array - массив нулей. И поэтому не могу интерполировать значения по оси Y. В чём может быть дело?
P.S. использую функции Threshold 1D Array и Interpolate 1D Array потому что мне нужно не сразу весь массив интерполировать, а частями в заданной полосе (200 кГц).
Threshold 1D Array
-
- user
- Сообщения: 97
- Зарегистрирован: 21 окт 2014, 09:39
- Версия LabVIEW: 12
- Контактная информация:
Threshold 1D Array
- Вложения
-
- 1.png (6.45 КБ) 3618 просмотров
-
- расчёт s и v модели (Модель с подстилающими).vi
- Основной файл
- (33.68 КБ) 96 скачиваний
-
- блок - F слой + подстилающие.vi
- SubVI
- (13.88 КБ) 99 скачиваний
-
- блок - Е слой.vi
- SubVI
- (11.86 КБ) 104 скачивания
-
- Блок - fv.vi
- SubVI
- (8.97 КБ) 97 скачиваний
-
- Блок расчёта s и v.vi
- SubVI
- (34.92 КБ) 95 скачиваний
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Threshold 1D Array
Ну потому, что красный график функцией, на самом деле, не является. Если синий график можно представить в виде функции x=f(y), то красный - ни y= f(x), ни x = f(y) представить не удастся, ибо одному и тому-же значению x может соответствовать два значения y, что справедливо и для пары y-x
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Threshold 1D Array
Могу только порекомендовать сменить систему координать - перейти к полярной. Там считать интерполяцию и результат переводить обратно в декартову плоскость. Единственный вопрос возникает в выборе центра координат. Хотя вы можете принять центром - центр тренда, т.е среднее значение X и Y всех точек вашего графика, либо среднее значение от максимума и минимума по каждой координате.
Последний раз редактировалось Borjomy_1 24 апр 2017, 10:05, всего редактировалось 1 раз.
-
- professor
- Сообщения: 3404
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 175 раз
- Контактная информация:
Re: Threshold 1D Array
про полярность на скажу, а вот по поводу нулей на выходе интерплоляции добавлю.
Дело вовсе не в том, чтобы кривая была функцией.
Threshold 1D Array жаждет возрастающе
Дело вовсе не в том, чтобы кривая была функцией.
Threshold 1D Array жаждет возрастающе
-
- professor
- Сообщения: 3404
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 175 раз
- Контактная информация:
Re: Threshold 1D Array
про полярность на скажу, а вот по поводу нулей на выходе интерплоляции добавлю.
Дело вовсе не в том, чтобы кривая была функцией.
Threshold 1D Array жаждет возрастающей функции. Она находит первую точку, которая больше заданного значения, берёт предыдущую и строит линейную интерполяцию.
так что при поиске. например, 4.8 функция обнаружит, что первое значение УЖЕ больше искомого. значит и индекс точки =0.
я этут трудность обнаружил при работа с убывающими кривыми. Пришлось перед интерполяцией реверс массива делать, потом точки пересчитывать.
Дело вовсе не в том, чтобы кривая была функцией.
Threshold 1D Array жаждет возрастающей функции. Она находит первую точку, которая больше заданного значения, берёт предыдущую и строит линейную интерполяцию.
так что при поиске. например, 4.8 функция обнаружит, что первое значение УЖЕ больше искомого. значит и индекс точки =0.
я этут трудность обнаружил при работа с убывающими кривыми. Пришлось перед интерполяцией реверс массива делать, потом точки пересчитывать.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Threshold 1D Array
Так это как раз и признак функции - каждой точке соответствует одно значение. Если будет перелом, то значение может быть не одно.Artem.spb писал(а):Дело вовсе не в том, чтобы кривая была функцией.
Threshold 1D Array жаждет возрастающе
Кстати, ваше утверждение неверно. Подаем синус (5 периодов) и тресхолд вполне успешно ищет нужные точки при изменении стартового индекса.
Update: действительно, в синусе находит только точки на возрастании, на убывании выдает первый индекс, если начальное значение больше заданного, если меньше, то успешно ищет дальше.
-
- professor
- Сообщения: 3404
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 175 раз
- Контактная информация:
Re: Threshold 1D Array
про возрастание мб не точно выразился.
кривая может и не возрастать, но алгоритм именно такой: найти первую "больше", интерполировать на шаг назад.
А вот функцией ей быть не обязательно, т.к. ищется первое совпадение.
кривая может и не возрастать, но алгоритм именно такой: найти первую "больше", интерполировать на шаг назад.
А вот функцией ей быть не обязательно, т.к. ищется первое совпадение.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 2 Ответы
- 499 Просмотры
-
Последнее сообщение Artem.spb
-
- 5 Ответы
- 268 Просмотры
-
Последнее сообщение AndreyDmitriev