Pull to refresh

Метод синтеза синусоидальных колебаний, используя цифровой колебательный контур

Level of difficultyEasy
Reading time2 min
Views1.2K

Добрый вечер, уважаемые коллеги. Статья будет короткой и возможно натолкнет кого-то на реализацию. У меня получилось.

Недавно разрабатывал код, который рассчитывает значения sin(x), cos(x) и квадратного корня из x, на arm. По сути это была апроксимация рядом Тейлора. Но код написан на Assembler и выполнялся относительно быстро. Изначально предполагалось использовать его для своего станка. Немного позже задался вопросом одновременной генерации sin(x) и cos(x) как сигналов для свертки с исходным сигналом. Некоторые, предлагали cordic, но я пошел другим путем.

Изначально, моделировал систему дифференциальных уравнений, использующих два умножения и конечные разности для получения sin(x) / cos(x) на каждый временной отсчет. Фактически, это отклик дифференциального уравнения на дельта-функцию (единичный импульс) который запускает колебательный процесс. Результат вычисления и есть "синусойды". Они получились не ортогональными при небольшом количестве отсчетов на период, из-за неточности вычисления сдвига фазы. Однако, при использовании длительных последовательностей данный метод может заменить классические методы генерации sin(x)/cos(x) поскольку конечные разности становятся небольшими.

Кроме того на вход дифференциального уравнения можно подать сигнал, который будет раскачивать его как реальный колебательный контур. Например, у Вас возникнет желание свернуть сигнал с длинноволновыми последовательностями. В этом случае, можно, просчитывать каждый отсчет sin(x)/cos(x), а можно просто подать входной сигнал с АЦП на вход такого дифференциального уравнения и получить "синхронный интегратор", настроенный на определенную частоту.

Поскольку добротность подобного контура может быть любой, все зависит от распределения шума. Сколько кореляторов можно реализовать для СДВ? Сколько коэффициентов требуется для КИХ/БИХ фильтра? В моем случае, требуется две производных (конечных разности).

Кроме того, используя фильтр основанный на моделе колебательного контура, в моем случае, происходит сглаживание PSK-модулированного сигнала, который формируется как синусойда со сдвигом фазы, домноженная фильтр приподнятого косинуса, с перекрытием в 1/2.

Tags:
Hubs:
+2
Comments9

Articles