Здравствуйте! Вопрос, который мне необходимо решить, уже поднимался наверное не раз и не два, но я нигде не нашел некоторых нюансов, которые и хотел бы выяснить. Решаю задачу шумоподавления для речевого сигнала при известном слепке шума. На данный момент применил метод спектрального вычитания.
1. Разбиваю сигнал на перекрывающиеся кадры. (Перекрытие 50%)
2. Для очередного кадра применяю оконное преобразование с окном Ханна.
3. Оставляю только речевую полосу частот (300 - 3400 Гц.)
4. Произвожу сглаживание полученного спектра (S(f, t) = S(f, t-1) + a*(X(f, t) - S(f, t -1)) для подавления "музыкальных" искажений.
где S(f, t) - результирующий сглаженный спектр, S(f, t - 1) - сглаженный спектр при обработке предыдущего кадра, X(f, t) - спектр текущего кадра.
5. Вычитаю из получившегося спектра очередного кадра сигнала спектр слепка шума, усредненный по количеству полных кадров шума в слепке.
6. Произвожу обратное преобразование Фурье для полученного спектра кадра.
7. Накладываю полученный временной кадр сигнала на конечный буфер методом сложения с перекрытием.
Помимо спектрального вычитания при шумоподавлении можно применять фильтрацию по Винеру. И я встречал упоминания подобного алгоритма покадровой обработки но с применением фильтра Винера. Насколько я понимаю в пределах кадра сигнал и шум можно считать стационарными случайными процессами (шум в принципе в моей постановке задачи стационарный случайный процесс). Тогда передаточная характеристика фильтра Винера HW(f)= (Psn(f) - Pn(f)) / Psn(f), где Psn(f) спектр мощности смеси сигнала и шума, Pn(f) - спектр мощности шума. А дальше я не понимаю точно как применять построенную передаточную характеристику фильтра Винера. Если прямо умножать компоненты спектра зашумленного сигнала на передаточную характеристику на данной частоте, то это будет полной аналогией спектральному вычитанию в то время как в статье английской прямо говорится что фильтрация по Винеру отличается от спектрального вычитания. Сталкивался ли кто-нибудь с применением фильтрации по Винеру в принципе? Именно с применением на практике.
Фильтрация по Винеру при шумоподавлении и известном слепке шума
- Бахурин Сергей
- Администратор
- Сообщения: 892
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Фильтрация по Винеру при шумоподавлении и известном слепке шума
Винеровская фильтрация выполняется при условии оценки корреляционной матрицы сигнала и вектора взаимной корреляции сигнала и помехи. В результате можно построить фильтр, который обеспечивает максимум отношения сигнал-шум. Это может быть гораздо эффективнее чем просто фильтровать полосу. Однако для оценки корреляционной матрицы необходимо иметь чистый сигнал без шума. При этом делать все это в частотной области совсем не обязательно. Можно и во временной. Но чтобы понять применимость фильтра винера необходимо понять:
что такое у вас известный слепок шума?
Есть ли возможность получить исходный сигнал без шума (или может быть есть возможность оценки его корреляционной матрицы)?
что такое у вас известный слепок шума?
Есть ли возможность получить исходный сигнал без шума (или может быть есть возможность оценки его корреляционной матрицы)?
Re: Фильтрация по Винеру при шумоподавлении и известном слепке шума
Здравствуйте, Сергей! Я понимаю что Вы имеете в виду классическое решение задачи во временной области. Сейчас я моделирую алгоритм, но в дальнейшем он будет выполняться в реальном времени при наличии только одного канала приема, то есть чистого сигнала увы не будет. Под слепком шума я понимаю некоторую реализацию стационарного шума в моем канале приема, заранее записанную и имеющуюся в наличии при осуществлении фильтрации. Более того, я нашел одну английскую статью (прилагаю ее во вложении), в которой предлагается делать фильтрацию по Винеру с рекурсивной оценкой шума причем в частотной области. Но там не очень понятно чем их вариант фильтрации по Винеру отличается от обычного спектрального вычитания. Поэтому я и запутался слегка. Может быть Вы подскажете в чем же разница? Я честно говоря не рассматривал классический алгоритм во временной области, но есть еще вариант адаптивной фильтрации по Винеру именно во временной области. Это в другой статье. Но я бы вначале хотел разобраться с классическим алгоритмом.
- Вложения
-
- 1-s2.0-S1877050916300758-main.zip
- статья по удалению шума
- (123.52 КБ) 84 скачивания
Re: Фильтрация по Винеру при шумоподавлении и известном слепке шума
Постепенно пришло понимание что в принципе спектральное вычитание является частным случаем оптимальной винеровской фильтрации когда СПМ сигнала оценивается как спектр мощности смеси минус спектр мощности шума. Но вот как в статье оценивают СПМ сигнала при винеровской фильтрации отличной от спектрального вычитания пока что непонятно. Может быть это усредненный спектр мощности или периодограмма. На этот счет никаких комментариев(
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость