|
Эффективная децимация в два раза |
|
|
|
Nov 11 2007, 08:29
|
Местный
  
Группа: Свой
Сообщений: 462
Регистрация: 26-06-07
Пользователь №: 28 723

|
Цитата(Alex65111 @ Nov 11 2007, 11:09)  Задача понизить частоту дискретизации в два раза. Соответственно надо сигнал подфильтровать, а потом децимировать. Сейчас я рассчитываю фильтр с большой крутизной, малыми (не более 0.1дБ) пульсациями в полосе пропускания, и подавлением не менее 96дБ методом Ремеза. В принципе работает. Но мне не дает покоя мысль, что где-то я встречал какой-то "хитрый" подход к решению проблемы децимации в два раза, в котором получается достаточно вычислительно эффективный фильтр. То ли малого порядка, то ли с кучей нулей в ИХ. Подскажите, на самом ли деле есть более лучшее решение? Зависит от вида АЧХ в полосе пропускания. Ну, а то, что при децимации не надо рассчитывать все выходные отсчеты, а только с деленной частотой, Вы и без меня догадались
|
|
|
|
|
Nov 11 2007, 08:34
|
Частый гость
 
Группа: Участник
Сообщений: 141
Регистрация: 25-10-07
Пользователь №: 31 729

|
Цитата Зависит от вида АЧХ в полосе пропускания Какие варианты существуют? У меня требование неравномерности не более 0.1дБ. И еще - после децимации коэффициент использования полосы должен составлять не менее 0.9 от Найквиста (что и приводит к требованию достаточно крутой переходной характеристики).
Сообщение отредактировал Alex65111 - Nov 11 2007, 08:50
|
|
|
|
|
Nov 11 2007, 08:48
|
Местный
  
Группа: Свой
Сообщений: 368
Регистрация: 16-11-06
Из: Тверь
Пользователь №: 22 379

|
Цитата(Alex65111 @ Nov 11 2007, 11:09)  Задача понизить частоту дискретизации в два раза. Соответственно надо сигнал подфильтровать, а потом децимировать. Сейчас я рассчитываю фильтр с большой крутизной, малыми (не более 0.1дБ) пульсациями в полосе пропускания, и подавлением не менее 96дБ методом Ремеза. В принципе работает. Но мне не дает покоя мысль, что где-то я встречал какой-то "хитрый" подход к решению проблемы децимации в два раза, в котором получается достаточно вычислительно эффективный фильтр. То ли малого порядка, то ли с кучей нулей в ИХ. Подскажите, на самом ли деле есть более лучшее решение? Действительно, более эффективные (с точки зрения количества операций) фильтры существуют. Это так называемые CIC фильтры или гребенчатые фильтры. По сути дела это просто скользящее среднее вычисляемое эффективным образом. АЧХ такого фильтра довольно дрянное, с нормальным КИХ фильтром не сравнить, но иногда этого бывает достаточно. Есть еще полифазные фильтры - это КИХ фильтр, у которого коэффициенты через один равны нулю - в два раза меньше умножений. Так что выбор за Вами  .
|
|
|
|
|
Nov 11 2007, 08:56
|
Частый гость
 
Группа: Участник
Сообщений: 141
Регистрация: 25-10-07
Пользователь №: 31 729

|
Цитата АЧХ такого фильтра довольно дрянное - поэтому CICы и не рассматриваются. И еще потому, что они применяются тогда, когда требуется достаточно узкая рабочая полоса по отношению к частоте дискретизации. Цитата Есть еще полифазные фильтры - это КИХ фильтр, у которого коэффициенты через один равны нулю - а это не понял. Полифазную реализацию знаю, а полифазную ИХ слышу впервые. Как этот зверь получается/рассчитывается?
|
|
|
|
|
Nov 11 2007, 09:09
|
Местный
  
Группа: Свой
Сообщений: 368
Регистрация: 16-11-06
Из: Тверь
Пользователь №: 22 379

|
Цитата(Alex65111 @ Nov 11 2007, 11:56)  - а это не понял. Полифазную реализацию знаю, а полифазную ИХ слышу впервые. Как этот зверь получается/рассчитывается? Посмотрите в книге по цифровой обработке - полифазные фильтры. Это КИХ фильтр, но половина коэффициентов равна нулю - отсюда несколько специфическая АЧХ. Рассчитать можно в MATLABе. По момему доступен при расчете в FDATOOL децимирующих и интерполирующих фильтров.
|
|
|
|
|
Nov 11 2007, 09:10
|
Местный
  
Группа: Свой
Сообщений: 462
Регистрация: 26-06-07
Пользователь №: 28 723

