Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Линейность дробного ресамплинга
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
des00
Задумал я сделать модулятор, в котором ЦАП работает на частоте не целочисленно кратной символьной. В принципе ничего сложно, спектр сигнала сформирован на частоте 16sps, что при скруглении 0.25 соответствует нормированной крайней частоте спектра ~0.16, по идее этого с запасом хватает что бы уложиться в диапазон линейности интерполятора лагранжа 3 го порядка. Но в представленной модельке видны большие искажения спектра сигнала.

Уважаемые гуру ресамплинга подскажите я правильно понимаю что нелинейность АЧХ/ФЧХ интерполятора на высокой частоте работает как смеситель, который рождает гармоники более высоких частот, которые и видно в представленной модели? В таком случае интерполятор 3 го порядка не вариант? нужно либо уходить на интерполятор более высокого порядка (например 5 го как в модели) либо сужением спектра сигнала в 2 раза.
Спасибо.
petrov
Да очевидно что фильтр с переменными параметрами это уже нелинейщина.
des00
Цитата(petrov @ Jun 24 2010, 15:14) *
Да очевидно что фильтр с переменными параметрами это уже нелинейщина.

в таком случае при использовании sinc интерполяторов или FIR интерполяторов этот эффект также будет проявляться? Несмотря на то, что они более широкополосные чем лагранж? Те же Provigent использует в своих чипах такую технику, как они тогда борятся с внеполосными излучениями вызванными нелинейностью?
petrov
В принципе любые интерполяторы-дециматоры это нелинейные устройства, борются большими порядками.
des00
Цитата(petrov @ Jun 25 2010, 00:49) *
В принципе любые интерполяторы-дециматоры это нелинейные устройства, борются большими порядками.

понятно, рассчитал модифицированный лагранж 4 го порядка на тот же диапазон mu[-1 : 0] увел нелинейность ниже 80 ти дБ, мне этого хватит. Всего 1500 плиток, зато сколько удовольствия %)

ЗЫ. Для такой интерполяции разрядность mu требуется много больше чем для интерполятора в демодуляторе, в передатчике желательно не менее 12 бит, а в приемнике мне 7ми бит хватало %)
Oldring
Цитата(petrov @ Jun 25 2010, 09:49) *
В принципе любые интерполяторы-дециматоры это нелинейные устройства, борются большими порядками.


Нифига.
sinc-интерполятор линеен.
(если я правильно понял о чем речь) smile.gif

Для нелинейности нужно, чтобы в формулы входили произведения или иные нелинейные функции отсчетов преобразуемого сигнала. Просто произвольный момент времени выборки не порождает нелинейность.
petrov
Нелинейны сами операции изменения частоты дискретизации, вот и имеем например наложение спектров при децимации, т. е. появление новых спектральных составляющих которых не было в исходном сигнале.
Oldring
Цитата(petrov @ Jun 25 2010, 20:10) *
Нелинейны сами операции изменения частоты дискретизации, вот и имеем например наложение спектров при децимации, т. е. появление новых спектральных составляющих которых не было в исходном сигнале.


И тем не менее.
F(x+y) = F(x) + F(y)
F(a*x) = a * F(x)

smile.gif

Для сохранения спектра нужна еще стационарность, очевидно.
petrov
Цитата(Oldring @ Jun 25 2010, 20:28) *
И тем не менее.
F(x+y) = F(x) + F(y)
F(a*x) = a * F(x)

smile.gif

Для сохранения спектра нужна еще стационарность, очевидно.


Да похоже я ошибался.
des00
Цитата(Oldring @ Jun 25 2010, 09:24) *
Просто произвольный момент времени выборки не порождает нелинейность.

тогда как объяснить наблюдаемый в модели эффект ?
Oldring
Цитата(des00 @ Jun 26 2010, 08:25) *
тогда как объяснить наблюдаемый в модели эффект ?


К сожалению, эффекты модели я не наблюдаю - не запускается.
Но в модели у вас ведь Фарроу? Про Фарроу я ничего не писал.
des00
Цитата(Oldring @ Jun 26 2010, 00:56) *
К сожалению, эффекты модели я не наблюдаю - не запускается.

