Eu tenho alguns dados de microscopia que estão contaminados por um artefato de batimento cardíaco que eu gostaria de remover. Os dados consistem em uma grande série temporal de imagens capturadas em ~ 60Hz.
Aqui está um pequeno exemplo de clipe em formato GIF:
Peguei a intensidade média de pixels ao longo do tempo e calculei o periodograma usando o método de Welch:
Como você pode ver, há um pico acentuado em ~ 1,8 Hz, que provavelmente corresponde à freqüência cardíaca (~ 108 batimentos / min). Há também vários picos harmônicos em múltiplos inteiros de 1,8Hz. É provável que a freqüência cardíaca exata varie de conjunto de dados para conjunto de dados, mas posso especificar um intervalo biologicamente plausível, conforme mostrado pela área sombreada no periodograma.
O que eu gostaria de poder fazer é:
- Detecta automaticamente a frequência fundamental correspondente ao batimento cardíaco e todos os seus harmônicos
- Filtre os dados para remover os harmônicos fundamentais e todos.
No momento, posso resolver o ponto 1 de maneira muito grosseira, encontrando o maior pico no periodograma e depois multiplicando-o por Onde é o número estimado de picos harmônicos, mas tenho certeza de que deve haver um método melhor que esse hack.
Em relação ao ponto 2, deparei-me com essa pergunta, que menciona o uso de um filtro de pente para remover um fundamental e todos os seus harmônicos. Esse é o melhor método para usar? Uma consideração importante é que terei de aplicar o filtro a cada série temporal de pixels em uma grande matriz, portanto, um método computacionalmente eficiente seria altamente desejável.