Можно взять пакет numpy, загрузить в массив результат развёртки сигнала, прогнать преобразование Фурье (numpy.fft.fft() и numpy.fft.fftfreq() в помощь).
Если сигнал именно с амплитудной модуляцией, то на полученном спектре амплитуд должен выделяться пик несущей частоты и её гармоники. Его можно определить либо поиском максимума, либо поиском такой частоты, сумма гармоник (т.е. x2, x3, x4 и т.д.) которой максимальна.
Затем сглаживаешь эти гармоники (например, заменяешь на среднее), и в идеале получаешь форму огибающей, т.е. самого сигнала (+ шум).
Я делал нечто похожее, когда нужно было убрать из сигнала тензодатчика 50Гц наводки от осветительной сети.
Вот сигнал (серый - до частотного фильтра, черный - после, синий - после доп. сглаживания).

Вот спектр (серый - до, черный - после), на нём видны "убранные" пики.

Реализация у меня была колхозная, но свою задачу выполнила.