реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Интерполировать синус по 5 точкам на период, Как сделать просто и точно (дешево и сердито)?
ViKo
сообщение Oct 19 2016, 10:23
Сообщение #1


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Вопрос, скорее, для обсуждения разных вариантов. Лучшим по точности будет, очевидно, восстановление sinc функциями. Но как это сделать в реальности, микроконтроллером, а не в MATLAB? Кубическая интерполяция будет сильно ломать сигнал. Может, как-то полином 5 степени использовать? 7-й? А нет ли способа чисто синус найти подходящий? Какие еще есть способы?
И еще, если взять 10 точек на период, что здесь можно применить? Задачка выглядит намного более легкой. Значит, и способ найдется попроще.
Критерий "похожести", наверное - задать величину среднеквадратического отклонения интерполированного сигнала от оригинала. Не знаю, какое конкретное значение выбрать. Нужно, чтобы было "похоже" визуально. laughing.gif
Go to the top of the page
 
+Quote Post
Maverick
сообщение Oct 19 2016, 10:37
Сообщение #2


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(ViKo @ Oct 19 2016, 13:23) *
Вопрос, скорее, для обсуждения разных вариантов. Лучшим по точности будет, очевидно, восстановление sinc функциями. Но как это сделать в реальности, микроконтроллером, а не в MATLAB? Кубическая интерполяция будет сильно ломать сигнал. Может, как-то полином 5 степени использовать? 7-й? А нет ли способа чисто синус найти подходящий? Какие еще есть способы?
И еще, если взять 10 точек на период, что здесь можно применить? Задачка выглядит намного более легкой. Значит, и способ найдется попроще.
Критерий "похожести", наверное - задать величину среднеквадратического отклонения интерполированного сигнала от оригинала. Не знаю, какое конкретное значение выбрать. Нужно, чтобы было "похоже" визуально. laughing.gif

попробуйте это
там бесплатно дается возможность пользоваться про версией после регистрации...

PS Мне помогло...


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Oct 19 2016, 10:38
Сообщение #3


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(ViKo @ Oct 19 2016, 13:23) *
Нужно, чтобы было "похоже" визуально. laughing.gif


Да отфильтовать просто надо.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Oct 19 2016, 11:12
Сообщение #4


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(AlexandrY @ Oct 19 2016, 13:38) *
Да отфильтовать просто надо.

... цифровым НЧ фильтром, в идеале с бесконечной крутизной перехода между пропусканием и подавлением. А иначе полезут те же артефакты.

Цитата(Maverick @ Oct 19 2016, 13:37) *

Спасибо! Пользуюсь MATLAB-ом, он на все способен. В нем буду прикидывать. Вернее, кое-что уже имею, нужно вспомнить, посмотреть.
То есть, инструмент имеется. Нужны конкретные алгоритмы.
Go to the top of the page
 
+Quote Post
Ivan55
сообщение Oct 19 2016, 11:37
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 212
Регистрация: 17-01-12
Пользователь №: 69 640



Может это поможет? по сути выполняет функции ФНЧ тока без операций умножения
Go to the top of the page
 
+Quote Post
Maverick
сообщение Oct 19 2016, 11:38
Сообщение #6


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(ViKo @ Oct 19 2016, 14:12) *
... цифровым НЧ фильтром, в идеале с бесконечной крутизной перехода между пропусканием и подавлением. А иначе полезут те же артефакты.


Спасибо! Пользуюсь MATLAB-ом, он на все способен. В нем буду прикидывать. Вернее, кое-что уже имею, нужно вспомнить, посмотреть.
То есть, инструмент имеется. Нужны конкретные алгоритмы.

В отличии от матлаба по ссылке выводит формулу (линейную, квадратичную и кажется полиномиальную)
сразу. Показывая графики...


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Tpeck
сообщение Oct 19 2016, 11:39
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243



Цитата(ViKo @ Oct 19 2016, 13:23) *
Нужно, чтобы было "похоже" визуально. laughing.gif


Какой-то не инженерный критерий.... sm.gif
Уж очень субъективный. См. прикрепленный файл.
Ведь похож? sm.gif
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
_pv
сообщение Oct 19 2016, 11:46
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



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

просто для каждого отрезка делать полином 5 степени от +-3 точек влево/вправо.

