Исследование качества восстановления функции ЭП от одной переменной в зависимости от того, какие и сколько гармоник ряда Фурье используются для ее восстановления

Задание функции

С помощью скрипта compile-func.py была построена одномерная функция ЭП для модели из двух молекул (5 атомов - 3+2), расположенных на отрезке длиной в 30Å. Согласно модели атомы внутри молекул связаны ковалентно и находятся на расстоянии 1-1.5Å. ЭП атома описывается гауссовой кривой по формуле:

gauss = lambda*exp(-(beta^2)*(X-gamma)^2)
где lambda - высота пика и примерно равна количеству электронов в атоме, beta - ширина пика, пропорциональна диаметру атома, а gamma - координата пика.

Скрипт был запущен со следующими параметрами:

python compile-func.py -g 35,3.5,11+8,3,12.2+25,3.1,13.1+20,3.1,18.2+10,3,19.7
где тройки чисел обозначают lambda, beta и gamma для атомов соответственно.
Результат работы программы был записан в файл func.txt с координатами точек функции.


Изображение смоделированной функции ЭП.

Расчет амплитуд и фаз сигналов, моделирующих экспериментальные данные

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

Чтобы восстановить для каждой гармоники амплитуду (F) и фазу (phi), был использован скрипт func2fourier.py. На вход подавался файл, полученный на предыдущем шаге func.txt.

func2fourier.py -i func.txt
В итоговом файле получилось 499 гармоник, но в реальном эксперименте получить все гармоники невозможно, поэтому далее было определено минимальное количество слагаемых (N) ряда для различия атомов.

Восстановление функции ЭП по амплитудам и фазам части сигналов

Для восстановления функции из набора гармоник использовался скрипт fourier2func.py, также для отбора гармоник из полного набора использовался скрипт fourier-filter.py.

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

Отбор для изучения влияния количества гармоник на вид функции производился по первым гармоникам (0..n), где 5'<'n'<'50.

Влияние количества гармоник на "узнаваемость" пиков (n - количество рассматриваемых гармоник)

n=5

n=10

n=15

n=20

n=25

n=30

n=40

n=50

Начиная с 30-й гармоники пики полностью различимы. Но это модель без "шума", т.е. идеальная.

Влияние "шумов"

Введем искуственно созданный "шум" с помощью скрипта func2fourier.py и рассмотрим его влияние на вид функции при количестве гармоник, равном 30. Параметры -F и -P отвечают за "шум" по ампитуде и фазе соответственно, а выражаются в процентах (k и l соответственно).

python func2fourier.py -i func.txt -F k -P l
 
python fourier-filter.py -r 0-30
python fourier2func.py -f func.txt -i func_ft_filtered.txt

Влияние шума на "узнаваемость" пиков (n=30 - количество рассматриваемых гармоник, F - "шум" по амплитуде, P - "шум" по фазе)

F10P0

F0P10

F10P10

F20P0

F0P20

F20P20

F30P0

F0P30

F30P30

F0P0

F30P10

F10P30

Выводы:
Чем больше шум, тем сложнее различить пики, а, следовательно, и восстановить ЭП.
Шум по одному из параметров ухудшает восстановление ЭП меньше, чем шум, добавленный ко всем параметрам.
Шум на уровне 10% не сильно меняет картину, все пики остаются различимыми на его фоне.
Добавление шума к фазе сильнее "портит" функцию - на уровне 30% шума, добавленного к амлитуде, пики довольно четкие и не сильно "теряются", в то время как шумы фазы достигают высоты малых пиков.

Восстановление функции ЭП по амплитудам и фазам части сигналов

Смоделируем часто встречающуюся ситуацию, когда набор гармоник неполон. Для этого использовались уже упомянутые ранее скрипты fourier-filter.py и fourier2func.py:

python fourier-filter.py -r (номера выбранных гармоник) 
python fourier2func.py -f func.txt -i func_ft_filtered.txt
Для анализа из полного набора изымались первые несколько гармоник, части из середины, а также к оптимальному набору гармоник (n0) для идентификации ЭП атомов добавлялась гармоника с номером, превышающим n0 на 10.

Влияние полноты набора гармоник на восстановление функции ЭП (в качестве подписи к изображениям - номера взятых для построения гармоник).

1-30

3-30

10-30

0-30,40

0-12,18-30

0-10,12-15,17-18,20-30

При удалении первой гармоники "нулевая" линия опустилась, но пики атомов прекрасно различимы, однако по мере удаления большего количества первых гармоник появляется все более видимый шум. Несмотря на это, даже отсутствие 5 первых гармоник не делает функцию нерепрезентативной.
Ожидаемо добавление гармоники с большим номером практически никак не изменило функцию, т.к. чем больше номер гармоники, тем меньше ее вклад.
Удаление гармоник со средними номерами также дало увеличение шума, однако меньшее, чем при отсутствии начальных гармоник, т.к. те вносят бОльший вклад.

Итоговая таблица

Кратко о качестве восстановленной функции ЭП:
Отличное восстановление – по графику восстановленной функции можно определить положение максимума всех гауссовых слагаемых функции ("атомов")
Хорошее восстановление – можно угадать положение всех максимумов, зная число слагаемых ("атомов"), хотя на восстановленной функции максимумы от атомов не отличимы от шума
Среднее восстановление – положение каких-то атомов определить по восстановленной функции нельзя, других - можно
Плохое восстановление – положение атомов определить не представляется возможным; можно только предсказать примерный размер "молекулы"

Результаты восстановления функции ЭП в ходе выполненных ранее заданий приведены ниже.

Восстановление функции по коэффициентам ряда Фурье.

Набор гармоник

Разрешение

(Å)

Полнота данных

(%)

Шум амплитуды (% от величины F)

Шум фазы

(% от величины phi)

Качество восстановления

(отличное, хорошее, среднее, плохое)

Полный набор гармоник

0–5

6

100

0

0

Плохое

0-10

3

100

0

0

Плохое

0–15

2

100

0

0

Среднее

0–20

1.5

100

0

0

Хорошее

0-25

1.2

100

0

0

Хорошее

0-30

1

100

0

0

Отличное

0-35

0.86

100

0

0

Отличное

0-40

0.75

100

0

0

Отличное

0-50

0.6

100

0

0

Отличное

0-30

1

100

10

0

Отличное

0-30

1

100

0

10

Отличное

0-30

1

100

10

10

Отличное

0-30

1

100

20

0

Отличное

0-30

1

100

0

20

Хорошее

0-30

1

100

20

20

Хорошее

0-30

1

100

30

0

Отличное

0-30

1

100

0

30

Среднее

0-30

1

100

30

30

Плохое

0-30

1

100

30

10

Отличное

0-30

1

100

10

30

Плохое

Неполный набор гармоник

1–30

1

97

0

0

Отличное

3-30

1.05

90

0

0

Хорошее

10-30

1.43

67

0

0

Среднее

0-30,40

1

78

0

0

Отличное

0-12,18-30

1.19

80

0

0

Хорошее

0-10,12-15,17-18,20-30

1.19

80

0

0

Хорошее


Назад
На главную



© Кучеренко Варвара 2019