@NickS
Como está longe de ser certo que o segundo sinal nas parcelas é de fato uma versão apenas atrasada do primeiro, outros métodos além da correlação cruzada clássica devem ser tentados. Isso ocorre porque a correlação cruzada (CC) é apenas um estimador de probabilidade máxima se o (s) seu (s) sinal (es) forem atrasados versões um do outro. Nesse caso, eles claramente não são, para não dizer nada sobre a não estacionariedade deles.
Nesse caso, acredito que o que pode funcionar é uma estimativa de tempo da energia significativa dos sinais. É verdade que 'significativo' pode ou não pode ser um pouco subjetivo, mas acredito que, observando seus sinais do ponto de vista estatístico, seremos capazes de quantificar 'significativo' e partir daí.
Para esse fim, fiz o seguinte:
PASSO 1: Calcule os envelopes de sinal:
Este passo é simples, pois o valor absoluto da saída da Hilbert-Transform de cada um de seus sinais é calculado. Existem outros métodos para calcular envelopes, mas isso é bastante simples. Este método calcula essencialmente a forma analítica do seu sinal, ou seja, a representação fasorial. Quando você toma o valor absoluto, está destruindo a fase e somente depois da energia.
Além disso, como estamos buscando uma estimativa de atraso de tempo da energia de seus sinais, essa abordagem é garantida.
PASSO 2: Ruído com filtros mediais não lineares que preservam as bordas:
Este é um passo importante. O objetivo aqui é suavizar os envelopes de energia, mas sem destruir ou suavizar as bordas e aumentar os tempos de subida. Na verdade, existe um campo inteiro dedicado a isso, mas para nossos propósitos aqui, podemos simplesmente usar um filtro Medial não linear fácil de implementar . (Filtragem mediana). Essa é uma técnica poderosa porque, diferentemente da filtragem média , a filtragem medial não anulará suas bordas, mas ao mesmo tempo 'suavizará' o seu sinal sem degradação significativa das bordas importantes, pois em nenhum momento qualquer aritmética está sendo realizada em seu sinal. (desde que o comprimento da janela seja ímpar). Para o nosso caso aqui, selecionei um filtro medial de amostras de tamanho de janela 25:
PASSO 3: Remover Tempo: Construir Funções de Estimativa de Densidade de Kernel Gaussiana:
O que aconteceria se você olhasse para o gráfico acima de lado e não da maneira normal? Matematicamente falando, o que você obteria se projetasse todas as amostras de nossos sinais denoisados no eixo da amplitude y? Ao fazer isso, conseguiremos remover o tempo, por assim dizer, e poderemos estudar apenas as estatísticas do sinal.
Intuitivamente, o que aparece na figura acima? Embora a energia do ruído seja baixa, ela tem a vantagem de ser mais 'popular'. Por outro lado, enquanto o envelope de sinal que possui energia é mais energético que o ruído, ele é fragmentado entre os limites. E se considerarmos a 'popularidade' como uma medida de energia? Isto é o que faremos com a implementação (básica) de uma Função de Densidade do Kernel (KDE), com um Kernel Gaussiano.
Para fazer isso, cada amostra é coletada e uma função gaussiana é construída usando seu valor como média, e uma largura de banda predefinida (variação) é selecionada a priori. Definir a variação do seu gaussiano é um parâmetro importante, mas você pode configurá-lo com base em estatísticas de ruído com base em sua aplicação e sinais típicos. (Eu só tenho dois arquivos para ativar). Se construirmos a Estimação do KDE, obteremos o seguinte gráfico:
Você pode pensar no KDE como uma forma contínua de um histograma, por assim dizer, e a variação como sua largura de caixa. No entanto, ele tem a vantagem de garantir um PDF suave, no qual podemos executar o primeiro e o segundo cálculos derivados. Agora que temos os KDEs gaussianos, podemos ver onde as amostras de ruído atingem seu pico de popularidade. Lembre-se de que o eixo x aqui representa as projeções de nossos dados no espaço de amplitude. Assim, podemos ver em quais limiares o ruído é o mais 'energético', e aqueles nos dizem quais limiares evitar.
No segundo gráfico, a primeira derivada dos KDEs gaussianos é obtida, e escolhemos a abcissa da primeira amostra após a primeira derivada após o pico da mistura de gaussianos para atingir um determinado valor próximo de zero. (Ou primeiro cruzamento de zero). Podemos usar esse método e ser 'seguros' porque nosso KDE foi construído com gaussianos suaves, com largura de banda razoável, e a primeira derivada dessa função suave e sem ruído foi usada. (Normalmente, as primeiras derivadas podem ser problemáticas em qualquer coisa, exceto nos sinais SNR altos, pois aumentam o ruído).
As linhas pretas mostram, então, em que limites seria sensato segmentar a imagem, de modo a evitar todo o ruído. Se aplicarmos nossos sinais originais, obteremos os seguintes gráficos, com as linhas pretas indicando o início da energia de nossos sinais:
δt = 241
Espero que isso tenha ajudado.