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

    

Цифровой приёмник AD6652

Всем доброго время суток. Встала такая задача реализовать на цифровом приёмнике фильтр с частотой дискритизации сигнала на выходе 480кГц, полосой пропускания 7кГц, неравномерность в полосе пропускания 3дБ, неравномерность в полосе заграждения 50дБ и коэффициентом прямоугольности фильтра 1,3. Я выбрал AD6652 и попытался смоделировать необходимый фильтр в программе Filter Design, которую скачал с сайта analog devices для данного цифрового приёмника. Задав необходимые параметры фильтра программа выдаёт переменные для цифрового приёмника и полученную АЧХ. Но встала проблема. Полученная АЧХ никак не удовлетворяет заданной. Методом научного тыка и подгона параметров фильтра задаваемые в программе удаётся влезть по некоторым параметрам АЧХ, но не во все, а именно в полосу пропускания. Прошу совета если кто с этим сталкивался. Неужто фильтр проектируется методом подгона или есть другой способ, и что значит галочка в программе LHB Enabled. Заранее всем спасибо.

P.S. Спрашиваю здесь первый раз, точно не знаю в какой раздел, написал сюда.

 

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


Ссылка на сообщение
Поделиться на другие сайты
Неужто фильтр проектируется методом подгона или есть другой способ..

Есть и другой способ: MATLAB >> fdatool.

 

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


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

В матлабе можно рассчитать параметры всех тех же фильтров, что есть в AD6652 и если освоите проектирование фильтров в MATLAB, IMHO, будет намного удобнее. Программу под AD6652 не пользовал, но под AD6620 была до ужаса кривая. Я прикрепил два похожих документа по теме проектирования фильтров в MATLAB, один более полный, второй поменьше, но в нем есть пример проектирования фильтров для GC4016 (цифровой приемник от Texas Instruments)

LHB - бит регистр, который включает/отключает интерполирующий halfband фильтр и каскад чередования (чередования чего - я не знаю, с AD6652 Не работал, а времени разбираться сейчас нет, работа горит). В даташите про него написано на странице на странице 64, так что как говорится RTFM :)

PS: Методика проектирования многокаскадных интерполяторов/дециматоров описана где-то в литературено по стандартной причине нехватки времени у меня так и не дошли руки с ней хорошо разобраться. Конкретные источники не помню, но можно поискать книги по ключевым словам Multirate signal processing.

digfilt.pdf

firdesign.pdf

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


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

Есть и другой способ: MATLAB >> fdatool.

Вариант, но fdatool не умеет CIC фильтрв реализовывать

 

hobgoblin, спасибо за развёрнутый ответ и инфу, обязательно почитаю.

LHB - регистр, который включает/отключает интерполирующий halfband фильтр и каскад чередования

как я понял это включение КИХ фильтра на выходе CIC, так?

 

 

И ещё вопросик, может кто исходя из личного опыта подскажет, а не слишком ли крутые параметры фильтра для данного цифрового приёмника. Стал смотреть в сторону ПЛИС и реализовать там БИХ фильтр. MATLAB сказал что 28 порядок нужен, не такой уж и большой.

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

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


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

Если в DDC несколько ступеней CIC и несколько ступеней FIR как в AD6652-AD6655 то второй метод с Матлабом как-то не очень оптимален...

Не знаю как с качеством реализации, но AD FilterDesign делает не только расчет отдельных фильтров, но и перебор распределённых параметров децимации, потом предлагает выбрать юзеру что-то наиболее адекватное. Можно попробовать взять полученые фильтры и параметры в качестве начального приближения и пытаться их улучшить в Матлабе зафиксировав структуру и меняя за раз только один FIR фильтр.

 

Есть ещё третий способ - программа Multirate Filter Design от MDS - специально предназначеная для расчета оптимальных каскодных мультирейт фильтров. Но и она не позволит учесть все варианты структур. Там только один комб на входе, один полуполосный фильтр на выходе и несколько FIR.

 

Я работал с AD6654 и методом тыка нашел в FilterDesign то что меня устроило. Общее ощущение такое, что в FilterDesign нельзя завышать коэффициент децимации выше возможностей схемы (его нельзя завышать не только в этой программе выше возможностей схемы, но и по жизни).

В любом случае то что даёт FilterDesign можно рассматривать как начальное приближение.

 

как я понял это включение КИХ фильтра на выходе CIC, так?

 

Нет это полуполосный фильтр (low half band) для последующей качественной децимации/интерполяции на 2. Он не решает

 

Вариант, но fdatool не умеет CIC фильтрв реализовывать

 

Вообще-то он умеет, но только ограниченую одну ступень и не очень большого порядка. Но там есть вариант не только полосового фильтра.

Там есть вариант произвольного частотного фильтра по точкам Ремезом. Вы может синки от любых ступеней СIС просчитать заранее и по точкам заложить в FDATOOL обратную функцию как предискажения. Громоздко но вариант. Если не ошибаюсь, там можно даже не по точкам, а формулой задать предыскажения...

Другое дело что fdatool не знает вообще, как оптимально распределить децимацию между двумя (и более) FIR)) Их там 2 кажется в AD6652

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


Ссылка на сообщение
Поделиться на другие сайты
Нет это полуполосный фильтр (low half band) для последующей качественной децимации/интерполяции на 2. Он не решает

ясень, спасиб

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


