Alex65111 0 11 ноября, 2007 Опубликовано 11 ноября, 2007 · Жалоба Задача понизить частоту дискретизации в два раза. Соответственно надо сигнал подфильтровать, а потом децимировать. Сейчас я рассчитываю фильтр с большой крутизной, малыми (не более 0.1дБ) пульсациями в полосе пропускания, и подавлением не менее 96дБ методом Ремеза. В принципе работает. Но мне не дает покоя мысль, что где-то я встречал какой-то "хитрый" подход к решению проблемы децимации в два раза, в котором получается достаточно вычислительно эффективный фильтр. То ли малого порядка, то ли с кучей нулей в ИХ. Подскажите, на самом ли деле есть более лучшее решение? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SIA 0 11 ноября, 2007 Опубликовано 11 ноября, 2007 · Жалоба Задача понизить частоту дискретизации в два раза. Соответственно надо сигнал подфильтровать, а потом децимировать. Сейчас я рассчитываю фильтр с большой крутизной, малыми (не более 0.1дБ) пульсациями в полосе пропускания, и подавлением не менее 96дБ методом Ремеза. В принципе работает. Но мне не дает покоя мысль, что где-то я встречал какой-то "хитрый" подход к решению проблемы децимации в два раза, в котором получается достаточно вычислительно эффективный фильтр. То ли малого порядка, то ли с кучей нулей в ИХ. Подскажите, на самом ли деле есть более лучшее решение? Зависит от вида АЧХ в полосе пропускания. Ну, а то, что при децимации не надо рассчитывать все выходные отсчеты, а только с деленной частотой, Вы и без меня догадались :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex65111 0 11 ноября, 2007 Опубликовано 11 ноября, 2007 (изменено) · Жалоба Зависит от вида АЧХ в полосе пропускания Какие варианты существуют? У меня требование неравномерности не более 0.1дБ. И еще - после децимации коэффициент использования полосы должен составлять не менее 0.9 от Найквиста (что и приводит к требованию достаточно крутой переходной характеристики). Изменено 11 ноября, 2007 пользователем Alex65111 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andr2I 0 11 ноября, 2007 Опубликовано 11 ноября, 2007 · Жалоба Задача понизить частоту дискретизации в два раза. Соответственно надо сигнал подфильтровать, а потом децимировать. Сейчас я рассчитываю фильтр с большой крутизной, малыми (не более 0.1дБ) пульсациями в полосе пропускания, и подавлением не менее 96дБ методом Ремеза. В принципе работает. Но мне не дает покоя мысль, что где-то я встречал какой-то "хитрый" подход к решению проблемы децимации в два раза, в котором получается достаточно вычислительно эффективный фильтр. То ли малого порядка, то ли с кучей нулей в ИХ. Подскажите, на самом ли деле есть более лучшее решение? Действительно, более эффективные (с точки зрения количества операций) фильтры существуют. Это так называемые CIC фильтры или гребенчатые фильтры. По сути дела это просто скользящее среднее вычисляемое эффективным образом. АЧХ такого фильтра довольно дрянное, с нормальным КИХ фильтром не сравнить, но иногда этого бывает достаточно. Есть еще полифазные фильтры - это КИХ фильтр, у которого коэффициенты через один равны нулю - в два раза меньше умножений. Так что выбор за Вами ;) . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex65111 0 11 ноября, 2007 Опубликовано 11 ноября, 2007 · Жалоба АЧХ такого фильтра довольно дрянное - поэтому CICы и не рассматриваются. И еще потому, что они применяются тогда, когда требуется достаточно узкая рабочая полоса по отношению к частоте дискретизации. Есть еще полифазные фильтры - это КИХ фильтр, у которого коэффициенты через один равны нулю - а это не понял. Полифазную реализацию знаю, а полифазную ИХ слышу впервые. Как этот зверь получается/рассчитывается? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andr2I 0 11 ноября, 2007 Опубликовано 11 ноября, 2007 · Жалоба - а это не понял. Полифазную реализацию знаю, а полифазную ИХ слышу впервые. Как этот зверь получается/рассчитывается? Посмотрите в книге по цифровой обработке - полифазные фильтры. Это КИХ фильтр, но половина коэффициентов равна нулю - отсюда несколько специфическая АЧХ. Рассчитать можно в MATLABе. По момему доступен при расчете в FDATOOL децимирующих и интерполирующих фильтров. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SIA 0 11 ноября, 2007 Опубликовано 11 ноября, 2007 · Жалоба Действительно, более эффективные (с точки зрения количества операций) фильтры существуют. Это так называемые CIC фильтры или гребенчатые фильтры. По сути дела это просто скользящее среднее вычисляемое эффективным образом. АЧХ такого фильтра довольно дрянное, с нормальным КИХ фильтром не сравнить, но иногда этого бывает достаточно. Есть еще полифазные фильтры - это КИХ фильтр, у которого коэффициенты через один равны нулю - в два раза меньше умножений. Так что выбор за Вами ;) . Такое (равенство нулю части коэффициентов) получается, только если частоты начала среза/полного затухания точно симметричны относительно доли Fs. Для фильтров децимации с выполнением условия Найквиста это заметного выигрыша не дает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alex_os 0 11 ноября, 2007 Опубликовано 11 ноября, 2007 · Жалоба Задача понизить частоту дискретизации в два раза. Соответственно надо сигнал подфильтровать, а потом децимировать. Сейчас я рассчитываю фильтр с большой крутизной, малыми (не более 0.1дБ) пульсациями в полосе пропускания, и подавлением не менее 96дБ методом Ремеза. В принципе работает. Но мне не дает покоя мысль, что где-то я встречал какой-то "хитрый" подход к решению проблемы децимации в два раза, в котором получается достаточно вычислительно эффективный фильтр. То ли малого порядка, то ли с кучей нулей в ИХ. Подскажите, на самом ли деле есть более лучшее решение? Если в два раза децимировать то нужно смотреть на полуполосный фильтр (halfband) - у него половина коэф. кроме центрального =0. Волшебное слово firhalfband ( Matlab 6.5) или можно тоже самое сделать в fdatool там можно выбрать halfband lowpass, halfband highpass. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rloc 56 11 ноября, 2007 Опубликовано 11 ноября, 2007 · Жалоба Такое (равенство нулю части коэффициентов) получается, только если частоты начала среза/полного затухания точно симметричны относительно доли Fs. Если быть более точным, то для равенства нулю каждого второго коэффициента, необходимо чтобы эквивалентная шумовая полоса была равна половине частоты дискретизации. Таким же образом можно получить равенство нулю каждого третьего, четвертого и т.д. коэффициентов. Для фильтров децимации с выполнением условия Найквиста это заметного выигрыша не дает. Поясните, что Вы под этим подразумевали? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex65111 0 11 ноября, 2007 Опубликовано 11 ноября, 2007 · Жалоба halfband lowpass вроде как да, но у него отвратительное подавление в полосе подавления, у меня получилось только 48дБ, при необходимых 96. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SIA 0 11 ноября, 2007 Опубликовано 11 ноября, 2007 · Жалоба Если быть более точным, то для равенства нулю каждого второго коэффициента, необходимо чтобы эквивалентная шумовая полоса была равна половине частоты дискретизации. Таким же образом можно получить равенство нулю каждого третьего, четвертого и т.д. коэффициентов. Да, это именно то, что я хотел сказать, просто не был уверен, что понятие шумовой (эквивалентной, эффективной) полосы будет воспринято правильно. Поясните, что Вы под этим подразумевали? То, что при децимации в n раз для выполнения условия найквиста полное затухание должно наступить уже на частоте Fs/2n, тогда эффективная полоса заведомо меньше этой величины. Halfband не прокатит. А учитывая, что использование полосы хочется иметь побольше, скажем, 80-90%, то начало спада придется где-то на Fs/2.2...2.5n, а при этом нулевыми можно сделать будет только не более 10-20% коэффициентов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rloc 56 11 ноября, 2007 Опубликовано 11 ноября, 2007 · Жалоба То, что при децимации в n раз для выполнения условия найквиста полное затухание должно наступить уже на частоте Fs/2n, тогда эффективная полоса заведомо меньше этой величины. Halfband не прокатит. А учитывая, что использование полосы хочется иметь побольше, скажем, 80-90%, то начало спада придется где-то на Fs/2.2...2.5n, а при этом нулевыми можно сделать будет только не более 10-20% коэффициентов. Это не совсем верный подход. Надо делать полосу режекции немного дальше, чем Fs/2n. Нет ничего страшного в том, что часть шума завернется, во многих случаях важнее отсутствие корреляции шумов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex65111 0 11 ноября, 2007 Опубликовано 11 ноября, 2007 · Жалоба Так завернется не только шум, а и сам сигнал. В моем случае исходная частота дискретизации 120кГц. Полезная, рабочая полоса до 30кГц. При этом потерять я могу максимум от 29 до 30. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rloc 56 11 ноября, 2007 Опубликовано 11 ноября, 2007 · Жалоба Так завернется не только шум, а и сам сигнал. В моем случае исходная частота дискретизации 120кГц. Полезная, рабочая полоса до 30кГц. При этом потерять я могу максимум от 29 до 30. Тогда фильтр, у которого половина коэффициентов равна 0, Вам не подойдет. Из Ваших условий не понятно о каких данных идет речь (действительные/комплексные), 30кГц - это вся полоса или половина, 29-30 - что это за цифры (дБ, %, кГц)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex65111 0 11 ноября, 2007 Опубликовано 11 ноября, 2007 (изменено) · Жалоба Данные вещественные. Входной антиалисный аналоговый фильтр обеспечивает нужный уровень подавления примерно на 60кГц, хотя полезная полоса - до 30кГц. Соответственно частота дискретизации выбрана 120кГц. Далее необходимо цифровым фильтром подогнать полосу к 30кГц и продецимировав довести частоту дискретизации до 60кГц (опять же для вещественного сигнала). Подход к проблеме в лоб в принципе задачу решает - Ремезом рассчитываю фильтр с переходной полосой от 29 до 30кГц, с пульсациями в полосе пропускания не более 0.1дБ и подавлением 96дБ. Фильтр получается где-то около 500 порядка. Задача - попытаться найти решение не в лоб. По подсказке попробовал halfband. В fdatool задал следующие параметры: тип - halfband lowpass filter order - 400 Fs=120000кГц Fpass=29000кГц Вроде у него каждый второй тап получился равен нулю. Да и пульсации и крутизна подходит. При попытке применить опцию расчета децимирующего фильтра с коэффициентом децимации 2 и фильтром найквиста получился фильтр у которого порядок просто изумительный всего 47, но у него нужное подавление возникает только на 36кГц, т.е. у меня кусок от 24 до 30кГц будет искажен (а разрешается быть искажено только 29-30кГц) . Так что пока я склоняюсь к halfband lowpass. Кстати, я что-то не понял - в чем существенная разница между halfband lowpass расчетом фильтра и децимирующего фильтра Найквиста? Изменено 11 ноября, 2007 пользователем Alex65111 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться