Разработка программы очистки от шума сигнала C1s рентгеновского фотоэлектронного спектрометра в среде программирования MATLAB

Научный руководитель: кандидат физико-математических наук, доцент кафедры физики и электроники СКФУ,

Выполнил: Панкратов Алексей, МАН, г. Ставрополь,9 класс

Ставрополь 2013

Оглавление

Цель работы.. 3

Введение. 3

Принцип работы спектрометра. 4

Методика сглаживания исходного сигнала и его математическая основа. 5

Программная реализация методики сглаживания. 7

Итоги работы.. 15

Перспективы работы.. 15

Цель работы

· Разработать программу очистки сигнала РФЭС в среде программирования MATLAB.

· Изучить язык программирования MATLAB и реализовать в нем решение поставленной задачи.

Введение

Рентгеновский фотоэлектронный спектрометр (РФЭС) кафедры физики СКФУ, изготовленный фирмой «Буревестник» более 30-и лет назад, непрерывно совершенствовался. В первую очередь, это коснулось его электронного оборудования. Однако до сих пор осталась не решённой проблема понижения погрешности измерений. С развитием компьютерной техники появилась возможность не просто снизить уровень шумов в спектре, но и автоматизировать процесс спектрального анализа, создав на базе РФЭ-спектрометра и компьютера оснащённого специальным программным обеспечением аппаратно-программный комплекс для спектрометрических исследований.

Моя задача состояла в том, чтобы создать универсальную программу на языке MATLAB, которая позволяла бы очищать сигнал РФЭ-спектрометра от шума. Преимущества среды программирования MATLAB в том, что она позволяет обрабатывать данные не только введённые вручную, но и поступающие в компьютер через стандартный компьютерный интерфейс - COM-порт. Эта возможность позволит в будущем упростить и ускорить спектральный анализ, а также поможет повысить точность самих измерений. Для этого, правда, понадобится оснастить РФЭ-спектрометр специальным электронным модулем, преобразующим поступающий с него аналоговый сигнал в поток цифровых данных. Но это в будущем, а пока предстояло разработать и реализовать в виде программы алгоритм сглаживания, который позволял бы избавить любой сигнал, представленный в виде одномерной матрицы от высокочастотных шумов.

НЕ нашли? Не то? Что вы ищете?

Для начала разберёмся, что может являться причиной этих шумов?

1.  Погрешность измерений. Тут всё зависит от того, насколько точно мы снимаем показания спектрометра и насколько безошибочно мы заносим их в таблицу. Учитывая тот факт, что количество отсчётов может превышать 100, можно утверждать, что ошибок снятия и записи показаний избежать почти не возможно.

2.  Шумовые помехи. Это шумовые токи в полупроводниковых элементах, составляющих электронную схему спектрометра. Уровень и частота этих шумов в значительной степени зависит от схемотехнического решения, а также от уровня измеряемого сигнала. Чем слабее сигнал, тем труднее его отделить от шумов.

3.  Естественные шумы. Это реально существующие мгновенные значения отклонения энергии от абсолютного значения, вызванные влиянием других электронов на энергию отдельного электрона, энергия которого измеряется. Уровень этих шумов предсказать или рассчитать невозможно, так как невозможно определить положение других электронов, влияющих на результат измерений.

Каким бы ни было происхождение этих шумов, мы должны от них избавиться. К счастью уровень шумов достаточно низок по отношению к полезному сигналу, а их частота достаточно высока для того, чтобы подавить эти шумы, даже не прибегая к сложным математическим вычислениям.

Безусловно, лучшим способом борьбы с шумами было бы усреднение нескольких десятков или даже сотен измерений в каждой точке спектра. Только такой метод даст максимально точный и объективный результат. Но в нашем распоряжении имеется массив данных только лишь одного измерения спектра. И задача в том, чтобы синтезировать из него результат максимально близкий к идеалу.

Принцип работы спектрометра

Атомы исследуемого вещества облучаются электромагнитным излучением рентгеновского диапазона спектра. Электроны уровня 1s покидают свою орбиту лишь тогда, когда сумма энергии связи этого электрона и его кинетической энергии становится равной энергии попавшего в него фотона. Покинувшие свои орбиты электроны образуют поток, представляющий собой β-излучение, интенсивность которого измеряется детектором РФЭ-спектрометра. По спектру электронов можно определить энергии связей электронов и их уровни энергии в исследуемом веществе. В фотоэлектронной спектроскопии применяются монохроматическое(т. е. с обладающее очень малым разбросом частот, в идеале — одной частотой (длиной волны)) рентгеновское или ультрафиолетовое излучения с энергией фотонов от десятков тысяч до десятков эВ (что соответствует длинам волн излучения от десятых долей до сотен). Спектр исследуют при помощи электронных спектрометров высокого разрешения (достигнуто разрешение до десятых долей эВ в рентгеновской области и до сотых долей эВ в ультрафиолетовой области). Метод фотоэлектронной спектроскопии применим к веществу в газообразном, жидком и твёрдом состояниях, и позволяет исследовать как внешние, так и внутренние электронные оболочки атомов и молекул, уровни энергии электронов в твёрдом теле. Для молекул энергии связи электронов во внутренних оболочках, образующих их атомов, зависят от типа химической связи, поэтому фотоэлектронная спектроскопия успешно применяется в аналитической химии для определения состава вещества и в физической химии - для исследования химической связи.

Методика сглаживания исходного сигнала и его математическая основа

В моем распоряжении находилась таблица с данными, содержащими результаты измерения спектра сигнала C1s(s-оболочка 1-го энергетического уровня атома углерода).

Мной разработан метод сглаживания, основанный на усреднении значений тока I в точках отсчёта, находящихся справа и слева от текущего измеряемого отсчёта. Для реализации этого метода оказалось вполне достаточно знаний школьного курса математики 9-го класса, а очень простой и удобный синтаксис языка MATLAB позволил легко его реализовать на практике.

Этот метод применяется для «очистки от шумов» сигнала рентгеновского фотоэлектронного спектрометра и известен в математике как «скользящее усреднение». Суть этого метода заключается в расчете для каждого значения аргумента среднего значения по нескольким соседним данным. Число точек (w), участвующих в расчете такого среднего значения, называется окном скользящего усреднения: чем оно шире, тем больше данных участвуют в расчете среднего значения, и тем более сглаженная кривая получается.

Формула для расчета скользящего усреднения в общем виде выглядит так:

,

где w – ширина окна, выраженная в количестве отсчетов, участвующих в усреднении, – значение сглаженной функции в точке с номером j, i – Номер точки, соседней с .

Формула для расчета скользящего усреднения, выведенная мной:

,

где - значение сглаженной функции в точке с номером n.

В этой формуле за w взято значение 5, т. к. результат сглаживания с количеством точек в окне, равном 5, оказывается оптимальным. Если взять ширину окна меньше 5, то сглаживание будет недостаточным; если больше 5, то сглаживание прямых участков будет еще эффективней, но при этом пиковое значение функции будет занижено. И чем больше величина w, тем больше снижено это пиковое значение, но при этом, функция становится более гладкой. Результаты сглаживания функций при разных значениях w можно увидеть на рис. 1 и 2.

Без имени-4.pngscreenmax.png

Рис.1. Пикисходной функции и сглаженных функции при разных значениях w.

Без имени-4.pngscreenhorizontal.png

Рис.2. Фрагмент горизонтальной частиисходной функции и сглаженных функций при разных значениях w.

Первоначально эта функция выглядела так:

В ходе сокращений

формула приняла следующий вид:

Различие в коэффициенте при точке этой функции со значением коэффициента в функции, приведенной выше, объясняется, по моему мнению, так:

Представленная функция работает только для одной точки окна. Т. к. мы вычисляем среднее арифметическое от значений в точках f() и f(), где i – номер соседней точки с точкой, для которой выполняется сглаживание, а значение w мы взяли равное 5, то к элементу f() нельзя прибавить еще одну точку для вычисления среднего арифметического от двух точек. Следовательно, мы принимаем эту точку за 0. А при выполнении скользящего усреднения для всей функции, мы начинаем вычисление среднего арифметического от точек в следующем окне, и точка f() входит в это окно, то формула принимает следующий вид:

