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

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

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

Сообщение SergeiSX » 05 июн 2017, 18:07

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

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

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

Сообщение Бахурин Сергей » 06 июн 2017, 22:21

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

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

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

Сообщение SergeiSX » 07 июн 2017, 09:37

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

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

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

Сообщение SergeiSX » 20 июн 2017, 11:31

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

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя