Chaohuang ha una buona risposta, ma aggiungerò anche che un altro metodo che puoi usare sarebbe tramite la Trasformazione Wavelet Haar, seguita da una contrazione coefficiente wavelet e una Trasformazione Haar inversa nel dominio del tempo.
La trasformazione wavelet di Haar decompone il segnale in coefficienti di funzioni quadrate e di differenza, sebbene a scale diverse. L'idea qui è che 'forzate' la nuova rappresentazione del segnale quadrato per abbinare meglio il segnale originale, e quindi quello che rappresenta meglio dove giacciono i bordi.
Quando si esegue una contrazione coefficiente, tutto ciò significa che si stanno impostando a zero i coefficienti specifici della funzione trasformata Haar. (Esistono altri metodi più coinvolti, ma questo è il più semplice). I coefficienti wavelet trasformati di Haar sono punteggi associati a diverse funzioni quadrate / di differenza su scale diverse. L'RHS del segnale trasformato di Haar rappresenta le basi quadrate / di differenza alla scala più bassa e, quindi, può essere interpretato alla "frequenza più alta". La maggior parte dell'energia del rumore si troverà quindi qui, VS la maggior parte dell'energia del segnale che si troverebbe sull'LHS. È quei coefficienti di base che vengono annullati e il risultato viene quindi trasformato nuovamente nel dominio del tempo.
In allegato è un esempio di sinusoide corrotta da un forte rumore AWGN. L'obiettivo è capire dove si trovano "inizio" e "arresto" dell'impulso. Il filtraggio tradizionale imbratterà i bordi ad alta frequenza (e altamente localizzati nel tempo), poiché al suo centro, il filtraggio è una tecnica L-2. Al contrario, il seguente processo iterativo denuncerà e preserverà i bordi:
(Ho pensato che si potrebbe collegare film qui, ma non mi sembra di essere in grado di. È possibile scaricare film che ho fatto del processo qui ). (Fare clic destro e 'salva collegamento come').
Ho scritto il processo "a mano" in MATLAB, e va così:
- Crea un impulso sinusoidale danneggiato da AWGN pesante.
- Calcola la busta di quanto sopra. (Il segnale').
- Calcola la Trasformazione Haar Wavelet del tuo segnale a tutte le scale.
- Denoise mediante soglia iterativa coefficiente.
- Inverse Haar Trasforma il vettore coefficiente ristretto.
Puoi vedere chiaramente come i coefficienti vengono ridotti e la risultante trasformazione Inverse Haar che ne deriva.
Uno svantaggio di questo metodo, tuttavia, è che i bordi devono trovarsi all'interno o attorno alle basi quadrate / di differenza in una data scala. In caso contrario, la trasformazione è costretta a passare al livello superiore successivo e quindi si perde un posizionamento esatto per il bordo. Esistono metodi multi-risoluzione usati per contrastare questo comportamento, ma sono più coinvolti.