Подсчет импульсов от счетчика Гейгера, подключенного к звуковой карте компьютера, с помощью MATLAB

Я провел эксперименты по обработке импульсов от своего DIY-дозиметра, подключенного к аудиоразъему ноутбука, в MATLAB.

MATLAB (произносится как Матла́б) - это пакет прикладных программ для выполнения технических вычислений, имеющий свой язык программирования.

Приложение, написанное на языке программирования MATLAB, позволяет выполнять регистрацию и обработку импульсов от дозиметра:

импульсы от разрядов в счетчике Гейгера на фоне шума
импульсы от счетчика Гейгера
импульс от дозиметра в крупном масштабе
импульсы от дозиметра

Я выполнил серию из 50 измерений, причем длительность каждого измерения составила 1 минуту. Обработка результатов измерений выполнялась в MATLAB:
MATLAB и счетчик Гейгера
Минимальное число импульсов в минуту (CPM) составило 43, максимальное - 73. Среднее значение CPM составило 55,8, а стандартное отклонение - 7,54. Также была построена гистограмма распределения числа импульсов.

GeigerCounter_MATLAB

Также я реализовал в MATLAB популярный алгоритм оценки радиационной обстановки - "скользящее среднее"  в проекте GeigerCounter_MATLAB. Исходный код этого проекта открыт (лицензия GPL версии 3.0) и расположен на GitHub в репозитарии https://github.com/Dreamy16101976/GeigerCounter_MATLAB . Основу проекта составляет M-файл geiger.m - скрипт на языке MATLAB.

Проект предназначен для использования под 32-битной версией MATLAB.

При запуске скрипта geiger.m (пункт Run в меню Debug) у пользователя запрашивается:
длительность измерений в секундах (по умолчанию 900):
дозиметр на MATLAB
ширина окна "скользящего среднего" в секундах (по умолчанию 900):
счетчик Гейгера на MATLAB

Затем начинается регистрация импульсов от дозиметра, процесс которой отображается в командном окне MATLAB:
GeigerCounter_MATLAB

При этом отображается текущая длительность измерения (Full) в % от заданной и текущее "скользящее среднее" (MA) числа импульсов в минуту (CPM).

При необходимости процесс измерений можно прервать, нажав сочетание клавиш Ctrl + C:
прерывание MATLAB

Измерения выполняются, пока Full не достигнет 100 %:
GeigerCounter_MATLAB

После завершения измерений график изменения CPM в процессе эксперимента сохраняется в png-файл:
график CPM
а также в текстовом виде в txt-файл в виде разделенных запятыми значений (CSV):
таблица CPM
с именами YYYYMMDDhhmmss, сформированными на основе текущей даты и времени, например, 20150919034315.png и 20150919034315.txt.

Также можно скомпилировать M-файл в исполняемый (.exe) файл. Для этого в командной строке, находясь в каталоге проекта, необходимо ввести команду:
mcc -mv -o geiger geiger.m

(после ключа -o задается имя получаемого исполняемого файла)

Результатом выполнения команды будет файл geiger.exe, который может быть запущен под управлением операционной системы Microsoft Windows:
компиляция MATLAB
Необходимым условием для запуска полученного приложения является наличие на компьютере инсталлированного MATLAB Component Runtime (MCR).

Эксперименты

Ширина окна играет важную роль при измерениях. При ее выборе необходимо найти компромисс между точностью измерений и скоростью реакции дозиметра на изменение радиационного фона.
При ширине окна, равной 1 минуте, флюктуации скорости счета довольно заметны:
измерение радиационного фона
А при ширине окна в 15 минут флюктуации значительно сглажены:
измерение радиационного фона

Я провел эксперимент для оценки реакции связки "дозиметр + MATLAB" с шириной окна 15 минут на резкое повышение фона:
радиация от компаса
Сначала 20 минут на дозиметр действовал естественный радиоактивный фон (на графике заметен начальный переходный процесс (1) и стабилизировавшийся уровень скорости счета (2). Затем я приблизил (момент 3 на графике) к счетчику Гейгера дозиметра компас с радиоактивной светомассой. Реакцией на резкий скачок уровня радиации стало практически линейное (!) возрастание скорости счета (4).

Яндекс.Метрика