.

Программная реализация методики сглаживания

Разработанная методика сглаживания реализована в среде программирования MATLAB.

Предварительно предоставленные данные были введены в программу в виде одномерных матриц. Процедура ввода данных в массив показана ниже.

x=[290.3 290.2 290.1 290 289.9 289.8 289.7 289.6 289.5 289.4 289.3 289.2 289.1 289 288.9 288.8 288.7 288.6 288.5 288.4 288.3 288.2 288.1 288 287.9 287.8 287.7 287.6 287.5 287.4 287.3 287.2 287.1 287 286.9 286.8 286.7 286.6 286.5 286.4 286.3 286.2 286.1 286 285.9 285.8 285.7 285.6 285.5 285.4 285.3 285.2 285.1 285 284.9 284.8 284.7 284.6 284.5284.4 284.3 284.2 284.1 284 283.9 283.8 283.7 283.6 283.5 283.4 283.3 283.2 283.1 283 282.9 282.8 282.7 282.6 282.5 282.4 282.3 282.2 282.1 282 281.9 281.8 281.7 281.6 281.5 281.4 281.3 281.2 281.1 281 280.9 280.8 280.7 280.6 280.5 280.4 280.3 280.2 280.1 280 279.9 279.8 279.7];

y=[4.7 4.8 4.9 5 5.5 6 6.5 5.5 6 9 8.5 8.5 9 9 11.5 9 10 11 12 11.5 12.5 12.5 14 13 15 15 16 18 19 20 23 24 26 31 34 35.5 42 42.5 50.5 56.5 57 61.5 68 71 74 78 79.5 80.5 80 83 80 78.5 75 71.5 66 63.5 57 53 4841 37 32 28.5 22 21 20 17.6 13.5 13 10.5 10 10 9 8 6.5 6 6.5 6 6 5.5 5.5 4 4.5 4 4 4 4 2 2 2.5 4 2 3 2.5 2.5 3 3.5 3 4 3.5 4 3 2.5 3 3.3 3.4 3.5];

z=[4.7 4.8 4.9 5 5.5 6 6.5 5.5 6 9 8.5 8.5 9 9 11.5 9 10 11 12 11.5 12.5 12.5 14 13 15 15 16 18 19 20 23 24 26 31 34 35.5 42 42.5 50.5 56.5 57 61.5 68 71 74 78 79.5 80.5 80 83 80 78.5 75 71.5 66 63.5 57 53 4841 37 32 28.5 22 21 20 17.6 13.5 13 10.5 10 10 9 8 6.5 6 6.5 6 6 5.5 5.5 4 4.5 4 4 4 4 2 2 2.5 4 2 3 2.5 2.5 3 3.5 3 4 3.5 4 3 2.5 3 3.3 3.4 3.5];

Массив данных x – это массив значений энергии электронов выраженной в электрон-вольтах.

Массив y –массив значений силы тока, выраженной в относительных единицах.

Массив z идентичен массиву y и предназначен для обработки, в то время как массив y предназначен лишь для построения графика исходного сигнала.

for i=1:1

OutData(i)=0.2*(z(i)+z(i)+z(i)+z(i+1)+z(i+2)); %для обработки первой точки

end;

for i=2:2

OutData(i)=0.2*(z(i-1)+z(i)+z(i)+z(i+1)+z(i+2));%для обработки второй точки

end;

for i=3:1:105

OutData(i)=0.2*(z(i-2)+z(i-1)+z(i)+z(i+1)+z(i+2));

end;

for i=105:1:106

OutData(i)=0.2*(z(i-2)+z(i-1)+z(i)+z(i+1)+z(i));%для обработки предпоследней

end; %точки

for i=106:1:107

OutData(i)=0.2*(z(i-2)+z(i-1)+z(i)+z(i)+z(i));%для обработки последней точки