Ссылка на сообщение
Поделиться на другие сайты
И ещё вопросик, может кто исходя из личного опыта подскажет, а не слишком ли крутые параметры фильтра для данного цифрового приёмника. Стал смотреть в сторону ПЛИС и реализовать там БИХ фильтр. MATLAB сказал что 28 порядок нужен, не такой уж и большой.

Посмотрите в MATLAB-е разные варианты из нескольких каскадов, может быть Вам хватит ПЛИС дя получения нужных характеристик.

28-ой порядок для БИХ это много, тем более они чувствительнее к проблемам округления чем КИХ-фильтры.

И еще кстати вопрос: зачем Вам такая высокая частота дискретизации на выходе при такой малой полосе пропускания.

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


Ссылка на сообщение
Поделиться на другие сайты
Их там 2 кажется в AD6652

я нашёл только один 256 порядка

 

И еще кстати вопрос: зачем Вам такая высокая частота дискретизации на выходе при такой малой полосе пропускания.

Точно не могу сказать, я делаю только часть общей системы. В ТЗ написано чтоб на выходе была такая частота дискритизации

 

28-ой порядок для БИХ это много

Если делать на ПЛИС КИХ фильтр, то для фильтра с данными характеристиками нужен 960 порядок

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

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


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

 

Тогда проще (у меня их было 2 но по 128). можно использовать fdatool задавая ему характеристику СIС фильтра как предискажение

Он называется там Arbitrary Magnitude если несколько CIC-фильтров. Если один CIC-фильтр то для него есть упрощенный вариант Inverse Sinc Lowpass

 

Только не факт что нужные по ТЗ параметры будут достигнуты - чудес не бывает. В любом случае методика будет одинаковая - обратные искажения

синка от СIС компенсировать в фильтре полосовым эквирипловым Ремезом. Отличия могут быть только в богатстве задания параметров.

 

Как вариант приделайте ещё один FIR-фильтр на выходе на FPGA))

 

Если делать на ПЛИС КИХ фильтр, то для фильтра с данными характеристиками нужен 960 порядок

 

На FPGA всё равно выгодней мультирейт каскодная схема как в DDC, а не тупо лепить 1 фильтр и 1 децимацию.

А что у Вас ТЗ не накладывает никаких ограничений на фазовые характеристики? Часто с этих позиций IIR неприемлем.

 

Если нет - как вариант приделайте IIR низкого порядка на ПЛИС к AD6652))

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


Ссылка на сообщение
Поделиться на другие сайты
можно использовать fdatool задавая ему характеристику СIС фильтра как предискажение

Подскажите пожалуйста где это задать, google не помог

 

Вобщем щас думаю.

Для фильтрации необходим ЦАП DDC CIC и FIR. Всё это имеется в цифровом приёмнике, но необходимо будет также обеспечить его управление загружая в него параметры(необходимо обеспечить 3 полосы, которые можно менять). Значит надо ещё ПЛИС ставить для управления, в которую можно воткнуть и дополнительный FIR как писал fontp.

Другой способ реализовать DDC CIC и IIR на ПЛИС, но необходимо будет воткнуть внешний АЦП на входе.

Опыта мало, надо прикинуть чё да как. Ещё и с конструкторской и экономической точки зрения рассмотреть, как разводить, сколько стоит, как паять.

Цифровой приёмник чем ещё не нравится так это корпус BGA, с пайкой проблемы.

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


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

А какая у Вас планируется частота дискретизации на входе AD6652? И какие полосы еще нужно обеспечить кроме 7 кГц.

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


Ссылка на сообщение
Поделиться на другие сайты
А какая у Вас планируется частота дискретизации на входе AD6652?

480кГц, как я писал в начале, или я не то щас говорю

 

А что у Вас ТЗ не накладывает никаких ограничений на фазовые характеристики? Часто с этих позиций IIR неприемлем.

я пока в этот вопрос не углублялся, но вроде matldb может делать фильтры с линейной AЧХ

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


Ссылка на сообщение
Поделиться на другие сайты
Подскажите пожалуйста где это задать, google не помог

 

Так Start-Toolbox-FilterDesign&Analisys tool

 

1. Если СIC только один (один sinc(af)**p) используете тип фильтра Inverse Sinc Equiripple

жмете More Options, задаете a и P

2. Если предискажений много выбирает Lowpass, выбираете Arbitrary Magnitude и вписывете формулу обратных коррекций

всех предискажений в окно Mag.Vector (если формула влезет в окно :rolleyes: )

 

Разбираться нужно, понятно, с масштабами частот и формулами. Так там есть Help

 

я пока в этот вопрос не углублялся, но вроде matldb может делать фильтры с линейной AЧХ

 

Насколько линейной? Не пробовал, но не думаю что фильтры высоких порядков очень линейны по ФЧХ

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


Ссылка на сообщение
Поделиться на другие сайты
Так Start-Toolbox-FilterDesign&Analisys tool

 

1. Если СIC только один (один sinc(af)**p) используете тип фильтра Inverse Sinc Equiripple

жмете More Options, задаете a и P

2. Если предискажений много выбирает Lowpass, выбираете Arbitrary Magnitude и вписывете формулу обратных коррекций

всех предискажений в окно Mag.Vector

 

Спасибо!

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


Ссылка на сообщение
Поделиться на другие сайты
480кГц, как я писал в начале, или я не то щас говорю

Вначале Вы написали, что это частота на выходе всего цифрового приемника. Я говорю про частоту на выходе АЦП.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация