реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Цифровой приёмник AD6652
cerg19
сообщение Aug 4 2010, 05:33
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 166
Регистрация: 12-05-09
Из: Нижний Новгород
Пользователь №: 48 978



Всем доброго время суток. Встала такая задача реализовать на цифровом приёмнике фильтр с частотой дискритизации сигнала на выходе 480кГц, полосой пропускания 7кГц, неравномерность в полосе пропускания 3дБ, неравномерность в полосе заграждения 50дБ и коэффициентом прямоугольности фильтра 1,3. Я выбрал AD6652 и попытался смоделировать необходимый фильтр в программе Filter Design, которую скачал с сайта analog devices для данного цифрового приёмника. Задав необходимые параметры фильтра программа выдаёт переменные для цифрового приёмника и полученную АЧХ. Но встала проблема. Полученная АЧХ никак не удовлетворяет заданной. Методом научного тыка и подгона параметров фильтра задаваемые в программе удаётся влезть по некоторым параметрам АЧХ, но не во все, а именно в полосу пропускания. Прошу совета если кто с этим сталкивался. Неужто фильтр проектируется методом подгона или есть другой способ, и что значит галочка в программе LHB Enabled. Заранее всем спасибо.
P.S. Спрашиваю здесь первый раз, точно не знаю в какой раздел, написал сюда.
Go to the top of the page
 
+Quote Post
blackfin
сообщение Aug 4 2010, 06:07
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 738
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(cerg19 @ Aug 4 2010, 09:33) *
Неужто фильтр проектируется методом подгона или есть другой способ..

Есть и другой способ: MATLAB >> fdatool.
Go to the top of the page
 
+Quote Post
hobgoblin
сообщение Aug 4 2010, 06:26
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 202
Регистрация: 2-10-06
Из: Петербург
Пользователь №: 20 881



В матлабе можно рассчитать параметры всех тех же фильтров, что есть в AD6652 и если освоите проектирование фильтров в MATLAB, IMHO, будет намного удобнее. Программу под AD6652 не пользовал, но под AD6620 была до ужаса кривая. Я прикрепил два похожих документа по теме проектирования фильтров в MATLAB, один более полный, второй поменьше, но в нем есть пример проектирования фильтров для GC4016 (цифровой приемник от Texas Instruments)
LHB - бит регистр, который включает/отключает интерполирующий halfband фильтр и каскад чередования (чередования чего - я не знаю, с AD6652 Не работал, а времени разбираться сейчас нет, работа горит). В даташите про него написано на странице на странице 64, так что как говорится RTFM smile.gif
PS: Методика проектирования многокаскадных интерполяторов/дециматоров описана где-то в литературено по стандартной причине нехватки времени у меня так и не дошли руки с ней хорошо разобраться. Конкретные источники не помню, но можно поискать книги по ключевым словам Multirate signal processing.
Прикрепленные файлы
Прикрепленный файл  digfilt.pdf ( 3.6 мегабайт ) Кол-во скачиваний: 530
Прикрепленный файл  firdesign.pdf ( 1.08 мегабайт ) Кол-во скачиваний: 96
 
Go to the top of the page
 
