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

 
 
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
_pv
сообщение Oct 19 2016, 13:07
Сообщение #16


Гуру
******

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



Цитата(ViKo @ Oct 19 2016, 19:33) *
Опять Wolfram. Что это за зверь такой?

Mathematica. В закромах лежит, попробуйте, имхо куда лучше матлаба.
Прикрепленное изображение


Цитата(ViKo @ Oct 19 2016, 19:33) *
Этот путь понятен. Ходил. У меня есть свой матлабовский файл с полиномами разных степеней. Стряхну пыль, посимулирую.А другие варианты есть?

ну брать те же несколько соседних точек и теми же наименьшими квадратами, но уже правда нелинейными, натягивать на них синус, а не полином.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Oct 19 2016, 15:05
Сообщение #17





Guests






Сшивание синусоиды параболой по 6-ти точкам ( 5 точек уже явно неудовлетворительно ):
http://shot.qip.ru/00gZ9L-1OPovQH3t/

По 9-ми точкам вполне удовлетворительно, с т.з. визуализации:
http://shot.qip.ru/00gZ9L-5OPovQH3v/

P.S.
Еще косинусная интерполяция:

float CosInterpolate(float v1, float v2, float a)
{
float angle = a * PI;
float prc = (1.0f - cos(angle)) * 0.5f;
return v1*(1.0f - prc) + v2*prc;
}
Go to the top of the page
 
+Quote Post
serjj
сообщение Oct 20 2016, 13:56
Сообщение #18


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



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


Для демонстрации "синуса" нужно ИМХО смотреть на спектр сигнала и на количество и соотношение гармоник: какие, сколько, каково соотношение между ними и т.д. Из наблюдения за колебанием во временной области ничего разумного заключить нельзя. Поэтому, сделать Фурье, для максимальной частоты будет хорошо наблюдаемая гармоника в районе fs/5, что и требуется показать.

Сообщение отредактировал serjj - Oct 20 2016, 13:58
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Oct 20 2016, 15:07
Сообщение #19





Guests






Цитата(serjj @ Oct 20 2016, 16:56) *
для максимальной частоты будет хорошо наблюдаемая гармоника в районе fs/5, что и требуется показать.

Так я и предложил эмуляцию на крайних частотах cranky.gif

P.S.
Т.е. должны быть два режима: измерительный (в диапазоне нормальных частот), когда все по честному и тестово-демонстрационный, в диапазоне крайних частот, когда делается симуляция по 1..3 крайним тестовым частотам, значения которых оговорены в ПМ.

P.P.S.
И это не обман Заказчика, поскольку мы, на основе реальных измерений, алгоритмически выявляем крайние частоты и показываем их наличие в удобной и понятной для всех визуальной форме.
Go to the top of the page
 
+Quote Post
serjj
сообщение Oct 20 2016, 16:12
Сообщение #20


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Удобная и понятная для всех визуальная форма - это спектр.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Oct 20 2016, 16:22
Сообщение #21





Guests






Цитата(serjj @ Oct 20 2016, 19:12) *
Удобная и понятная для всех визуальная форма - это спектр.

Да, но у ТС похоже что-то вроде генератора частот с визуализацией сигнала во временной области.
Мы не знаем всех ньюансов ТЗ, а потому и гадать не будем.
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Oct 20 2016, 17:17
Сообщение #22


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Нелинейное вписывание. Он же фит. Почему нужно полином-5 вписывать? Почему синус не вписать? Вычислительно сложно?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Oct 20 2016, 17:38
Сообщение #23


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

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



В свое время вот эту статью нашел (здесь в форуме и автор был, и ссылку на эту статью я давал). Также несколько других, представляющих интерес. По этим статьям в MATLAB экспериментировал. Сейчас пересмотрел. Вижу, что интерполяция сплайном Эрмита по 6 точкам, как в статье, дает примерно такой же результат, как интерполяция полиномом 5 степени. Но проще.
TSerg, гадание, зачем это нужно, не понадобится, если заглянуть в мой профиль. rolleyes.gif
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Oct 20 2016, 18:09
Сообщение #24





