Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные_работы_ВвС_01.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
343 Кб
Скачать
☆

Адаптивный алгоритм минимума средней квадратической ошибки

Уравнение Винера-Хопфа (1.17) позволяет найти наилучший вектор коэффициентов АР. Однако реально для его использования необходимо корреляционную матрицу помехи - фактически знать расположение помех. На практике это не реально – как правило о возможных помехах мы заранее нечего не знаем. Поэтому интерес представляют алгоритмы, которые могут без такой априорной информации подстраивать вектор коэффициентов АР к этому оптимальному решению.

Идея заключается в пошаговой подстройке вектора

где L – номер итерации во времени. И в этом случае исходя из информации о значении сигнале, помехи и текущего вектора коэффициентов делается следующее приближение вектора коэффициентов АР в направлении оптимального решения с соответствии с уравнением Винера-Хопфа.

Д

(1.18)

алее рассмотрим алгоритм минимума среднеквадратической ошибки направленный на решение этой задачи. Пусть на входе присутствует известный полезный сигнал

Здесь, как и ранее, i – номер элемента АР, а L – номер отсчета сигнала во времени.

Кроме сигнала на входе элементов АР присутствуют помехи с шумом:

Здесь - случайное гауссовское комплексное число представляющее значение шума в L-момент времени в i-м элементе АР. Значения шума в разные моменты времени и в разных элементах АР (даже для одного момента времени) статистически независимы и поэтому для моделирования шума мы воспользуемся просто датчиком гауссовских случайных чисел.

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

На рис.1.13 приведена структура алгоритма минимизации средней квадратической ошибки. В этом случае при известном принимаемом сигнал S(L) мы рассчитываем на выходе АР этот сигнал и увидеть. В этом случае если обозначить Z(L) – значение на выходе АР в L-й момент времени, то ошибка по сравнению с полезным известным сигналом будет e(L). И алгоритм минимизации среднеквадратической ошибки заключается в изменении коэффициентов АР таким образом, чтобы эта ошибка стремилась к 0.

Фактически в этом случае (когда ошибка равна 0) действие помех в этом случае на выходе должно исключено.

1

N

Блок адаптивного управления весовыми коэффициентами

S(L)

Z(L)

-1

e(L)

Рис.1.13.

(1.19)

Этот алгоритм при достаточном количестве итераций сводится к решению Винера-Хопфа. Звездочка говорит о комплексном сопряжении.

Рассмотрим вопрос о выборе коэффициента μ. Этот коэффициент определяет скорость сходимости (адаптации) алгоритма и его устойчивость. А при слишком большом значении этого коэффициента алгоритм будет неустойчивым. А если выбрать коэффициент слишком маленьким, то алгоритм будет сходиться слишком медленно.

Существует соотношения для определения μ

(1.20)

Как правило на практике значение коэффициента задается в 10 раз меньше максимально допустимого значения.

В соотношении (1.20) Di – дисперсия входного процесса (с учетом всех помех, сигнала и шума) в i-м элементе АР.

Теперь вернемся с начатой задаче и далее даются пояснения к тексту последующей программы. Полезный сигнал (1.18) приходит с направления -45 градусов. Сама решетка пятиэлементная: N=5. Также с направления 0 градусов поступает случайная помеха (источник помехи один). Для получения отсчетов помехи воспользуемся функцией MATLAB (ранее говорилось, что отсчеты помехи во времени статистически независимы):

(1.21)

Принято, что дисперсия единственной помехи D1 = 10, а дисперсия шума в элементах АР равна Dшум=0.01.

Учитывая, что уровень помехи с нулевого направления значительно выше уровня и сигнала и шума вычислим требование к коэффициенту μ упрощенно (принимая во внимание только помеху):

(1.22)

Выберем в дальнейшем программе μ =1/1000.

Задание 5 для группы ПМ-06

Реализовать программу представленную на листинге 2 на С++

Листинг 2

i=sqrt(-1);

tettaPom = 0;

tettaSig = -pi/4;

disp = 10;

% формирование пространственного вектора определяющего

% принимаемый сигнал

n=1:5;

f=cos(pi*sin(tettaSig)*(n-1));

g=sin(pi*sin(tettaSig)*(n-1));

sig = f+i*g;

% формирование начального вектора коэффициентов АР

% вектор коэффициентов на начальной (нулевой)

%итерации

f=cos(pi*sin(0)*(n-1));

g=sin(pi*sin(0)*(n-1));

w = f+i*g;

% цикл по итерациям во времени

for L=1:300

n=1:5;

% вычислениние комплексных случайных значений помехи

pom_1=sqrt(disp)*randn;

pom_2=sqrt(disp)*randn;

% вычисление вектора значений помехи в элементах АР

f=pom_1*cos(pi*sin(tettaPom)*(n-1));

g=pom_2*sin(pi*sin(tettaPom)*(n-1));

pom = f+i*g;

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

pom = pom + (1+sin(0.1*L))*sig;

%добавление к предыдущему вектору шума

for il=1:5

pom(il)=pom(il)+0.01*randn + 0.01*i*rand ;

end

% вычесление значения на выходе АР ( после умножения

% коэффициенты w

symma =0+i*0;

for il=1:5

symma=symma+w(il)*pom(il);

end

% комплексное сопряжение вектора на входе элементов АР

pom2=pom';

% вычисление вектора w для следующей итерации

for il=1:5

w(il)= w(il) + 2*0.001*((1+sin(0.1*L))-symma)*pom2(il);

end

vih2(L)=real(symma);

end

ii=1:1:300;

plot(ii,vih2);

Результат выполнения показан на следующем рисунке.

Рис.1.14.

Задание 6 для группы ПМ-06