Vitaliy_ARM 0 2 декабря, 2009 Опубликовано 2 декабря, 2009 · Жалоба Доброе время суток. Возникла необходимость сделать прореживающий фильтр с коэффициентами прореживания R = 512, 1024, 2048, 4096 на базе CIC + компенсирующий FIR. У альтеры в апноуте (AN 455) описан алгоритм расчета коэффициентов FIR-а для компенсации "односкоростного" CIC. Вопрос, как это применить для многоскоростного фильтра? Правильно ли будет разбить CIC на две части, первая допустим с коэффициентами прореживания 4,8,16,32, вторая с прореживанием на 128, и рассчитать компенсирующий FIR для второго CIC? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kuzis 0 2 декабря, 2009 Опубликовано 2 декабря, 2009 · Жалоба Возникла необходимость сделать прореживающий фильтр с коэффициентами прореживания R = 512, 1024, 2048, 4096 на базе CIC А вам необходимы все коэффициенты одновременно (т.е. будете 4 канала обрабатывать), или они будут переключаться во время работы? Если второй вариант - нет смысла разбивать CIC на части. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vitaliy_ARM 0 2 декабря, 2009 Опубликовано 2 декабря, 2009 · Жалоба А вам необходимы все коэффициенты одновременно (т.е. будете 4 канала обрабатывать), или они будут переключаться во время работы? Если второй вариант - нет смысла разбивать CIC на части. Второй вариант. Т.е. если я рассчитаю для CIC с R = 512 коэффициенты компенсирующего FIR фильтра, то и на всех остальных R это будет тот же фильтр? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 2 декабря, 2009 Опубликовано 2 декабря, 2009 · Жалоба Второй вариант. Т.е. если я рассчитаю для CIC с R = 512 коэффициенты компенсирующего FIR фильтра, то и на всех остальных R это будет тот же фильтр? нет, там фильтр будет другой, но в интересующей вас полосе разность частотных характеристик будет ~0.005Дб если вас это устроит то этим можно пренебречь %) ЗЫ. Кстати считается такой фильтр элементарно в любом каде (Matlab/Matcad/Mapple) зная АЧХ цика %) ЗЗЫ. Думаю очевидно что фильтр должен будет стоять ДО цика. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vitaliy_ARM 0 2 декабря, 2009 Опубликовано 2 декабря, 2009 · Жалоба нет, там фильтр будет другой, но в интересующей вас полосе разность частотных характеристик будет ~0.005Дб если вас это устроит то этим можно пренебречь %) Меня интересует максимальная полоса на выходе, т.е. близкая к Fs/2. Т.е. может имеет смысл разбить цик на две части? Чтобы влияние первого ачх было как можно меньше ЗЫ. Кстати считается такой фильтр элементарно в любом каде (Matlab/Matcad/Mapple) зная АЧХ цика %) Я не силен пока в цифровой обработке сигналов, может подскажите ссылку на статью или информацию, что с чем связано и как это делать в матлабе? ЗЗЫ. Думаю очевидно что фильтр должен будет стоять ДО цика. Почему? Фирмы типа альтеры рекомендуют в дециматорах ставить после, в интерполяторах до. Вы имеете ввиду потерю динамического диапазона на краях АЧХ Цика? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serebr 0 2 декабря, 2009 Опубликовано 2 декабря, 2009 · Жалоба ЗЗЫ. Думаю очевидно что фильтр должен будет стоять ДО цика. Если фильтр децимальный, то FIR ставят после CIC и прореживания для сокращения количества вычислительных операций. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 2 декабря, 2009 Опубликовано 2 декабря, 2009 · Жалоба Если фильтр децимальный, то FIR ставят после CIC и прореживания для сокращения количества вычислительных операций. сыплю голову пеплом, писал ответ о дециматоре, а написал про интерполятор %) Меня интересует максимальная полоса на выходе, т.е. близкая к Fs/2. Т.е. может имеет смысл разбить цик на две части? Чтобы влияние первого ачх было как можно меньше Но полоса то вам нужна после децимации верно ? Теперь оцените на сколько вы делаете децимацию и какую часть вашей полосы портит CIC. Сложно делать заявления без опоры на цифры(считать лень), но по опыту начиная с коэфф. децимации 8 АЧХ различаются не более чем на 0.1Дб для 6ти каскадов CIC. Незнаю ваших требований к CIC фильтру, но если входная разрядность ~16, число каскадов больше 3-х, и делаете вы это на фпга то лучше вам НЕ делать фильтр хогенауэра. Для проца смотреть надо %) Я не силен пока в цифровой обработке сигналов, может подскажите ссылку на статью или информацию, что с чем связано и как это делать в матлабе? В атаче расчет RC фильтра с коррекцией АЧХ CIC фильтра, 13 маткад. Все комментарии на русском. Ничего сложного %) _______RC________.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vitaliy_ARM 0 2 декабря, 2009 Опубликовано 2 декабря, 2009 · Жалоба Но полоса то вам нужна после децимации верно ? Теперь оцените на сколько вы делаете децимацию и какую часть вашей полосы портит CIC. Сложно делать заявления без опоры на цифры(считать лень), но по опыту начиная с коэфф. децимации 8 АЧХ различаются не более чем на 0.1Дб для 6ти каскадов CIC. Незнаю ваших требований к CIC фильтру, но если входная разрядность ~16, число каскадов больше 3-х, и делаете вы это на фпга то лучше вам НЕ делать фильтр хогенауэра. Для проца смотреть надо %) Разрядность 18бит, исполнение в FPGA. Полоса нужна после децимации, близкая к Fs/2, где Fs - частота дискретизации после прореживания. Неравномерность АЧХ должна быть как можно меньше, 0.05% устроит. Число каскадов цика можно выбирать от 3 до 8, чем меньше - тем лучше. Фильтр Хогенауэра лучший вариант при таких коэффициентах прореживания, важно, что занимает мало места. Вопрос тот же. Как правильно построить фильтр Хогенауэра с переменным коэффициентом прореживания? В атаче расчет RC фильтра с коррекцией АЧХ CIC фильтра, 13 маткад. Все комментарии на русском. Ничего сложного %) Спасибо за информацию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 2 декабря, 2009 Опубликовано 2 декабря, 2009 · Жалоба Фильтр Хогенауэра лучший вариант при таких коэффициентах прореживания, важно, что занимает мало места. 5 каскадов CIC, 18 бит на входе, R = 4096, M = 1, хогенауэр потребует первого интегратора на 78 бит (!!!), 3 каскада 54 бита. И это вы называете лучшим вариантом ? :) Почитайте теорию хогенауэра для начала, перед тем как делать такие заявления %) Вопрос тот же. Как правильно построить фильтр Хогенауэра с переменным коэффициентом прореживания? рассчитайте отдельные фильтры на все коэффициенты децимации, тогда вам станет ясно как сделать перестраиваемый %) Ответ там лежит на поверхности Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serebr 0 2 декабря, 2009 Опубликовано 2 декабря, 2009 · Жалоба Разрядность 18бит, исполнение в FPGA. Полоса нужна после децимации, близкая к Fs/2, где Fs - частота дискретизации после прореживания. Неравномерность АЧХ должна быть как можно меньше, 0.05% устроит. Число каскадов цика можно выбирать от 3 до 8, чем меньше - тем лучше. Фильтр Хогенауэра лучший вариант при таких коэффициентах прореживания, важно, что занимает мало места.Сказать, что нужна полоса после прореживания, близкая к Fs/2, это значит - ничего не сказать. Надо знать, насколько именно близко? На 1% от Fs/2 или на 0.01%? От этого порядок требуемого фильтра будет меняться в сотни раз, если есть требование подавления "зеркальных" частот при децимации. В качестве аналогии могу привести такой пример: насколько сильно будут разгоняться протоны в Большом адронном коллайдере? Ответ - близко к скорости света. Так ведь это и ежу понятно, что близко, вопрос в том - насколько близко? На 1% от c или на 0.01%? Или ещё ближе? :) Энергия протонов при этом тоже будет меняться на порядки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vitaliy_ARM 0 2 декабря, 2009 Опубликовано 2 декабря, 2009 · Жалоба Сказать, что нужна полоса после прореживания, близкая к Fs/2, это значит - ничего не сказать. Надо знать, насколько именно близко? На 1% от Fs/2 или на 0.01%? От этого порядок требуемого фильтра будет меняться в сотни раз, если есть требование подавления "зеркальных" частот при децимации. В качестве аналогии могу привести такой пример: насколько сильно будут разгоняться протоны в Большом адронном коллайдере? Ответ - близко к скорости света. Так ведь это и ежу понятно, что близко, вопрос в том - насколько близко? На 1% от c или на 0.01%? Или ещё ближе? :) Энергия протонов при этом тоже будет меняться на порядки. Уточню. На частоте Найквиста должно быть подавление не хуже 70дБ. Порядок FIR = 110. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 2 декабря, 2009 Опубликовано 2 декабря, 2009 · Жалоба Уточню. На частоте Найквиста должно быть подавление не хуже 70дБ. Порядок FIR = 110. маловато будет информации :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MKS 0 2 декабря, 2009 Опубликовано 2 декабря, 2009 · Жалоба В догонку, загляните еще в эту тему. Там решается похожая задача с примером в матлабе. Успехов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 3 декабря, 2009 Опубликовано 3 декабря, 2009 · Жалоба подумал на досуге о вашей проблеме. Варианта с нормальной производительностью/ресурсом вижу два 1. 5 каскадов циков с 30/34 бита арифметикой, правда придеться "поесть" памяти. 2. Каскадная децимация, сначала на 128 + FIR, потом уже хогенауэр. Арифметика будет "всего" 43 битная. Что из этого будет в итоге "весить" меньше решать вам %) ЗЫ. еще немаловажный вопрос время выхода фильтра на режим при перестройке полосы, помните что интегральные части циков надо сбрасывать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vitaliy_ARM 0 3 декабря, 2009 Опубликовано 3 декабря, 2009 · Жалоба В догонку, загляните еще в эту тему. Там решается похожая задача с примером в матлабе. Успехов. К сожалению пока нет матлаба. Обязательно гляну при возможности. подумал на досуге о вашей проблеме. Варианта с нормальной производительностью/ресурсом вижу два 1. 5 каскадов циков с 30/34 бита арифметикой, правда придеться "поесть" памяти. 2. Каскадная децимация, сначала на 128 + FIR, потом уже хогенауэр. Арифметика будет "всего" 43 битная. Что из этого будет в итоге "весить" меньше решать вам %) ЗЫ. еще немаловажный вопрос время выхода фильтра на режим при перестройке полосы, помните что интегральные части циков надо сбрасывать. Тогда вопрос, каким способом делать переменное прореживание? Делаем прореживание в CICе и при этом используем один FIR, пренебрегая изменением АЧХ CICа? Почему нельзя пользоваться усечением разрядности CIC? p.s. приношу извинения за ламерские вопросы, не могу найти именно ответ на вопрос - как правильно сделать переменное прореживание в фильтре Хогенауэра. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться