Come ottimizzo le lunghezze delle finestre in STFT?


12

Ho molti segnali EEG e voglio analizzarli usando metodi lineari come STFT (Short Time Fourier Transform). In STFT, come posso ottimizzare la lunghezza della finestra di analisi, per riflettere lo spettro di frequenza di ciascuna finestra di analisi in modo corretto?


Se hai intenzione di ottimizzare qualcosa, hai bisogno di una misura oggettiva. La tua domanda non dice davvero come misurare la lunghezza "ottimale" della finestra. Cosa intendi per riflesso dello spettro di frequenza in "modo corretto"?
Jason R,

@Maen: vuoi analizzare i segnali EEG per fare cosa con loro?
Sriram,

Sono richiesti voti e la migliore convalida della risposta
Laurent Duval,

Risposte:


5

Questo è il classico "principio di incertezza" della Trasformata di Fourier. Puoi avere alta risoluzione nel tempo o alta risoluzione nella frequenza ma non entrambe allo stesso tempo. Le lunghezze della finestra consentono di scambiare tra i due.

Se si desidera rilevare "eventi" nel segnale EEG con una risoluzione di 10ms, questa dovrebbe essere la lunghezza della finestra. Questo ti darà una risoluzione in frequenza di circa 100 Hz.


3

La lunghezza ottimale della finestra dipenderà dalla tua applicazione. Se l'applicazione è tale da richiedere informazioni più precise sul dominio del tempo per ridurre le dimensioni delle finestre. Se l'applicazione richiede che le informazioni sul dominio della frequenza siano più specifiche, aumentare le dimensioni delle finestre. Come accennato da Hilmar, Uncertainty Principlenon ti lascia davvero altra scelta. Non è possibile ottenere una risoluzione perfetta in entrambi i domini contemporaneamente. È possibile ottenere una risoluzione perfetta in un solo dominio al costo di una risoluzione pari a zero nell'altro (domini di tempo e di frequenza) o di risoluzione intermedia, ma in entrambi i domini.

Non so se questo risponda alla tua domanda da quando hai chiesto specificamente di STFT. Potresti provare a usare wavelet transformsper ottenere le informazioni nel segnale. Wavelet transformsti darà una risoluzione su un intervallo molto più ampio analizzando il segnale con risoluzioni a più finestre.


0

Non conosco l'EEG, ma il problema di base (forse dovrei dire fondamentale) quando si utilizza STFT è scegliere una lunghezza della finestra adeguata. Se il tuo EEG è periodico e vuoi risolvere le fondamentali e le armoniche, dovresti usare una finestra "lunga". Se invece vuoi rilevare l'insorgenza o la presenza di qualche evento o sei più interessato all'inviluppo dello spettro, puoi usare una finestra "corta".


0

Ho trascorso molto tempo a ottimizzare le finestre nell'analisi della frequenza temporale o nei banchi filtro . Si possono ottimizzare per il rilevamento, il denoising, la separazione del segnale ... Dipende molto dall'applicazione. Poiché l'analisi della frequenza temporale è generalmente ridondante, l'ottimizzazione dell'analisi o delle finestre di sintesi sono compiti diversi. E lunghezza solo un parametro nel design della finestra.

Il problema è ancora più complesso in quanto la formulazione discretizzata dell'ottimalità è molto più complicata del caso del dominio del tempo continuo (vedere ad esempio una trasformazione di Gabor concentrata in modo ottimale per i componenti localizzati della frequenza temporale ).

Quindi la mia attuale regola pratica è: iniziare con una forma e una lunghezza della finestra che sembrano ok. Quindi ripetere l'analisi con due finestre con il doppio e la metà della lunghezza e combinare i risultati.


-1

Di solito le dimensioni della finestra ampia offrono una migliore risoluzione in frequenza ma una scarsa risoluzione del tempo e viceversa. Guarda questo esempio in cui ho generato uno spettrogramma di un'onda sinusoidale con 5kHz e frequenza di campionamento di 22050Hz, dal mio codice C ++.

inserisci qui la descrizione dell'immagine

Lo spettrogramma sopra ha dimensioni della finestra di 2048 campioni e sovrapposizione di 1024 campioni.

Guarda questo spettrogramma:

inserisci qui la descrizione dell'immagine

Questo ha una dimensione della finestra di 512 campioni e una sovrapposizione di 256 campioni.

Riesci a vedere la differenza? Il primo ha una risoluzione in frequenza migliore del secondo. Ma il secondo ha una migliore risoluzione temporale rispetto al primo. Quindi, la scelta della dimensione della finestra dipende dalla tua applicazione. Se hai a che fare con campioni del parlato per tenere traccia del tono, la scelta di una finestra più grande dovrebbe essere quella appropriata.


L'onda sinusoidale semplice non è utile per spiegare la risoluzione della frequenza. Anche spazzare il seno è meglio per questo.
jojek

Quindi quale tipo di input sarebbe buono, secondo te?
Vishnu,

L'ho già menzionato sopra.
jojek

Intendi spazzare il seno ?. C'è qualche altro tipo di segnale che posso usare? Ho una presentazione sullo spettrogramma e vorrei mostrare alcune cose buone nella mia diapositiva sulle finestre. Gradirei qualsiasi consiglio :)
Vishnu,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.