реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Фильтрация по Винеру при шумоподавлении и известном слепке шума
Сергей Ст
сообщение Jun 5 2017, 15:17
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 27-01-16
Пользователь №: 90 226



Здравствуйте! Вопрос, который мне необходимо решить, уже поднимался наверное не раз и не два, но я нигде не нашел некоторых нюансов, которые и хотел бы выяснить. Решаю задачу шумоподавления для речевого сигнала при известном слепке шума. На данный момент применил метод спектрального вычитания.
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) - спектр мощности шума. А дальше я не понимаю точно как применять построенную передаточную характеристику фильтра Винера. Если прямо умножать компоненты спектра зашумленного сигнала на передаточную характеристику на данной частоте, то это будет полной аналогией спектральному вычитанию в то время как в статье английской прямо говорится что фильтрация по Винеру отличается от спектрального вычитания. Сталкивался ли кто-нибудь с применением фильтрации по Винеру в принципе? Именно с применением на практике.
Go to the top of the page
 
+Quote Post
andyp
сообщение Jun 6 2017, 08:11
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



Цитата(Сергей Ст @ Jun 5 2017, 18:17) *
... А дальше я не понимаю точно как применять построенную передаточную характеристику фильтра Винера. Если прямо умножать компоненты спектра зашумленного сигнала на передаточную характеристику на данной частоте, то это будет полной аналогией спектральному вычитанию в то время как в статье английской прямо говорится что фильтрация по Винеру отличается от спектрального вычитания. Сталкивался ли кто-нибудь с применением фильтрации по Винеру в принципе? Именно с применением на практике.


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

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

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

Go to the top of the page
 
+Quote Post
Сергей Ст
сообщение Jun 6 2017, 12:28
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 27-01-16
Пользователь №: 90 226



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

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

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

Спасибо Вам большое! Книгу скачиваю уже. Еще интересный вопрос возник в связи с встречающимися мнениями что перекрытие окон можно брать разным в том числе и больше 50 %.
Но ведь в этом случае сумма перекрывающихся окон на интервалах перекрытия не даст константу и, по идее, появится паразитная амплитудная модуляция. Я наверное что - то упускаю в своих рассуждениях ?
Go to the top of the page
 
+Quote Post
andyp
сообщение Jun 6 2017, 14:38
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



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


Да нет - на мой взгляд вроде все верно. Наложение окна - процесс сродни гетеродинированию - линейное преобразование, зависящее от сдвига сигнала. В спектральной области получите свертку с оконной функцией, что дает лишние гармоники, как у модуляции. Глубина модуляции будет определяться видом окна - на участках перекрытия - удвоенные хвосты, на неперекрывающихся - собственно отсчеты оконной функции.
Go to the top of the page
 
+Quote Post
petrov
сообщение Jun 6 2017, 14:59
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(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.
Go to the top of the page
 
+Quote Post
andyp
сообщение Jun 6 2017, 17:49
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



Цитата(petrov @ Jun 6 2017, 17:59) *
ИМХО проще всё гораздо, окно - огибающая импульсной характеристики банка полосовых фильтров, перекрытие окон - децимация, объективно контролируем уровень алиасинга, а не слушаем "мнения".


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

Я же только влияние окон на входной спектр описал.
Go to the top of the page
 
+Quote Post
Сергей Ст
сообщение Jun 7 2017, 07:25
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 27-01-16
Пользователь №: 90 226



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


Прикрепленные файлы
Прикрепленный файл  1_s2.0_S1877050916300758_main.pdf ( 169.47 килобайт ) Кол-во скачиваний: 21
 
Go to the top of the page
 
+Quote Post
Сергей Ст
сообщение Jun 11 2017, 22:00
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 27-01-16
Пользователь №: 90 226



Моя версия такова, что оценка по Винеру строится путем предварительного анализа всего файла сигнала и усреднения спектра мощности покадрово...
Go to the top of the page
 
+Quote Post
andyp
сообщение Jun 12 2017, 15:48
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



Цитата(Сергей Ст @ 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);

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

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

Вот, все что знал - сказал .
Go to the top of the page
 
+Quote Post
Сергей Ст
сообщение Jun 12 2017, 20:52
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 27-01-16
Пользователь №: 90 226



Спасибо за развернутый ответ! Похоже понял теперь, вся суть разных способов построения винеровской фильтрации в разных способах оценки СПМ кросс-спектра сигнала и помехи. Жаль только что в статье не отражен их способ нахождения оценок СПМ при классической винеровсокой фильтрации
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th June 2025 - 20:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01464 секунд с 7
ELECTRONIX ©2004-2016