Возвращаясь все-же в вопросу ДПФ фильтрации.
Т.е я так понимаю из обсуждений в данном топике,что простое обнуление частот в ДПФ ,которые необходимо подавить ведет к длинным переходным процессам и прочим негативным факторам, связанных с тем,что:
а) Сигнал конечен во времени
б) Простое обнуление массива ДПФ соответствует циклической свертке,в то время как фильтрация это линейная свертка
Тогда рассмотрим следующую ситуацию:
Пусть имеется фильтр с идеальной АЧХ, т.е в полосе прозрачности коэф.передачи равен 1 , в полосе заграждения все частоты обнулены.Размер сигнала 2048, размер фильтра 512.
Дополним нулями массив сигнала и массив фильтра так,чтобы их размеры стали равны, но не меньше 2048+512, как написано в предыдущих постах.
Теперь перемножим массивы с идеальной АЧХ и сигнала.
Теперь уже перемножение(или в данном случае обнуление) соответствует линейной свертке.
Будут ли наблюдаться длинные переходные процессы в данном случае?
Будет ли такой БПФ-фильтр эквивалентен КИХ-фильтру порядка 512 без сглаживающего окна?
Т.е если такой фильтр эквивалентен или даже лучше КИХ фильтра,то это существенно позволит снизить вычислительные затраты-вместо комплексных умножений выполняет обычные обнуления.
ДПФ-фильтрация
Re: ДПФ-фильтрация
Такой фильтр имеет бесконечную ИX.Predlegion писал(а):Возвращаясь все-же в вопросу ДПФ фильтрации.
Тогда рассмотрим следующую ситуацию:
Пусть имеется фильтр с идеальной АЧХ, т.е в полосе прозрачности коэф.передачи равен 1 , в полосе заграждения все частоты обнулены.Размер сигнала 2048, размер фильтра 512.
А с чего бы ей быть идеальной? Умножать нужно на FFT от ИХ дополненной нулями.Predlegion писал(а):Дополним нулями массив сигнала и массив фильтра так,чтобы их размеры стали равны, но не меньше 2048+512, как написано в предыдущих постах.
Теперь перемножим массивы с идеальной АЧХ и сигнала.
"Обнуление частот" не является фильтрацией, только быстрая свёртка.Predlegion писал(а): Теперь уже перемножение(или в данном случае обнуление) соответствует линейной свертке.
-
- Сообщения: 34
- Зарегистрирован: 15 апр 2011, 18:02
Re: ДПФ-фильтрация
Вот на этом я и акцентирую внимание."Обнуление частот" не является фильтрацией, только быстрая свёртка.
Обычное обнуление частот в спектре,если я конечно не ошибаюсь, соответствует циклической свертке во временной области.Т.е если например размер ДПФ сигнала 1024, и если мы в этом спектре просто обнулим отсчеты начиная с частоты среза,то это действительно получиться циклическая свертка.
А я предлагаю сначала дополнить ДПФ сигнала до линейной свертки,т.е искусственно добавить еще 1023 нулевых отсчета(т.е в результате получиться массив из 1024+1023=2047 отсчетов). И уже в именно этом массиве мы обнулим все частоты начиная с частоты среза . Тогда данная операция будет соответствовать линейной свертке.
И тогда, в теории, данная операция должна соответствовать линейной свертке сигнала с импульсной характеристикой фильтра,причем эта импульсная характеристика в частотной области будет иметь вид ступеньки т.е до частоты среза 1(когда мы ничего не делали) и после частоты среза 0(когда мы все обнулили) .
Я может конечно чего-то недопонимаю, но в теории вроде бы так должно быть...
Re: ДПФ-фильтрация
Нет у вас всё равно будет циклическая свёртка.
Так как вид прямоугольного окна в спектре вида (111110000000) достижим только при длине импульсной характеристики фильтра равной размеру БПФ блока. И у вас в итоге получится выходной сигнал длинной 2048 состоящий из свёртки исходного сигнала длинной 1024 и импульсной характеристики длинной 2048.
Так как вид прямоугольного окна в спектре вида (111110000000) достижим только при длине импульсной характеристики фильтра равной размеру БПФ блока. И у вас в итоге получится выходной сигнал длинной 2048 состоящий из свёртки исходного сигнала длинной 1024 и импульсной характеристики длинной 2048.
- Бахурин Сергей
- Администратор
- Сообщения: 1114
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: ДПФ-фильтрация
Добавлять нули в ДПФ не верно. Вы должны добавить нули в импульсную характеристику фильтра и сигнала одновременно. В вашем случае будет циклическая свертка сигнала 2048 (половина из которых нули) отсчетов и импульсной характеристики фильтра длиной 2048 (которую вы даже в глаза не видели, поскольку обнулили в частотной области спектр сигнала). В результате ничего хорошего из этого не получится, так как вы не добавляли нулей в импульсную характеристику во временной области.А я предлагаю сначала дополнить ДПФ сигнала до линейной свертки,т.е искусственно добавить еще 1023 нулевых отсчета(т.е в результате получиться массив из 1024+1023=2047 отсчетов). И уже в именно этом массиве мы обнулим все частоты начиная с частоты среза . Тогда данная операция будет соответствовать линейной свертке.
И тогда, в теории, данная операция должна соответствовать линейной свертке сигнала с импульсной характеристикой фильтра,причем эта импульсная характеристика в частотной области будет иметь вид ступеньки т.е до частоты среза 1(когда мы ничего не делали) и после частоты среза 0(когда мы все обнулили) .
-
- Сообщения: 34
- Зарегистрирован: 15 апр 2011, 18:02
Re: ДПФ-фильтрация
ОК,спасибо, но все равно нужно будет промоделировать на досуге.