Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Расчет inv sinc фильтра
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Вопросы системного уровня проектирования
Jools
Привет всем!

Подскажите, пожалуйста алгоритм расчета фильтра с характеристикой inverse sinc. Будет использоваться как компенсирующий для CIC.
Интересует именно алгоритм. Можно ли для этих целей приспособить Ремеза?

Заранее спасибо.
729
Цитата(Jools @ Jul 10 2009, 16:24) *
Привет всем!

Подскажите, пожалуйста алгоритм расчета фильтра с характеристикой inverse sinc. Будет использоваться как компенсирующий для CIC.
Интересует именно алгоритм. Можно ли для этих целей приспособить Ремеза?

Заранее спасибо.

Обычно делаю так:
1. Отсчеты импульсной характеристики FIRа, стоящего после CIC секции (а он, как правило, есть) пропускаю через ДПФ на число ненулевых точек в ИХ,
2. Отсчеты ДПФ (комплексные) в полосе пропускания и в переходной полосе тупо умножаю на обратный sinc,
3. Делаю обратное ДПФ.
Работает очень даже неплохо - неравномерность в полосе пропускания всего тракта (если АЧХ тракта в полосе пропускания плоская) порядка тысячных долей дБ (на грани точности измерительного ПО).
petrov
Ещё можно с помощью адаптивной обработки сигналов компенсирующий фильтр рассчитать.
des00
Цитата(Jools @ Jul 10 2009, 06:24) *
Привет всем!

Подскажите, пожалуйста алгоритм расчета фильтра с характеристикой inverse sinc. Будет использоваться как компенсирующий для CIC.
Интересует именно алгоритм. Можно ли для этих целей приспособить Ремеза?

Заранее спасибо.


ИХ CIC фильтра известна. дальше дело техники IFFT((1/FFT(cic))*RRC). На выходе отсчеты ИХ RRC фильтра с коррекцией для CIC. экономим ресурс фпга %)
hobgoblin
У альтеры ест appnote на эту тему с матлабовским примером, там они используют функцию fir2 (метод frequency sampling). Ремез тоже должен подойти. Насколько пример работоспособен, я не проверял - когда мне надо было такое сделать, я пользовал стандартный матлабовский объект mfilt с характеристикой invsinc.
729
Цитата(des00 @ Jul 11 2009, 11:36) *
ИХ CIC фильтра известна. дальше дело техники IFFT((1/FFT(cic))*RRC). На выходе отсчеты ИХ RRC фильтра с коррекцией для CIC. экономим ресурс фпга %)

Попробуйте применить Ваш алгоритм на практике для случая, когда после CIC стоит FIR с коэффициентом децимации 2 и более - сильно "поплывёт" (очень за пределы АЧХ RRC) АЧХ в полосе задержания.
Для каждого FIR (одной длины ИХ, но разных симметрий) мне приходилось вручную искать интервал отсчетов FFT(RRC), на котором нужно делать IFFT((1/FFT(cic))*RRC), а за пределами которого нужно делать только IFFT(RRC), чтобы в полосе задержания оставалось тоже подавление, что и у RRC. Почему так, разбираться не стал. Но почему именно так, а не во всей 0-Fs, интересно.
des00
Цитата(729 @ Jul 11 2009, 12:44) *
Попробуйте применить Ваш алгоритм на практике для случая, когда после CIC стоит FIR с коэффициентом децимации 2 и более - сильно "поплывёт" (очень за пределы АЧХ RRC) АЧХ в полосе задержания.


не совсем понял, зачем после CIC стоит FIR с децимацией smile.gif

Данный алгоритм я использую для расчета передающего RRC^-1 + CIC интерполятора и приемного RRC^-1 + CIC дециматора. Сильного плавания не видел, погрешность где то 0.1дБ, даже делал переменный коэфф. интерполяции/децимации когда коррекция считается на средний коэффициент, плавает тоже не сильно.

