python compile-func.py -g 6,3.5,4.8+30,3,6.0+6,3.5,7.2+35,3,11.2+30,3.2,12.6 -o func.txt
Рис. 1. Одномерная функция ЭП для трехатомной и двухатомной молекул
python func2fourier.py -i func.txt -o fourier.txt
Фунция ЭП может быть восстановлена по произвольному набору гармоник с помощью обратного преобразования Фурье. Программа fourier-filter.py позволяет выбрать набор необходимых гармоник, а программа fourier2func.py восстанавливает функцию и выводит график исходной и восстановленной функции, например:
python fourier-filter.py -i fourier.txt -r 0-10 -o fourier-0-10.txt python fourier2func.py -f func.txt -i fourier-0-10.txt -o func-0-10.txt
Гармоники 0-5 | Гармоники 0-10 | Гармоники 0-15 |
Гармоники 0-20 | Гармоники 0-25 | Гармоники 0-30 |
Рис. 2. Восстановление функции ЭП по набору первых гармоник. Сплошная линия - исходная функция, пунктир - приближение.
Видно, что отличное качество восстановления было достигнуто только на наборе гармоник 0-30, что соответствует разрешению 1 ангстрем (примерно соответствует минимальному расстоянию между пиками функции ЭП). Это значение, n0=30, было использовано ниже для остальных экспериментов.python func2fourier.py -F M% -P N% -i func.txt -o fourier-M-N.txtНиже приведены результаты восстановления зашумленных гармоник с уровнями шума 0%, 10%, и 50%.
Амплитуды 0%, Фазы 0% | Амплитуды 0%, Фазы 10% | Амплитуды 0%, Фазы 50% |
Амплитуды 10%, Фазы 0% | Амплитуды 10%, Фазы 10% | Амплитуды 10%, Фазы 50% |
Амплитуды 50%, Фазы 0% | Амплитуды 50%, Фазы 10% | Амплитуды 50%, Фазы 50% |
Рис. 3. Влияние шума на качество восстановления функции ЭП.
Видно, что шум значений фаз сильнее ухудшает качество восстановления, чем шум амплитуд.
Гармоники 1-30 | Гармоники 2-30 |
Гармоники 0-11,13,15,17-30 | Гармоники 0-30,40 |
Рис. 4. Восстановление по неполным наборам гармоник, добавление гармоники 40
Таблица 1. Качество восстановления функции ЭП по неполным и зашумленным наборам гармоник.
Набор гармоник |
Разрешение (Å) |
Полнота данных (%) |
Шум амплитуды (%F) |
Шум фазы (%phi) |
Качество восстановления |
Комментарии |
Полные наборы гармоник | ||||||
0-5 | 6 | 100 | 0 | 0 | плохое | |
0-10 | 3 | 100 | 0 | 0 | плохое | |
0-15 | 2 | 100 | 0 | 0 | плохое | |
0-20 | 1.7 | 100 | 0 | 0 | среднее | |
0-25 | 1.2 | 100 | 0 | 0 | хорошее | |
0-30 | 1 | 100 | 0 | 0 | отличное | значение 30 было выбрано как n0 |
0-30 | 1 | 100 | 10 | 0 | отличное | |
0-30 | 1 | 100 | 50 | 0 | среднее | |
0-30 | 1 | 100 | 0 | 10 | хорошее | |
0-30 | 1 | 100 | 0 | 50 | плохое | |
0-30 | 1 | 100 | 50 | 10 | среднее | |
0-30 | 1 | 100 | 10 | 50 | плохое | |
0-30 | 1 | 100 | 10 | 10 | хорошее | |
0-30 | 1 | 100 | 50 | 50 | плохое | |
Неполные наборы гармоник | ||||||
1-30 | 1 | 96.7 | 0 | 0 | отличное | функция смещена по-вертикали |
2-30 | 1 | 93.5 | 0 | 0 | хорошее | функция смещена и искажена синусоидой |
0-11,13,15,17-30 | 1 | 90.3 | 0 | 0 | хорошее | функция зашумлена, но пики ЭП различимы |
0-30,40 | 1 | 100 | 0 | 0 | отличное | нет видимых преимуществ перед набором 0-30 |