Перейти к содержанию

#Andre

Новичок
  • Публикаций

    3
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. ЦитатаИ кто Вам сказал, что вы должны наблюдать полное сглаживание СТУПЕНЕЙ?. При подаче на вход фильтра ступенчатого сигнала, на выходе Вы увидите переходную ф-ю фильтра. Для КИХ ФНЧ это и будет скачок с длительностью 2/L (примерно) и осцилляциями перед и после скачка. Может быть вы правы. Признаюсь: меня смущает насколько W=FFT(IFFT( R ), 0..0) (1) не похожа на простую в трактовке R. Да, эти спектры разного разрешения, но чтобы настолько разниться формой! В этой связи у меня еще вопрос. В процессе быстрой свертки мы имеем дармовую возможность копить спектральную оценку входного сигнала S. Это привлекательно с точки зрения адаптивной фильтрации, когда S влияет или подменяет R . Но S такой же размерности как и W. И, если ошибки нет, и переход R->W корректен (1), то как выглядит преобразование S -> R? Нет указаний .
  2. ЦитатаНичего вобщем-то непонятно. Рисунки(графики) в студию. Вообще не понял, что же Вы там дополнили нулями в процессе непрерывной свертки... хм... P.S.: и вообще, не мешало бы понакрутить ухи тому кто первым в литературе орисал трюк с дополнением нулями и не удостоился дальше растолковать, что область его правильных решений это очень частный случай... Секционированная свертка,алгоритм перекрытия с накоплением: Режем входную последовательность x на перекрывающиеся куски xi. Далее yi=IFFT(FFT(xi)*W), W=FFT(h || 0...0), где h - импульсная функция фильтра. Из полученного yi отбрасываем бракованный кусок, а остаток на выход. Повторяем до бесконечности. Получаем линейную свертку h*x. Дополнение нулями позволяет обыграть тот факт, что просто IFFT(FFT(xi)*FFT(h)) есть циклическая свертка. Нам же нужна линейная. Вроде классика. Ухи крутить - не допрыгнуть. ЦитатаПредполагаю, что в исходной проблеме наверняка в алгоритме или в реализации неточность. Реализация никогда не работала, а ответ случайно получался удобоваримый при отладке. Какая случайность? При тестировании выбираю случайный сигнал и случайную же имульсную ф-ю и сравниваю истинную свертку и секционированную. Раз за разом дельта 10е-12. Нет. У меня сомнение- правильно ли я делаю, когда исходную передаточную ф-ю R употребляю так: W=FFT(IFFT( R ) || 0...0)
  3. Здравствуйте! Если кто сталкивался - помогите. Задача: ПОТОКОВАЯ обработка сигнала длинным фильтром с заданной ПЕРЕДАТОЧНОЙ ф-й. Решение: БПФ, Секционированная свертка, алгоритм перекрытия с накоплением (Нусбаумер,Богнер,Блейхут). Длина фильтра L. Выбранное перекрытие 2. Отработал алгоритм в MathCad: задал произвольную ИМПУЛЬСНУЮ ф-ю, удвоил дополнив нулями и через БПФ вычислил весовую функцию преобразования (L комлексных чисел) (1). На длинном (10 секций) тесте (набор ступенек) убедился, что моя свертка и классическая линейная - совпадают. Теперь по условию задачи задаю нужную ПЕРЕДАТОЧНУЮ ф-ю (L/2 комлексных чисел). Через ОБПФ получаю ИМПУЛЬСНУЮ ф-ю (L вещественных чисел), дополняю нулями и далее по (1). Все опять совпадает кроме главного: В качестве тестовой ПЕРЕДАТОЧНОЙ ф-и выбрал ФНЧ т.е. вещественную последовательность вида 1,1...1,0,0.....0. При малой длинне единичного интервала (полоса пропускания) должен визуально наблюдать сглаживание ступенй, а этого нет. Крутые ступени и дребезг на переходах . Где ошибаюсь? Заранее спасибо.