Цитата
Для каждого FIR (одной длины ИХ, но разных симметрий) мне приходилось вручную искать интервал отсчетов FFT(RRC), на котором нужно делать IFFT((1/FFT(cic))*RRC), а за пределами которого нужно делать только IFFT(RRC), чтобы в полосе задержания оставалось тоже подавление, что и у RRC. Почему так, разбираться не стал. Но почему именно так, а не во всей 0-Fs, интересно.


объясните для начала зачем после CIC стоит FIR smile.gif
Jools
Цитата(729 @ Jul 10 2009, 18:59) *
Обычно делаю так:


Спасибо!
Я тоже думал в этом направлении, но хотелось услышать практических подтверждений.
729
Цитата(des00 @ Jul 12 2009, 06:34) *
...
объясните для начала зачем после CIC стоит FIR smile.gif

В Вашем случае, возможно, удалось обойтись и без децимипующего FIR.
Но в аппаратном DDC (типа GC5016), во многих случаях (в моей практике практически всегда) подавления CIC секции при больших коэффициентах децимации просто не хватало из-за ограниченного порядка CICов. Поэтому и приходилось "додавливать" децимирующим FIRом. Для GC5016, если необходимо, могу привести конкретный пример.
des00
Цитата(729 @ Jul 13 2009, 06:52) *
В Вашем случае, возможно, удалось обойтись и без децимипующего FIR.
Но в аппаратном DDC (типа GC5016), во многих случаях (в моей практике практически всегда) подавления CIC секции при больших коэффициентах децимации просто не хватало из-за ограниченного порядка CICов. Поэтому и приходилось "додавливать" децимирующим FIRом. Для GC5016, если необходимо, могу привести конкретный пример.


понятно, я работаю с плис, потому таких проблем и не имею. т.к. сам определяю порядок и количество секций CIC smile.gif посмотрю на досуге что за зверь такой этот DDS.
Oldring
Цитата(des00 @ Jul 14 2009, 07:19) *
понятно, я работаю с плис, потому таких проблем и не имею. т.к. сам определяю порядок и количество секций CIC smile.gif


У CIC не очень высокое подавление второй полосы, так что если хочется два отсчета на символ - его одного мало.
des00
Цитата(Oldring @ Jul 21 2009, 00:50) *
У CIC не очень высокое подавление второй полосы, так что если хочется два отсчета на символ - его одного мало.


согласен целиком и полностью, при малых коэффициентах интерполяции/децимации лучше использовать FIR smile.gif
Oldring
Цитата(des00 @ Jul 22 2009, 07:07) *
согласен целиком и полностью, при малых коэффициентах интерполяции/децимации лучше использовать FIR smile.gif


При больших - тоже нередко одного CIC мало.
des00
Цитата(Oldring @ Jul 22 2009, 01:15) *
При больших - тоже нередко одного CIC мало.


я про один и не говорил, у меня обычно 4-6 каскадов стоит.
Oldring
Цитата(des00 @ Jul 22 2009, 13:27) *
я про один и не говорил, у меня обычно 4-6 каскадов стоит.


Все равно бывает дополнительно FIR нужен.
des00
Цитата(Oldring @ Jul 22 2009, 04:55) *
Все равно бывает дополнительно FIR нужен.


согласен %)
xao
Цитата(729 @ Jul 13 2009, 16:52) *
Но в аппаратном DDC (типа GC5016), во многих случаях (в моей практике практически всегда) подавления CIC секции при больших коэффициентах децимации просто не хватало из-за ограниченного порядка CICов. Поэтому и приходилось "додавливать" децимирующим FIRом. Для GC5016, если необходимо, могу привести конкретный пример.

извиняюсь за "некропостерство", но очень хотелось бы увидеть этот пример
729
Цитата(xao @ Jan 16 2013, 15:19) *
извиняюсь за "некропостерство", но очень хотелось бы увидеть этот пример

Давайте по электронной почте, ладно?
Моя: 729 собака inbox.ru.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.