Sur l'utilisation de vecteurs propres pour estimer la fréquence fondamentale d'un signal, via MUSIC

14

Le contexte:

(Avertissement: ce n'est PAS un problème de communication).

J'essaie d'estimer la fréquence fondamentale d'un vrai signal périodique. Ce signal, a été construit par filtrage de correspondance d'un signal brut, à celui d'une impulsion. (le filtre correspondant). Le signal résultant a les caractéristiques suivantes:

  • C'est périodique. (Fondamental est 1 / période), et c'est ce que j'essaie d'estimer.

  • Il n'est pas stationnaire dans le temps. Plus précisément, les amplitudes des impulsions périodiques peuvent varier en amplitude. (par exemple, une impulsion peut être faible, tandis qu'une autre est élevée et la suivante encore faible, et une après ce médium, etc.).

  • Je pense qu'il est stationnaire en fréquence (dans la mesure où vous acceptez de changer d'amplitudes, mais pas de changer de bande).

  • Il a une distorsion harmonique. Ce que je veux dire ici, c'est que (et corrigez-moi si je me trompe), mais que les impulsions individuelles dans le signal ne sont pas des sinusoïdes, mais sont des formes `` funky '' comme un gaussien, un triangle, une demi-parabole, etc. .

J'essaie d'estimer la fréquence fondamentale de ce signal.

Bien sûr, parfois, le signal brut n'est rien d'autre que du bruit, mais il passe toujours par le chemin et est filtré par correspondance de toute façon. (Plus à ce sujet plus tard).

Ce que j'ai essayé:

Maintenant, je connais une multitude d'estimateurs de fréquence fondamentaux tels que

  1. La méthode d'autocorrélation
  2. YIN et toutes ses dépendances
  3. Méthode FFT.

etc,

  • YIN: Je n'ai pas encore essayé YIN.

  • Méthode FFT: La méthode FFT vous donnera toutes les harmoniques et les fondamentaux, mais j'ai remarqué qu'elle peut être capricieuse en particulier avec cette activité non stationnaire, car le fondamental n'est pas toujours le pic le plus élevé. Très rapidement, vous vous retrouvez à essayer de déterminer lequel des nombreux pics est le fondamental, et cela devient un problème difficile.

  • Autocorrélation: La méthode d'autocorrélation semble faire mieux que la méthode FFT, mais elle est toujours sensible aux irrégularités d'amplitude du signal temporel. La méthode d'autocorrélation mesure la distance entre le lobe central et le lobe supérieur suivant. Cette distance correspond au fondamental. Cependant, dans les cas non stationnaires, ce lobe secondaire peut être beaucoup trop bas, et vous pourriez le manquer dans un schéma de seuillage.

Il m'est alors venu à l'esprit que je pourrais peut-être utiliser une méthode sous-spatiale comme MUSIC pour estimer le fondamental. En testant cela, j'ai trouvé que cela donne vraiment de très bons résultats - il culmine - de manière robuste - et même dans des cas non stationnaires - à des fréquences correspondant à la fondamentale de votre signal. (Définissez le nombre de signaux que vous recherchez à 2, et il récupérera les fondamentaux - c'est-à-dire, choisissez les 2 vecteurs propres les plus élevés (correspondant aux valeurs les plus élevées des valeurs propres) de la matrice de covariance des signaux, jetez-les et construisez le bruit sous-espace du reste, projetez votre hypothèse complexe sinusoïdes contre eux, prenez l'inverse, et le tour est joué, un joli pseudo-spectre).

Questions et problèmes:

  1. Cela étant dit, je voudrais quand même comprendre pourquoi cela fonctionne mieux.
  2. Dans MUSIC, nous éliminons le sous-espace du signal et utilisons le sous-espace du bruit. Il me semble que les vecteurs propres du sous-espace du signal sont en fait une sorte de «meilleur ajustement» - ce sont en fait des filtres adaptés optimaux. Donc: pourquoi ne pas utiliser directement les vecteurs propres du sous-espace du signal? (Je sais que ce n'est plus de la musique, mais pourquoi est-il préférable d'utiliser le sous-espace de bruit?)
  3. Enfin, le dernier problème est que bien que cette méthode semble fonctionner beaucoup plus solidement pour les signaux non stationnaires (tels que définis ci-dessus), le problème est que maintenant j'obtiens TOUJOURS une réponse - même quand il n'y a que du bruit dans le système! (J'ai mentionné ci-dessus que le signal filtré pré-apparié brut peut être simplement du bruit blanc parfois, lorsque vous n'avez pas de signal périodique présent).

Quels moyens pourraient exister pour contrer cela? J'ai essayé de regarder les valeurs propres et il y a un peu plus de `` courbure '' dans leur décroissance dans les cas où il n'y a que du bruit VS les cas où il y a un signal, mais je crains qu'il ne soit pas assez robuste.

Prime:

  1. Quand les vecteurs propres d'une matrice de covariance sont-ils sinusouds VS autre chose? Qu'est-ce qui détermine s'il s'agit ou non de sinusoïdes? Pourquoi ne sont-ils pas des ondes carrées? Ou insérer des signaux de forme différente ici?
