Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учпос MATLAB.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
1.22 Mб
Скачать

Глава 5. Определение параметров составляющих сложного сигнала.

Рассмотрим алгоритм разделения сложного сигнала на составляющие, имеющие лоренцевскую форму при помощи некоторых преобразований, сводящих нелинейную задачу минимизации к решению линейных уравнений [13], Необходимая априорная информация – количество элементарных составляющих.

Пусть наблюдаемый сигнал можно представить в виде:

(5.1)

Здесь , , – параметры элементарных составляющих сложного сигнала, подлежащие определению, m – количество исходных составляющих. Умножив обе части на множитель:

(5.2)

получим

(5.3)

Здесь и далее штрих у знака произведения в правой части означает, что из произведения исключен множитель с i=j. Выражение (5.3) можно записать в виде:

(5.4)

Корни , , входящие в (5.4), определяются из уравнения

(5.5)

Введем новые переменные , (i=1,2,….,2m), (k=1,2,…,2m-1), которые определяются равенствами.

(5.6)

(5.7)

С учетом равенств (5.6) и (5.7) выражение (5.1) может быть записано в виде:

(5.8)

Выражение (5.8) представляет собой систему линейных уравнений с 4m-1 неизвестными: 2m неизвестных xj и 2m-1 неизвестных zk.

Система может быть решена по известным значениям  i в 4m-1 точках. Если xi определены, то равенства (25) определяют полином порядка 2m относительно переменных , (j=1,2…,m)

(5.9)

и связанных с ними параметров

(5.10)

Переменные , после определения неизвестных и могут быть найдены из системы линейных уравнений

(5.11)

где матрица Lij определяется выражением

(5.12)

Корни полинома (5.9) могут быть определены с помощью метода Берстоу [14], позволяющего определить комплексные корни многочлена.

Для устранения шумов в данном случае могут быть реализованы две возможности: либо предварительное сглаживание экспериментального спектра на основе метода статистической регуляризации, либо решение системы уравнений (5.8) с использованием метода регуляризации (алгоритмы описаны выше).

Для анализа эффективности работы алгоритма проведем численные эксперименты. Основой модельного сигнала выбираем сложный сигнал, в первом случае состоящий из двух составляющих, во втором случае состоящий из трех составляющих. В обоих случаях составляющие сигнала будут иметь лоренцевскую форму, характерную для прикладной спектроскопии, параметр – амплитуда модельной функции, – положение центра, – полуширина, , , – естественно векторы, элементами которых являются соответствующие составляющие. С помощью генератора псевдослучайных чисел к модельному сигналу добавлялись «ошибки измерений» заданного уровня. Полученный «экспериментальный сигнал» подвергался дальнейшей обработке.

Файл-сценарий для получения параметров составляющих сложного сигнала:

%Определение параметров составляющих сложного сигнала

%a,b,c - параметры лоренцианов:a-амплитуда,b-положение центра,c-полуширина

%w1,w2-границы интервала измерений,err-уровень ошибок

clear

a=[1 2];b=[1 2];c=[3 9];

m=2; n=2;

% a=[1 2 1];b=[1 1 1];c=[3 8 12]; %для трех лоренцианов

% m=3; n=3;

w1=0; w2=13;

err=0.05; epse=0.000001;

[ft,fe,w,dw]=testf(a,b,c,m,n,w1,w2,err); %формирование тестовых функции,

%ft-точная функция,

%fe-экспериментальная,dw-шаг,

%w-ось абсцисс(для графика)

%m-количество составляющих(точное)

%n-количество составляющих(априорно задаваемое)

[matr1,fi1,x01]=vspom(n,w,fe);

[y1]=algorithm2(matr1,fi1,x01,epse);

[a1,b1,c1]=consists(y1,n,w,fe,epse)

s1=sigma(ft,a1,b1,c1,n,w1,w2)

k=eye(4*n-1);

[dif,omega,ww,v,h]=matrixs(4*n-1,err,dw); %матрицы:dif-дифференцирования(2 порядка)

%omega-стабилизатор,

%ww-информационная матрица,

%v-ковариационная матрица ошибок,

alf=alfa(fe,v,k,omega); %параметр регуляризации(одношаговая оценка)

