Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1 / Lab1

.pdf
Скачиваний:
0
Добавлен:
27.12.2025
Размер:
286.26 Кб
Скачать

МИНОБРНАУКИ РОССИИ САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

¾ЛЭТИ¿ ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА) Кафедра САПР

ЗАДАНИЕ по лабораторной работе №1

по дисциплине ¾Математические основы информатики¿ Тема: ¾Энтропия¿

Преподаватель:

Каримов А.И.

Санкт-Петербург 2024

Цель работы

Изучение алгоритмов вычисления энтропии на основе реальных данных.

Основные теоретические положения

Существует несколько способов вычисления энтропии реального сигнала, среди которых можно выделить энтропию Реньи порядка 2, выборочную энтропию, разделенную энтропию. Каждая из этих оценок оценивает энтропию Колмогорова-Синая. Последняя определяется с помощью разбиения пространства возможных состояний системы на ячейки размера ", после чего берется тройной предел

 

KS = h

0

"

0 d

 

dh

iX1 d

(1)

h

lim lim lim

1

 

p([sk]) log p([sk]);

 

 

 

 

 

!

 

!

 

!1

 

 

:::i

 

где d длина последовательности, содержащей номера ячеек, которые траектория проходит, приводя к конкретной реализации сигнала [sk], p([sk]) вероятность того, что система выдаст именно такой сигнал, h шаг дискретизации по времени.

Чтобы вычислить

n[sk]

 

p([sk]) = lim

;

N

N!1

 

где N – общее количество реализаций сигнала, n[sk] – количество реализаций, приведших к сигналу [sk], нужно огромное число реализаций сигнала. Даже при большом N < 1 значение hKS будет найдено лишь приблизительно из-за плохой сходимости оценки (1). Более того, если сигнал системы зашумлен, тогда оценка hKS ! 1.

Вместо энтропии КС можно рассчитывать энтропию Реньи

 

 

Kq

=

 

1

 

log Xi

piq:

 

 

 

 

 

 

 

 

Особый случай дает q = 2:

1 q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K2 = log Xi

pi2:

 

 

Для непрерывной системы полная формула энтропии Реньи порядка 2 следующая:

 

 

2

= h 0 "

 

0 N

 

Nh

 

iX1 d

 

(2)

K

 

lim lim

lim

 

1

log

p2

([sk]):

 

 

 

 

 

 

 

!

 

!

 

 

!1

 

 

 

 

:::i

 

 

Как было доказано в литературе, K2 hKS, что позволяет использовать K2 вместо kKS в качестве нижней оценки последней. Тем не менее, прямые вычисления по формуле (2) так же трудоемки, как и по формуле (1)

И чтобы облегчить задачу, введем понятие корреляционного интегерала:

