Как рассчитать прямоугольную волну из входных значений? - PullRequest
0 голосов
/ 09 ноября 2019

Вот изображение, чтобы сделать его немного проще:

square wave form from input values

Синяя линия представляет некоторые входные значения, которые напоминают волны с переменными амплитудами и длинами. Ось Y представляет значения, ось X представляет время. Обратите внимание, что в волне присутствует некоторое дрожание. Однако каждая волна имеет определенную минимальную и максимальную длину. Зеленая линия показывает, как должны быть преобразованы входные значения.

Обратите внимание: Приведенное выше изображение - просто нарисованный от руки пример, объясняющий задачу. В идеальном случае положение восходящих и опускающихся краев прямоугольной (зеленой) волны близко к среднему значению синих волн. Высота / амплитуда сегментов зеленой волны должна соответствовать значениям синей волны.

  • Как рассчитать зеленую линию?
  • Вам известны какие-либо библиотеки или алгоритмы C # для этого? Я полагаю, что это может быть довольно распространенной задачей для инженеров-электриков, поэтому, скорее всего, существуют некоторые общие подходы. Если да, то как их зовут?
  • Как бы вы подошли к этим требованиям?

Любой совет, который поможет начать работу, приветствуется.

1 Ответ

1 голос
/ 11 ноября 2019

Возьмите базовую частоту (f) с амплитудой (a).

Затем добавьте гармоники ODD с обратной амплитудой, т.е. f * a + f3 * a / 3 + f5 * a / 5 + f7 *a / 7 ...

Это будет стремиться к прямоугольной волне при добавлении гармоник.

Кстати, попробуйте сделать то же самое с ровными гармониками и со всеми гармониками - большое удовольствие !!!

Удачи

Тони

...