Chaohuang tem uma boa resposta, mas também acrescentarei que outro método que você pode usar seria através da Transformada de Wavelet de Haar, seguida de encolhimento coeficiente de wavelet e uma Transformação de Haar inversa de volta ao domínio do tempo.
A transformação wavelet de Haar decompõe seu sinal em coeficientes de funções quadradas e diferenciais, embora em escalas diferentes. A idéia aqui é que você 'force' a nova representação de sinal quadrado para melhor corresponder ao seu sinal original e, portanto, uma que melhor represente onde estão suas bordas.
Quando você executa uma contração coeficiente, tudo o que significa é que você está definindo coeficientes específicos da função transformada de Haar para zero. (Existem outros métodos mais envolvidos, mas esse é o mais simples). Os coeficientes de wavelets transformados em Haar são pontuações associadas a diferentes funções quadradas / diferenças em diferentes escalas. O RHS do sinal transformado de Haar representa bases quadradas / diferenciais na escala mais baixa e, portanto, pode ser interpretado na 'frequência mais alta'. A maior parte da energia do ruído ficará aqui, VS a maior parte da energia do sinal que estaria no LHS. É essas coeficientes de bases que são anuladas e o resultado então inverso transformado de volta ao domínio do tempo.
Em anexo está um exemplo de um senoide corrompido por um ruído AWGN pesado. O objetivo é descobrir onde estão os 'início' e 'parada' do pulso. A filtragem tradicional manchará as bordas de alta frequência (e altamente localizadas no tempo), pois, no fundo, a filtragem é uma técnica L-2. Por outro lado, o seguinte processo iterativo denoise e preserva as arestas:
(Eu pensei que alguém poderia anexar filmes aqui, mas parece que não consigo. Você pode baixar o filme que eu fiz do processo aqui ). (Clique com o botão direito e 'salvar link como').
Eu escrevi o processo 'à mão' no MATLAB, e é assim:
- Crie um pulso senoidal corrompido pelo AWGN pesado.
- Calcule o envelope acima. (O sinal').
- Calcule a transformada Haar Wavelet do seu sinal em todas as escalas.
- Denoise por limiar coeficiente iterativo.
- Haar inverso Transforme o vetor coeficiente reduzido.
Você pode ver claramente como os coeficientes estão sendo reduzidos e a Transformação Inversa Haar resultante dela.
Uma desvantagem desse método, no entanto, é que as arestas precisam estar dentro ou ao redor das bases quadradas / diferenciais em uma determinada escala. Caso contrário, a transformação é forçada a pular para o próximo nível superior e, portanto, perde-se um posicionamento exato para a aresta. Existem métodos de resolução múltipla usados para combater isso, mas eles estão mais envolvidos.