я думал я один сижу на древнем матлабе 2007а, вот моделька для R14 матлаба. В модели все блоки стандартные, ИМХО проблем быть не должно %)
Цитата
Но в модели у вас ведь Фарроу? Про Фарроу я ничего не писал.

Насколько я понял литературу Фарроу это реализация интерполятора, я использую интерполятор построенный на многочленах Лагранжа.
fontp
QUOTE (des00 @ Jun 26 2010, 13:54) *
Насколько я понял литературу Фарроу это реализация интерполятора, я использую интерполятор построенный на многочленах Лагранжа.


Всё верно, только Oldring про интерполятор Лагранжа тоже не писал. Его замечание относилось к идеальному sinc интерполятору. Это полиномиальные интерполяторы нелинейны.
Но Вам же не хочется реализовать sinc-интерполятор))
des00
собрал модельку с управляемым генератором синуса, если поиграться с частотой синуса и кратностью преобразования частоты, видно :
1. чем выше частота синуса, тем больше продуктов нелинейности в выходном спектре
2. чем больше значений дробной задержки используется, тем так же больше продуктов нелинейности (например посмотрите вместо 14/15 кратности 1, 1/2, 1/4)
у меня только одно объяснение, не смотря на то, что при фиксированном mu интерполятор элемент линейный, при разных mu коэффициент передачи изменяется (см рис) поэтому и возникает сия нелинейность на спектре

Цитата(fontp @ Jun 26 2010, 05:49) *
Но Вам же не хочется реализовать sinc-интерполятор))

почему не хочется то? просто под рукой был готовый RTL ный 3 го порядка, он и пошел в дело. Потом уже увидев сей эффект на понарамнике, полез более подробно смотреть. Не подскажите литературу по sinc интерполяторам ?
fontp
QUOTE (des00 @ Jun 26 2010, 14:55) *
почему не хочется то? просто под рукой был готовый RTL ный 3 го порядка, он и пошел в дело. Потом уже увидев сей эффект на понарамнике, полез более подробно смотреть. Не подскажите литературу по sinc интерполяторам ?


Да прямо по теореме Котельникова интерполируйте истинным синком
smile.gif
Под аппартными "синк-интерполяторами" обычно понимают такую-же кусочно полиномиальную интерполяцию, только изображающую из себя синк. Такие же как интерполятор Лагранжа сплайны, только более длинные. Там тоже будут продукты? но меньше.
Литературы по общей теории интерполяторов не подскажу, но практический вариант улучшения интерполятора Лагранжа я когда-то давно помещал в форум - там приделывают хвосты к Фарроу и получается несколько лучше
http://electronix.ru/forum/index.php?act=A...st&id=31882
Oldring
Цитата(des00 @ Jun 26 2010, 13:54) *
я думал я один сижу на древнем матлабе 2007а, вот моделька для R14 матлаба. В модели все блоки стандартные, ИМХО проблем быть не должно %)


Нет, не запускается потому что Матлаб похоже слетел sad.gif

Цитата(des00 @ Jun 26 2010, 14:55) *
почему не хочется то? просто под рукой был готовый RTL ный 3 го порядка, он и пошел в дело. Потом уже увидев сей эффект на понарамнике, полез более подробно смотреть. Не подскажите литературу по sinc интерполяторам ?



Вставляете внутрь нули и фильтруете ФНЧ. Потом выбираете нужные отсчеты. Если частотная характеристика ФНЧ прямоугольная - получите sinc. Лечше делать непрямоугольную но достаточную чтобы обрезать алиасы.
des00
Цитата(Oldring @ Jun 26 2010, 06:16) *
Нет, не запускается потому что Матлаб похоже слетел sad.gif

Вот скрин эффекта на Scope2 выведен спектр модулятора без ресамплинга, хвост справа это не до давленный циком спектр, на двух других Scope спектр на выходе интерполяторов 3 го и 4 го порядков, на интерполяторах осуществляется upsample со скоростью 15/14

Цитата(Oldring @ Jun 26 2010, 06:21) *
Вставляете внутрь нули и фильтруете ФНЧ.

