Que técnicas se pode usar para estimar o tempo de início de um som sinusoidal estourar em um sinal barulhento?
Suponha que o tom de explosão tenha uma frequência fixa conhecida (mas fase desconhecida) e um tempo de subida muito acentuado, e que o objetivo seja estimar o tempo de início em menos de metade do tempo de subida e / ou um período da frequência do tom , se possível. Como as técnicas de estimativa podem mudar se a relação S / N for muito baixa (muito menor que 1)?
Adicionado: suponha que o tom de explosão seja de duração desconhecida, mas maior que um pequeno múltiplo do tempo de subida e do período de frequência.
Adicionado: um DFT / FFT mostra a existência muito provável de um tom. O problema é descobrir exatamente onde, na janela da FFT, o tom (ou talvez várias explosões de tom da mesma frequência) possa ter começado dentro da janela da FFT, ou determinar se o tom atual foi iniciado fora da janela da DFT, desde que eu tenha tudo isso dados adicionais no domínio do tempo.
A precisão da detecção do pulso do radar está mais próxima da resolução de que eu preciso, exceto que só tenho uma borda, pois o tom é de comprimento desconhecido e, além de um tempo de subida conhecido, não modulado. Os filtros de passagem de banda estreita distorcem o tempo de subida e, assim, eliminam a resolução da estimativa de chegada de borda.
fonte
Respostas:
Como discutimos nos comentários, o algoritmo de Goertzel é a maneira usual de detectar um tom no ruído. Após a discussão, não tenho certeza de que é exatamente o que você procura (você quer o tempo de início ), mas parecia haver confusão sobre como o algoritmo de Goertzel poderia ser aplicado ao seu problema, então pensei em escrevê-lo aqui.
Algoritmo de Goertzel
É bom usar o algoritmo Goertzel se você souber a frequência do tom que está procurando (chame-o de ) e se tiver uma idéia razoável do nível de ruído para poder selecionar um limite de detecção apropriado.fg
O algoritmo de Goertzel pode ser pensado como sempre calculando a saída da bandeja ONE FFT:
A página da Wikipedia tem uma maneira melhor de calcular isso.
Aqui está uma tentativa (fraca) do Scilab de implementá-lo:
Neste exemplo, o tom inicia um terço no sinal no índice 1001.
Os quatro traços são:
Como você pode ver, o caso em que o tom em que estamos interessados está presente atinge um pico em cerca de 250. Se definirmos o limite de detecção em cerca da metade desse valor (125), a detecção ocorrerá (o valor de raiz quadrada é maior que 125 ) no índice 1450 a 450 amostras após o início do tom.
Esse limite (125) não causará uma detecção no outro caso (para essa execução, pelo menos), mas o valor máximo dessa saída é 115,24, não podemos reduzir muito o limite sem obter uma detecção falsa.
Reduzir o limite para 116 causará detecção no caso verdadeiro (para esta execução) no índice 1401 ... mas corremos o risco de mais alarmes falsos.
fonte