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
- La méthode d'autocorrélation
- YIN et toutes ses dépendances
- 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:
- Cela étant dit, je voudrais quand même comprendre pourquoi cela fonctionne mieux.
- 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?)
- 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:
- 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?