Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: дробный интерполятор
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
_Anatoliy
Коллеги,такая вот задача.
Есть входной буфер размером 1024 отсчёта.Данные в него поступают блоками с произвольным размером,который лежит в диапазоне 50...1024 отсчёта.В выходной буфер интерполятор должен всегда ложить 1024 отсчета,т.е. коэффициент интерполяции (КИ) зависит от размера входного блока данных.Например,во входной буфер поступило 144 отсчёта,тогда КИ должен быть 1024 / 144 = 7,11.Для следующего блока опять вычисляется нужный КИ и т.д.Требуемый диапазон изменения КИ - 1...20,48 с точностью 0,01.Сейчас пробую просчитать фильтр Фарроу,но что-то тоскливо становится из-за требуемой точности КИ в 0,01.Может Вы что нибудь подскажете?
Дело усугубляется ещё широкой полосой входного сигнала 0,05...0,95 найквистаsad.gif
bahurin
Цитата(_Anatoliy @ Sep 30 2009, 12:15) *
Коллеги,такая вот задача.
Есть входной буфер размером 1024 отсчёта.Данные в него поступают блоками с произвольным размером,который лежит в диапазоне 50...1024 отсчёта.В выходной буфер интерполятор должен всегда ложить 1024 отсчета,т.е. коэффициент интерполяции (КИ) зависит от размера входного блока данных.Например,во входной буфер поступило 144 отсчёта,тогда КИ должен быть 1024 / 144 = 7,11.Для следующего блока опять вычисляется нужный КИ и т.д.Требуемый диапазон изменения КИ - 1...20,48 с точностью 0,01.Сейчас пробую просчитать фильтр Фарроу,но что-то тоскливо становится из-за требуемой точности КИ в 0,01.Может Вы что нибудь подскажете?
Дело усугубляется ещё широкой полосой входного сигнала 0,05...0,95 найквистаsad.gif

Если задача правильно сформулирована и мной понята, то она сводится к точности пересчета времени, которая должна из N отсчетов сделать 1024. Думаю что точность по времени не проблема. У вас может возникнуть другая проблема при стыковке интерполированных буферов будут краевые искажения, поскольку справа и слева нет данных. Если это критично тогда надо мудрить с перекрытием буферов, что совсем не тривиальная задача, когда от буфера к буферу частота дискретизации меняется.
_Anatoliy
Цитата(bahurin @ Sep 30 2009, 13:01) *
Если задача правильно сформулирована и мной понята, то она сводится к точности пересчета времени, которая должна из N отсчетов сделать 1024. Думаю что точность по времени не проблема. У вас может возникнуть другая проблема при стыковке интерполированных буферов будут краевые искажения, поскольку справа и слева нет данных. Если это критично тогда надо мудрить с перекрытием буферов, что совсем не тривиальная задача, когда от буфера к буферу частота дискретизации меняется.


Спасибо.Забыл сказать что блоки данных никак между собой не связаны и после интерполяции сшиваться не будут. А к точности по времени я чуть позже вернусь.Ещё проблема обеспечить нужную полосу.На графике АЧХ интерполятора третьего порядка.
_Anatoliy
Цитата(_Anatoliy @ Sep 30 2009, 14:32) *
Спасибо.Забыл сказать что блоки данных никак между собой не связаны и после интерполяции сшиваться не будут. А к точности по времени я чуть позже вернусь.Ещё проблема обеспечить нужную полосу.На графике АЧХ интерполятора третьего порядка.


Похоже с точностью по времени всё нормально,нашёл ошибку в своих вычислениях.
bahurin
Цитата(_Anatoliy @ Sep 30 2009, 16:32) *
Спасибо.Забыл сказать что блоки данных никак между собой не связаны и после интерполяции сшиваться не будут. А к точности по времени я чуть позже вернусь.Ещё проблема обеспечить нужную полосу.На графике АЧХ интерполятора третьего порядка.


Что то какие-то странные АЧХ. Это как такие получились?
MKS
Например как в скриптах из этого сообщения
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.