Отбор сигнальных событий (5)
Отбор событий
В этой задаче Вам предстоит выполнить анализ данных и выделить в них полезный сигнал. Сделать это позволит подходящая визуализация данных.
В файле data/events.npy
сохранены результаты серии измерений параметров x
и y
в виде двумерного массива формы (N, 2)
, где N
- это число измерений. Первый и второй столбцы содержат значения x
и y
, соответственно. Экспериментатор ожидает, что обе величины будут иметь нормальное распределение с центрами вблизи нуля. Анализ одномерных гистограмм, однако, показал, что помимо ожидаемого сигнала, данные содержат фоновые события, которые значительно искажают распределения.
Задание 1. Сохраните одномерные гистрограммы для параметров x
и y
в директории plots
в файлах hist_x.png
и hist_y.png
, соответственно.
Экспериментатор построил scatter plot для x
и y
, после чего понял как устроены фоновые события и что существует хороший критерий для разделения полезных и фоновых событий.
Задание 2. Постройте scatter plot для параметров x
и y
. Проанализируйте распределение событий, предложите контур, разделяющий сигнальные и фоновые события. Нарисуйте контур в тех же осях, что и scatter plot, и сохраните результат в plots/scatter.png
.
Задание 3. Реализуйте функцию signal_filter
, принимающую массив измеренные данных, выполняющую фильтрацию согласно Вашей процедуре и возвращающую средние значения и среднеквадратичные отклонения параметров x
и y
в виде кортежа ((mean_x, std_x), (mean_y, mean_y))
.
Как проверять решение локально
Код решения и полученные изображения будут проверяться вручную. Работу фукнции signal_filter
можно проверить локально с помощью обычной процедуры: устанавливаем необходимые пакеты (один раз):
pip install -r requirements.txt
Запускаем тесты:
pytest -vs