v1 · padrão canônico
Wavelets — Análise Multirresolução
Wavelet de Haar, condição de admissibilidade, análise multirresolução (MRA), wavelets de Daubechies, transformada wavelet contínua e discreta, e aplicações em compressão e denoising.
Used in: engenharia
Choose your door
Real scenarios with market data and step-by-step calculations
Wavelets em Compressão e Denoising
Compressão de Imagem (JPEG 2000)
JPEG 2000 usa a wavelet biortogonal CDF 9/7 (Cohen-Daubechies-Feauveau) para compressão com e sem perda. Vantagens sobre JPEG:
- Sem artefatos de bloco em taxas baixas
- Escalabilidade: resolução progressiva
- Melhor qualidade visual para mesma taxa de compressão
Denoising por Limiarização de Coeficientes
O denoising wavelet de Donoho-Johnstone:
- Calcular DWT de
- Limiarizar:
- Reconstruir via IDWT
onde é soft-thresholding e o limiar universal é .
Optimalidade: O estimador é ótimo (minimax) sobre classes de funções Lipschitz e Sobolev.
Código Python — DWT com PyWavelets
import numpy as np
import pywt # pip install PyWavelets
# Sinal de teste: seno + ruído
np.random.seed(42)
N = 1024
t = np.linspace(0, 1, N)
sigma = 0.3
f_true = np.sin(2*np.pi*5*t) + 0.5*np.sin(2*np.pi*20*t)
y = f_true + sigma * np.random.randn(N)
# DWT multinível (Daubechies 4)
wavelet = pywt.Wavelet('db4')
coeffs = pywt.wavedec(y, wavelet, level=6)
# Denoising: limiar universal
threshold = sigma * np.sqrt(2 * np.log(N))
denoised_coeffs = [coeffs[0]] + [
pywt.threshold(c, threshold, mode='soft') for c in coeffs[1:]
]
# Reconstrução
f_est = pywt.waverec(denoised_coeffs, wavelet)[:N]
snr_before = 10*np.log10(np.var(f_true)/np.var(y - f_true))
snr_after = 10*np.log10(np.var(f_true)/np.var(f_est - f_true))
print(f"SNR antes: {snr_before:.1f} dB")
print(f"SNR depois: {snr_after:.1f} dB")
# Comparar energia dos coeficientes (compressão)
d_all = np.concatenate([c.ravel() for c in coeffs[1:]])
idx_sorted = np.argsort(np.abs(d_all))[::-1]
for pct in [10, 5, 1]:
k = int(pct/100 * len(d_all))
energy_kept = np.sum(d_all[idx_sorted[:k]]**2) / np.sum(d_all**2) * 100
print(f"Top {pct}% coef. → {energy_kept:.1f}% da energia de detalhe")
Referência: Daubechies, Ten Lectures on Wavelets (1992), Cap. 1–5; Mallat, A Wavelet Tour of Signal Processing, Cap. 6–7.
To continue
Referências Bibliográficas
- Daubechies, I. Ten Lectures on Wavelets. SIAM, 1992. (Obra fundamental — construção rigorosa de wavelets, MRA, Daubechies wavelets.) Referência principal.
- Mallat, S. A Wavelet Tour of Signal Processing, 3ª ed. Academic Press, 2008. (Abordagem de processamento de sinais — MRA, DWT, banco de filtros, denoising.) Referência complementar essencial.
- Meyer, Y. Wavelets and Operators. Cambridge Univ. Press, 1992. (Perspectiva de análise harmônica — frames, bases incondicionais.)
- Donoho, D.L.; Johnstone, I.M. "Ideal Spatial Adaptation by Wavelet Shrinkage." Biometrika, 81(3):425–455, 1994. (Denoising ótimo — referência clássica.)
- Strang, G.; Nguyen, T. Wavelets and Filter Banks. Wellesley-Cambridge Press, 1996. (Perspectiva de engenharia e álgebra linear.)
- Chui, C.K. An Introduction to Wavelets. Academic Press, 1992. (Introdução acessível.)