@NickS
Поскольку далеко не ясно, что второй сигнал на графиках фактически представляет собой версию первого с исключительно задержкой, необходимо попытаться использовать другие методы, помимо классической взаимной корреляции. Это связано с тем, что взаимная корреляция (СС) является просто оценщиком максимального правдоподобия, если ваши сигналы являются задержанными версиями друг друга. При этом их явно нет, не говоря уж о нестационарности их тоже.
В этом случае я считаю, что может сработать оценка времени значительной энергии сигналов. Конечно, «значительный» может или не может быть несколько субъективным, но я считаю, что, взглянув на ваши сигналы со статистической точки зрения, мы сможем количественно оценить «значительный» и перейдем оттуда.
Для этого я сделал следующее:
ШАГ 1: Рассчитайте огибающие сигнала:
Этот шаг прост, так как вычисляется абсолютное значение выходного преобразования Гильберта для каждого из ваших сигналов. Существуют и другие методы вычисления конвертов, но это довольно просто. Этот метод по существу вычисляет аналитическую форму вашего сигнала, другими словами, векторное представление. Когда вы берете абсолютное значение, вы разрушаете фазу и только после энергии.
Кроме того, поскольку мы проводим оценку времени задержки энергии ваших сигналов, такой подход оправдан.
ШАГ 2: Удаление шума с сохраняющих края нелинейных медиальных фильтров:
Это важный шаг. Цель здесь состоит в том, чтобы сгладить ваши энергетические оболочки, но без разрушения или сглаживания ваших краев и быстрого времени нарастания. На самом деле этому посвящено целое поле, но для наших целей мы можем просто использовать простой в реализации нелинейный медиальный фильтр . Медианная фильтрация. Это мощный метод, потому что, в отличие от средней фильтрации, медиальная фильтрация не обнулит ваши края, но в то же время «сгладит» ваш сигнал без значительного ухудшения важных краев, так как ни в коем случае не выполняется какая-либо арифметика с вашим сигналом (при условии, что длина окна нечетна). Для нашего случая здесь я выбрал медиальный фильтр с размером окна 25 сэмплов:
ШАГ 3: Удалить время: Построить функции оценки плотности ядра по Гауссу:
Что произойдет, если вы посмотрите на вышеуказанный сюжет в сторону, а не в обычном порядке? Математически говоря, это значит, что бы вы получили, если бы вы спроецировали каждую выборку наших шумоподавленных сигналов на ось Y-амплитуды? При этом нам удастся, так сказать, сократить время, и мы сможем изучать только статистику сигналов.
Что интуитивно понятно из рисунка выше? Несмотря на то, что шумовая энергия мала, она имеет преимущество в том, что она более «популярна». Напротив, в то время как огибающая сигнала, которая имеет энергию, является более энергичной, чем шум, она фрагментирована через пороги. Что если бы мы рассматривали «популярность» как меру энергии? Это то, что мы будем делать с (моей грубой) реализацией функции плотности ядра (KDE) с гауссовым ядром.
Для этого берется каждая выборка и строится гауссова функция, используя ее значение в качестве среднего значения и предварительно установленную полосу пропускания (дисперсию), выбранную априори. Установка дисперсии вашего гауссиана является важным параметром, но вы можете установить его на основе статистики шума, основанной на вашем приложении и типичных сигналах. (У меня есть только ваши 2 файла, чтобы уйти). Если затем мы построим оценку KDE, мы получим следующий график:
Вы можете думать о KDE как о непрерывной форме гистограммы, а о дисперсии - о ширине бина. Однако у него есть преимущество, заключающееся в том, что он гарантирует гладкий формат PDF, так что мы можем затем выполнить первое и второе производные исчисления. Теперь, когда у нас есть гауссовские KDE, мы можем видеть, где образцы шума достигают пика популярности. Помните, что ось X здесь представляет проекции наших данных на амплитудное пространство. Таким образом, мы можем видеть, в каких порогах шум является наиболее «энергичным», а те говорят нам, каких порогов следует избегать.
На втором графике берется первая производная гауссовых KDE, и мы выбираем абсциссу первого образца после первой производной после пика смеси гауссианов, чтобы достичь определенного значения, близкого к нулю. (Или сначала пересечение нуля). Мы можем использовать этот метод и быть «безопасными», потому что наш KDE был построен из гладких гауссианов с разумной шириной полосы, и была взята первая производная от этой гладкой и бесшумной функции. (Как правило, первые производные могут быть проблематичными в любом случае, кроме сигналов с высоким SNR, поскольку они увеличивают шум).
Черные линии показывают, на каких порогах мы хотели бы «сегментировать» изображение, чтобы избежать минимального уровня шума. Если затем мы применим к нашим исходным сигналам, мы получим следующие графики с черными линиями, указывающими начало энергии наших сигналов:
Таким образом, это дает выборок.δt=241
Я надеюсь, что это помогло.