Pourquoi échantillonner à une certaine fréquence juste pour le sous-échantillonner immédiatement?


19

Je m'excuse si cette question n'est pas bien posée. Je lis un article qui prétend ce qui suit:

Les vecteurs magnétomètres sont échantillonnés à 100 Hz. Le détecteur filtre et échantillonne les vecteurs jusqu'à 10 Hz pour éliminer le bruit du signal et réduire le calcul requis pour le traitement en direct sur la montre intelligente.

Ma question est: s'ils voulaient que la fréquence d'échantillonnage soit de 10 Hz, pourquoi n'ont-ils pas simplement échantillonné à 10 Hz au départ?


12
Anti crénelage. Très commun.
winny

Réponses:


41

s'ils voulaient que la fréquence d'échantillonnage soit de 10 Hz, pourquoi n'ont-ils pas simplement échantillonné à 10 Hz au départ?

Afin d'éviter le repliement , le signal doit être filtré passe-bas avant l'échantillonnage. Aucune fréquence supérieure à Fs / 2 ne doit être présente dans le signal analogique (ou, de façon réaliste, elles doivent être suffisamment atténuées pour être enfouies dans le bruit, ou à un niveau suffisamment bas pour répondre aux spécifications souhaitées).

Si vous échantillonnez à Fs = 10 Hz et souhaitez acquérir, par exemple, des signaux de 4 Hz, votre filtre devra les laisser passer, tout en fournissant une forte atténuation au-dessus de 5 Hz, il aura donc besoin d'une fonction de transfert plate dans la bande passante, puis d'une forte baisse après la fréquence de coupure.

Ces filtres d'ordre élevé sont difficiles et coûteux à mettre en œuvre dans le domaine analogique, mais très simples à faire dans le domaine numérique. Les filtres numériques sont également très précis, la fréquence de coupure ne dépend pas de la tolérance des condensateurs par exemple.

Ainsi, il est beaucoup moins cher d'utiliser un passe-bas analogique d'ordre faible, de suréchantillonner d'un grand facteur, puis d'utiliser un filtre numérique pointu pour sous-échantillonner jusqu'à la fréquence d'échantillonnage finale que vous voulez réellement.

Le même matériel numérique peut également être utilisé pour plusieurs canaux. À cette faible fréquence d'échantillonnage, les besoins en puissance de calcul sont très faibles, et un microcontrôleur moderne mettra facilement en œuvre de nombreux canaux de filtrage numérique à un prix très bon marché.


10

Vous avez mentionné le mot magnétomètres. Cela élargit un peu la portée.

Les magnétomètres pour ceux qui ne sont pas familiers mesurent le flux magnétique et créent une tension / signal de sortie proportionnelle en fonction du flux.

Il est probable que vous détectiez également une grande quantité d '«énergie électrique» indésirable, en raison de l'énergie magnétique rayonnée par les câbles électriques autour.

En fait, l'échantillonnage direct à 10 Hz en présence de 50 Hz pourrait vous rendre fou, car vous pourriez ne pas être exactement 10 Hz, et vous verrez ce qui ressemble à un lent décalage CC de haut en bas sur une période de plusieurs secondes.

Le 100 Hz devient important en aidant à annuler ce signal indésirable de ce que vous voulez réellement voir. C'est typique des endroits où l'on trouve 50 Hz, aux États-Unis 60 Hz bien sûr.

Si vous utilisez des magnétomètres dans certains pays, le 100 Hz / 10 Hz ne fonctionne pas aussi bien; vous pourriez trouver un modèle différent pour ces marchés.

Les réponses sur l'anticrénelage / filtrage, etc. sont toujours correctes; c'est juste plus spécifique pour votre cas d'utilisation.


7

Ils ne sous-échantillonnent pas immédiatement. Ils "filtrent et réduisent l'échantillon". Vraisemblablement, le filtre est un passe-bas qui élimine les alias qui pourraient se produire dans le signal sous-échantillonné. Le filtrage pourrait également réduire le bruit en utilisant des informations provenant de plusieurs des échantillons de 100 Sps pour contribuer à déterminer chacune des valeurs d'échantillon dans le signal décimé (10 Sps).


