cerg19 0 4 августа, 2010 Опубликовано 4 августа, 2010 · Жалоба Всем доброго время суток. Встала такая задача реализовать на цифровом приёмнике фильтр с частотой дискритизации сигнала на выходе 480кГц, полосой пропускания 7кГц, неравномерность в полосе пропускания 3дБ, неравномерность в полосе заграждения 50дБ и коэффициентом прямоугольности фильтра 1,3. Я выбрал AD6652 и попытался смоделировать необходимый фильтр в программе Filter Design, которую скачал с сайта analog devices для данного цифрового приёмника. Задав необходимые параметры фильтра программа выдаёт переменные для цифрового приёмника и полученную АЧХ. Но встала проблема. Полученная АЧХ никак не удовлетворяет заданной. Методом научного тыка и подгона параметров фильтра задаваемые в программе удаётся влезть по некоторым параметрам АЧХ, но не во все, а именно в полосу пропускания. Прошу совета если кто с этим сталкивался. Неужто фильтр проектируется методом подгона или есть другой способ, и что значит галочка в программе LHB Enabled. Заранее всем спасибо. P.S. Спрашиваю здесь первый раз, точно не знаю в какой раздел, написал сюда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 25 4 августа, 2010 Опубликовано 4 августа, 2010 · Жалоба Неужто фильтр проектируется методом подгона или есть другой способ.. Есть и другой способ: MATLAB >> fdatool. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hobgoblin 0 4 августа, 2010 Опубликовано 4 августа, 2010 · Жалоба В матлабе можно рассчитать параметры всех тех же фильтров, что есть в AD6652 и если освоите проектирование фильтров в MATLAB, IMHO, будет намного удобнее. Программу под AD6652 не пользовал, но под AD6620 была до ужаса кривая. Я прикрепил два похожих документа по теме проектирования фильтров в MATLAB, один более полный, второй поменьше, но в нем есть пример проектирования фильтров для GC4016 (цифровой приемник от Texas Instruments) LHB - бит регистр, который включает/отключает интерполирующий halfband фильтр и каскад чередования (чередования чего - я не знаю, с AD6652 Не работал, а времени разбираться сейчас нет, работа горит). В даташите про него написано на странице на странице 64, так что как говорится RTFM :) PS: Методика проектирования многокаскадных интерполяторов/дециматоров описана где-то в литературено по стандартной причине нехватки времени у меня так и не дошли руки с ней хорошо разобраться. Конкретные источники не помню, но можно поискать книги по ключевым словам Multirate signal processing. digfilt.pdf firdesign.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cerg19 0 4 августа, 2010 Опубликовано 4 августа, 2010 (изменено) · Жалоба Есть и другой способ: MATLAB >> fdatool. Вариант, но fdatool не умеет CIC фильтрв реализовывать hobgoblin, спасибо за развёрнутый ответ и инфу, обязательно почитаю. LHB - регистр, который включает/отключает интерполирующий halfband фильтр и каскад чередования как я понял это включение КИХ фильтра на выходе CIC, так? И ещё вопросик, может кто исходя из личного опыта подскажет, а не слишком ли крутые параметры фильтра для данного цифрового приёмника. Стал смотреть в сторону ПЛИС и реализовать там БИХ фильтр. MATLAB сказал что 28 порядок нужен, не такой уж и большой. Изменено 4 августа, 2010 пользователем cerg19 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fontp 0 4 августа, 2010 Опубликовано 4 августа, 2010 · Жалоба Если в 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cerg19 0 4 августа, 2010 Опубликовано 4 августа, 2010 · Жалоба Нет это полуполосный фильтр (low half band) для последующей качественной децимации/интерполяции на 2. Он не решает ясень, спасиб Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hobgoblin 0 4 августа, 2010 Опубликовано 4 августа, 2010 · Жалоба И ещё вопросик, может кто исходя из личного опыта подскажет, а не слишком ли крутые параметры фильтра для данного цифрового приёмника. Стал смотреть в сторону ПЛИС и реализовать там БИХ фильтр. MATLAB сказал что 28 порядок нужен, не такой уж и большой. Посмотрите в MATLAB-е разные варианты из нескольких каскадов, может быть Вам хватит ПЛИС дя получения нужных характеристик. 28-ой порядок для БИХ это много, тем более они чувствительнее к проблемам округления чем КИХ-фильтры. И еще кстати вопрос: зачем Вам такая высокая частота дискретизации на выходе при такой малой полосе пропускания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cerg19 0 4 августа, 2010 Опубликовано 4 августа, 2010 (изменено) · Жалоба Их там 2 кажется в AD6652 я нашёл только один 256 порядка И еще кстати вопрос: зачем Вам такая высокая частота дискретизации на выходе при такой малой полосе пропускания. Точно не могу сказать, я делаю только часть общей системы. В ТЗ написано чтоб на выходе была такая частота дискритизации 28-ой порядок для БИХ это много Если делать на ПЛИС КИХ фильтр, то для фильтра с данными характеристиками нужен 960 порядок Изменено 4 августа, 2010 пользователем cerg19 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fontp 0 4 августа, 2010 Опубликовано 4 августа, 2010 · Жалоба я нашёл только один 256 порядка Тогда проще (у меня их было 2 но по 128). можно использовать fdatool задавая ему характеристику СIС фильтра как предискажение Он называется там Arbitrary Magnitude если несколько CIC-фильтров. Если один CIC-фильтр то для него есть упрощенный вариант Inverse Sinc Lowpass Только не факт что нужные по ТЗ параметры будут достигнуты - чудес не бывает. В любом случае методика будет одинаковая - обратные искажения синка от СIС компенсировать в фильтре полосовым эквирипловым Ремезом. Отличия могут быть только в богатстве задания параметров. Как вариант приделайте ещё один FIR-фильтр на выходе на FPGA)) Если делать на ПЛИС КИХ фильтр, то для фильтра с данными характеристиками нужен 960 порядок На FPGA всё равно выгодней мультирейт каскодная схема как в DDC, а не тупо лепить 1 фильтр и 1 децимацию. А что у Вас ТЗ не накладывает никаких ограничений на фазовые характеристики? Часто с этих позиций IIR неприемлем. Если нет - как вариант приделайте IIR низкого порядка на ПЛИС к AD6652)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cerg19 0 4 августа, 2010 Опубликовано 4 августа, 2010 · Жалоба можно использовать fdatool задавая ему характеристику СIС фильтра как предискажение Подскажите пожалуйста где это задать, google не помог Вобщем щас думаю. Для фильтрации необходим ЦАП DDC CIC и FIR. Всё это имеется в цифровом приёмнике, но необходимо будет также обеспечить его управление загружая в него параметры(необходимо обеспечить 3 полосы, которые можно менять). Значит надо ещё ПЛИС ставить для управления, в которую можно воткнуть и дополнительный FIR как писал fontp. Другой способ реализовать DDC CIC и IIR на ПЛИС, но необходимо будет воткнуть внешний АЦП на входе. Опыта мало, надо прикинуть чё да как. Ещё и с конструкторской и экономической точки зрения рассмотреть, как разводить, сколько стоит, как паять. Цифровой приёмник чем ещё не нравится так это корпус BGA, с пайкой проблемы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hobgoblin 0 4 августа, 2010 Опубликовано 4 августа, 2010 · Жалоба А какая у Вас планируется частота дискретизации на входе AD6652? И какие полосы еще нужно обеспечить кроме 7 кГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cerg19 0 4 августа, 2010 Опубликовано 4 августа, 2010 · Жалоба А какая у Вас планируется частота дискретизации на входе AD6652? 480кГц, как я писал в начале, или я не то щас говорю А что у Вас ТЗ не накладывает никаких ограничений на фазовые характеристики? Часто с этих позиций IIR неприемлем. я пока в этот вопрос не углублялся, но вроде matldb может делать фильтры с линейной AЧХ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fontp 0 4 августа, 2010 Опубликовано 4 августа, 2010 · Жалоба Подскажите пожалуйста где это задать, 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ЧХ Насколько линейной? Не пробовал, но не думаю что фильтры высоких порядков очень линейны по ФЧХ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cerg19 0 4 августа, 2010 Опубликовано 4 августа, 2010 · Жалоба Так Start-Toolbox-FilterDesign&Analisys tool 1. Если СIC только один (один sinc(af)**p) используете тип фильтра Inverse Sinc Equiripple жмете More Options, задаете a и P 2. Если предискажений много выбирает Lowpass, выбираете Arbitrary Magnitude и вписывете формулу обратных коррекций всех предискажений в окно Mag.Vector Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hobgoblin 0 4 августа, 2010 Опубликовано 4 августа, 2010 · Жалоба 480кГц, как я писал в начале, или я не то щас говорю Вначале Вы написали, что это частота на выходе всего цифрового приемника. Я говорю про частоту на выходе АЦП. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться