Contesto:
(Dichiarazione di non responsabilità: questo NON è un problema di comunicazione).
Sto cercando di stimare la frequenza fondamentale di un segnale reale, periodico. Questo segnale, è stato costruito abbinando il filtro di un segnale grezzo a quello di un impulso. (il filtro abbinato). Il segnale risultante ha le seguenti caratteristiche:
È periodico (Fondamentale è 1 / punto), ed è quello che sto cercando di stimare.
Non è stazionario nel tempo. In particolare, l'ampiezza degli impulsi periodici può variare in ampiezza. (ad esempio, un impulso può essere basso, mentre un altro è alto e il successivo di nuovo basso e uno dopo quel mezzo, ecc.).
Credo che sia di frequenza stazionaria, (in quanto accetti di cambiare ampiezze, ma non di cambiare banda).
Ha una distorsione armonica. Quello che intendo qui è che (e correggimi se sbaglio), ma che i singoli impulsi all'interno del segnale non sono sinusoidi, ma sono forme "funky" come una gaussiana, un triangolo iso, mezza parabola, ecc. .
Sto cercando di stimare la frequenza fondamentale di questo segnale.
Certo, a volte il segnale grezzo non è altro che rumore, ma attraversa comunque il percorso e viene comunque filtrato. (Ne parleremo più avanti).
Cosa ho provato:
Ora sono a conoscenza di una moltitudine di stimatori di frequenza fondamentali come
- Il metodo di auto-correlazione
- YIN, e tutte le sue dipendenze
- Metodo FFT.
eccetera,
YIN: Non ho ancora provato YIN.
Metodo FFT: il metodo FFT ti fornirà tutte le armoniche e le fondamentali, ma ho notato che può essere pignolo soprattutto con questo business non stazionario, poiché il fondamentale non è sempre il picco più alto. Molto rapidamente, ti ritrovi a cercare di accertare quale delle tante cime sia fondamentale e diventa un problema difficile.
Autocorrelazione: il metodo di autocorrelazione sembra fare meglio del metodo FFT, ma è ancora sensibile alle irregolarità di ampiezza del segnale nel dominio del tempo. Il metodo di auto-correlazione misura la distanza tra il lobo centrale e il successivo lobo più alto. Quella distanza corrisponde al fondamentale. Tuttavia, in casi non stazionari, questo lobo secondario può essere troppo basso e potresti perderlo in qualche schema di soglia.
Mi è poi venuto in mente che forse potrei usare un metodo subspaziale come MUSIC per stimare il fondamentale. Dopo aver provato questo, ho scoperto che dà davvero dei risultati molto belli - raggiunge picchi - robusti - e anche in casi non stazionari - a frequenze corrispondenti al fondamentale del tuo segnale. (Imposta il numero di segnali che stai cercando su 2 e recupererà il fondamentale - cioè, scegli i 2 autovettori più alti (corrispondenti ai valori più alti degli autovalori) della matrice di covarianza dei segnali, scartali e costruisci il il sottospazio del rumore dal rimanente, proietta contro di loro la tua ipotesi complessa sinusoide, prendi il reciproco e voilà, un bel pseudo-spettro).
Domande e problemi:
- Detto questo, vorrei ancora capire perché funziona meglio.
- In MUSIC scartiamo il sottospazio del segnale e usiamo il sottospazio del rumore. Mi sembra che gli autovettori del sottospazio del segnale siano in realtà una sorta di "miglior adattamento" - sono in effetti filtri abbinati ottimali. Quindi: perché non semplicemente usare direttamente gli autovettori del sottospazio del segnale? (So che non è più MUSICA, ma perché è meglio usare il sottospazio del rumore?)
- Infine, il problema finale è che sebbene questo metodo sembri funzionare molto più efficacemente per segnali non stazionari (come definito sopra), il problema è che ora sto SEMPRE ricevendo una risposta, anche quando non c'è altro che rumore nel sistema! (Ho menzionato sopra che il segnale filtrato pre-abbinato non elaborato può essere solo un rumore bianco a volte, quando non è presente un segnale periodico).
Quali modi potrebbero esistere per contrastare questo? Ho provato a guardare gli autovalori e c'è un po 'più di "curvatura" nel loro decadimento nei casi in cui c'è solo rumore VS casi in cui c'è un segnale, ma temo che potrebbe non essere abbastanza robusto.
Bonus:
- Quando gli autovettori di una matrice di covarianza sinusouds VS qualcos'altro? Cosa determina se sono o meno sinusoidi? Perché non sono onde quadrate? O inserire segnali di altra forma qui?