УДК 621.371.542
И.Н. Липатов
Пермский государственный технический университет
ИСПОЛЬЗОВАНИЕ АДАПТИВНОГО ФИЛЬТРА, ПОСТРОЕННОГО НА ОСНОВЕ ЛИНЕЙНОЙ НЕЙРОННОЙ СЕТИ, ДЛЯ ВОССТАНОВЛЕНИЯ ИСТИННОГО РЕЧЕВОГО СИГНАЛА ИЗ ЗАШУМЛЕННОГО РЕЧЕВОГО СИГНАЛА
Излагается способ построения адаптивного фильтра (АФ) на основе линейной нейронной сети (ЛНС). ЛНС используется для восстановления истинного речевого сигнала, то есть рассматривается задача подавления помехи, искажающей полезный речевой сигнал, с помощью АФ, построенного на основе ЛНС. Выполнено моделирование речевого сигнала с помощью уравнения нелинейной регрессии третьего порядка. ЛНС была смоделирована на ЦВМ. Приводятся результаты моделирования работы ЛНС. Получена оценка среднеквадратического значения ошибки восстановления истинного речевого сигнала из зашумленного речевого сигнала.
Задача подавления шумов возникает в следующей ситуации. Когда пилот говорит в микрофон, шум двигателя в кабине добавляется к голосовому сигналу и пассажиры слышат речь с искажениями. Требуется восстановить речь пилота, удалив из нее звуки шумов двигателя. Для решения этой задачи построим АФ на основе ЛНС, полагая, что в нашем распоряжении имеются записи шумов двигателя (рис. 1) [1].
Рис. 1. Схема прохождения сигналов в задаче восстановления речевого сигнала
На рис. 1 приняты следующие обозначения: х[г] = х(^);
($1 = , г = 1,п2) - полезный речевой сигнал (голос пилота);
п[г] = п ) - шум двигателя; п[г] = ) - возмущающий шум (поме-
ха); т[г] = т ) - полезный речевой сигнал (голос пилота), смешанный с шумом; ~[г] = а(^) - отфильтрованный шум для удаления помехи; х[г] = х(^.) - восстановленный сигнал или оценка сигнала х[г]; ^ - интервал дискретности измерений сигнала х ^); t - время.
Используя ЛНС, построим такой фильтр, который позволит удалить шум п[г], г = 1,п2 из зашумленного сигнала т[г]. Из рис. 1 следует, что голос пилота х[г] смешан с помехой п1[г] от шумов двигателя, которая формируется фильтром шума по известным записям сигнала п[г]. Зашумленный сигнал т[г] моделирует искаженную речь пилота. Задача состоит в том, чтобы с помощью АФ, реализованного на основе ЛНС, сформировать такую модель шума ~[г], которая при вычитании из зашумленного сигнала т[г] позволила бы выделить речь пилота (полезный речевой сигнал х[г]).
АФ, построенный на базе ЛНС, должен быть настроен так, чтобы убирать шум двигателя. Заметим, что такая адаптивная фильтрация предпочтительнее классического фильтра, в котором шум не вычитается, а отфильтровывается от сигнала т[г].
Предполагаем, что п[г], г = 1,п2 есть дискретный белый шум с дисперсией Бп = а2п, где ап - среднеквадратическое значение шума п[г].
Передаточная функция Ж (э) аналогового фильтра шума имеет вид [2]
Ж (э) = = --ф-2, (1)
п(э) э + 2Хю0э + ю0
где X - относительный коэффициент затухания фильтра; ю0 - частота собственных колебаний фильтра; А - коэффициент усиления. Здесь ю0 = 2р/0; /0 - частота, Гц; А = ю°.
Преобразуем Ж(э) к передаточной функции G(£) цифрового фильтра шума. Имеем [2]
G(z) - ШМ -
К
где
n(z) c0 + CjZ 1 + c2z 2 ’
К - A(At)2;
c0 -1 + 2^w0At + (w0At)2;
С --2(1 + XwoAt);
C2 - 1
Введем в рассмотрение массивы b[1], c[/'], i -1,3 вида b[1]- bo; c[1] - co; c[2] - c1; c[3] - c2-
(2)
(3)
(4)
Программа, реализующая алгоритм работы АФ на ЦВМ, написана на языке MATLAB 7. В системе MATLAB 7 фильтрация, т.е. преобразование сигнала n[i], i - 1, n2 с помощью фильтра шума, описываемого дискретной передаточной функцией (2), осуществляется функцией filter при обращении к ней вида [2]
П - filter(b, c, n).
Среднеквадратическое значение помехи n2 [i], i - 1, n2 определяется формулой
1 n2 „
-1 n2[i].
n2 і-1
(5)
Речевой сигнал х[г], г = 1, п2 моделировался с помощью урав нения нелинейной регрессии третьего порядка вида [3]
х [г] = ахх [г -1] + а2 х [г - 2] + а3[1 - ф(| Ьх(г - 3)1)] х [г - 3] +
+ be2[i], i - 4, n2,
где [3]
x[1] - x[2] - x[3] - 0,
sgn( x1) f( z)
[1, X1 > 0;
[-1, x < 0;
2 z - yi
=J e 2 dy. V 0
(6)
(7)
(8)
Здесь ф(г) - интеграл вероятностей, е2[і], (і = 1, п2, е2[і] = є2(іг.); іі = іАі) - последовательность независимых нормально распределенных (гауссовских) случайных величин, имеющих нулевое математическое ожидание и единичную дисперсию (дискретный белый шум); а1,а2,а3,Ь,Ь - параметры уравнения (6).
Для вычисления интеграла вероятностей (9) введем в рассмотрение функцию ошибок егДх1) в системе МЛТЬЛБ 7, которая определяется следующим образом [4]:
В качестве АФ используется фильтр с одним входом п[к], схема которого приведена на рис. 2. В этой схеме имеется множество весовых коэффициентов w1, w0, w3, устройство суммирования и выходной
сигнал й[к ], к = 3, п2.
Весовые коэффициенты wi, г = 1,2,3 в АФ настраиваются из условия обеспечения минимального значения среднего квадрата ошибки (СКО) М{в2[к]}, где М - символ математического ожидания выражения в фигурных скобках.
2 Хі _ 2 егГ(х1) = —г= | е _ Ж.
(10)
Л/Я 0
Введем переменную і вида
(11)
Отсюда имеем
Если і = 0, то і1 = 0; если і = х1, то і1 = 42х1. Следовательно,
(12)
Будем строить АФ на основе ЛНС, используя пакет прикладных программ (ППП) Neural Network Toolbox [1], который входит в состав программного обеспечения системыMATLAB 7.
Рис. 2. АФ с одним входом Определим векторы N, М, X и матрицу Р в виде
N[1,i] = n[i], i = 1,n2;
N1[1, i] = n1[i], i = 1,n2;
M[1,i] = m[i], i = 1, n2;
X[1,i] = x[i], i = 1, n2;
Р[К j] = 0, i = 1,2,3 j =1 ^
где
(13)
т[г] = х[/] + п1[1], г = 1,п2. (14)
Сформируем обучающее множество ЛНС следующим образом. Входная последовательность Р имеет длину п2, а каждый вектор входа состоит из 3 компонент.
Команды на языке МЛТЬЛБ 7, с помощью которых определяется Р, имеют вид [1, 5]:
Р(1,1: п2) = N (1,1: п2);
Р(2,2: П2) = N(1,1: (п2 -1)); Р(3,3:П2) = N(1,1:(п2 -2)). Целевой вектор Т определяется в виде [1, 5]
(16)
Т[1,г] = М[1,г], г = 1, п2.
Сформируем векторы Р, Р2, Р3. Имеем
Р = [Р[1,1] р[1,2]...р[1,Й2]];
Р2 = [0 Р[2,2] Р[2,3]...Р[2,п2]];
Р3 = [0 0 Р[3,3] Р[3,4]...Р[3,п2]].
Векторы входа ЛНС Р1, Р2 , Р3 являются входными последовательностями, которые имеют длину п2.
(17)
Поскольку сигнал п[г], г = 1, п2, стационарный, можно воспользоваться линейной моделью нейронной сети, рассчитывая весовые коэффициенты wi, г = 1,2,3, на основе прямого решения системы линейных уравнений. Такой подход реализует М-функция пе’^тё [1]. Она вычисляет весовые коэффициенты и смещение Ъ0, которые минимизируют следующую функцию СКО сети [1]:
где [1]
Здесь
1 п2 „ ШБе = — £е [к],
п2 к=1
С 3
е[к] = Ак] - Е[к]+Ъ0
V- =1
(18)
(19)
(20)
Ак] = Т[1, к], к = 1, п2;
Р][к ] = Р[1, к ] 1 = 1,2,3|
Весовые коэффициенты wi, г = 1,2,3, и смещение Ъ0 зависят от длины п2 обучающей последовательности. Сеть для решения задачи выделения полезного речевого сигнала, искаженного помехой, должна состоять из одного нейрона с 3 входами.
Построим ЛНС. Для этого имеем команду вМЛТЬЛБ 7 вида [1]
пе1 = пе’М'Нпё (Р,Т).
На рис. 3 показана ЛНС с входами Р, Р2, Р3 и одним выходом а[1,5]. На рис. 3 введены следующие обозначения: а - вектор выхода ЛНС; у - вектор входа функции активации; Ж = [н,1 w2w3] - весовая
матрица, которая имеет только одну строку; Р = [рР2 Р3]. Векторы Р, Р2, Р3 определяются соотношением (17). М-функция ригеїіп есть линейная функция активации [1 ].
Входы
Линейный нейрон
P2
Рз
W2 Е .У / a
'» /
Ь0 V a = purelin (у)
a = purelin (WP + b0)
Рис. 3. Линейная нейронная сеть
Выход ЛНС определяется выражением [1]
3
а = purelin(y) = purelin (WP + b0) = WP + b0 = Е wp + b0.
i=1
(21)
Выполним моделирование созданной ЛНС с векторами входа из обучающего множества. Используем М-функцию sim для моделирования сети. Для этого имеем команду вMATLAB 7 вида [1]
a = sim(net, P).
Данной команде соответствует соотношение
a[1,к] = ЕwjPj[i,k] + b0, к = 1,n2.
j=i
Введем обозначения
£[1, к] = e[k], к = 1,n2;
X[1,к] = x[k], к = 1,n2.1
С учетом рис. 1 имеем
Х[1, к] = £[1, к] = M[1, к] - a[1, к], к = 1, n2
(22)
(23)
(24)
Ошибка восстановления сигнала X[1,г], г = 1,п2 с использованием ЛНС имеет вид
е[1, г] = Х[1,г] - X[1,г], г = 1, п2. (25)
w
3
Обозначим через 6Е оценку среднеквадратического значения ошибки восстановления е[1,/’] речевого сигнала Х[1,/'], і = 1, п2. Величина 6Е определяется в результате моделирования работы ЛНС на ЦВМ. Величина стЕ вычисляется по формуле
ЛНС была смоделирована на ЦВМ. Были приняты следующие значения параметров: & = 0,125 мс; ю0 = 2я/0; А = ^0; Х = 1;
принимает значения 2, 4, 5, 10, параметр /0 принимает следующие значения: /0 = 0,7; /0 = 1; /0 = 1,5; /0 = 2. Результаты моделирования работы ЛНС приведены в таблице и на рис. 4-6.
На рис. 4 приведен график полезного речевого сигнала
х[г], I = 1,п2. На рис. 5 показан график х[г], I = 1,п2 и график зашумленного речевого сигнала т[г], г = 1,п2 для варианта 16 таблицы. На рис. 6 приведены графики х[г], г = 1, п2 и Х[г], г = 1, п2 для варианта 16 таблицы.
(26)
п2 = 200; а1 = 0,98; а2 =-0,84; а3 = 1; Ь = 1; Ь = 1 10 3. Параметр <5п
2
■1.5
■0.5
0.5
1.5
-1
0 20 40 60 80 100 120 140 160 180 200
Рис. 4. График речевого сигнала х[і], і = 1,п,
20----------------1-----------1------------1------------1-----------1------------1-----------1------------1------------г
2Q_______I______I_____I______I_____I______I_____I______I______I_____
0 20 40 60 80 100 120 140 160 180 200
Рис. 5. Графики речевого сигнала x\i] и зашумленного речевого сигнала m\i], i = 1,n2-------сигнал x\i], i = 1,n2 ;---------сигнал m\i], i = 1,n2
2--------1------1------1------1------1------1------1-------1------г
2________I______I______I______I______I_______I______I______I______I______
0 20 40 60 80 100 120 140 160 180 200
Рис. 6. Графики речевого сигнала х[г] и оценки Х[г] сигнала х[г], г = 1, п2 ---------сигнал х[г], г = 1, п2 ;----------оценка Х[г] сигнала х[г], г = 1, п2
Результаты моделирования АФ на основе ЛНС
/0 6п °П1 6 е 6 е № варианта
0,7 2 1,012 0,17 6,588 1
4 2,02 0,25 8,080 2
5 2,53 0,3 8,433 3
10 5,06 0,546 9,261 4
1,0 2 1,16 0,146 7,913 5
4 2,32 0,18 13,034 6
5 2,9 0,2 14,500 7
10 5,81 0,32 18,156 8
1,5 2 1,324 0,137 9,664 9
4 2,65 0,144 18,403 10
5 3,31 0,15 22,067 11
10 6,62 0,19 35,401 12
2,0 2 1,426 0,135 10,561 13
4 2,85 0,137 20,803 14
5 3,56 0,138 25,714 15
10 7,13 0,15 47,533 16
Результаты, приведенные в таблице, позволяют оценить среднеквадратическое значение 6е ошибки восстановления е[1,г], г = 1, п2
речевого сигнала X[1,г], I = 1, п2 с помощью АФ на основе ЛНС.
Таким образом, в работе предложена методика построения АФ на основе ЛНС.
Библиографический список
1. Медведев В.С., Потемкин В.Г. Нейронные сети. МЛТЬЛБ 6 / под ред. В.Г. Потемкина. - М.: Диалог-Мифи, 2002.
2. Лазарев Ю. Моделирование процессов и систем в МЛТЬЛБ: учебный курс. - СПБ.: Питер; Изд. группа БИУ, 2005.
3. Прохоров Ю.Н. Статистические модели и рекуррентное предсказание речевых сигналов. - М.: Радио и связь, 1984.
4. Потемкин В.Г. Вычисления в среде МЛТЬЛБ. - М.: Диалог-Мифи, 2004.
5. Круглов В.В., Дли М.И., Голунов Р.Ю. Нечеткая логика и искусственные нейронные сети. - М.: Физматлит, 2001.
Получено 09.07.2009