Допустим, что на вход фильтра подается входной сигнал вида r(t) = sin(8sin(4t)*t),
заданный массивом значений R с тактом квантования 0.005 с на интервале 6 с:
time1 = 0:0.005:4;
time2 = 4.005:0.005:6;
time = [time1 time2];
R = sin(sin(time*4).*time*8);
plot(time,R)
axis([0 6 –1.1 1.1]);
График этого сигнала показан на рис. 9.16.
Рис. 9.16
Нестационарный линейный фильтр описывается следующими рекуррентными
соотношениями:
(9.3)
Этот фильтр может быть представлен в системе MATLAB следующим образом:
steps1 = length(time1);
[Y1,state] = filter([1 –0.5],1,R(1:steps1));
steps2 = length(time2);
Y2 = filter([0.9 –0.6],1,R((1:steps2) + steps1),state);
Y = [Y1 Y2];
plot(time,Y)
График сигнала на выходе этого фильтра показан на рис. 9.17.
Рис. 9.17
Определим такую обучающую последовательность: в качестве целевого выхода T примем массив Y, а входную последовательность P зададим на основе текущего и предшествующего значений входа R. Для использования алгоритмов адаптации представим обучающие последовательности в виде массивов ячеек:
T = con2seq(Y);
P = con2seq(R);