+Quote Post
cerg19
сообщение Aug 4 2010, 06:59
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 166
Регистрация: 12-05-09
Из: Нижний Новгород
Пользователь №: 48 978



    Цитата(blackfin @ Aug 4 2010, 10:07) *
    Есть и другой способ: MATLAB >> fdatool.

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

    hobgoblin, спасибо за развёрнутый ответ и инфу, обязательно почитаю.
    Цитата(hobgoblin @ Aug 4 2010, 10:27) *
    LHB - регистр, который включает/отключает интерполирующий halfband фильтр и каскад чередования

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


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

    Сообщение отредактировал cerg19 - Aug 4 2010, 07:03
    Go to the top of the page
     
    +Quote Post
    fontp
    сообщение Aug 4 2010, 07:02
    Сообщение #5


    Эксперт
    *****

    Группа: Свой
    Сообщений: 1 465
    Регистрация: 25-06-04
    Пользователь №: 183



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

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

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

    QUOTE (cerg19 @ Aug 4 2010, 10:59) *
    как я понял это включение КИХ фильтра на выходе CIC, так?


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

    QUOTE (cerg19 @ Aug 4 2010, 10:59) *
    Вариант, но fdatool не умеет CIC фильтрв реализовывать


    Вообще-то он умеет, но только ограниченую одну ступень и не очень большого порядка. Но там есть вариант не только полосового фильтра.
    Там есть вариант произвольного частотного фильтра по точкам Ремезом. Вы может синки от любых ступеней СIС просчитать заранее и по точкам заложить в FDATOOL обратную функцию как предискажения. Громоздко но вариант. Если не ошибаюсь, там можно даже не по точкам, а формулой задать предыскажения...
    Другое дело что fdatool не знает вообще, как оптимально распределить децимацию между двумя (и более) FIR)) Их там 2 кажется в AD6652
    Go to the top of the page
     
    +Quote Post
    cerg19
    сообщение Aug 4 2010, 07:15
    Сообщение #6


    Частый гость
    **

    Группа: Свой
    Сообщений: 166
    Регистрация: 12-05-09
    Из: Нижний Новгород
    Пользователь №: 48 978



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

    ясень, спасиб
    Go to the top of the page
     
    +Quote Post
    hobgoblin
    сообщение Aug 4 2010, 07:53
    Сообщение #7


    Местный
    ***

    Группа: Свой
    Сообщений: 202
    Регистрация: 2-10-06
    Из: Петербург
    Пользователь №: 20 881



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

    Посмотрите в MATLAB-е разные варианты из нескольких каскадов, может быть Вам хватит ПЛИС дя получения нужных характеристик.
    28-ой порядок для БИХ это много, тем более они чувствительнее к проблемам округления чем КИХ-фильтры.
    И еще кстати вопрос: зачем Вам такая высокая частота дискретизации на выходе при такой малой полосе пропускания.
    Go to the top of the page
     
    +Quote Post
    cerg19
    сообщение Aug 4 2010, 08:23
    Сообщение #8


    Частый гость
    **

    Группа: Свой
    Сообщений: 166
    Регистрация: 12-05-09
    Из: Нижний Новгород
    Пользователь №: 48 978



    Цитата
    Их там 2 кажется в AD6652

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

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

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

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

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

    Сообщение отредактировал cerg19 - Aug 4 2010, 08:26
    Go to the top of the page
     
    +Quote Post
    fontp
    сообщение Aug 4 2010, 08:46
    Сообщение #9


    Эксперт
    *****

    Группа: Свой
    Сообщений: 1 465
    Регистрация: 25-06-04
    Пользователь №: 183



    QUOTE (cerg19 @ Aug 4 2010, 12:23) *
    я нашёл только один 256 порядка


    Тогда проще (у меня их было 2 но по 128). можно использовать fdatool задавая ему характеристику СIС фильтра как предискажение
    Он называется там Arbitrary Magnitude если несколько CIC-фильтров. Если один CIC-фильтр то для него есть упрощенный вариант Inverse Sinc Lowpass

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

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

    QUOTE (cerg19 @ Aug 4 2010, 12:23) *
    Если делать на ПЛИС КИХ фильтр, то для фильтра с данными характеристиками нужен 960 порядок


    На FPGA всё равно выгодней мультирейт каскодная схема как в DDC, а не тупо лепить 1 фильтр и 1 децимацию.
    А что у Вас ТЗ не накладывает никаких ограничений на фазовые характеристики? Часто с этих позиций IIR неприемлем.

    Если нет - как вариант приделайте IIR низкого порядка на ПЛИС к AD6652))
    Go to the top of the page
     
    +Quote Post
    cerg19
    сообщение Aug 4 2010, 09:05
    Сообщение #10


    Частый гость
    **

    Группа: Свой
    Сообщений: 166
    Регистрация: 12-05-09
    Из: Нижний Новгород
    Пользователь №: 48 978



    Цитата
    можно использовать fdatool задавая ему характеристику СIС фильтра как предискажение

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

    Вобщем щас думаю.
    Для фильтрации необходим ЦАП DDC CIC и FIR. Всё это имеется в цифровом приёмнике, но необходимо будет также обеспечить его управление загружая в него параметры(необходимо обеспечить 3 полосы, которые можно менять). Значит надо ещё ПЛИС ставить для управления, в которую можно воткнуть и дополнительный FIR как писал fontp.
    Другой способ реализовать DDC CIC и IIR на ПЛИС, но необходимо будет воткнуть внешний АЦП на входе.
    Опыта мало, надо прикинуть чё да как. Ещё и с конструкторской и экономической точки зрения рассмотреть, как разводить, сколько стоит, как паять.
    Цифровой приёмник чем ещё не нравится так это корпус BGA, с пайкой проблемы.
    Go to the top of the page
     
    +Quote Post
    hobgoblin
    сообщение Aug 4 2010, 09:05
    Сообщение #11


    Местный
    ***

    Группа: Свой
    Сообщений: 202
    Регистрация: 2-10-06
    Из: Петербург
    Пользователь №: 20 881



    А какая у Вас планируется частота дискретизации на входе AD6652? И какие полосы еще нужно обеспечить кроме 7 кГц.
    Go to the top of the page
     
    +Quote Post
    cerg19
    сообщение Aug 4 2010, 09:10
    Сообщение #12


    Частый гость
    **

    Группа: Свой
    Сообщений: 166
    Регистрация: 12-05-09
    Из: Нижний Новгород
    Пользователь №: 48 978



    Цитата
    А какая у Вас планируется частота дискретизации на входе AD6652?

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

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

    я пока в этот вопрос не углублялся, но вроде matldb может делать фильтры с линейной AЧХ
    Go to the top of the page
     
    +Quote Post
    fontp
    сообщение Aug 4 2010, 09:14
    Сообщение #13


    Эксперт
    *****

    Группа: Свой
    Сообщений: 1 465
    Регистрация: 25-06-04
    Пользователь №: 183



    QUOTE (cerg19 @ Aug 4 2010, 13:05) *
    Подскажите пожалуйста где это задать, 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.gif )

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

    QUOTE (cerg19 @ Aug 4 2010, 13:10) *
    я пока в этот вопрос не углублялся, но вроде matldb может делать фильтры с линейной AЧХ


    Насколько линейной? Не пробовал, но не думаю что фильтры высоких порядков очень линейны по ФЧХ
    Go to the top of the page
     
    +Quote Post
    cerg19
    сообщение Aug 4 2010, 09:17
    Сообщение #14


    Частый гость
    **

    Группа: Свой
    Сообщений: 166
    Регистрация: 12-05-09
    Из: Нижний Новгород
    Пользователь №: 48 978



    Цитата
    Так Start-Toolbox-FilterDesign&Analisys tool

    1. Если СIC только один (один sinc(af)**p) используете тип фильтра Inverse Sinc Equiripple
    жмете More Options, задаете a и P
    2. Если предискажений много выбирает Lowpass, выбираете Arbitrary Magnitude и вписывете формулу обратных коррекций
    всех предискажений в окно Mag.Vector


    Спасибо!
    Go to the top of the page
     
    +Quote Post
    hobgoblin
    сообщение Aug 4 2010, 09:23
    Сообщение #15


    Местный
    ***

    Группа: Свой
    Сообщений: 202
    Регистрация: 2-10-06
    Из: Петербург
    Пользователь №: 20 881



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

    Вначале Вы написали, что это частота на выходе всего цифрового приемника. Я говорю про частоту на выходе АЦП.
    Go to the top of the page
     
    +Quote Post

    2 страниц V   1 2 >
    Reply to this topicStart new topic
    4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
    Пользователей: 0

     


    RSS Текстовая версия Сейчас: 13th December 2017 - 15:08
    Рейтинг@Mail.ru


    Страница сгенерированна за 0.01391 секунд с 7
    ELECTRONIX ©2004-2016