Dans ma quête sans fin pour identifier les ronflements, j'ai trouvé que la "planéité spectrale" semble être une bonne mesure de la "qualité" du signal.
Je calcule la planéité spectrale comme la moyenne géométrique de la puissance FFT points de données divisés par la moyenne arithmétique des mêmes points.
Je calcule ensuite (un peu ici) la moyenne arithmétique courante (sur 50 images) et l'écart type de la planéité spectrale et calcule un écart type "normalisé" comme l'écart type courant divisé par la moyenne courante.
Pour mes échantillons, je trouve que cette métrique est supérieure à environ (allant jusqu'à ou ainsi) lorsque l'audio est "bon" (c'est-à-dire que j'ai un suivi fiable des sons de respiration / ronflement d'un sujet endormi) et qu'il glisse généralement en dessous lorsque l'audio est "dans la boue". (Je peux améliorer quelque peu cette discrimination en utilisant un seuil qui évolue avec d'autres facteurs, mais c'est probablement un sujet différent.) J'observe également que la mesure va au-delà lorsqu'il y a un bruit de fond important (par exemple, quelqu'un entre dans la pièce et bruit).
Donc, ma question de base est: Y a-t-il un nom (au-delà de "l'écart-type normalisé de planéité spectrale") pour ce que je mesure, et quelqu'un peut-il offrir une explication conceptuelle de ce que la métrique "signifie"?
(J'ai essayé une douzaine d'autres métriques pour la "qualité" du signal, et celle-ci semble être la meilleure à ce jour.)
Ajouté: Je devrais probablement admettre que je n'ai pas une poignée conceptuelle particulièrement bonne sur ce que la planéité spectrale simple mesure (juste l'article Wikipedia ), donc toute explication supplémentaire serait appréciée.
la source
Réponses:
Puisque vous vous intéressez à la "planéité" de votre spectre, en fait, vous vous intéressez à la proximité de votre signal avec un bruit blanc (qui par définition a un spectre plat + phases aléatoires). Si vous reculez, une mesure serait la «distance» de votre observation à la référence de bruit blanc .
La mesure évidente en termes de théorie de l'information est la divergence de Kullback-Leibler . Vous n'avez pas besoin d'en comprendre toutes les parties, mais il mesure en bits (si vous utilisez la base de log 2) la distance entre les deux distributions.
La bonne chose dans votre cas est que votre référence est plate, de sorte que ce qui reste est l' entropie de votre spectre . Il existe de nombreuses implémentations existantes (par exemple dans scipy ).
Notez que vous êtes toujours du bon côté: si votre distribution est approximativement gaussienne, les deux mesures (entropie et std) seront proportionnelles. L'entropie est cependant plus générale et plus raisonnée. En extension, vous pourrez généraliser à d'autres types de bruits (1 / f par exemple).
la source
p log p
- ne semble pas transmettre beaucoup d'informations pour mon problème. (Bien que je suppose que je n'ai pas essayé de prendre son écart-type.)Toute différence fiable et cohérente dans les statistiques de votre signal (ou une fonction de votre signal, comme son spectre) et le bruit dans lequel votre signal est intégré peuvent être utilisées pour estimer une probabilité de l'un par rapport à l'autre.
Vous semblez avoir trouvé au hasard (tombé sur) l'une des nombreuses possibilités de caractériser la forme du spectre du signal qui différencient le signal souhaité de choses plus proches du bruit blanc ou des pics d'impulsion. Trébucher sur une solution aléatoire possible ne meurt pas l'invalider (c'est une base de la programmation évolutive / génétique). Mais la robustesse d'une mesure que vous avez trouvée reste un exercice expérimental.
la source