Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет_кр_ИПК 2009.doc
Скачиваний:
45
Добавлен:
18.03.2015
Размер:
542.72 Кб
Скачать

5.5. Применение линейных сетей

5.5.1. Фильтрация сигнала

На рис. 9 представлена структурная схема цифрового фильтра, отличительной особенностью которого является то, что он включает динамический компонент – линию задержки (ЛЗ) и 1 слой линейной нейронной сети.

Рис. 9. Структурная схема цифрового фильтра

Последовательность значений входного сигнала {р(k)} поступает на ЛЗ, состоящую из блока запаздывания; выход ЛЗ – N-мерный вектор pd, составленный из значений входа в моменты времени .

Выход линейного нейронного слоя и фильтра в целом описывается следующим динамическим соотношением:

. (13)

Рассмотрим конкретный пример цифрового фильтра, представленный на рис. 10.

Предположим, что входной сигнал принимает значения в диапазоне от 0 до 10, и сформируем линейную сеть с одним входом и одним выходом, используя М-функцию newlin:

net =newlin([0, 10] ,1) ;

Введем ЛЗ с двумя тактами запаздывания:

net.inputWeights{1, 1}.delays =[0 1 2];

определим следующие начальные значения весов и смещения: net.IW{l,l} = [7 8 9]; net.b{1} = [0];

зададим начальные условия для динамических блоков линии задержки:

pi ={1 2}

Последовательность их задания слева направо соответствует блокам запаздывания, расположенным на рисунке сверху вниз. Этим завершается формирование сети.

Рис. 10. Схема цифрового фильтра

Теперь определим входной сигнал в виде следующей последовательности значений:

р = {3 4 5 6}

и промоделируем эту сеть:

[a, pf] = sim(net,p,pi);

а = [46] [70] [94] [118]

pf = [5] [6]

Для того чтобы получить желаемую последовательность сигналов на выходе, необходимо выполнить настройку сформированной сети. Предположим, что задана следующая желаемая последовательность для выхода фильтра:

Т = {10 20 30 40};

Выполним настройку параметров, используя процедуру адаптации adapt и 10 циклов обучения:

net.adaptParam.passes = 10;

[net,y,E pf,af] = adapt(net,p,T,pi); % Процедура адаптации

Выведем полученные значения весов, смещения и выходного сигнала:

wts = net.IW{l,l}, bias = net.b{l},

wts = 0.5059 3.1053 5.7046

bias = 1.5993

у = [11.856] [20.774] [29.668] [39.004]

Если продолжить процедуру настройки, то можно еще точнее приблизить выходной сигнал к желаемому:

net.adaptParam.passes = 500; [net,y,E,pf,af] = adapt(net,p,T,pi);

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

5.5.2. Подавление шумов

Задача подавления шумов возникает в следующей ситуации. Когда пилот говорит в микрофон, шум двигателя в кабине добавляется к голосовому сигналу, и пассажиры слышат речь с искажениями. Требуется восстановить речь пилота, удалив из нее звуки шумов двигателя. Для решения этой задачи построим адаптивный фильтр, полагая, что в нашем распоряжении имеются записи шумов двигателя (рис. 11).

Рис. 11. Адаптивный фильтр

Используя адаптируемую нейронную сеть ADALINE, построим такой фильтр, который позволит удалить шум п из зашумленного сигнала т. Голос пилота v смешан с помехой от шумов двигателя, которая формируется фильтром шума по известным записям сигнала п. Зашумленный сигнал т моделирует искаженную речь пилота. Задача состоит в том, чтобы с помощью адаптивного фильтра сформировать такую модель шума а, которая при вычитании из зашумленного сигнала позволила бы выделить речь пилота.

Адаптивный фильтр, построенный на базе линейной нейронной сети ADALINE, должен быть настроен так, чтобы убирать шум двигателя. Заметим, что такая адаптивная фильтрация предпочтительнее классического фильтра, в котором шум не вычитается, а отфильтровывается от сигнала т.