Skip to content

About

Консольный генератор сигналов

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

consolSignalGenerator

Консольный генератор сигналов

Этот проект представляет собой консольное приложение для генерации цифровых сигналов, которые могут быть записаны в файл или использованы для дальнейшей обработки. Приложение поддерживает генерацию сложных сигналов с добавлением шума, а также их визуализацию. Проект доступен как в Python (pulse_Gen.py), так и в C++ (main.cpp).


Описание функционала

  1. Генерация сигнала:

    • Сигнал создается на основе заданных параметров (частота дискретизации, длительность импульсов, амплитуда и т.д.).
    • Поддерживается генерация сигналов с несколькими импульсами, включая фронты и спады.
    • Добавляется случайный шум для моделирования реальных условий.
  2. Многопоточная обработка:

    • Генерация сигнала выполняется параллельно с использованием нескольких ядер процессора для ускорения работы.
  3. Запись данных в файл:

    • Сгенерированные данные могут быть записаны в бинарный файл для дальнейшего использования.
    • Поддерживается форматирование данных для совместимости с АЦП (например, 14-битный код).
  4. Визуализация (Python):

    • Встроенные функции для визуализации сигнала с использованием библиотеки matplotlib.
  5. Настройка параметров:

    • Пользователь может настраивать частоту дискретизации, длительность сигнала, уровень шума и другие параметры.

Установка и использование

Требования

Для Python:

Убедитесь, что установлены следующие зависимости:

numpy
tqdm
matplotlib

Установите зависимости с помощью команды:

pip install -r requirements.txt

Для C++:

Для компиляции и запуска main.cpp потребуется:

  • Компилятор C++ (использовался MinGW 8.1, поставляемый вместе с Qt Creator).
  • Библиотека <chrono> для работы со временем (входит в стандартную библиотеку C++).

Запуск программы

  1. Клонируйте репозиторий:

    git clone https://github.com/work5lov/consolSignalGenerator.git
    cd consolSignalGenerator
  2. Использование Python: Запустите скрипт:

    python pulse_gen.py 5.0 1.0 2.0 1000.0

    Если аргументы не переданы, используются значения по умолчанию:

    python pulse_gen.py
  3. Использование C++: Скомпилируйте и запустите main.cpp:

    g++ main.cpp -o main -std=c++17
    ./main
    consolSignalGenerator.exe 5.0 1.0 2.0 1000.0
  4. Настройка параметров:

    • Для Python: Измените параметры в файле pulse_Gen.py.
    • Для C++: Измените параметры непосредственно в исходном коде main.cpp.
  5. Визуализиция при помощи скрипта на 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.


About

Консольный генератор сигналов

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages