Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Фильтрация по Винеру при шумоподавлении и известном слепке шума
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Сергей Ст
Здравствуйте! Вопрос, который мне необходимо решить, уже поднимался наверное не раз и не два, но я нигде не нашел некоторых нюансов, которые и хотел бы выяснить. Решаю задачу шумоподавления для речевого сигнала при известном слепке шума. На данный момент применил метод спектрального вычитания.
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) - спектр мощности шума. А дальше я не понимаю точно как применять построенную передаточную характеристику фильтра Винера. Если прямо умножать компоненты спектра зашумленного сигнала на передаточную характеристику на данной частоте, то это будет полной аналогией спектральному вычитанию в то время как в статье английской прямо говорится что фильтрация по Винеру отличается от спектрального вычитания. Сталкивался ли кто-нибудь с применением фильтрации по Винеру в принципе? Именно с применением на практике.
andyp
Цитата(Сергей Ст @ Jun 5 2017, 18:17) *
... А дальше я не понимаю точно как применять построенную передаточную характеристику фильтра Винера. Если прямо умножать компоненты спектра зашумленного сигнала на передаточную характеристику на данной частоте, то это будет полной аналогией спектральному вычитанию в то время как в статье английской прямо говорится что фильтрация по Винеру отличается от спектрального вычитания. Сталкивался ли кто-нибудь с применением фильтрации по Винеру в принципе? Именно с применением на практике.


С винеровской фильтарцией на практике сталкивался в другом приложении, так что, думаю, могу ответить.

Ответ на выделенный вопрос есть в книжке
Saeed V. Vaseghi Advanced Digital Signal Processing and Noise Reduction, Second Edition. в параграфе 11.1.3

В методе спектрального вычитания, как его определяет автор, используются мгновенные оценки спектра смеси. В Вашем изводе этого метода используются усредненные по времени оценки СПМ смеси. В винеровском фильтре используются наперед известные СПМ, полученные усреднением по ансамблю. В случае стационарных эргодических процессов и достаточно маленького a Ваш фильтр и будет винеровским.

Сергей Ст
Цитата(andyp @ Jun 6 2017, 12:11) *
С винеровской фильтарцией на практике сталкивался в другом приложении, так что, думаю, могу ответить.

Ответ на выделенный вопрос есть в книжке
Saeed V. Vaseghi Advanced Digital Signal Processing and Noise Reduction, Second Edition. в параграфе 11.1.3

В методе спектрального вычитания, как его определяет автор, используются мгновенные оценки спектра смеси. В Вашем изводе этого метода используются усредненные по времени оценки СПМ смеси. В винеровском фильтре используются наперед известные СПМ, полученные усреднением по ансамблю. В случае стационарных эргодических процессов и достаточно маленького a Ваш фильтр и будет винеровским.

Спасибо Вам большое! Книгу скачиваю уже. Еще интересный вопрос возник в связи с встречающимися мнениями что перекрытие окон можно брать разным в том числе и больше 50 %.
Но ведь в этом случае сумма перекрывающихся окон на интервалах перекрытия не даст константу и, по идее, появится паразитная амплитудная модуляция. Я наверное что - то упускаю в своих рассуждениях ?
andyp
Цитата(Сергей Ст @ Jun 6 2017, 15:28) *
Еще интересный вопрос возник в связи с встречающимися мнениями что перекрытие окон можно брать разным в том числе и больше 50 %.
Но ведь в этом случае сумма перекрывающихся окон на интервалах перекрытия не даст константу и, по идее, появится паразитная амплитудная модуляция. Я наверное что - то упускаю в своих рассуждениях ?


Да нет - на мой взгляд вроде все верно. Наложение окна - процесс сродни гетеродинированию - линейное преобразование, зависящее от сдвига сигнала. В спектральной области получите свертку с оконной функцией, что дает лишние гармоники, как у модуляции. Глубина модуляции будет определяться видом окна - на участках перекрытия - удвоенные хвосты, на неперекрывающихся - собственно отсчеты оконной функции.
petrov
Цитата(andyp @ Jun 6 2017, 17:38) *
Да нет - на мой взгляд вроде все верно. Наложение окна - процесс сродни гетеродинированию - линейное преобразование, зависящее от сдвига сигнала. В спектральной области получите свертку с оконной функцией, что дает лишние гармоники, как у модуляции. Глубина модуляции будет определяться видом окна - на участках перекрытия - удвоенные хвосты, на неперекрывающихся - собственно отсчеты оконной функции.


ИМХО проще всё гораздо, окно - огибающая импульсной характеристики банка полосовых фильтров, перекрытие окон - децимация, объективно контролируем уровень алиасинга, а не слушаем "мнения".

https://ccrma.stanford.edu/~jos/sasp/STFT_H..._Window_75.html

STFT, Hamming Window, 75% Overlap

Perfect reconstruction
Oversampled by 4
Aliasing from side lobes only
Good channel isolation ( $ \approx 42$ dB)
Moderately robust to filter-bank modifications

This can be considered a ``telephone quality'' audio filter bank. It has been used many times to analyze/model speech signals.
andyp
Цитата(petrov @ Jun 6 2017, 17:59) *
ИМХО проще всё гораздо, окно - огибающая импульсной характеристики банка полосовых фильтров, перекрытие окон - децимация, объективно контролируем уровень алиасинга, а не слушаем "мнения".


Честно говоря, для меня вообще черная магия как это все работает там. ИХ синтезированного фильтра-шумодава всегда длиннее чем перекрывающаяся часть окон, так что алиасить будет по любому за счет замены линейной свертки на циркулярную и никакой overlap-add от этого избавиться не поможет. Доля энергии этих искажений в полосе сигнала зависит от меняющегося фильтра.

Я же только влияние окон на входной спектр описал.
Сергей Ст
Спасибо ! Я в данный момент провожу эксперименты с сигналом, представляющим из себя несколько синусоид с добавленным аддитивным шумом (белый шум классический).
Если брать окна с перекрытием обеспечивающим константу при их суммировании то паразитной амплитудной модуляции не возникает. Но я подозреваю что это потому что беру именно смесь синусоид а не речь?
Или же при перекрытии, не обеспечивающем константу нужно как - то еще дополнительно обрабатывать сигнал? Я читал на одном из форумов рекомендацию накладывать окно и после обратного FFT для кадра,
но при этом в моем случае получилась очень сильная паразитная амплитудная модуляция. Мне думается что многое зависит от производимых над спектром кадра преобразований до обратного перехода во временную область.
И еще хотел бы проконсультироваться по одной английской статье которую прилагаю. Там как раз идет речь о спектральном вычитании и фильтрации по Винеру. Но не совсем понятно чем у них чем первое отличается от второго,
хотя после объяснений andy я стал понимать лучше. Надо полагать что они делают усреднение некоторое зашумленного сигнала от кадра к кадру и оценивают его спектр мощности. В общем прилагаю статью... Буду рад любым комментариям!

Сергей Ст
Моя версия такова, что оценка по Винеру строится путем предварительного анализа всего файла сигнала и усреднения спектра мощности покадрово...
andyp
Цитата(Сергей Ст @ Jun 12 2017, 01:00) *
Моя версия такова, что оценка по Винеру строится путем предварительного анализа всего файла сигнала и усреднения спектра мощности покадрово...


Давайте так:

Во временной области:

Винеровский фильтр - это линейный фильтр с весами w (строка). Пусть отсчеты входной смеси это вектор х (столбец), выход - вектор у Тогда винеровское решение:
y = wx;
w = Rxx^-1 * Rxd (1)

Rxx - корреляционная матрица входной смеси,
Rxd - столбец кросс-корреляции входного и полезного сигнала.

Как видно из уравнений, для того, чтобы реализовать винеровский фильтр нужно знать (или как-то рассчитать) кросс-корреляцию полезного сигнала и входной смеси.

Ладно, теперь предположим, что матрица Rxx имеет циркулярную структуру (хотя она всего лишь эрмитова). Это равнозначно использованию циркулярной свертки вместо линейной. Тогда:

Rxx = F * Sxx * F^(-1); Rxx^(-1) = F^(-1)*Sxx^(-1) * F

F - матрица преобразования Фурье.
Sxx - диагональная с коэфф. являющимися СПМ входной смеси

Если умножить винеровское решение (1) на матрицу преобразования Фурье, то получим:

Fw = F*F^(-1) *Sxx^(-1) * F * Rxd

Коэф-ты фильтра Винера в частотной области: W = Fw

W= Sxx^(-1) * F*Rxd ; W = Sxx^(-1)*Sxd

Sxd - преобразование Фурье от вектора кросс-корреляции.

Для каждой дискретной частоты i имеем:
Y(i) = W(i) * X(i)
W(i) = Sxd(i) / Sxx(i);

Предполагая, что на входе аддитивная смесь полезного сигнала и помехи получаем

W(i) = (Sxx(i) - Sdd(i)) / Sxx(i);

Это и есть спектральное вычитание, когда вместо известного кросс-спектра полезного сигнала и входной смеси (как обычно при винеровской фильтрации) используют известную (или полученную каким-либо способом) СПМ помехи.

Здесь за кадром осталось наплевательство на фазу и прочие тонкости получения оценок соответствующих СПМ.

Вот, все что знал - сказал .
Сергей Ст
Спасибо за развернутый ответ! Похоже понял теперь, вся суть разных способов построения винеровской фильтрации в разных способах оценки СПМ кросс-спектра сигнала и помехи. Жаль только что в статье не отражен их способ нахождения оценок СПМ при классической винеровсокой фильтрации
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.