Sull'utilizzo degli autovettori per stimare la frequenza fondamentale di un segnale, tramite MUSICA


14

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

  1. Il metodo di auto-correlazione
  2. YIN, e tutte le sue dipendenze
  3. 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:

  1. Detto questo, vorrei ancora capire perché funziona meglio.
  2. 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?)
  3. 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:

  1. 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?

Mohammad- Puoi apportare qualche modifica / chiarimento, per favore? Posso essere un pignolo per la terminologia, ma è importante per i futuri visitatori. Oltre a "bello e pulito", può dire distorsione armonica. Invece di ripetitivo, puoi dire periodico. Fermo può fare riferimento a statistiche variabili nel tempo o spettro che varia nel tempo. Puoi chiarire? Il metodo di autocorrelazione è un alias per il metodo Yule-Walker. Quando dici "numero di segnali" si tratta di vere sinusoidi o esponenziali complessi? Puoi usare l'autovalore di maggior valore? Il rango ha altri significati nell'algebra lineare. Lo stesso con "la più alta varianza" ...
Bryan,

1
... (cont) Una cosa importante (e lo noterò nella mia risposta quando chiarirò), è che il metodo MUSIC è un metodo del sottospazio del rumore. Quindi, idealmente, gli autovettori del sottospazio del segnale, quelli con gli autovalori di valore più grande, non vengono utilizzati. Inoltre, il tuo segnale è una somma di sinusoidi se è periodico. Se è periodico, può essere definito da una serie di Fourier, che è una somma di sinusoidi discreti.
Bryan,

@Bryan Ci scusiamo per il ritardo nel tornare (lungo weekend), presto presto rinnoverò l'intera domanda e ti farò sapere - grazie!
Spacey,

@Bryan Ho finalmente rinnovato l'intero post, aggiunto i tuoi suggerimenti e chiarito molto il contesto / problema. Perfavore guarda. Fammi sapere se posso chiarire qualcos'altro.
Spacey,

@Mohammad Riesci a discernere se un segnale è presente o meno dalla "forza" degli autovettori, ovvero gli autovalori?
Jim Clay

Risposte:


8

f(t,s)=Cov(X(t),X(s))=Cov(X(tu),X(su))=f(tu,su)
f(t,s)=f(ts,0)ts
Cov(X(s),X(t))=ei(st)xdμ(x)

L'intuizione è che una matrice di autocorrelazione stimata per alcune serie finite di osservazioni in un segnale si comporta asintoticamente come una matrice circolante perché la correlazione dipende solo dalle differenze temporali e non dalle posizioni assolute e le matrici circolanti hanno sinusoidi discreti come autovettori (poiché sono convoluzione operatori). Ci sono molte prove di questo e questa è un'intuizione imprecisa.

L'insieme delle funzioni di autocorrelazione che sono diagonali dai sinusoidi sono esattamente quelle che corrispondono ai processi stazionari, ma molte altre funzioni di autocorrelazione saranno approssimativamente diagonali dai sinusoidi per un certo intervallo. Questi processi corrispondono a quelli che possono essere approssimati da processi stazionari in un intervallo. Maggiori dettagli sono qui .

I processi generali non stazionari possono avere funzioni di autocorrelazione che non devono essere diagonali dai sinusoidi.

I processi localmente fissi avranno uno spettro che cambia lentamente e / o un piccolo numero di bruschi cambiamenti ben distanziati nello spettro. Discorso, rumori di animali, musica e molti altri suoni naturali si adattano a questa descrizione. Il motivo per cui gli algoritmi di identificazione del sottospazio funzionano, a quanto ho capito, è che una forma di stazionarietà locale (non rigorosa) generalmente vale per i tipi di segnali che analizziamo.


μ

@MarkS Grazie mille. Ho alcuni follow-up: 1) Sulla base di questo, possiamo dire che un processo è stazionario in quanto gli autovettori della sua matrice di covarianza sono sinusoidali? Può essere una sorta di misura di stazionarietà? 2) Menzionate "... e le matrici circolanti hanno sinusoidi discreti come autovettori (poiché sono operatori di convoluzione) ..." Non sono chiaro cosa significhi - quali operatori? Potete per favore chiarire. 3) Quando dici "L'insieme delle funzioni di autocorrelazione" stai parlando delle righe della matrice di covarianza? Grazie ancora.
Spacey,

@Mohammad Cheers: 1) Sì, questo può essere vagamente considerato come una misura di stazionarietà. 2) Una matrice circolare è formata da tutte le permutazioni cicliche di un vettore, quindi moltiplicare una matrice circolare per un altro vettore è una convoluzione tra questi due vettori. 3) Una funzione di autocorrelazione Corr (s, t) è l'autocorrelazione tra X (s) e X (t) per alcuni processi casuali X. La chiamo funzione perché desidero gestire simultaneamente il caso continuo e discreto. La matrice di autocorrelazione del campione può essere vista come un'approssimazione discreta di questa funzione.
Segna il

@Emre grazie per aver sottolineato il Wiener – Khinchin_theorem, ho imparato prima la mia analisi di Fourier sui gruppi e non sono mai stato formalmente introdotto in una classe di elaborazione del segnale.
Segna
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.