ViKo 1 21 октября, 2016 Опубликовано 21 октября, 2016 · Жалоба Если реальное время не является критичным, можно использовать DFT интерполяцию. Пример: sine_interp_test.7z Здесь разумеется проявляются краевые эффекты, поэтому выводить лучше значения в интервале [N_guard...N_dft-N_guard]. Ну это уже детали реализации. Спасибо. Посмотрел, что работает. Синус восстанавливает прилично. Но этот алгоритм не соответствует требованию "просто". А на края окно можно наложить, наверное. Время не реальное (250 МВыб/с), но и не бесконечное. Возможно, и так получится. Нужно смотреть, во сколько уложится. А как будет интерполироваться этим алгоритмом перепад? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 21 октября, 2016 Опубликовано 21 октября, 2016 · Жалоба То есть, поскольку кубическим полиномом интерполяция не блещет качеством, вы предлагаете интерполировать в 2 этапа. Что же не полиномом 5-й степени? Думаю полиномом 5-й степени больше вычислений, впрочем это от архитектуры вычислительного устройства зависит, вам виднее, я со своей FPGAшной колокольни смотрю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 21 октября, 2016 Опубликовано 21 октября, 2016 · Жалоба Вы 5 на период задали в исходной постановке. Так то на период. Выборок - куча. Можно хоть по 10-ти интерполировать. Шучу. Думаю полиномом 5-й степени больше вычислений, впрочем это от архитектуры вычислительного устройства зависит, вам виднее, я со своей FPGAшной колокольни смотрю. Понятно. Я микроконтроллером буду интерполировать. :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 21 октября, 2016 Опубликовано 21 октября, 2016 · Жалоба Так то на период. Выборок - куча. Можно хоть по 10-ти интерполировать. Я так понял, что в вашем сигнале нет частот выше, чтоб на период меньше 5 отсчётов приходилось, выборок в фильтре и будет куча использоваться, больше 5. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Den64 0 21 октября, 2016 Опубликовано 21 октября, 2016 · Жалоба Такое предлагали? Пользовался, мне понравилось. Буржуи делают для людей, очень просто и удобно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 21 октября, 2016 Опубликовано 21 октября, 2016 · Жалоба Такое предлагали? Пользовался, мне понравилось. Буржуи делают для людей, очень просто и удобно. Вещь хорошая. Но не по теме. Я так понял, что в вашем сигнале нет частот выше, чтоб на период меньше 5 отсчётов приходилось, выборок в фильтре и будет куча использоваться, больше 5. Имеется в виду одновременно, для вычисления одного интервала интерполяции. Будем считать, что выше частот нет. А если есть, интерполируем, что получим. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 21 октября, 2016 Опубликовано 21 октября, 2016 (изменено) · Жалоба Спасибо. Посмотрел, что работает. Синус восстанавливает прилично. Но этот алгоритм не соответствует требованию "просто". А на края окно можно наложить, наверное. Время не реальное (250 МВыб/с), но и не бесконечное. Возможно, и так получится. Нужно смотреть, во сколько уложится. А как будет интерполироваться этим алгоритмом перепад? Перепад чего смотря. Если амплитуды, то прекрасно, это легко проверить в том же скрипте :rolleyes: Как и любой другой перепад. А по сложности. Если у вас 250Msps, и вы хотите визуализировать сигнал на передискретезации, например, х10, то, наверное, это будет не потоковая визуализация, т.к. 2.5Gsps, допустим хотя бы байт на сэмпл = 20Gbps - согласитесь как-то многовато. Значит, скорее это будет какая-то произвольная выборка из данных АЦП, которая будет интерполироваться в N раз (в 10, например), выводиться на экран, далее берётся другая выборка и так по кругу. Правильно я понимаю? Тогда предложенное решение несложное, т.к. требует использования непотокового БПФ/ОБПФ, которое реализуется "малой кровью" как в аппаратуре так и на компьютере. ЗЫ: по поводу краёв, окно будет нужно, если вы хотите строить спектр этого сигнала. Для корректной визуализации проще выбрать только те значения, которые подходят. Например, с помощью ОБПФ было получено 8192 точки. Можно вывести на экран 8000 точек, выкинув первые и последние 96. ЗЗЫ: по поводу "приличности восстановления синуса". Метод, основанный на БПФ-ОБПФ - лучший линейный метод, т.к. он использует все доступные точки исходного сигнала для получения промежуточных значений. В этом плане он будет оптимальнее любого фильтра, т.к. фильтр будет просто напросто короче. С другой стороны нелинейные методы могут дать схожий результат по значительно меньшему количеству точек. Но тут вы рискуете получить всевозможные артефакты, как то: ложные экстремумы между точками, биения - это нелинейные искажения, которые присущи данным методам. Изменено 21 октября, 2016 пользователем serjj Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 21 октября, 2016 Опубликовано 21 октября, 2016 · Жалоба Значит, скорее это будет какая-то произвольная выборка из данных АЦП, которая будет интерполироваться в N раз (в 10, например), выводиться на экран, далее берётся другая выборка и так по кругу. Правильно я понимаю? Тогда предложенное решение несложное, т.к. требует использования непотокового БПФ/ОБПФ, которое реализуется "малой кровью" как в аппаратуре так и на компьютере. ЗЫ: по поводу краёв, окно будет нужно, если вы хотите строить спектр этого сигнала. Для корректной визуализации проще выбрать только те значения, которые подходят. Например, с помощью ОБПФ было получено 8192 точки. Можно вывести на экран 8000 точек, выкинув первые и последние 96. Правильно. Не только в 10 раз. В много больше. Не по кругу, а от начала до конца. Фрагмент. Выбрасывать выборки не хочу. Интерполирую, дополнив края чем-нибудь. Метод БПФ-ОБПФ восстанавливает синус той же амплитуды. Это радует. А полиномиальные ломают, до амплитудных значений не дотягивают. Я так вижу в МАТЛАБе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость TSerg 1 ноября, 2016 Опубликовано 1 ноября, 2016 · Жалоба Вычислить косинус посложнее полинома 7 степени будет. С чего вдруг стало проще? Потому, что, "как известно", удовлетворительной считается аппроксимация кривых для целей визуализации с СКП не более 3%. Посчитать косинус с такой погрешностью это точно менее затратно, чем полином 7 степени. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 57 1 ноября, 2016 Опубликовано 1 ноября, 2016 · Жалоба А чем интерполяция sin(x)/x не подходит ? Наглядные примеры разных методов для разных сигналов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться