Como ponto de partida, eu usaria uma técnica de retração não linear com algum tipo de transformação wavelet (embora eles não sejam específicos para transformações wavelet). As regras de retração são conceitualmente simples, rápidas e fáceis de implementar, enquanto produzem excelentes resultados.
A premissa é que o sinal desejado pode ser representado em algum domínio, de modo que a maior parte da energia seja concentrada em um pequeno número de coeficientes. Por outro lado, o ruído ainda está espalhado por todos os coeficientes (o que provavelmente é para AWGN). Você pode "encolher" os coeficientes - reduzindo seus valores de acordo com alguma regra não linear - de modo que o impacto no sinal seja pequeno comparado ao impacto no ruído.
As transformadas Wavelet são uma boa transformação para usar porque são boas para comprimir a energia em um pequeno número de coeficientes. Eu, pessoalmente, recomendo a DTCWT (Dual-tree complex wavelet transform) por suas propriedades adicionais agradáveis.
2 artigos muito bons sobre o assunto são este e este (ambos dos mesmos autores). Os artigos são um verdadeiro mimo em termos de legibilidade e clareza de explicação. (também há belas fotos de Lenna sendo denoised :)
Certamente existem artigos mais recentes, mas eles geralmente não acrescentam muita melhoria quantitativa às técnicas muito simples descritas nesses artigos.