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

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


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

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



Цитата(serjj @ Oct 21 2016, 11:32) *
Если реальное время не является критичным, можно использовать DFT интерполяцию. Пример:
[attachment=103678:sine_interp_test.7z]

Здесь разумеется проявляются краевые эффекты, поэтому выводить лучше значения в интервале [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 Текстовая версия Сейчас: 22nd July 2025 - 02:21
Рейтинг@Mail.ru


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