Guests






Цитата(ViKo @ Oct 20 2016, 20:38) *
гадание, зачем это нужно, не понадобится, если заглянуть в мой профиль

Дефки? Голые?

Цитата(ViKo @ Oct 20 2016, 20:38) *
Вижу, что интерполяция сплайном Эрмита по 6 точкам

Косинусом проще и не хуже.
Go to the top of the page
 
+Quote Post
petrov
сообщение Oct 20 2016, 22:01
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Передискретизация у вас довольно большая, поэтому никакой бесконечной крутизны и длинного ФНЧ не требуется, увеличиваем частоту дискретизации ещё в два раза добавлением нулей, давим праразитный спектральный образ полуполосным ФНЧ, отсюда экономия вычислений на полифазной реализации и нулевых коэффициентах полуполосного фильтра, затем простым дробным параболическим интерполятором Фарроу любые точки вычисляем.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Oct 21 2016, 02:38
Сообщение #26


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

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



Частота выборок в 5 раз больше частоты сигнала - это большая передискретизация?
Мне не нужно в реальном времени фильтровать. Поэтому все эти полифазные фильтры, хитроумные перетрахивания операторов (Фарроу) не нужны. Нужны формулы, а как их использовать, найдем способ.

Цитата(TSerg @ Oct 20 2016, 21:09) *
Косинусом проще и не хуже.

Вычислить косинус посложнее полинома 7 степени будет. С чего вдруг стало проще?
Go to the top of the page
 
+Quote Post
serjj
сообщение Oct 21 2016, 08:32
Сообщение #27


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Если реальное время не является критичным, можно использовать DFT интерполяцию. Пример:
Прикрепленный файл  sine_interp_test.7z ( 475 байт ) Кол-во скачиваний: 34


Здесь разумеется проявляются краевые эффекты, поэтому выводить лучше значения в интервале [N_guard...N_dft-N_guard]. Ну это уже детали реализации.
Go to the top of the page
 
+Quote Post
petrov
сообщение Oct 21 2016, 11:08
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(ViKo @ Oct 21 2016, 05:38) *
Частота выборок в 5 раз больше частоты сигнала - это большая передискретизация?


Да. Фильтр простой будет, скажем 5 умножений на константы на входной частоте дискретизации, зависит от требований к подавлению.

Цитата(ViKo @ Oct 21 2016, 05:38) *
Мне не нужно в реальном времени фильтровать. Поэтому все эти полифазные фильтры, хитроумные перетрахивания операторов (Фарроу) не нужны. Нужны формулы, а как их использовать, найдем способ.


Не имеет значения, в реальном, не в реальном, зачем лишние вычисления, параболический Фарроу - простой способ любой отсчёт вычислить промежуточный, но требует побольше чем 5 отсчётов на период, увеличиваем в два раза до 10, половина отсчётов остаётся исходная, нужно вычислить только вторую половину между исходными отсчётами, а это всего лишь ФНЧ симметричный с чётным количеством коэффициентов, который даёт задержку в пол такта исходной частоты дискретизации, единственное требование к которому - АЧХ константная вплоть до вашей крайней частоты.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Oct 21 2016, 11:53
Сообщение #29


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

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



Так а почему сразу по 10 выборкам не интерполировать, если этот Фарроу требует больше 5 выборок? И почему он столько требует?
А, понял. Ломать сильно будет. Ну так на одном Фарроу теория не остановилась.
Параболический - кубическая парабола, естественно?
То есть, поскольку кубическим полиномом интерполяция не блещет качеством, вы предлагаете интерполировать в 2 этапа. Что же не полиномом 5-й степени?
Go to the top of the page
 
+Quote Post
petrov
сообщение Oct 21 2016, 12:01
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(ViKo @ Oct 21 2016, 14:53) *
Так а почему сразу по 10 выборкам не интерполировать...


Вы 5 на период задали в исходной постановке.

