Консольный генератор сигналов
Этот проект представляет собой консольное приложение для генерации цифровых сигналов, которые могут быть записаны в файл или использованы для дальнейшей обработки. Приложение поддерживает генерацию сложных сигналов с добавлением шума, а также их визуализацию. Проект доступен как в Python (pulse_Gen.py), так и в C++ (main.cpp).
-
Генерация сигнала:
- Сигнал создается на основе заданных параметров (частота дискретизации, длительность импульсов, амплитуда и т.д.).
- Поддерживается генерация сигналов с несколькими импульсами, включая фронты и спады.
- Добавляется случайный шум для моделирования реальных условий.
-
Многопоточная обработка:
- Генерация сигнала выполняется параллельно с использованием нескольких ядер процессора для ускорения работы.
-
Запись данных в файл:
- Сгенерированные данные могут быть записаны в бинарный файл для дальнейшего использования.
- Поддерживается форматирование данных для совместимости с АЦП (например, 14-битный код).
-
Визуализация (Python):
- Встроенные функции для визуализации сигнала с использованием библиотеки
matplotlib.
- Встроенные функции для визуализации сигнала с использованием библиотеки
-
Настройка параметров:
- Пользователь может настраивать частоту дискретизации, длительность сигнала, уровень шума и другие параметры.
Убедитесь, что установлены следующие зависимости:
numpy
tqdm
matplotlibУстановите зависимости с помощью команды:
pip install -r requirements.txtДля компиляции и запуска main.cpp потребуется:
- Компилятор C++ (использовался
MinGW 8.1, поставляемый вместе сQt Creator). - Библиотека
<chrono>для работы со временем (входит в стандартную библиотеку C++).
-
Клонируйте репозиторий:
git clone https://github.com/work5lov/consolSignalGenerator.git cd consolSignalGenerator -
Использование Python: Запустите скрипт:
python pulse_gen.py 5.0 1.0 2.0 1000.0
Если аргументы не переданы, используются значения по умолчанию:
python pulse_gen.py
-
Использование C++: Скомпилируйте и запустите
main.cpp:g++ main.cpp -o main -std=c++17 ./main
consolSignalGenerator.exe 5.0 1.0 2.0 1000.0
-
Настройка параметров:
- Для Python: Измените параметры в файле
pulse_Gen.py. - Для C++: Измените параметры непосредственно в исходном коде
main.cpp.
- Для Python: Измените параметры в файле
-
Визуализиция при помощи скрипта на
Python:python visualize.py path/to/bin/file sample_fraction
После выполнения программы вы получите:
- Бинарный файл с записанными данными (например,
signal_YYYYMMDD_HHMMSS.bin). - Отчет о времени выполнения и основных параметрах сигнала.
| Функционал | Python (pulse_Gen.py) |
C++ (main.cpp) |
|---|---|---|
| Генерация сигнала | Использует многопроцессорную обработку | Однопоточная реализация |
| Запись в файл | Поддерживает прогресс-бар | Быстрая запись благодаря низкоуровневым операциям |
| Производительность | Медленнее из-за интерпретации | Быстрее благодаря компиляции |
| Визуализация | Поддерживается через matplotlib |
Не поддерживается |
pulse_Gen.py: Основной скрипт для генерации сигналов на Python.visualize.py: Скрипт для визуализации сгенерированного сигнала.main.cpp: Реализация генерации сигналов на C++.CMakeLists.txt: Файл для сборки C++ версии проекта.requirements.txt: Файл с зависимостями для Python.README.md: Документация проекта.
Этот проект распространяется под лицензией MIT.