Восстановление функции ЭП по ряду ФурьеЗадание состоит из 4-х этапов:
Моделирование функцииДля моделирования использовался файл variant8.txt с набором пар {x;y} и характеристиками гауссовых функций, использовавшимися в качестве параметров скриптом compile-func.py:compile-func.py -g 35,2,5+30,2,8+25.0,2,12+30.0,2,17+35.0,2,23+20,2,26 Результатом работы скрипта стал файл func.txt с набором значений функции электронной плотности, смоделированной по сумме гауссовых функций. Рис. 1 Смоделированная функция электронной плотности Рассчёт гармоникРяд Фурье представляет собой сумму гармоник. Каждая гармоника характеризуется порядком (определяет период гармоники), амплитудой (коэффициент перед косинусом) и фазой (прибавка к аргументу косинуса). Для получения гармоник смоделированная функция разложена в ряд Фурье с помощью скрипта func2fourier.py:func2fourier.py -i func.txt -o fu2fo_garm.txt На выходе получился файл fu2fo_garm.txt с наборами {порядок; амплитуда; фаза} - всего 499 гармоник. Восстановление ЭПВосстановление велось с помощью скрипта fourier2func.py.Восстановление по полному наборуfourier2func.py -i fu2fo_garm.txt -o full_garm_rcvr.txt -s В итоге восстановленная функция ничем не будет отличаться от смоделированной: |
Смоделированная функция (func.txt) | Восстановленная функция (full_garm_rcvr.txt) |
fourier-filter.py -i fu2fo_garm.txt -r 0-256 -o garm_0to256.txt #для файла с гармониками с 0 по 255
fourier2func.py -i garm_0to256.txt -o func_0to256.txt
func2fourier.py -i func.txt -o func_f5p5.txt -F 5 -P 5 #Шум по амплитуде - 5%, шум по фазе - 5%
Убраны первая и нулевая | |
Без трёх гармоник подряд в первой трети(№10, 11, 12) | |
Без трёх гармоник подряд во второй трети(№21, 22, 23) | |
Отсутствие гармоник равномерно (без № 8, 16 и 24) | |
к 30 минимальным добавлена ещё одна (№40) |
Набор гармоник | Разрешение,Å | Полнота данных, % | Шум по амплитуде, % | Шум по фазе,% | Качество восстановления |
---|---|---|---|---|---|
0-498 | 0,06 | 100 | 0 | 0 | Отл |
0-256 | 0,12 | 100 | 0 | 0 | Отл |
0-125 | 0,24 | 100 | 0 | 0 | Отл |
0-64 | 0,47 | 100 | 0 | 0 | Отл |
0-32 | 0,98 | 100 | 0 | 0 | Отл |
0-30 | 1 | 100 | 0 | 0 | Отл |
0-28 | 1,07 | 100 | 0 | 0 | Хор |
0-24 | 1,25 | 100 | 0 | 0 | Хор |
0-16 | 1,88 | 100 | 0 | 0 | Плох |
0-30 | 1 | 100 | 5 | 0 | Отл |
0-30 | 1 | 100 | 0 | 5 | Хор |
0-30 | 1 | 100 | 5 | 5 | Хор |
0-30 | 1 | 100 | 10 | 0 | Хор |
0-30 | 1 | 100 | 0 | 10 | Хор |
0-30 | 1 | 100 | 10 | 10 | Хор |
0-30 | 1 | 100 | 15 | 0 | Хор |
0-30 | 1 | 100 | 0 | 15 | Хор |
0-30 | 1 | 100 | 15 | 15 | Плох |
0-30 | 1 | 100 | 20 | 0 | Хор |
0-30 | 1 | 100 | 0 | 20 | Плох |
0-30 | 1 | 100 | 20 | 20 | Плох |
2-30 | 1,07 | 97,5 | 0 | 0 | Отл |
0-9,13-30 | 1,11 | 90 | 0 | 0 | Плох |
0-20,24-30 | 1,11 | 90 | 0 | 0 | Хор |
0-7,9-15,17-23,25-30 | 1,1 | 90 | 0 | 0 | Хор |
0-30,40 | 0,98 | 100 | 0 | 0 | Отл |