Цитата(ViKo @ Oct 21 2016, 14:53) *
И почему он столько требует?


Потому что простой, чем меньше передискретизация тем сложнее интерполятор для вычисления произвольной точки между исходными отсчётами.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Oct 21 2016, 12:05
Сообщение #31


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

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



Цитата(serjj @ Oct 21 2016, 11:32) *
Если реальное время не является критичным, можно использовать DFT интерполяцию. Пример:
Прикрепленный файл  sine_interp_test.7z ( 475 байт ) Кол-во скачиваний: 34


Здесь разумеется проявляются краевые эффекты, поэтому выводить лучше значения в интервале [N_guard...N_dft-N_guard]. Ну это уже детали реализации.

Спасибо. Посмотрел, что работает. Синус восстанавливает прилично. Но этот алгоритм не соответствует требованию "просто".
А на края окно можно наложить, наверное.
Время не реальное (250 МВыб/с), но и не бесконечное. Возможно, и так получится. Нужно смотреть, во сколько уложится.
А как будет интерполироваться этим алгоритмом перепад?
Go to the top of the page
 
+Quote Post
petrov
сообщение Oct 21 2016, 12:06
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(ViKo @ Oct 21 2016, 14:53) *
То есть, поскольку кубическим полиномом интерполяция не блещет качеством, вы предлагаете интерполировать в 2 этапа. Что же не полиномом 5-й степени?


Думаю полиномом 5-й степени больше вычислений, впрочем это от архитектуры вычислительного устройства зависит, вам виднее, я со своей FPGAшной колокольни смотрю.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Oct 21 2016, 12:15
Сообщение #33


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

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



Цитата(petrov @ Oct 21 2016, 15:01) *
Вы 5 на период задали в исходной постановке.

Так то на период. Выборок - куча. Можно хоть по 10-ти интерполировать. Шучу.

Цитата(petrov @ Oct 21 2016, 15:06) *
Думаю полиномом 5-й степени больше вычислений, впрочем это от архитектуры вычислительного устройства зависит, вам виднее, я со своей FPGAшной колокольни смотрю.

Понятно. Я микроконтроллером буду интерполировать. rolleyes.gif
Go to the top of the page
 
+Quote Post
petrov
сообщение Oct 21 2016, 12:18
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(ViKo @ Oct 21 2016, 15:12) *
Так то на период. Выборок - куча. Можно хоть по 10-ти интерполировать.


Я так понял, что в вашем сигнале нет частот выше, чтоб на период меньше 5 отсчётов приходилось, выборок в фильтре и будет куча использоваться, больше 5.
Go to the top of the page
 
+Quote Post
Den64
сообщение Oct 21 2016, 12:27
Сообщение #35


Знающий
****

Группа: Свой
Сообщений: 584
Регистрация: 22-11-07
Из: Курская область
Пользователь №: 32 571



Такое предлагали? Пользовался, мне понравилось. Буржуи делают для людей, очень просто и удобно.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Oct 21 2016, 12:47
Сообщение #36


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

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



Цитата(Den64 @ Oct 21 2016, 15:27) *
Такое предлагали? Пользовался, мне понравилось. Буржуи делают для людей, очень просто и удобно.

Вещь хорошая. Но не по теме.

Цитата(petrov @ Oct 21 2016, 15:18) *
Я так понял, что в вашем сигнале нет частот выше, чтоб на период меньше 5 отсчётов приходилось, выборок в фильтре и будет куча использоваться, больше 5.

Имеется в виду одновременно, для вычисления одного интервала интерполяции.
Будем считать, что выше частот нет. А если есть, интерполируем, что получим.
Go to the top of the page
 
+Quote Post
serjj
сообщение Oct 21 2016, 13:43
Сообщение #37


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата(ViKo @ Oct 21 2016, 15:05) *
Спасибо. Посмотрел, что работает. Синус восстанавливает прилично. Но этот алгоритм не соответствует требованию "просто".
А на края окно можно наложить, наверное.
Время не реальное (250 МВыб/с), но и не бесконечное. Возможно, и так получится. Нужно смотреть, во сколько уложится.
А как будет интерполироваться этим алгоритмом перепад?