а еще можно наверное усреднять все 5 полиномов которые содержат данный отрезок между двумя точками, возможно будет ещё красивее, а может и нет.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Oct 19 2016, 12:07
Сообщение #9


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Tpeck @ Oct 19 2016, 14:39) *
Какой-то не инженерный критерий.... sm.gif
Уж очень субъективный. См. прикрепленный файл.
Ведь похож? sm.gif

Нет, не похож. И кубически интерполированный тоже не похож. Вот когда синус из двух парабол склеивали, было похоже.
Я критерий указал. Величина ошибки. Но ведь она, наверное, будет зависеть от того, как точки упали на синус?

Цитата(_pv @ Oct 19 2016, 14:46) *
фит полинома пятой степени по шести точкам выглядит очень похоже на синус.
и считается довольно просто, по сравнению со сплайнами не надо по всем данным от начала до конца бегать чтобы производным граничные условия задать.
просто для каждого отрезка делать полином 5 степени от +-3 точек влево/вправо.

Вот, так должно подойти. "Фит" - это что? Может, есть ссылки на расчеты такой интерполяции?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Oct 19 2016, 12:07
Сообщение #10


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(ViKo @ Oct 19 2016, 15:01) *
Нет, не похож. И кубически интерполированный тоже не похож. Вот когда синус из двух парабол склеивали, было похоже.
Я критерий указал. Величина ошибки. Но ведь она, наверное, будет зависеть от того, как точки упали на синус?


Тогда методом Ньютона.
Я бы тут лучше задался вопросом каким способом считать оценку несовпадения.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Oct 19 2016, 12:19
Сообщение #11





Guests






Пойдем с конца.
Если известен период, то симулировать синус с желаемой погрешностью визуализации.
Go to the top of the page
 
+Quote Post
_pv
сообщение Oct 19 2016, 12:19
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(ViKo @ Oct 19 2016, 19:07) *
Вот, так должно подойти. "Фит" - это что? Может, есть ссылки на расчеты такой интерполяции?

в общем случае, когда точек больше чем степень полинома - наименьшие квадраты:
http://mathworld.wolfram.com/LeastSquaresF...Polynomial.html

ну а вообще просто система из N уравнений для нахождения коэффициентов:
y(x1) = y1;
y(x2) = y2;
...
y(xn) = yn;


y(x) = a0 + a1*x +... an*x^n;
Go to the top of the page
 
+Quote Post
ViKo
сообщение Oct 19 2016, 12:33
Сообщение #13


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(TSerg @ Oct 19 2016, 15:19) *
Пойдем с конца.
Если известен период, то симулировать синус с желаемой погрешностью визуализации.

Нет, период не известен. Даже, что синус, тоже притянуто за уши. Просто в документации будет записано "полоса частот такая-то". Если для максимальной частоты у меня выходит 5 выборок АЦП на период, желаю продемонстрировать, что наблюдается "синус".

Цитата(_pv @ Oct 19 2016, 15:19) *
в общем случае, когда точек больше чем степень полинома - наименьшие квадраты:
http://mathworld.wolfram.com/LeastSquaresF...Polynomial.html

Опять Wolfram. Что это за зверь такой?
Цитата
ну а вообще просто система из N уравнений для нахождения коэффициентов:

Этот путь понятен. Ходил. У меня есть свой матлабовский файл с полиномами разных степеней. Стряхну пыль, посимулирую.
А другие варианты есть?
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Oct 19 2016, 12:39
Сообщение #14





Guests






Тогда задача меняется:
Имеется сигнал с максимальной полосой Fmax. С частотой дискретизации Fs делаются выборки на протяжении не менее периода (или сколько?), причем на максимальной частоте это будет 5 выборок.
Далее необходимо выполнить визуализацию сигнала с обеспечение гладкости воспроизведения.
Желательно определиться с числом точек для визуализации.

Вот тут начинается самое интересное - если на максимальной частоте визуализированный сигнал д.б. похож на синус, то на что он должен быть поход на частоте Fmax/2?

P.S.
Я делал "гладкость" простым способом, как раньше по лекалу делали. Соединяем три точки, проводим только через две.
Как правило достаточно параболы + простой фильтр. Но это не для 5 точек на период, конечно.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Oct 19 2016, 13:00
Сообщение #15


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Выборок - куча.
Для Fmax/2, понятно, будет 10 выборок на период.
Здесь так же будет, через 3-ю и 4-ю точки из 1 - 6 проводим кривую 5-й степени.
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 01:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01493 секунд с 7
ELECTRONIX ©2004-2016