end;

for i=2:1:107

n(i)=z(i)-OutData(i);

end;

plot(x, z, 'r--',x, n,'m',x, OutData);grid on;

Программа работает согласно приведенной ранее формуле. У этого метода сглаживания есть один недостаток, который заключается том, что приведенная функция в своем первоначальном виде не работает для первой, второй, предпоследней и последней точки, т. к. необходимые для обработки этих точек данные требуют дополнительных элементов массива, которые отсутствуют. Поэтому формула для этих точек была изменена: отсутствующие элементы массива были заменены на копии значений массива, для которого вычисляется скользящее усреднение. Результаты работы программы на языке MATLAB представлены на графиках (рис.3, 4 и 5).

Без имени-4.pngдо сглаживания.png

Рис.3. Данная функция.

Без имени-4.pngБез имени-4.pngфункция после сглаживания.png

Рис.4. Сглаженная функция.

Без имени-4.pngИнтерполяция без шума.png

Рис.5. Данная и сглаженная функции.

Разработанная программа была опробована на искусственно синтезированных и зашумлённых сигналах различной формы и показала свою универсальность и весьма эффективное подавление высокочастотных шумов.

После сглаживания функции появилась возможность выделить шум из исходного сигнала путем вычитания сглаженной функции из заданной. Значения функции шума были записаны в массив n и, используя значения элементов этого массива, был построен график выделенного шума (Рис.6).

Без имени-4.pngnoise.png

Рис.6. Выделенный шум.

Если внимательно присмотреться к полученному графику, можно заметить наличие всплесков интенсивности шумов в определенных участках спектра, повторяющихся с устойчивой периодичностью. Для установления периода всплесков шумов и их амплитуды было решено подвергнуть этот график сглаживанию, предварительно преобразовав его в график абсолютных значений шумов (модуль). (Рис.7)

Без имени-4.pngABSnoise.png

Рис.7. Абсолютные значения шумов.

Результат сглаживания абсолютных значений шумов методом скользящего усреднения с разным количеством элементов в окне (при w =13;11;9;7;5;3), представлен на рисунке 8.

Без имени-4.pngПаутина.png

Рис.8. Результат сглаживания абсолютных значений шумов.

Из выше приведенного рисунка видно, что графики функции шума, подвергнутой скользящему усреднению с разным количеством элементов в окне, обнаруживают закономерность изменения амплитуды шумов в пределах установленного участка спектра. Далее было проведено усреднение всех значений полученных графиков. (Рис.9).

Без имени-4.pngNoiseWebSmoothing.png

Рис.9. Усредненные значения графиков шумов.

График (Рис.9) показывает, что всплески интенсивности шумов находятся на отметках ≈ 281,45 эВ; 283,9 эВ;286,5 эВ; 289,15 эВ; Интервал между пиками составляет приблизительно 2,55 эВ. В чем причина нестабильности измерений именно на этих уровнях энергии, неизвестно. Можно только предположить, что природа этого явления заключается либо во взаимодействии электронов перечисленных энергий с электронами, находящимися на своих орбитах, либо в наводках, возникающих в электронных компонентах измерительной аппаратуры. О стабильности выявленной закономерности говорить пока преждевременно, так как данные получены на основании исследования всего лишь одного измерения спектра. Однако всплески интенсивности шума так же очевидны, как и их строгая периодичность в пределах заданного диапазона спектра.

Итоги работы

·  Разработан новый, простой способ очистки сигнала РФЭС от шума.

·  Разработана программа очистки сигнала РФЭС от шума в среде программирования MATLAB.

·  В выделенном спектре шумов обнаружены области аномального их усиления.

Перспективы работы

В будущем предстоит разработать метод разделения очищенного от шумов сигнала C1s РФЭС на компоненты и реализовать его в разработанной программе в среде программирования MATLAB, а также продолжить изучение аномалий в шумовых составляющих спектров, полученных на РФЭ-спектрометре с целью выявления их закономерностей и природы их возникновения.

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