развертка (deconvolution)
- From
- Evgenij Masherov (2:5020/175.2)
- To
- Aleksey Vaneev ()
- Date
- 2003-03-21T10:03:04Z
- Area
- RU.ALGORITHMS
From: "Evgenij Masherov" <EMasherow@nsi.ru>
Thu Mar 20 2003 22:26, Aleksey Vaneev wrote to Evgenij Masherov:
EM>> И еще. Деление спектров = умножение на обратный = свертка. Циклическая
EM>> свертка. Т.е. конец наложится на начало. Надо дополнять нулями не
EM>> меньше, чем было в исходном сигнале. Лишнее, после восстановления,
EM>> отбрасывать.
AV> Да, понятно. Только это все равно не помогает.
AV> А что есть обратный спектр? Как его вычислить можно?
Величина обратная исходному спектру.
EM>> Эээ... Численно равен и не похож на слух??? Мистика...
EM>> Может, что-то в аппаратуре воспроизведения глючит?
EM>> А некорректность по Адамару - то, что требует загрублять задачу, а не
EM>> выжимать максимум...
AV> Да, еще один момент. Восстановить то, что ожидалось, все же удалось. Но
AV> не понимаю - почему. К слову, кроме 12 секундного тестового тона был
AV> записан также 6 секундный.
AV> Я сделал простую вещь - деконволюцию обоих этих откликов. Получил два
AV> "неправильных" отклика. Потом допустил, что отклик комнаты у них
AV> одинаковый, и поделил отклик, полученный от 12 секундного тона на отклик
AV> 6 секундного тона. В результате получил тот самый паразитный импульс.
AV> Потом отклик от 6с тона поделил на него и получил практически идеальный
AV> искомый отклик (с единичным первым импульсом).
AV> Вот теперь думаю, почему это сработало. Правда, осталась еще одна
AV> проблема - в первоначально полученном 6с отклике присутствует "обратный
AV> образ" тестового тона - то есть синусоида с понижающейся частотой. На
AV> циклическое наложение непохоже - пробовал дополнять нулями с избытком.
AV> Подозреваю, проблема опять из-за искажений.
Так может, паразитный импульс и есть отклик комнаты? Можно чуть подробнее
методику?
AV> Решил бороться с этой проблемой фильтрацией. Кстати, а таким образом
AV> можно фильтровать адаптивно с помощью FFT? Беру фильтруемый блок,
AV> накладываю на него окно -> БПФ -> анализ и фильтрация (по ячейкам БПФ) ->
AV> обратное БПФ и вуаля? Окно таким образом выбирается, чтобы каждый новый
AV> блок накладывался с 50% покрытием на предыдущий. Думаю, подавители шумов
AV> также работают?
Тоже дополнять нулями надо.
AV> Да, еще по ходу дела - ты не знаешь алгоритм свертки overlap-and-save?
AV> Где-то я встречал краткое описание, но оно было слишком для меня кратким.
У Гольденберга, Матюшкина и Поляка, например. Есть в Сети dspbook.km.ru,
например.
Вкратце - дополняем свертываемые отрезки (секции сигнала) нулями в равном
количестве, БПФ, перемножаем, обратное БПФ. Складываем первую половину
полученного с сохраненной от предыдущего шага второй половиной. Вторую
половину этого шага запоминаем.
Евгений Машеров АКА СанитарЖеня
--- ifmail v.2.15dev5
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)