Spacey
la source
Mohammad- Pouvez-vous apporter quelques modifications / clarifications? Je peux être un adepte de la terminologie, mais c'est important pour les futurs visiteurs. En plus de 'nice & clean', peut dire une distorsion harmonique. Au lieu de répétitif, pouvez-vous dire périodique. Stationnaire peut se référer à des statistiques variant dans le temps ou à un spectre variant dans le temps. Pouvez-vous clarifier? La méthode d'autocorrélation est un alias de la méthode Yule-Walker. Quand vous dites «nombre de signaux», s'agit-il de véritables sinusoïdes ou d'exponentielles complexes? Pouvez-vous utiliser la valeur propre de plus grande valeur? Le rang a d'autres significations en algèbre linéaire. Idem avec la «variance la plus élevée» ...
Bryan
1
... (suite) Une chose importante (et je le noterai dans ma réponse lorsque vous clarifiez), c'est que la méthode MUSIC est une méthode de sous-espace de bruit. Donc, idéalement, les vecteurs propres du sous-espace du signal, ceux avec les valeurs propres les plus élevées, ne sont pas utilisés. De plus, votre signal est une somme de sinusoïdes s'il est périodique. S'il est périodique, il peut être défini par une série de Fourier, qui est une somme de sinusoïdes discrètes.
Bryan
@Bryan Désolé pour le retard de retour (long week-end), je vais en fait réorganiser toute la question bientôt et vous le faire savoir - merci!
Spacey
@Bryan J'ai enfin réorganisé l'intégralité du message, ajouté vos suggestions et clarifié également beaucoup le contexte / problème. S'il te plait regarde. Faites-moi savoir si je peux clarifier autre chose.
Spacey
@Mohammad Pouvez-vous discerner si un signal est présent ou non par la "force" des vecteurs propres, c'est-à-dire les valeurs propres?
Jim Clay

Réponses:

8

La matrice d'autocorrélation est diagonalisée par des sinusoïdes lorsque le processus est stationnaire, cela découle du fait que l'opérateur de covariance est une convolution pour un processus stationnaire. Une preuve plus rigoureuse est que

F(t,s)=Cov(X(t),X(s))=Cov(X(t-u),X(s-u))=F(t-u,s-u)
ce qui signifie notamment que F(t,s)=F(t-s,0) qui est également une fonction seimidefinite positive de t-s, d'où le théorème de Bochner, nous avons
Cov(X(s),X(t))=-eje(s-t)Xμ(X)
ce qui prouve la réclamation.

L'intuition est qu'une matrice d'autocorrélation estimée pour un ensemble fini d'observations dans un signal se comporte asymptotiquement comme une matrice circulante car la corrélation ne dépend que des différences de temps et non des positions absolues et les matrices circulantes ont des sinusoïdes discrètes comme vecteurs propres (car elles sont des convolutions) les opérateurs). Il existe de nombreuses preuves de cela et c'est une intuition sommaire.

L'ensemble des fonctions d'autocorrélation qui sont diagonalisées par les sinusoïdes sont exactement celles qui correspondent aux processus stationnaires, mais de nombreuses autres fonctions d'autocorrélation des processus seront approximativement diagonalisées par les sinusoïdes sur un certain intervalle. Ces processus correspondent à ceux qui peuvent être approximés par des processus stationnaires sur un intervalle. Plus de détails ici .

Les processus généraux non stationnaires peuvent avoir des fonctions d'autocorrélation qui n'ont pas besoin d'être diagonalisées par les sinusoïdes.

Les processus localement stationnaires auront soit un spectre changeant lentement et / ou un petit nombre de changements brusques bien espacés dans le spectre. La parole, les bruits d'animaux, la musique et de nombreux autres sons naturels correspondent à cette description. La raison pour laquelle les algorithmes d'identification de sous-espace fonctionnent, si je comprends bien, est que certaines formes de stationnarité locale (non rigoureuse) sont généralement valables pour les types de signaux que nous analysons.

Des marques
la source
Les réponses sont dans l'intérêt de tous. Cela ne vaut rien que le théorème de Bochner soit une généralisation du Wiener-Khinchin plus familier .μest la densité spectrale.
Emre
@MarkS Merci beaucoup. J'ai quelques suivis: 1) Sur cette base, peut-on dire qu'un processus est stationnaire dans la mesure où les vecteurs propres de sa matrice de covariance sont sinusoïdaux? Cela peut-il être une sorte de mesure de la stationnarité? 2) Vous mentionnez "... et les matrices circulantes ont des sinusoïdes discrètes comme vecteurs propres (car ce sont des opérateurs de convolution) ..." Je ne sais pas ce que cela signifie - quels opérateurs? Pouvez-vous clarifier s'il vous plait. 3) Quand vous dites "L'ensemble des fonctions d'autocorrélation", vous parlez des lignes de la matrice de covariance? Merci encore.
Spacey
@Mohammad Cheers: 1) Oui, cela peut être vaguement considéré comme une mesure de la stationnarité. 2) Une matrice circulante est formée de toutes les permutations cycliques d'un vecteur, donc multiplier une matrice circulante par un autre vecteur est une convolution entre ces deux vecteurs. 3) Une fonction d'autocorrélation Corr (s, t) est l'autocorrélation entre X (s) et X (t) pour un processus aléatoire X. Je l'appelle une fonction parce que je veux gérer simultanément le cas continu et discret. L'échantillon de matrice d'autocorrélation peut être considéré comme une approximation discrète de cette fonction.
Mark S
@Emre merci d'avoir souligné le Wiener – Khinchin_theorem, j'ai d'abord appris mon analyse de Fourier sur les groupes et je n'ai jamais été formellement présentée à elle dans une classe de traitement du signal.
Mark S