2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Аппроксимация сигнала:нужен совет в борьбе с неустойчивостью
Сообщение13.11.2024, 00:36 


23/02/23
126
Добрый день,

Есть повторяющийся во времени $t$ сигнал $f(t)$, с пилообразной формой сдвинутый вверх на какое-то значение. Частота, амплитуда и величина этого сдвига медленно меняются (то есть два соседних периода более-менее похожи, но вот через сотню периодов эти значения могут на десятки процентов убежать и эти значения я не знаю.

Мне нужно всегда предсказывать максимально точно время наступления среднего значения этого сигнала. Я могу измерять этот сигнал, но на один зуб пилы я иногда могу измерить только 1-2 значения (иногда с десяток), а если я уже прохлопал среднее, то - это уже плохо. Измерения сильно зашумлены.

У меня проблема с устойчивостью решения.

Пусть я измеряю только по одному значению перед достижением среднего и возьму только 4 значения: $(t_1, f_1), ... (t_4, f_4)$.

Обозначим полупериод сигнала $q$, а величину наклона пилы при возрастании $B$ и при убывании $-B$.

Тогда если обозначить за $A_1, A_2$ сдвиг для первого-третьего и второго-четвертого полупериодов, то по идее в точной арифметике я должен получить

$$\left\{\begin{tabular}{l}
A_1 + B t_1 = f_1 \\
A_1 + B (t_3 - 2 q) = f_3 \\
A_2 - B t_2 = f_2 \\
A_2 - B (t_4 - 2 q) = f_4 \\
\end{tabular}\right.$$

из которых можно сократить $A_1, A_2$ и получить

$$\left\{\begin{tabular}{l}
B(t_3-2q-t_1) = f_3 - f_1 \\
B(t_4-2q-t_2) = f_2 - f_4
\end{tabular}\right.$$

Дальнейшие попытки решить эту систему разбиваются об ее неустойчивость. Вот например, нам сильно повезло, все $t$ мы измерили точно с шагом равным периоду, тогда справа мы имеем практически 0, и искомое $q$ по идее должно быть точно половине между $t_3$ и $t_1$, а также $t_4$ и $t_2$, но конечная формула получается такой:

$$q = \frac{(t_1-t_3)(f_2-f_4) + (t_2-t_4)(f_1-f_3)}{2(f_4-f_2+f_3-f_1)}$$

и мы имеем деление на ноль и жуткую численную неустойчивость. МНК прикручивал, не помогает, матрица остается близкой к сингулярной, и Тихоновские регуляризаторы или отбрасывание близких к нулю сингулярных значений тоже ни к чему не приводит. А с шумом все совсем плохо.

В каком направлении смотреть? Тотальные наименьшие квадраты вроде тоже не факт, что помогут. Я понимаю, что надо как-то переписать саму аппроксимацию, но как.

Посоветуйте, пожалуйста!

 Профиль  
                  
 
 Re: Аппроксимация сигнала:нужен совет в борьбе с неустойчивостью
Сообщение13.11.2024, 11:53 
Заслуженный участник
Аватара пользователя


11/03/08
10004
Москва
zgemm в сообщении #1661338 писал(а):
время наступления среднего значения этого сигнала


это момент, когда пила проходит среднее между максимумом и минимумом, или момент, когда сдвиг окажется равным заданной величине?
И второе - это пила в обычном понимании, линейный рост и резкий спад или приблизительно симметричные треугольники?
И насколько можно увеличить частоту опроса (подозреваю, что при отсчёте на зубец вообще нереально)?

 Профиль  
                  
 
 Re: Аппроксимация сигнала:нужен совет в борьбе с неустойчивостью
Сообщение13.11.2024, 16:15 


23/02/23
126
Спасибо за вопросы, уважаемый Евгений Машеров!

Евгений Машеров в сообщении #1661358 писал(а):
это момент, когда пила проходит среднее между максимумом и минимумом

да, только у меня нет возможности измерить максимум и минимум, и значения максисуса и минимума во времени медленно, но меняются. Грубо говоря есть режимы, когда мин-макс 0.001-0.2В, а когда и 1В-10В. При переходе с одного на другой режим все меняется очень плавно, скажем надо хотя бы несколько тысяч периодов, чтобы из одного в другой перейти.

Евгений Машеров в сообщении #1661358 писал(а):
И второе - это пила в обычном понимании, линейный рост и резкий спад или приблизительно симметричные треугольники?


ой, а у меня пила с симметричными треугольниками, в смысле и сигнал, и под рукой пила тоже :)

Более того, я могу очень уверенно сказать, что производные сигнала по времени при прохождении средней точки снизу вверх и сверху вниз по модулю одинаковы.

Евгений Машеров в сообщении #1661358 писал(а):
И насколько можно увеличить частоту опроса (подозреваю, что при отсчёте на зубец вообще нереально)?

когда частота этого пилообразного сигнала маленькая, я конечно же могу много (сотни) раз опрашивать, но у меня есть режим, когда частота довольно большая, что скорости оцифровщика не хватает. Хочется довольствоваться тем, что при больших частотах сигнала мы примерно немного загодя перед прохождением средней точки измерили напряжение один раз и на основании этого измерения и предыстории в несколько таких же измерений максимально точно посчитали фазу и частоту сигнала.

Еще нюанс - я не могу в произвольное время измерять. Измерения можно делать только после прохождения экстремума и до прохождения средней точки, то есть после того, как среднюю точку мы прошли и бежим до следующего экстремума у меня на линии есть помеха, и если я во время этой помехи измерю, то будет погода на Марсе.

И даже в этот промежуток времени я могу не всегда измерять, а только в предопределенные моменты времени, так как есть еще одна помеха, которая включается-выключается с существенно более высокой (раз так в сто) частотой, чем частота этого сигнала.

Еще хочется, чтобы была адаптивность и устойчивость алгоритма по числу измерений за полупериод. Грубо говоря, частота сигнала низкая, нам везет, мы много раз поизмеряли, все хорошо. Частота сигнала стала большой, мы измеряем по один-два раза, а при супербольшой частоте хочется иметь возможность может в половине случаев вообще не измерять. Как я упоминал, сам сигнал меняется медленно, следовательно, это должно работать.

-- 13.11.2024, 16:18 --

[quote="zgemm в сообщении #1661338"]
$$q = \frac{(t_1-t_3)(f_2-f_4) + (f_2-f_4)(f_1-f_3)}{2(f_4-f_2+f_3-f_1)}$$
ой, описАлся, должно быть:
$$q = \frac{(t_1-t_3)(f_2-f_4) + (t_2-t_4)(f_1-f_3)}{2(f_4-f_2+f_3-f_1)}$$
жалко, что уже нельзя исправить :(

 Профиль  
                  
 
 Re: Аппроксимация сигнала:нужен совет в борьбе с неустойчивостью
Сообщение13.11.2024, 16:25 
Заслуженный участник
Аватара пользователя


01/08/06
3136
Уфа
Тут у нас хотя бы имеется история, которая, по условиям, меняется плавно. Я думаю, надо как-то эту историю использовать, моделировать сигнал на большом промежутке, и тогда сиюсекундные значения даже и вовсе не нужны.

 Профиль  
                  
 
 Re: Аппроксимация сигнала:нужен совет в борьбе с неустойчивостью
Сообщение13.11.2024, 16:27 
Админ форума


02/02/19
2653
 i 
zgemm в сообщении #1661371 писал(а):
жалко, что уже нельзя исправить :(
Исправил.

 Профиль  
                  
 
 Re: Аппроксимация сигнала:нужен совет в борьбе с неустойчивостью
Сообщение13.11.2024, 16:34 


23/02/23
126
worm2 в сообщении #1661372 писал(а):
Тут у нас хотя бы имеется история, которая, по условиям, меняется плавно. Я думаю, надо как-то эту историю использовать, моделировать сигнал на большом промежутке, и тогда сиюсекундные значения даже и вовсе не нужны.

Да, именно! Я всячески за. Просто в лоб записанные наименьшие квадраты по нескольким периодам ведут себя довольно стабильно, если я каждый раз измеряю в разных точках, а если мне вдруг "везет" и я несколько раз измерил грубо говоря на 1мкс до среднего и стабильно получил одно и то же число на ниспадающей и еще одно число на возрастающей части, то схема, как я написал выше, становится сильно не стабильной и из-за численной ошибки я имею совсем левые результаты.

-- 13.11.2024, 16:34 --

Ende в сообщении #1661374 писал(а):
 i 
zgemm в сообщении #1661371 писал(а):
жалко, что уже нельзя исправить :(
Исправил.

Спасибо!

 Профиль  
                  
 
 Re: Аппроксимация сигнала:нужен совет в борьбе с неустойчивостью
Сообщение13.11.2024, 16:45 
Заслуженный участник
Аватара пользователя


01/08/06
3136
Уфа
Я краем уха слышал про теорему Котельникова, кажется, по ней требуется, чтобы на одном периоде было больше двух измерений, иначе восстановить сигнал даже теоретически невозможно. У вас нет возможности измерять с частотой хотя бы втрое большей, чем максимальная допустимая частота сигнала?

 Профиль  
                  
 
 Re: Аппроксимация сигнала:нужен совет в борьбе с неустойчивостью
Сообщение14.11.2024, 08:27 
Заслуженный участник
Аватара пользователя


11/03/08
10004
Москва
Мне кажется, что тут минимум 4 отсчёта на период, два на подъёме, два на спаде. Тогда можно отследить фазы подъёма и спада, оценить крутизну, затем расположение максимумов и минимумов и середину между ними. Меньше, боюсь, нереально. Теорема Котельникова это "два отсчёта на период", но там предполагается синусоида, а несинусоидальная форма это гармоники кратной частоты.

 Профиль  
                  
 
 Re: Аппроксимация сигнала:нужен совет в борьбе с неустойчивостью
Сообщение14.11.2024, 21:40 
Заслуженный участник
Аватара пользователя


11/03/08
10004
Москва
Как вариант:
(предполагая, что есть не менее двух отсчётов на каждую фазу - подъём и спуск)
Находим разности соседних отсчётов. Если они принадлежат одной фазе - разность, делённая на время между отсчётами, равна тангенсу угла наклона. для двух отсчётов из разных фаз - мусор. Поэтому находим оценку, игнорирующую явные ошибки, ну хоть медиану (от абсолютных значений), получая наклон, после чего находим точки из одной фазы, проводим линию, и на пересечении линий, проведенных по точкам других фаз, обнаруживаем максимумы и минимумы, и среднюю точку между ними.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group