ДПФ-фильтрация

Predlegion
Сообщения: 34
Зарегистрирован: 15 апр 2011, 18:02

Re: ДПФ-фильтрация

Сообщение Predlegion »

Возвращаясь все-же в вопросу ДПФ фильтрации.

Т.е я так понимаю из обсуждений в данном топике,что простое обнуление частот в ДПФ ,которые необходимо подавить ведет к длинным переходным процессам и прочим негативным факторам, связанных с тем,что:
а) Сигнал конечен во времени
б) Простое обнуление массива ДПФ соответствует циклической свертке,в то время как фильтрация это линейная свертка

Тогда рассмотрим следующую ситуацию:

Пусть имеется фильтр с идеальной АЧХ, т.е в полосе прозрачности коэф.передачи равен 1 , в полосе заграждения все частоты обнулены.Размер сигнала 2048, размер фильтра 512.
Дополним нулями массив сигнала и массив фильтра так,чтобы их размеры стали равны, но не меньше 2048+512, как написано в предыдущих постах.
Теперь перемножим массивы с идеальной АЧХ и сигнала.
Теперь уже перемножение(или в данном случае обнуление) соответствует линейной свертке.

Будут ли наблюдаться длинные переходные процессы в данном случае?
Будет ли такой БПФ-фильтр эквивалентен КИХ-фильтру порядка 512 без сглаживающего окна?
Т.е если такой фильтр эквивалентен или даже лучше КИХ фильтра,то это существенно позволит снизить вычислительные затраты-вместо комплексных умножений выполняет обычные обнуления.

petrov
Сообщения: 30
Зарегистрирован: 31 янв 2011, 13:02

Re: ДПФ-фильтрация

Сообщение petrov »

Predlegion писал(а):Возвращаясь все-же в вопросу ДПФ фильтрации.
Тогда рассмотрим следующую ситуацию:

Пусть имеется фильтр с идеальной АЧХ, т.е в полосе прозрачности коэф.передачи равен 1 , в полосе заграждения все частоты обнулены.Размер сигнала 2048, размер фильтра 512.
Такой фильтр имеет бесконечную ИX.
Predlegion писал(а):Дополним нулями массив сигнала и массив фильтра так,чтобы их размеры стали равны, но не меньше 2048+512, как написано в предыдущих постах.
Теперь перемножим массивы с идеальной АЧХ и сигнала.
А с чего бы ей быть идеальной? Умножать нужно на FFT от ИХ дополненной нулями.
Predlegion писал(а): Теперь уже перемножение(или в данном случае обнуление) соответствует линейной свертке.
"Обнуление частот" не является фильтрацией, только быстрая свёртка.

Predlegion
Сообщения: 34
Зарегистрирован: 15 апр 2011, 18:02

Re: ДПФ-фильтрация

Сообщение Predlegion »

"Обнуление частот" не является фильтрацией, только быстрая свёртка.
Вот на этом я и акцентирую внимание.

Обычное обнуление частот в спектре,если я конечно не ошибаюсь, соответствует циклической свертке во временной области.Т.е если например размер ДПФ сигнала 1024, и если мы в этом спектре просто обнулим отсчеты начиная с частоты среза,то это действительно получиться циклическая свертка.

А я предлагаю сначала дополнить ДПФ сигнала до линейной свертки,т.е искусственно добавить еще 1023 нулевых отсчета(т.е в результате получиться массив из 1024+1023=2047 отсчетов). И уже в именно этом массиве мы обнулим все частоты начиная с частоты среза . Тогда данная операция будет соответствовать линейной свертке.
И тогда, в теории, данная операция должна соответствовать линейной свертке сигнала с импульсной характеристикой фильтра,причем эта импульсная характеристика в частотной области будет иметь вид ступеньки т.е до частоты среза 1(когда мы ничего не делали) и после частоты среза 0(когда мы все обнулили) .

Я может конечно чего-то недопонимаю, но в теории вроде бы так должно быть...

ivan219
Сообщения: 61
Зарегистрирован: 09 май 2011, 16:39

Re: ДПФ-фильтрация

Сообщение ivan219 »

Нет у вас всё равно будет циклическая свёртка.
Так как вид прямоугольного окна в спектре вида (111110000000) достижим только при длине импульсной характеристики фильтра равной размеру БПФ блока. И у вас в итоге получится выходной сигнал длинной 2048 состоящий из свёртки исходного сигнала длинной 1024 и импульсной характеристики длинной 2048.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: ДПФ-фильтрация

Сообщение Бахурин Сергей »

А я предлагаю сначала дополнить ДПФ сигнала до линейной свертки,т.е искусственно добавить еще 1023 нулевых отсчета(т.е в результате получиться массив из 1024+1023=2047 отсчетов). И уже в именно этом массиве мы обнулим все частоты начиная с частоты среза . Тогда данная операция будет соответствовать линейной свертке.
И тогда, в теории, данная операция должна соответствовать линейной свертке сигнала с импульсной характеристикой фильтра,причем эта импульсная характеристика в частотной области будет иметь вид ступеньки т.е до частоты среза 1(когда мы ничего не делали) и после частоты среза 0(когда мы все обнулили) .
Добавлять нули в ДПФ не верно. Вы должны добавить нули в импульсную характеристику фильтра и сигнала одновременно. В вашем случае будет циклическая свертка сигнала 2048 (половина из которых нули) отсчетов и импульсной характеристики фильтра длиной 2048 (которую вы даже в глаза не видели, поскольку обнулили в частотной области спектр сигнала). В результате ничего хорошего из этого не получится, так как вы не добавляли нулей в импульсную характеристику во временной области.

Predlegion
Сообщения: 34
Зарегистрирован: 15 апр 2011, 18:02

Re: ДПФ-фильтрация

Сообщение Predlegion »

ОК,спасибо, но все равно нужно будет промоделировать на досуге.

Ответить