📡 EngeeDSP: инструменты для ЦОС в Engee
Для ЦОС в Engee мы развиваем специализированную библиотеку EngeeDSP.
Один инструмент вместо набора разрозненных библиотек: единый API, единый подход к работе с сигналами и готовые функции для типовых задач ЦОС.
Сегодня расскажем о проекте, в котором на одном сигнале собрали довольно много таких задач.
📈 Сигнал состоит из трёх гармоник — 50, 120 и 200 Гц — с разными амплитудами и фазами. К нему добавлен гауссовский шум. Частота дискретизации — 1 кГц, длительность — 1 с.
Для начала применяем окно Ханна и считаем БПФ. На амплитудном спектре хорошо видны три частотные компоненты, а их пики можно выделить непосредственно из рассчитанного спектра.
Дальше считаем спектральную плотность мощности (PSD) методом периодограммы. Здесь уже можно посмотреть не только на амплитуды отдельных гармоник, но и на распределение мощности сигнала по частоте.
Отдельно разбираем фазовую составляющую: строим фазовый спектр, а из него рассчитываем групповую задержку как производную фазы по частоте.
Есть и анализ взаимосвязи сигналов. Для синусоиды 50 Гц в качестве эталона рассчитываем когерентность с исходным сигналом. Затем по спектральным оценкам строим передаточную функцию и смотрим отдельно её модуль и фазу.
Для анализа изменения спектра во времени используем STFT. В расчёте применено окно Ханна длиной 128 отсчётов, перекрытие 64 отсчёта и БПФ длиной 256. Это позволяет увидеть частотный состав сигнала не только в целом, но и на отдельных участках времени.
📊 В конце добавляем автокорреляционный анализ и собираем результаты в набор графиков. Получается довольно наглядная картина одного и того же сигнала сразу в нескольких представлениях: время, амплитуда, фаза, мощность, взаимосвязь сигналов и частотно-временная структура.
Весь расчёт собран в Engee с использованием EngeeDSP и Statistics.
🔗 Посмотреть проект и код
🚨 День Engee 21.10
🧑🎓 ПИД-регулятор в АСУ ТП 24.09
Post #729
1.61K

- 🔥 8
- ❤ 2
- 🥰 2