Шумоподавление.Спектральные вычитания
Добавлено: 03 мар 2013, 19:47
Всем привет.
Существует известная проблема - подавление стационарного шума в аудиосигнале.
Реализовал алгоритм спектрального вычитания,который состоит из 4 этапов:
1) Усредненное оценивание спектра фонового шума.
2) Разложение каждого поступающего фрейма в спектр.
3) Вычитание спектра шума из спектра сигнала
4)Обратное преобразование Фурье для возврата во временную область.
После описанных выше действий шум подавляется, однако становятся слышны какие-то щелчки, причем в основном в периоды речи .
Эти щелчки я связываю с блочностью обработки данных. Т.е фактически при спектральном вычитании мы выполняем циклическую свертку вместо линейной.
В связи с этим 2 вопроса:
1) Правильно ли я понимаю механизм возникновения щелчков?
2) Каким образом можно в данной ситуации сделать линейную свертку вместо циклической, если импульсная характеристика во временной области неизвестна? Сгенерировать ее методом частотной выборки по заданному спектру амлитуд и фаз, наложить весовое окно во временной области и затем уже добивать нулями до размера линейной свертки и фильтровать через FFT?
Существует известная проблема - подавление стационарного шума в аудиосигнале.
Реализовал алгоритм спектрального вычитания,который состоит из 4 этапов:
1) Усредненное оценивание спектра фонового шума.
2) Разложение каждого поступающего фрейма в спектр.
3) Вычитание спектра шума из спектра сигнала
4)Обратное преобразование Фурье для возврата во временную область.
После описанных выше действий шум подавляется, однако становятся слышны какие-то щелчки, причем в основном в периоды речи .
Эти щелчки я связываю с блочностью обработки данных. Т.е фактически при спектральном вычитании мы выполняем циклическую свертку вместо линейной.
В связи с этим 2 вопроса:
1) Правильно ли я понимаю механизм возникновения щелчков?
2) Каким образом можно в данной ситуации сделать линейную свертку вместо циклической, если импульсная характеристика во временной области неизвестна? Сгенерировать ее методом частотной выборки по заданному спектру амлитуд и фаз, наложить весовое окно во временной области и затем уже добивать нулями до размера линейной свертки и фильтровать через FFT?