|
|
Задание функции, расчет амплитуд и фаз сигналовДля начала необходимо было задать функцию, моделирующую две молекулы в одномерной ячейке. Я решила создать модель, в которой первая молекула состоит из трех атомов, вторая - из двух. В создании модели мне помог скрипт compile_func.py (выдача скрипта) , который я запустила с параметрами: -g 12,3,12.5+30,3,13.8+10,3,15.4+25,3,20+30,3,21.5 Строка означает, что функция состоит из пяти слагаемых, относящиеся к первой молекуле пики располагаются на 12.5, 13.8, 15.4 Å, ко второй - на 20 и 21.5 Å. Высоты пиков соответственно 12, 30, 10, 25, 30. Модель функции электронной плотности изображена на рисунке 1. ![]() Рисунок 1. Функция, описывающая модель из двух молекул, пяти атомов . Далее с помощью скрипта func2fourier.py были получены амплитуды и фазы (выдачf скрипта). Всего получилось 498 гармоник. Полный набор гармоник Далее были отобраны первые 10, 15, 20, 25, 50 и 100 гармоник, по которым с помощью скрипта fourier2func.py. ![]() ![]() Рисунок 1. Функция, восстановленная по 10 (слева) и 15 (справа) гармоникам. ![]() ![]() Рисунок 2. Функция, восстановленная по 20 (слева) и 25 (справа) гармоникам. ![]() ![]() Рисунок 3. Функция, восстановленная по 50 (слева) и 100 (справа) гармоникам. Видно, что по 10 гармоникам функция восстанавливается плохо: определить количество и точное положение атомов нельзя, только примерно оценить положение двух молекул. По 15 гармоникам можно угадать только положение более крупных атомов, а по 20 положение всех атомо уже угадывается достаточно точно. Я бы сказала, что именно при 20 гармониках качество ваосстановления становится отличным, так что n_0 = 20. При дальнейшем увеличении числа гармоник качество восстановления растет, и между восстановлением по 50 гармоникам и по 100 гармоникам практически нет разницы. Следующим шагом было добавить шум к амплитудам и фазам (параметры –F и –P в скрипте func2fourier.py) - результаты представлены на рисунках 4-6. ![]() ![]() Рисунок 4. Функция, восстановленная по 20 гармоникам со значением =25 шума по амплитудам (справа) и фазам (слева). ![]() ![]() Рисунок 5. Функция, восстановленная по 20 гармоникам со значением =50 шума по амплитудам (справа) и фазам (слева). ![]() ![]() Рисунок 6. Функция, восстановленная по 20 гармоникам с введением шума и в амплитуды, и в фазы. Добавление шума даже =25 сильно осложнаяет выделение пиков, соответствующих небольшим атомам. Шум =50 делает качество восстановления функции средним, а при одновременном введении в амплитуды и фазы - плохим. Неполный набор гармоник Также было выполнено восстановление функции по неполному набору гармоник. В случае (а) была удалена первая гармоника, в случае (б) первые две. Потом я попробовала удалить с 8 по 10 гармоники (в), а также добавить 30 гармонику к первым 20 (г). Результаты отражены на рисунках 7-8. ![]() ![]() Рисунок 7. Восстановление функции при удалении первой гармоники (слева) и двух первых (справа). ![]() ![]() Рисунок 8. Восстановление функции при удалении трех средних гармоник (слева) и при добавлении 30 гармоники к набору из 20. Видно, что удаление первой гармоники опускает функцию, а удаление еще и второй приводит к образованию "ложбинки" в центре. Значит, первая гармоника отвечает за положение всей функции на оси Y, а вторая определяет положение группы молекул в ячейке и дает "холмик" в соответствующем месте. Удаление гармоник из середины набора делает шум менее однородным (лишние пики становятся разнородными по высоте). Добавление тридцатой гармоники делает значимые пики более четко очерченными. Полученные данные суммированы в таблице 1. Как можно определить разрешение неполного набора гармоник? Если полнота набора более 90%, то разрешение будет равно T/n, где n - номер последней гармоники в наборе, как и для полного набора. Если же полнота менее 80%, то необходимо мысленно отбрасывать крайние гармоники и найти такой номер n, при котором полнота будет более 80%. Именно этот номер и следует подставить в формулу T/n. |