Проект универ
Вот 30 конкретных задач для проекта «Разработка программы для расчета параметров биосигналов», разбитых по этапам и функциональным блокам. Эти задачи можно использовать для формирования технического задания (ТЗ), для распределения в команде или как чекпоинты для преподавателя.
---
Блок 1: Теоретическое исследование и аналитика
Задачи этого блока показывают глубину проработки темы.
1. Провести обзор предметной области: Изучить существующее ПО для анализа биосигналов (LabVIEW, Matlab, Biopac, OpenBCI GUI) и выявить их недостатки.
2. Классифицировать типы биосигналов: Составить таблицу характеристик ЭКГ, ЭЭГ, ЭМГ и ФПГ (частотный диапазон, амплитуда, природа возникновения).
3. Изучить математический аппарат: Разобрать методы спектрального анализа (БПФ) и вейвлет-преобразования применительно к зашумленным сигналам.
4. Собрать базу тестовых сигналов: Найти и скачать открытые датасеты (PhysioNet, MIT-BIH Arrhythmia Database) для последующего тестирования алгоритмов.
5. Составить сравнительную таблицу фильтров: Сравнить фильтры Баттерворта, Чебышева и эллиптические для задачи очистки ЭКГ от сетевой помехи 50 Гц.
6. Проанализировать форматы данных: Изучить структуру форматов EDF, BDF, CSV и HDF5 для хранения многоканальных физиологических записей.
Блок 2: Разработка математических алгоритмов и бэкенда
Самый объемный блок — "сердце" программы.
1. Реализовать функцию чтения данных: Написать модуль для импорта данных из CSV и TXT файлов (столбец времени, столбец амплитуды).
2. Добавить поддержку медицинского формата EDF: Реализовать парсер для чтения файлов формата EDF (European Data Format).
3. Реализовать фильтр высоких частот: Создать функцию для удаления дрейфа изолинии (постоянной составляющей) сигнала.
4. Реализовать режекторный фильтр: Написать функцию для подавления сетевой помехи 50 Гц без искажения полезного сигнала.
5. Реализовать фильтр низких частот: Создать фильтр для среза высокочастотных мышечных шумов (для ЭКГ частота среза ~40 Гц).
6. Разработать алгоритм детекции R-пиков (ЭКГ): Реализовать метод Пана-Томпкинса (Pan-Tompkins) для нахождения QRS-комплексов.
7. Реализовать расчет мгновенного пульса: Вычислить пульс на основе интервалов между найденными R-пиками (RR-интервалы).
8. Разработать модуль вариабельности ритма (ВСР): Рассчитать временные показатели SDNN, RMSSD, pNN50 по массиву RR-интервалов.
9. Реализовать спектральный анализ ВСР: Разложить сигнал RR-интервалов на частоты (VLF, LF, HF) с помощью преобразования Фурье.
10. Реализовать функцию интерполяции: Восстановить пропущенные отсчеты в сигнале (например, при потере пакетов данных с Bluetooth-датчика).
11. Разработать алгоритм детекции альфа-ритма (ЭЭГ): Реализовать функцию для вычисления мощности сигнала в диапазоне 8-12 Гц для закрытых глаз.
12. Реализовать нормализацию сигнала: Привести значения амплитуды к единому диапазону (например, от 0 до 1) для корректного отображения.
13. Создать функцию определения частоты дискретизации: Автоматически определять частоту дискретизации из метаданных файла или вычислять её по временной метке.
14. Реализовать вейвлет-шумоподавление: Очистить сигнал от шума с помощью дискретного вейвлет-преобразования и пороговой обработки коэффициентов.
Блок 3: Пользовательский интерфейс (GUI) и взаимодействие
Задачи, которые делают программу видимой и удобной.
1. Спроектировать макет главного окна: Нарисовать в Figma или на бумаге расположение элементов: панель инструментов, область графика, панель результатов.
2. Реализовать виджет отображения графика: Внедрить библиотеку matplotlib или PyQtGraph для отрисовки сигнала с возможностью масштабирования.
3. Создать диалог открытия файла: Реализовать стандартное окно выбора файла с фильтром по расширениям (.csv, .edf).
4. Разработать панель управления фильтрами: Добавить слайдеры для настройки частот среза фильтров в реальном времени (или кнопки "Применить").
5. Реализовать отображение маркеров пиков: Визуально отметить на графике найденные R-пики (красными кружками или крестиками).
6. Создать панель вывода результатов: Выводить числовые значения (Средний пульс, SDNN, LF/HF) в отдельную таблицу или текстовые поля.
7. Реализовать функцию экспорта отчета: Сохранить рассчитанные параметры и скриншот графика в PDF-файл (с использованием библиотеки ReportLab или FPDF).
8. Добавить индикатор прогресса: Показывать прогресс-бар при обработке длинных записей (например, 24-часовых), чтобы программа не "зависала".
Блок 4: Тестирование, валидация и документирование
Задачи для подтверждения работоспособности.
1. Провести юнит-тестирование фильтров: Подать на вход фильтра чистый синус и проверить, подавилась ли нужная частота.
2. Валидация медицинской точности: Запустить программу на размеченном датасете MIT-BIH и сравнить найденные программой пики с "правильными" пиками из базы (оценка ошибки детекции).
Универ новая общага