Cd(") = Nlim

1

[число пар (i; j) : distd(xi xj) < "];

N2

!1

 

 

причем distd(xi xj) расстояние между последовательностями длиной d вида [xi; xi+1; : : : xi+d], d = 2; 3:::. Тогда

X

Cd(") ' p2([sk]):

k

2

Cm(")

П. Грассбергер и И. Прокаччиа показали, что для динамической системы, траектория которой имеет фрактальную размерность1 , корреляционный интеграл Cd(") растет по закону

Cd(") " exp( dhK2);

что дает возможность оценить

Cd(")=Cd+1(") exp(hK2);

откуда

1

 

Cd(")

 

K2

 

log

 

:

h

Cd+1(")

Евклидово расстояние между последовательностями длиной d, используемое в предыдущей формуле, определяется как:

 

 

1

 

distd(xi xj) =

d

jxi+k xj+kj2!2

:

 

Xk

 

 

 

=1

 

 

Пусть известен сигнал длиной N, перейдем от d ! 1 к конечной длине последовательности m. Для каждой точки расчитаем приближенно ненормированный корреляционный интеграл по формуле

 

N m N m

Cm(") =

X X [число раз, когда distm(xi xj) < "]:

i=1 j=1;i6=j

Определив корреляционные интегралы для m и m + 1, найдем энтропию Реньи:

1

K2;m h log Cm+1("):

Схожий алгоритм определения энтропии, разработанный специально для биомедицинских данных, носит название ¾выборочной энтропии¿ (Sample entropy). Чтобы вычислить выборочную энтропию, переходят к расстоянию Чебышева:

distd(xi xj) = max

d

jxi+k xj+kj!;

 

X

 

k=1

т.к. это мало поменяет корреляционный интеграл:

Cd(") = Nlim

1

[число пар (i; j) : distd(xi xj) < "]:

 

 

N2

!1

 

 

 

 

 

 

Выборочная энтропия равна:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SampEn = log

Cm(")

:

 

 

 

Cm+1(")

 

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

1Системы с периодическими сигналами имеют целочисленную размерность, в то же время хаотические системы имеют дробную размерность, см. , см. статью в Википедии. Реальные сигналы иногда являются мультифрактальными, т.е. не описываются единственной фрактальной размерностью, и тогда предположение о расчете K2 по указанным далее формулам является, вообще говоря, некорректным в математическом смысле.

3

квадратного корня. В то же время, по определению, выборочная энтропия не учитывает шаг дискретизации по времени h, что приводит к тому, что для разной частоты дискретизации значения SampEn будут различными.

Еще один алгоритм, разработанный для оценки энтропии Колмогорова-Синая, был назван ¾разделенной энтропией¿ (partitioned entropy)2. Для вычисления разделенной энтропии разобьем фазовое пространство системы на k кластеров. Обозначим оценку разделенной энтропии как

k

k

X X

hp( ) = i

p(jji; ) ln p(jji; );

i=1

j=1

где p(jji; ) вероятность, что за время система переходит из кластера i в кластер j. Случаи, когда система остается в исходном кластере, не будем учитывать. Тогда оценка энтропии К-С, или средней энтропии в единицу времени, будет равна:

hKS hp( )= :

Эта оценка может быть получена как линейная аппроксимация наклона hp( ) на некотором интервале [ 0; 1]. Обозначим как ^i время, необходимое траектории для покидания исходного кластера i. Выберем время 0 как время, за которое все точки траектории успеют покинуть свои начальные кластеры. Т.е. 0 = maxi(^i). Выберем время 1 = N 0, т.е. как время 0, умноженное на некоторый коэффициент N = [3::10].

Более сложный вариант нахождения наклона обнаружение области, где hp( ) меняется линейно. Для этого временная последовательность на интервале поиска разбивается на сегменты с интервалом 0,2. Сравниваются локальные наклоны последовательных сегментов. Если разница между наклонами меньше порогового значения 0,1, сегменты считаются принадлежащими одной линейной области. Линейная подгонка выполняется на самом длинном линейном участке для оценки энтропии КШ как наклона .

На псевдокоде алгоритм вычисления энтропии Колмогорова-Синая на основе разделенной

2Этот алгоритм здесь приводится по мотивам статьи авторов K. Shiozawa, I.Tokuda, см. оригинальную работу

4

энтропии показан как Алгоритм 1.

Алгоритм 1: Алгоритм вычисления hKS hp( )=

Начальный этап

Дается сигнал Y = (x1; x2; : : : xN )> c шагом дискретизации по времени h. Пользователь задает k количество кластеров, end максимальное , Nt число отрезков времени 0, на котором оценивается линейная аппроксимация.

Основная часть

idx kmeans(Y ,k) // idx(i) – индекс кластера, в котором i-я точка сигнала

nhistcounts(idx,k) // посчитаем гистограмму с k корзинами

 

n= n // получаем оценки (i) = i

 

tauspanP

h : h : end

 

nv

length(tauspan)

 

NL

 

N ceil( end=h)

 

tL

 

zeros(NL; 1) // время, за которое точка покидает исходный кластер

 

hp

 

zeros(1; nv)

 

 

for j

1 : nv do

 

 

 

 

tauspan(j)

 

 

ns

ceil( =h)

 

 

idxold

idx(1 : N ns) // номера исходных кластеров

 

 

idxnew

idx(ns + 1 : N) // номера кластеров через время

 

 

/* найдем индексы точек, которые через ns отсчетов сменили кластер

*/

 

cngs

idxold 6= idxnew

 

 

idleave

(tL = 0)&cngs(1 : NL)

 

 

/* найдем время покидания исходного кластера точками с индексами idleave

 

 

*/

 

 

 

 

tL(idleave)

 

 

S0

/* пройдем по кластерам

*/

for i

1

: k do

 

ni

(idxold = i)&cngs

 

edges

0:5 : k + 0:5

 

/* найдем гистограмму переходов в новый кластер для каждого i

*/

nhistcounts(idxnew(ni); edges)

 

n(n = 0)

; // уберем нули из n

 

p

n=

n

 

hi

Pi

p ln p

 

S

h

 

end

S + Pi

 

 

 

 

hp(j) S

 

end

 

 

0

maxj tL // наибольшее время покидания начального кластера

n0

ceil( 0=h)

 

n1

Ntn0

 

 

ts tauspan(n0 : n1) hps hp(n0 : n1)

Ppolyfit(ts; hps) // линейная аппроксимация hps на ts

hKS

P (1) // выберем старший коэффициент полинома P

Варианты

Лабораторная работа выполняется по вариантам.

5

1-й вариант выполняет оценку энтропии Реньи 2 для приложенных сигналов. 2-й вариант выполняет оценку семпловой энтропии для приложенных сигналов.

3-й вариант выполняет оценку энтропии Колмогорова-Синая на основе разделенной энтропии для приложенных сигналов.

Можно вычислить энтропию Колмогорова-Синая или стремящуюся к ней величину своим оригинальным способом, с объяснением.

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

Содержание работы

Программная часть лабораторной работы должна быть выполнена в виде одного файла main.py, разбитый на необходимые функции. Рекомендуется использоватьсреду PyCharm. На сайт следует загрузить:

файл main.py

изображения F[n].png, демонстрирующие графики K2(d) при разных r для варианта 1, графики SampEn(m) при разных r для варианта 2, график hp( ) c аппроксимационной линией с наклоном hKS = hp( )= для варианта 3. Здесь [n] номер сигнала из списка приложенных сигналов.

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

K2 = 0:99.

6

Соседние файлы в папке 1