Перепад чего смотря. Если амплитуды, то прекрасно, это легко проверить в том же скрипте rolleyes.gif Как и любой другой перепад.

А по сложности. Если у вас 250Msps, и вы хотите визуализировать сигнал на передискретезации, например, х10, то, наверное, это будет не потоковая визуализация, т.к. 2.5Gsps, допустим хотя бы байт на сэмпл = 20Gbps - согласитесь как-то многовато. Значит, скорее это будет какая-то произвольная выборка из данных АЦП, которая будет интерполироваться в N раз (в 10, например), выводиться на экран, далее берётся другая выборка и так по кругу. Правильно я понимаю?

Тогда предложенное решение несложное, т.к. требует использования непотокового БПФ/ОБПФ, которое реализуется "малой кровью" как в аппаратуре так и на компьютере.

ЗЫ: по поводу краёв, окно будет нужно, если вы хотите строить спектр этого сигнала. Для корректной визуализации проще выбрать только те значения, которые подходят. Например, с помощью ОБПФ было получено 8192 точки. Можно вывести на экран 8000 точек, выкинув первые и последние 96.

ЗЗЫ: по поводу "приличности восстановления синуса". Метод, основанный на БПФ-ОБПФ - лучший линейный метод, т.к. он использует все доступные точки исходного сигнала для получения промежуточных значений. В этом плане он будет оптимальнее любого фильтра, т.к. фильтр будет просто напросто короче. С другой стороны нелинейные методы могут дать схожий результат по значительно меньшему количеству точек. Но тут вы рискуете получить всевозможные артефакты, как то: ложные экстремумы между точками, биения - это нелинейные искажения, которые присущи данным методам.

Сообщение отредактировал serjj - Oct 21 2016, 13:54
Go to the top of the page
 
+Quote Post
ViKo
сообщение Oct 21 2016, 13:57
Сообщение #38


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

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



Цитата(serjj @ Oct 21 2016, 16:43) *
Значит, скорее это будет какая-то произвольная выборка из данных АЦП, которая будет интерполироваться в N раз (в 10, например), выводиться на экран, далее берётся другая выборка и так по кругу. Правильно я понимаю?
Тогда предложенное решение несложное, т.к. требует использования непотокового БПФ/ОБПФ, которое реализуется "малой кровью" как в аппаратуре так и на компьютере.
ЗЫ: по поводу краёв, окно будет нужно, если вы хотите строить спектр этого сигнала. Для корректной визуализации проще выбрать только те значения, которые подходят. Например, с помощью ОБПФ было получено 8192 точки. Можно вывести на экран 8000 точек, выкинув первые и последние 96.

Правильно. Не только в 10 раз. В много больше. Не по кругу, а от начала до конца. Фрагмент.
Выбрасывать выборки не хочу. Интерполирую, дополнив края чем-нибудь.
Метод БПФ-ОБПФ восстанавливает синус той же амплитуды. Это радует. А полиномиальные ломают, до амплитудных значений не дотягивают. Я так вижу в МАТЛАБе.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Nov 1 2016, 15:20
Сообщение #39





Guests






Цитата(ViKo @ Oct 21 2016, 05:38) *
Вычислить косинус посложнее полинома 7 степени будет. С чего вдруг стало проще?

Потому, что, "как известно", удовлетворительной считается аппроксимация кривых для целей визуализации с СКП не более 3%.
Посчитать косинус с такой погрешностью это точно менее затратно, чем полином 7 степени.
Go to the top of the page
 
+Quote Post
dimka76
сообщение Nov 1 2016, 18:14
Сообщение #40


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



А чем интерполяция sin(x)/x не подходит ?
Наглядные примеры разных методов для разных сигналов.


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
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 Текстовая версия Сейчас: 20th August 2025 - 08:23
Рейтинг@Mail.ru


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