Перейти к содержанию
    

Интерполировать синус по 5 точкам на период

Если реальное время не является критичным, можно использовать DFT интерполяцию. Пример:

sine_interp_test.7z

 

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

Спасибо. Посмотрел, что работает. Синус восстанавливает прилично. Но этот алгоритм не соответствует требованию "просто".

А на края окно можно наложить, наверное.

Время не реальное (250 МВыб/с), но и не бесконечное. Возможно, и так получится. Нужно смотреть, во сколько уложится.

А как будет интерполироваться этим алгоритмом перепад?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То есть, поскольку кубическим полиномом интерполяция не блещет качеством, вы предлагаете интерполировать в 2 этапа. Что же не полиномом 5-й степени?

 

Думаю полиномом 5-й степени больше вычислений, впрочем это от архитектуры вычислительного устройства зависит, вам виднее, я со своей FPGAшной колокольни смотрю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

Думаю полиномом 5-й степени больше вычислений, впрочем это от архитектуры вычислительного устройства зависит, вам виднее, я со своей FPGAшной колокольни смотрю.

Понятно. Я микроконтроллером буду интерполировать. :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Я так понял, что в вашем сигнале нет частот выше, чтоб на период меньше 5 отсчётов приходилось, выборок в фильтре и будет куча использоваться, больше 5.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

Я так понял, что в вашем сигнале нет частот выше, чтоб на период меньше 5 отсчётов приходилось, выборок в фильтре и будет куча использоваться, больше 5.

Имеется в виду одновременно, для вычисления одного интервала интерполяции.

Будем считать, что выше частот нет. А если есть, интерполируем, что получим.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Посмотрел, что работает. Синус восстанавливает прилично. Но этот алгоритм не соответствует требованию "просто".

А на края окно можно наложить, наверное.

Время не реальное (250 МВыб/с), но и не бесконечное. Возможно, и так получится. Нужно смотреть, во сколько уложится.

А как будет интерполироваться этим алгоритмом перепад?

 

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

 

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

 

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

 

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

 

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

Изменено пользователем serjj

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Значит, скорее это будет какая-то произвольная выборка из данных АЦП, которая будет интерполироваться в N раз (в 10, например), выводиться на экран, далее берётся другая выборка и так по кругу. Правильно я понимаю?

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

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

Правильно. Не только в 10 раз. В много больше. Не по кругу, а от начала до конца. Фрагмент.

Выбрасывать выборки не хочу. Интерполирую, дополнив края чем-нибудь.

Метод БПФ-ОБПФ восстанавливает синус той же амплитуды. Это радует. А полиномиальные ломают, до амплитудных значений не дотягивают. Я так вижу в МАТЛАБе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость TSerg
Вычислить косинус посложнее полинома 7 степени будет. С чего вдруг стало проще?

Потому, что, "как известно", удовлетворительной считается аппроксимация кривых для целей визуализации с СКП не более 3%.

Посчитать косинус с такой погрешностью это точно менее затратно, чем полином 7 степени.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А чем интерполяция sin(x)/x не подходит ?

Наглядные примеры разных методов для разных сигналов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...