хмм, может быть ошибаюсь, но это же целочисленная интерполяция? а мне нужна дробная, с коэффициентами 14/15, 7/15, 7/30 и т.д.


Цитата(fontp @ Jun 26 2010, 05:57) *
но практический вариант улучшения интерполятора Лагранжа я когда-то давно помещал в форум - там приделывают хвосты к Фарроу и получается несколько лучше
http://electronix.ru/forum/index.php?act=A...st&id=31882

пробывал я этот интерполятор использовать для дробного ресамплинга, при upsample 15/14 качество хуже чем у лагранжа 3 го порядка. Хотя в приемнике 4sps качество работы этого интерполятора лучше. Сей эффект я пока не знаю как объяснить %(
fontp
QUOTE (des00 @ Jun 26 2010, 15:27) *
хмм, может быть ошибаюсь, но это же целочисленная интерполяция? а мне нужна дробная, с коэффициентами 14/15, 7/15, 7/30 и т.д.


для дробного фиксированого ресемплинга полифазные фильтры и используются. Другое дело если mu=0.85745233....да ещё и меняется. Фиксированый ресемблинг делается полифазными фильтрами с аудио качеством
Rational Sample Rate Conversion EE-183
Особенно изощренно реализовать фильтры многоступенчатыми
Multistage Design
Oldring
Цитата(des00 @ Jun 26 2010, 15:27) *
хмм, может быть ошибаюсь, но это же целочисленная интерполяция? а мне нужна дробная, с коэффициентами 14/15, 7/15, 7/30 и т.д.


У ваших рациональных дробей общий числитель - 14. Вставляете по 13 нулей, фильтруете и берете, например, каждый 30-й отсчет результата. Получаете 14/30 = 7/15. Умножения на нули как и неиспользуемые выходные отсчеты можно не вычислять. smile.gif
des00
Цитата(fontp @ Jun 26 2010, 05:36) *
для дробного фиксированого ресеплинга полифазные фильтры и используются. Другое дело если mu=0.85745233....да ещё и меняется.

В моем случае полифазные фильтры слишком дорогое удовольствие и я немного скрыл задачу, сам передающий NCO петлюется к приходящему потоку данных, со средним upsample rate 15/14. Т.е. шаги по mu не фиксированные %) За ссылки спасибо, почитаю

Цитата(Oldring @ Jun 27 2010, 01:08) *
У ваших рациональных дробей общий числитель - 14. Вставляете по 13 нулей, фильтруете и берете, например, каждый 30-й отсчет результата. Получаете 14/30 = 7/15. Умножения на нули как и неиспользуемые выходные отсчеты можно не вычислять. smile.gif

угу, вот только у меня реалтайм и частота потока, подлежащего дробному ресамплингу под 200 МГц %)
Oldring
Цитата(des00 @ Jun 27 2010, 11:29) *
угу, вот только у меня реалтайм и частота потока, подлежащего дробному ресамплингу под 200 МГц %)



Но ведь у вас частота в ходе ресемплинга понижается? Так что не существенно сложнее обычного хорошо ковейеризуемого FIR, работающего на выходной частоте, только с переключаемыми таблицами коэффициентов. smile.gif

Оптимальное решение в любом случае вам самому выбирать. smile.gif
fontp
QUOTE (des00 @ Jun 27 2010, 11:29) *
В моем случае полифазные фильтры слишком дорогое удовольствие и я немного скрыл задачу, сам передающий NCO петлюется к приходящему потоку данных, со средним upsample rate 15/14. Т.е. шаги по mu не фиксированные %) За ссылки спасибо, почитаю
угу, вот только у меня реалтайм и частота потока, подлежащего дробному ресамплингу под 200 МГц %)


Ну, по этим двум причинам и используют полиномиальные интерполяторы. Остается увеличивать порядок и длину
Oldring
Цитата(des00 @ Jun 27 2010, 11:29) *
Т.е. шаги по mu не фиксированные %)


Тут одна нестационарность, связанная со скачками шага, может приводить к искажениям спектра.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.