|
Цитата(Andr2I @ Nov 11 2007, 11:48)  Действительно, более эффективные (с точки зрения количества операций) фильтры существуют. Это так называемые CIC фильтры или гребенчатые фильтры. По сути дела это просто скользящее среднее вычисляемое эффективным образом. АЧХ такого фильтра довольно дрянное, с нормальным КИХ фильтром не сравнить, но иногда этого бывает достаточно. Есть еще полифазные фильтры - это КИХ фильтр, у которого коэффициенты через один равны нулю - в два раза меньше умножений. Так что выбор за Вами  . Такое (равенство нулю части коэффициентов) получается, только если частоты начала среза/полного затухания точно симметричны относительно доли Fs. Для фильтров децимации с выполнением условия Найквиста это заметного выигрыша не дает.
|
|
|
|
|
Nov 11 2007, 10:20
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030

|
Цитата(Alex65111 @ Nov 11 2007, 12:09)  Задача понизить частоту дискретизации в два раза. Соответственно надо сигнал подфильтровать, а потом децимировать. Сейчас я рассчитываю фильтр с большой крутизной, малыми (не более 0.1дБ) пульсациями в полосе пропускания, и подавлением не менее 96дБ методом Ремеза. В принципе работает. Но мне не дает покоя мысль, что где-то я встречал какой-то "хитрый" подход к решению проблемы децимации в два раза, в котором получается достаточно вычислительно эффективный фильтр. То ли малого порядка, то ли с кучей нулей в ИХ. Подскажите, на самом ли деле есть более лучшее решение? Если в два раза децимировать то нужно смотреть на полуполосный фильтр (halfband) - у него половина коэф. кроме центрального =0. Волшебное слово firhalfband ( Matlab 6.5) или можно тоже самое сделать в fdatool там можно выбрать halfband lowpass, halfband highpass.
--------------------
ну не художники мы...
|
|
|
|
|
Nov 11 2007, 10:21
|
Узкополосный широкополосник
     
Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462

|
Цитата(SIA @ Nov 11 2007, 12:10)  Такое (равенство нулю части коэффициентов) получается, только если частоты начала среза/полного затухания точно симметричны относительно доли Fs. Если быть более точным, то для равенства нулю каждого второго коэффициента, необходимо чтобы эквивалентная шумовая полоса была равна половине частоты дискретизации. Таким же образом можно получить равенство нулю каждого третьего, четвертого и т.д. коэффициентов. Цитата Для фильтров децимации с выполнением условия Найквиста это заметного выигрыша не дает. Поясните, что Вы под этим подразумевали?
|
|
|
|
|
Nov 11 2007, 10:56
|
Местный
  
Группа: Свой
Сообщений: 462
Регистрация: 26-06-07
Пользователь №: 28 723

|
Цитата(rloc @ Nov 11 2007, 13:21)  Если быть более точным, то для равенства нулю каждого второго коэффициента, необходимо чтобы эквивалентная шумовая полоса была равна половине частоты дискретизации. Таким же образом можно получить равенство нулю каждого третьего, четвертого и т.д. коэффициентов. Да, это именно то, что я хотел сказать, просто не был уверен, что понятие шумовой (эквивалентной, эффективной) полосы будет воспринято правильно. Цитата(rloc @ Nov 11 2007, 13:21)  Поясните, что Вы под этим подразумевали? То, что при децимации в n раз для выполнения условия найквиста полное затухание должно наступить уже на частоте Fs/2n, тогда эффективная полоса заведомо меньше этой величины. Halfband не прокатит. А учитывая, что использование полосы хочется иметь побольше, скажем, 80-90%, то начало спада придется где-то на Fs/2.2...2.5n, а при этом нулевыми можно сделать будет только не более 10-20% коэффициентов.
|
|
|
|
|
Nov 11 2007, 11:18
|
Узкополосный широкополосник
     
Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462

|
Цитата(SIA @ Nov 11 2007, 13:56)  То, что при децимации в n раз для выполнения условия найквиста полное затухание должно наступить уже на частоте Fs/2n, тогда эффективная полоса заведомо меньше этой величины. Halfband не прокатит. А учитывая, что использование полосы хочется иметь побольше, скажем, 80-90%, то начало спада придется где-то на Fs/2.2...2.5n, а при этом нулевыми можно сделать будет только не более 10-20% коэффициентов. Это не совсем верный подход. Надо делать полосу режекции немного дальше, чем Fs/2n. Нет ничего страшного в том, что часть шума завернется, во многих случаях важнее отсутствие корреляции шумов.
|
|
|
|
|
Nov 11 2007, 12:05
|
Узкополосный широкополосник
     
Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462

|
Цитата(Alex65111 @ Nov 11 2007, 14:38)  Так завернется не только шум, а и сам сигнал. В моем случае исходная частота дискретизации 120кГц. Полезная, рабочая полоса до 30кГц. При этом потерять я могу максимум от 29 до 30. Тогда фильтр, у которого половина коэффициентов равна 0, Вам не подойдет. Из Ваших условий не понятно о каких данных идет речь (действительные/комплексные), 30кГц - это вся полоса или половина, 29-30 - что это за цифры (дБ, %, кГц)?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|