Фильтрация по Винеру при шумоподавлении и известном слепке шума

SergeiSX
Сообщения: 3
Зарегистрирован: 05 июн 2017, 17:56

Фильтрация по Винеру при шумоподавлении и известном слепке шума

Сообщение SergeiSX »

Здравствуйте! Вопрос, который мне необходимо решить, уже поднимался наверное не раз и не два, но я нигде не нашел некоторых нюансов, которые и хотел бы выяснить. Решаю задачу шумоподавления для речевого сигнала при известном слепке шума. На данный момент применил метод спектрального вычитания.
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) - спектр мощности шума. А дальше я не понимаю точно как применять построенную передаточную характеристику фильтра Винера. Если прямо умножать компоненты спектра зашумленного сигнала на передаточную характеристику на данной частоте, то это будет полной аналогией спектральному вычитанию в то время как в статье английской прямо говорится что фильтрация по Винеру отличается от спектрального вычитания. Сталкивался ли кто-нибудь с применением фильтрации по Винеру в принципе? Именно с применением на практике.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 945
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Фильтрация по Винеру при шумоподавлении и известном слепке шума

Сообщение Бахурин Сергей »

Винеровская фильтрация выполняется при условии оценки корреляционной матрицы сигнала и вектора взаимной корреляции сигнала и помехи. В результате можно построить фильтр, который обеспечивает максимум отношения сигнал-шум. Это может быть гораздо эффективнее чем просто фильтровать полосу. Однако для оценки корреляционной матрицы необходимо иметь чистый сигнал без шума. При этом делать все это в частотной области совсем не обязательно. Можно и во временной. Но чтобы понять применимость фильтра винера необходимо понять:
что такое у вас известный слепок шума?
Есть ли возможность получить исходный сигнал без шума (или может быть есть возможность оценки его корреляционной матрицы)?

SergeiSX
Сообщения: 3
Зарегистрирован: 05 июн 2017, 17:56

Re: Фильтрация по Винеру при шумоподавлении и известном слепке шума

Сообщение SergeiSX »

Здравствуйте, Сергей! Я понимаю что Вы имеете в виду классическое решение задачи во временной области. Сейчас я моделирую алгоритм, но в дальнейшем он будет выполняться в реальном времени при наличии только одного канала приема, то есть чистого сигнала увы не будет. Под слепком шума я понимаю некоторую реализацию стационарного шума в моем канале приема, заранее записанную и имеющуюся в наличии при осуществлении фильтрации. Более того, я нашел одну английскую статью (прилагаю ее во вложении), в которой предлагается делать фильтрацию по Винеру с рекурсивной оценкой шума причем в частотной области. Но там не очень понятно чем их вариант фильтрации по Винеру отличается от обычного спектрального вычитания. Поэтому я и запутался слегка. Может быть Вы подскажете в чем же разница? Я честно говоря не рассматривал классический алгоритм во временной области, но есть еще вариант адаптивной фильтрации по Винеру именно во временной области. Это в другой статье. Но я бы вначале хотел разобраться с классическим алгоритмом.
Вложения
1-s2.0-S1877050916300758-main.zip
статья по удалению шума
(123.52 КБ) 119 скачиваний

SergeiSX
Сообщения: 3
Зарегистрирован: 05 июн 2017, 17:56

Re: Фильтрация по Винеру при шумоподавлении и известном слепке шума

Сообщение SergeiSX »

Постепенно пришло понимание что в принципе спектральное вычитание является частным случаем оптимальной винеровской фильтрации когда СПМ сигнала оценивается как спектр мощности смеси минус спектр мощности шума. Но вот как в статье оценивают СПМ сигнала при винеровской фильтрации отличной от спектрального вычитания пока что непонятно. Может быть это усредненный спектр мощности или периодограмма. На этот счет никаких комментариев(

Ответить