2016-02-20 3 views
-1

У меня есть сигнал с несколькими тонами и вы хотите знать, где начинается данный тон и где он заканчивается.Как получить тон тон в scipy?

Сначала я применяю полосовой фильтр и преобразую сигнал (fft), чтобы узнать, имеет ли запись тон.

Теперь я получаю отфильтрованный сигнал во временной области (рисунок). Предполагалось, что он будет от 0 мс до 276 мс (красная линия). Имейте в виду, что этот тон может быть сдвинут во времени (от 150 до 426 мс).

plt.plot(time_, np.abs(signal))

Как я могу обнаружить, где начинается и заканчивается тон с помощью SciPy?

+1

Я не думаю, что это вопрос программирования. На самом деле, я думаю, что вопрос не имеет объективного ответа, поскольку тон представляет собой суперпозицию частотных составляющих, каждая из которых распространяется на все время. Поэтому нет точного начала или конца. –

+0

Начните с построения спектрограммы. (Я голосовал, чтобы закрыть этот вопрос, хотя, как полагают, речь идет скорее о обработке сигналов, чем о программировании.) – tom10

+0

Вопрос, скорее всего, получит лучшие ответы на dsp.stackexchange: http://dsp.stackexchange.com/ – hotpaw2

ответ

0

Определите форму (запустите fft, определите частотную характеристику, выполните синтез сигнала) вашего «тона» и запустите функцию взаимной корреляции. Вы сможете обнаружить появление вашего «тона», поскольку функция взаимной корреляции будет иметь более высокое значение после того, как начнется «тон» (который будет подниматься и опускаться, поскольку сигнал является периодическим).

 Смежные вопросы

  • Нет связанных вопросов^_^