Когда вы моделируете алгоритмы ЦОС в виде кода (например, в скриптах с массивами), вы работаете со всем сигналом целиком. Это удобно для анализа, но абсолютно не подходит для:
➖Реального времени — нужно обрабатывать отсчёты по мере их поступления, а не ждать окончания всего сигнала;
➖Динамических систем — параметры цифрового фильтра или частота сигнала могут меняться на лету;
➖Эффективности памяти — хранение длинных записей сигнала может быть критично для встраиваемых систем.
Переход к обработке отсчет за отсчетом через явные циклы возможен, но резко увеличивает объем кода и риск ошибок. Строить же алгоритм блоками, действительно, не всегда удобно.
➡️ Что предлагает Engee?
В Engee есть мощный механизм — системные объекты из собственных библиотек EngeeDSP, EngeePhased, EngeComms и EngeeRadar. Это готовые классы, которые:
✅работают в потоковом режиме,
✅хранят внутренние состояния между вызовами,
✅позволяют строить скриптовые модели, которые по гибкости не уступают диаграммам из блоков.
📌 Проект «Системные объекты EngeeDSP для потоковой обработки» — это живой пример, как использовать подобные объекты:
➡️ Что реализовано в виде кода?
1️⃣Генератор сигнала с переменной частотой
Используется SineWaveDSP — системный объект, который выдаёт отчёты синусоиды. Внутри цикла можно менять его частоту «на ходу», создавая линейно-частотную модуляцию (ЛЧМ).
2️⃣КИХ-фильтр нижних частот (ФНЧ)
Объект DiscreteFIRFilter инициализируется коэффициентами, рассчитанными под нужную частоту среза ФНЧ. Каждый шаг цикла он принимает новый вектор отсчётов сигнала и возвращает результат — дополнительной буферизации не требуется.
3️⃣Спектральный анализ в скользящем окне
Объект EngeeFFT вычисляет БПФ кадра сигнала с оконной функцией на входе. Комплексный вектор на выходе алгоритма БПФ затем берется по модулю и переводится из значений амплитуды в децибелы объектом dBConversion.
4️⃣Анимация
Средствами редактора кода Engee реализована анимация спектра сигнала в процессе вычислений.
⭐️Бонус проекта
Проект также включает эталонную модель reference_FFT.engee, реализованную на параметризуемых блоках. Это позволяет сопоставить два подхода (скриптовый и блочный) и верифицировать результаты.
📎 Переходите по ссылке, смотрите код, экспериментируйте:
Системные объекты EngeeDSP для потоковой обработки
📹 Вебинар "Возможности Engee для моделирования Систем управления" 20.05
🎓 Тренинг "Моделирование в Engee" 27.05-28.05
