Перейти к содержанию
    

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

Здравствуйте! Вопрос, который мне необходимо решить, уже поднимался наверное не раз и не два, но я нигде не нашел некоторых нюансов, которые и хотел бы выяснить. Решаю задачу шумоподавления для речевого сигнала при известном слепке шума. На данный момент применил метод спектрального вычитания.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... А дальше я не понимаю точно как применять построенную передаточную характеристику фильтра Винера. Если прямо умножать компоненты спектра зашумленного сигнала на передаточную характеристику на данной частоте, то это будет полной аналогией спектральному вычитанию в то время как в статье английской прямо говорится что фильтрация по Винеру отличается от спектрального вычитания. Сталкивался ли кто-нибудь с применением фильтрации по Винеру в принципе? Именно с применением на практике.

 

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

 

Ответ на выделенный вопрос есть в книжке

Saeed V. Vaseghi Advanced Digital Signal Processing and Noise Reduction, Second Edition. в параграфе 11.1.3

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Ответ на выделенный вопрос есть в книжке

Saeed V. Vaseghi Advanced Digital Signal Processing and Noise Reduction, Second Edition. в параграфе 11.1.3

 

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

Спасибо Вам большое! Книгу скачиваю уже. Еще интересный вопрос возник в связи с встречающимися мнениями что перекрытие окон можно брать разным в том числе и больше 50 %.

Но ведь в этом случае сумма перекрывающихся окон на интервалах перекрытия не даст константу и, по идее, появится паразитная амплитудная модуляция. Я наверное что - то упускаю в своих рассуждениях ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще интересный вопрос возник в связи с встречающимися мнениями что перекрытие окон можно брать разным в том числе и больше 50 %.

Но ведь в этом случае сумма перекрывающихся окон на интервалах перекрытия не даст константу и, по идее, появится паразитная амплитудная модуляция. Я наверное что - то упускаю в своих рассуждениях ?

 

Да нет - на мой взгляд вроде все верно. Наложение окна - процесс сродни гетеродинированию - линейное преобразование, зависящее от сдвига сигнала. В спектральной области получите свертку с оконной функцией, что дает лишние гармоники, как у модуляции. Глубина модуляции будет определяться видом окна - на участках перекрытия - удвоенные хвосты, на неперекрывающихся - собственно отсчеты оконной функции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да нет - на мой взгляд вроде все верно. Наложение окна - процесс сродни гетеродинированию - линейное преобразование, зависящее от сдвига сигнала. В спектральной области получите свертку с оконной функцией, что дает лишние гармоники, как у модуляции. Глубина модуляции будет определяться видом окна - на участках перекрытия - удвоенные хвосты, на неперекрывающихся - собственно отсчеты оконной функции.

 

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

 

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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

Я же только влияние окон на входной спектр описал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо ! Я в данный момент провожу эксперименты с сигналом, представляющим из себя несколько синусоид с добавленным аддитивным шумом (белый шум классический).

Если брать окна с перекрытием обеспечивающим константу при их суммировании то паразитной амплитудной модуляции не возникает. Но я подозреваю что это потому что беру именно смесь синусоид а не речь?

Или же при перекрытии, не обеспечивающем константу нужно как - то еще дополнительно обрабатывать сигнал? Я читал на одном из форумов рекомендацию накладывать окно и после обратного FFT для кадра,

но при этом в моем случае получилась очень сильная паразитная амплитудная модуляция. Мне думается что многое зависит от производимых над спектром кадра преобразований до обратного перехода во временную область.

И еще хотел бы проконсультироваться по одной английской статье которую прилагаю. Там как раз идет речь о спектральном вычитании и фильтрации по Винеру. Но не совсем понятно чем у них чем первое отличается от второго,

хотя после объяснений andy я стал понимать лучше. Надо полагать что они делают усреднение некоторое зашумленного сигнала от кадра к кадру и оценивают его спектр мощности. В общем прилагаю статью... Буду рад любым комментариям!

 

1_s2.0_S1877050916300758_main.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Моя версия такова, что оценка по Винеру строится путем предварительного анализа всего файла сигнала и усреднения спектра мощности покадрово...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Моя версия такова, что оценка по Винеру строится путем предварительного анализа всего файла сигнала и усреднения спектра мощности покадрово...

 

Давайте так:

 

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

 

Винеровский фильтр - это линейный фильтр с весами 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);

 

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

 

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

 

Вот, все что знал - сказал .

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за развернутый ответ! Похоже понял теперь, вся суть разных способов построения винеровской фильтрации в разных способах оценки СПМ кросс-спектра сигнала и помехи. Жаль только что в статье не отражен их способ нахождения оценок СПМ при классической винеровсокой фильтрации

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...