Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6.doc
Скачиваний:
871
Добавлен:
07.03.2016
Размер:
15.55 Mб
Скачать

Предсказание сигнала

Попробуем применить сеть ADALINE для предсказания значений детерминированного процессаp(t). Обратимся к рис. 5.9.

Рис. 5.9

Некоторый сигнал поступает на линию задержки так, что на ее выходе формируются 2 сигнала: p(t–1),p(t–2). Настройка сети реализуется с помощью М-функцииadapt, которая изменяет параметры сети на каждом шаге с целью минимизировать погрешностьe(t) =a(t) –p(t). Если эта погрешность нулевая, то выход сетиa(t) точно равенp(t) и сеть выполняет предсказание должным образом.

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

Поскольку для формирования входа применено динамическое звено второго порядка, то в сети ADALINE будет использована ЛЗ с двумя блоками. Запишем следующий сценарий для решения задачи предсказания сигнала:

clear

sys = ss(tf(1,[1 1 1])); % Формирование колебательного звена

% Получение реакции на ступенчатое входное воздействие

time = 0:0.2:10;

[y,time] = step(sys,0:0.2:10);

% Формирование обучающего множества

p = y(1:length(time)–2)';

t = y(3:length(time))';

time = time(1:length(time)–2);

% Формирование нейронной сети

net = newlin([–1 1],1,[1 2]);

P = num2cell(p);

T = num2cell(t);

% Настройка нейронной сети

pi = {0 0};

net.adaptParam.passes = 5;

[net,Y,E,Pf,Af] = adapt(net,P,T,pi);

Y1 = cat(1,Y{:}); % Преобразование массива ячеек в массив double

% Построение графиков

plot(time,Y1,'b:',time,p,'r–'), xlabel('Время, с'), ylabel('Процессы')

title('Обучение нейронной сети')

% Моделирование нейронной сети

x = sim(net,P);

x1 = cat(1,x{:});

plot(time,x1,'b')

Найденные значения весов и смещения равны

net.IW{1,1}, net.b

ans = 0.33427 0.31816

ans = [0.35853]

Результаты обучения и моделирования результирующей нейронной сети, решающей задачу предсказания сигнала, представлены соответственно на рис. 5.10, а и б.

а

б

Рис. 5.10

Как видно из этих рисунков, приемлемое для данной постановки задачи количество циклов обучения равно пяти; результаты моделирования показывают, что при длительности процесса 10 с диапазон успешного предсказания находится в пределах 1.8–10 с.

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

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

Рис. 5.11

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

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