logo search
Применение адаптивных фильтров в идентификации систем

Выводы

Проделанная работа показала, что алгоритм LMS неплохо справляется как со стационарным сигналом, так и с сигналом с изменяющимися характеристиками. Алгоритм RLS в «чистом» виде дает отличные результаты по стационарному сигналу, однако с изменением характеристик системы справиться не способен. Алгоритм RLS с экспоненциальным забыванием отлично справляется с обоими вышеперечисленными сигналами и показывает гораздо меньший переходный процесс и меньшую ошибку по сравнению с остальными рассмотренными алгоритмами.

Однако не стоит забывать, что RLS алгоритмы требуют гораздо больше вычислительных мощностей, чем LMS (2,5N2+4N пар операций «умножение-сложение» по сравнению с N + 1 пар операций на каждом шаге для LMS).

Соответственно, можно сделать вывод, что для случаев, не требующих высокой точности, удобнее всего использовать алгоритм LMS. Если же требуется высокая точность и достаточно вычислительных мощностей, лучше подойдут RLS-алгоритмы. Кроме того, нужно помнить, что RLS-алгоритм в «чистом» виде можно применять только в системах со стационарным сигналом. Если же характер сигнала может меняться, необходимо использовать RLS-алгоритм с экспоненциальным забыванием.

Приложения

Приложение 1

Реализация адаптивных фильтров в MATLAB

Для начала формируем входной и выходной сигналы идентифицируемой системы:

x=randn(2000,1); %дискретный белый гауссов шум

t=0:31;

b=exp(-t/5).*cos(t*pi/2); % импульсная характеристика системы

% генерируем первую половину выходного сигнала

[y(1:1000), state] = filter(b, 1, x(1:1000));

% генерируем вторую половину выходного сигнала

y(1001:2000) = filter(-b, 1, x(1001:2000), state);

Далее создадим объекты адаптивных фильтров с помощью соответствующих конструкторов. Для LMS-алгоритма предварительно рассчитаем значение коэффициента м, выбрав его в два раза меньшим предельного значения, определяемого формулой (15), а для RLS-алгоритма с экспоненциальным забыванием возьмем л=0,6. Для всех остальных параметров используем значение по умолчанию:

%создаем объекты LMS- и RLS-адаптивных фильтров

N = 32; % длина фильтров

mu = 1/N/var(y); %размер шага для LMS

ha_lms = adaptfilt.lms(N,mu); % создание объекта для LMS

ha_rls = adaptfilt.rls(N); % создание объекта для RLS

ha_erls = adaptfilt.rls(N,0.6); % создание объекта для RLS с экспоненциальным забыванием

Теперь реализуем фильтрацию с помощью функции filter. В соответствии с рис.2, а входной сигнал адаптивного фильтра совпадает с входным сигналом исследуемой системы (x), а образцовый сигнал -- это выходной сигнал системы (y):

%реализуем фильтрацию:

[y_lms, e_lms] = filter(ha_lms, x, y);

[y_rls, e_rls] = filter(ha_rls, x, y);

[y_erls, e_erls] = filter(ha_erls, x, y);

Теперь построим импульсную характеристику системы (рис.3) и графики зависимости сигнала ошибки от времени, а также выведем на экран импульсные характеристики фильтров, полученные на момент завершения обработки сигнала (рис.4):

% строим графики:

subplot(3,2,1)

plot(e_lms)

title(LMS error)

axis([0 2000 -6 6])

subplot(3,2,2)

impz(ha_lms.coefficients)

title(LMS impulse response)

subplot(3,2,3)

plot(e_rls)

title(RLS error)

axis([0 2000 -6 6])

subplot(3,2,4)

impz(ha_rls.coefficients)

title(RLS impulse response)

axis([0 N -1 1])

subplot(3,2,5)

plot(e_erls)

title(eRLS error)

axis([0 2000 -6 6])

subplot(3,2,6)

impz(ha_erls.coefficients)

title(eRLS impulse response)

subplot(4,2,8)

impz(b)

title(System impulse response)

Библиографический список

1. Сергиенко А.Б. Цифровая обработка сигналов.-- 3-е изд. -- СПб.: БХВ-Петербург, 2011. -- 768 с.

2. Хайкин С. Нейронные сети. Полный курс. -- М.: Вильямс, 2006. -- 1104 с.

3. Адаптивные фильтры: Пер. С англ./[Под ред. К.Ф.Н.Коуэнам и П.М.Гранта]. -- М.: Мир, 1988. -- 392 с.

4. Шахтарин Б.И. Случайные процессы в радиотехнике: Цикл лекций. -- М.: Радио и связь, 2000. -- 584 с.

5. Основы цифровой обработки сигналов: Курс лекций / А.И.Солонина, Д.А.Улахович, С.М.Арбузов, Е.Б.Соловьева . -- 2-е изд., перераб. и испр. -- Спб.: БХВ-Петербург, 2005. -- 768 с.

6. Солонина А.И. Цифровая обработка сигналов. Моделирование в MATLAB / А.И.Солонина, С.М. Арбузов. -- Спб.: БХВ-Петербург, 2008. -- 816 с.

7. Джиган В. Адаптивные фильтры. Современные средства моделирования и примеры реализации. / В.Джиган // Электроника: наука технология бизнес. -- 2012. -- №7(00121). -- С. 106-125.

8. Сеогиенко А.Б. Алгоритмы адаптивной фильтрации: особенности реализации в MATLAB. / А.Б.Сергиенко // Exponenta Pro. -- 2003. -- №1(1). -- С. 18-28.