5
Cette réponse est correcte, mais juste pour être complet, pour sous-échantillonner correctement, vous devez filtrer passe-bas (à la fréquence de Nyquist) avant de sous-échantillonner. Le filtre n'est pas facultatif.
Mark Lakata

@MarkLakata Je ne suis pas d'accord. Le filtre lui-même n'est pas requis, ce qui est requis, c'est que vous n'avez pas de signaux supérieurs à Fs / 2. Si vous en attendez, vous devez ajouter le soi-disant filtre anti-aliasing. Si, par conception ou par nature de ce que vous mesurez, vous n'attendez rien (signal ou bruit) au-dessus de Fs / 2, alors le filtre est inutile.
Blup1980

@ Blup1980 Techniquement vrai - mais uniquement si vous échantillonnez un signal mathématiquement pur, avec une résolution infinie et avec une gigue nulle sur la génération de forme d'onde et les points d'échantillonnage. Même pour le post-traitement d'une forme d'onde générée par ordinateur "pure", cela signifie que vous en avez besoin dans tous les échantillonnages numériques en raison du bruit dans le LSB (bien que pour les hautes résolutions, vous pouvez choisir de l'ignorer car il est petit). Pour le cas de l'OP, il est absolument obligatoire et n'est jamais optionnel.
Graham

@ Blup1980 assez juste, il est possible que les signaux aient été stupidement échantillonnés à 100 Hz avec un filtre LP de 20 Hz en place. Mais en supposant le cas général où vos formes d'onde d'entrée qui ne sont pas limitées en fréquence, vous devez passer vos données avant de rééchantillonner à une fréquence plus basse. en.wikipedia.org/wiki/Sample-rate_conversion Dans le cas d'un magnétomètre (c'est-à-dire une boussole sur un téléphone intelligent), vous pouvez supposer qu'il y a beaucoup de bruit à toutes les fréquences supérieures à 20 Hz.
Mark Lakata

5

Il existe de nombreux cas où diverses sources de bruit rapides (par rapport au signal) peuvent affecter les lectures. Un autre exemple est une photodiode prenant des mesures lentes. Il pourrait facilement capter le scintillement 50/60/100 / 120Hz de diverses sources lumineuses communes selon l'endroit où vous vous trouvez, et il détectera probablement même le scintillement des LED / lumière fluorescente à haute fréquence.

Dans certains cas, vous pouvez utiliser un filtre passe-bas sur l'entrée, mais il est souvent plus simple d'optimiser le filtrage dans le logiciel (par exemple, simplement suréchantillonner et faire la moyenne d'un nombre n d'échantillons, où n est configurable par l'utilisateur).

Réduire la fréquence d'échantillonnage n'augmente pas (nécessairement) (linéairement) le temps de stabilisation, vous êtes donc essentiellement en train de prendre un instantané du signal d'entrée. En fait dans le MCP3002 par exemple, le temps de stabilisation est basé sur la vitesse d'horloge SPI, qui peut être réglée pour d'autres raisons et pas du tout sur la fréquence d'échantillonnage (ce qui est logique: l'appareil ne connaît pas la fréquence d'échantillonnage, juste le fait qu'on lui demande d'échantillonner, mais les chiffres de la fiche technique utilisent la vitesse d'horloge définie à partir du taux d'échantillonnage). Si les performances de l'appareil sont définies par la vitesse d'horloge et que la vitesse d'horloge minimale est supérieure à celle que vous souhaitez pour les performances, vous pouvez aussi bien lire plus rapidement et la moyenne est bon marché.


Très bon point, le choix de la fréquence d'échantillonnage peut être un artefact d'un choix de conception non lié.
KalleMP

3

Le suréchantillonnage facilite le filtre de repliement et la réponse transitoire, avec un SAR ADC, tandis que la moyenne par décimation réduit le bruit des root n échantillons dans le logiciel. Si un IDC AD intégré était disponible, cela pourrait être fait en une seule étape.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.