ff=inv(k'*ww*k+alf*omega)*k'*ww*fe';

[matr2,fi2,x02]=vspom(n,w,ff);

[y2]=algorithm2(matr2,fi2,x01,epse);

[a2,b2,c2]=consists(y2,n,w,ff,epse)

s2=sigma(ft,a2,b2,c2,n,w1,w2)

Отметим, что для отыскания величин y,y1,y2 мы применили алгоритм 2, а не алгоритм 4, дающий неотрицательное решение, так как при неотрицательном значении y,y1,y2 мы бы получили некоторые отрицательные значения составляющих b и c.

Файл-функция для формирования модельной функции и «экспериментальных данных»:

function [ft,fe,w,dw]=testf(a,b,c,m,n,w1,w2,err)

t=4*n-1;

%t=100;

dw=(w2-w1)/t;

ft=zeros(1,t);

for i=1:t

w(i)=w1+dw*i;

end

for i=1:t

for j=1:m

ft(i)=ft(i)+a(j)/((w(i)-c(j))^2+b(j)^2);

end

end

fe=ft+(randn(t,1)*err)';

Файл-функция (вспомогательная):

function [matr,fi,x]=vspom(n,w,f)

for i=1:(4*n-1)

for j=1:2*n

matr(i,j)=f(i)*(w(i)^(2*n-j));

end

for j=(2*n+1):(4*n-1)

matr(i,j)=-w(i)^(4*n-1-j);

end

end

for i=1:(4*n-1)

fi(i)=-f(i)*(w(i)^(2*n));

end

fi=fi';

x=zeros(1,4*n-1);

Файл-функция для определения составляющих:

function[a,b,c]=consists(y,n,w,f,epse)

for i=1:2*n

x(i)=y(i);

end

for i=(2*n+1):(4*n-1)

z(i-2*n)=y(i);

end

p=[1 x];

r=roots(p);

r=sort(r);

for i=1:n

Wi1(i)=r(2*i);

Wi2(i)=r(2*i-1);

end

c=real(Wi1);

b=imag(Wi1);

for i=1:n

for j=1:n

l(i,j)=1/((w(j)-Wi1(i))*(w(j)-Wi2(i)));

end

end

l=l';

x0=zeros(1,n);

for i=1:n

ff(i)=f(i);

end

ff=ff';

a=algorithm2(l,ff,x0,epse);

a=a';

Величина среднеквадратичного отклонения модельного сигнала от восстановленного по вновь найденным параметрам определяется в виде:

,

где – истинный суммарный контур, – вычисленный по наблюденным параметрам суммарный контур.

Файл-функция для определения величины среднеквадратичного отклонения:

function [s]=sigma(f,a,b,c,n,w1,w2)

dw=(w2-w1)/n;

for i=1:n

w(i)=w1+dw*i;

end

ff=zeros(1,n);

for i=1:n

for j=1:n

ff(i)=ff(i)+a(j)/((w(i)-c(j))^2+b(j)^2);

end

end

s=0;

for i=1:n

s=s+(f(i)-ff(i))^2;

end

s=(1/n)*s;

При =8% решение становится бессмысленным: a1=0,58 (при заданном равном 1), a2=2,98(2), b1=0(1), b2=2,46(2), c1=1,5(3), c2=9,99(9). В то время как после применения метода статистической регуляризации параметры вычисляются уже намного лучше, так становятся a1=0,86, a2=2,47, b1=0,77, b2=2,2, c1=3,1, c2=9,27(значения параметров задаются в единицах полуширины первого контура). Итак, получаем, что использование методов статистической регуляризации позволяет значительно увеличить точность решения.

Рис. 8. Зависимость среднеквадратичной ошибки от относительной погрешности при разделении двух лоренцианов (кривые 1 – без регуляризации и 2 – с регуляризацией при искомых значений параметров a1=1, b1=1, c1=3, a2=2, b2=2, c2=9) и трех лоренцианов (кривые 3 – без регуляризации и 4 – с регуляризацией, a1=1, b1=1, c1=3, a2=2, b2=1, c2=8, a3=1, b3=1, c3=12).

Следует отметить, что с увеличением числа составляющих m несколько возрастает среднеквадратичная ошибка восстановления параметров (рис. 1 – кривые 3 и 4 для m=3). Однако и в этом случае использование методов регуляризации значительно повышает точность решения.

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

n

a1

a2

a3

b1

b2

b3

c1

c2

c3

3

1.0060

2.0372

0.8562

1.0039

0.9980

0.9980

3.0006

7.9977

12.0039

4

1.0039

1.7583

-7.4967

1.0045

1.9767

0.9991

2.9992

5.0310

8.0021

5

0.9922

-0.3279

17.5710

0.9981

0

1.0041

2.9994

7.0101

8.0012

Таб. 3. Значения восстановленных параметров для сложного сигнала из трех лоренциан в зависимости от количества априорно задаваемых кривых. Ошибка составляла 0,05% от максимального значения интенсивности контура. Истинные значения параметров.

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

без регуляризации

с регуляризацией

параметр a

4.0501

-0.0001

-0.0025

4.1371

0.0112

0.0572

параметр b

0

0

0

0

0

0

параметр c

-2.1213

6.0776

15.0793

-1.9789

6.1066

15.2836

Таб. 4. Значения восстановленных параметров для сложного сигнала из трех составляющих. Ошибка составляла 0,01% от максимального значения интенсивности контура. Форма элементарных составляющих задавалась в виде .

Как видим, даже небольшая вариация формы кривой (в знаменателе вместо мы поставили ) дает неудовлетворительные результаты даже при таком небольшом уровне ошибок.

Следует заметить, что с увеличением числа составляющих m несколько возрастает среднеквадратичная ошибка восстановления параметров (рис. 8, кривые 3 и 4 для m=3). Однако и в этом случае использование методов регуляризации значительно повышает точность решения.

Была проанализирована точность определения параметров элементарных составляющих в зависимости от расстояний между их максимумами. Некоторые результаты представлены в таблице 5.

расстояния между центрами

a1

a2

b1

b2

c1

c2

6

1,0009

2,0007

1,0000

2,0001

3,0003

9,0000

4

1,0005

2,0018

1,0001

2,0003

4,9924

9,0007

2

1,0021

2,0051

1,0611

1,9924

6,9101

9,0232

1.75

0,9722

2,3716

1,0119

2,0339

7,2525

8,9228

1.25

0,9338

2,3754

1,0125

1,9818

7,6311

9,1237

1

0,9325

2,5716

1,1610

1,9827

7,8123

9,1042

0.75

1,2349

1,2427

0,7324

2,0107

8,4241

8,8111

Таб. 5. Восстановление параметров при разных расстояниях между максимумами составляющих. Набрасываемая ошибка составляет 0,5% от максимального значения.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]