Unité 3 / 12

Traitement du signal : filtres, échantillonnage et analyse de fréquence

Gains :

  • Capacité à construire et appliquer correctement les concepts d'échantillonnage, de Nyquist et d'alias avec le support de l'IA
  • Capacité à traduire les étapes de FFT, de conception de filtres et de fenêtrage en brouillon de code et en calculs avec l'IA
  • Capacité à vérifier les résultats de traitement du signal produits par l'IA avec le signal de référence, le contrôle et la mesure de l'unité

Le traitement du signal est au cœur de l'ingénierie électronique et des communications : l'art de prendre une onde de tension, un enregistrement sonore, une lecture de capteur ou un signal radio et d'en extraire les informations qu'il contient, d'en nettoyer le bruit et de le transformer. Dans cette unité, vous verrez comment utiliser l'IA pour apprendre les concepts de traitement du signal, construire des calculs de filtrage et de transformation et effectuer des analyses avec du code Python. Mais un avertissement dès le début : une petite erreur conceptuelle dans le traitement du signal (mauvaise fréquence d'échantillonnage, fenêtrage sauté, unité interférente) faussera complètement et silencieusement le résultat ; Le graphique semble toujours bon, mais il est faux. C'est pourquoi il est impératif de tester chaque résultat produit par l'IA par rapport à un signal de référence et à un contrôle d'unité connus.

Sampling et Nyquist : là où tout commence

Pour traiter un signal analogique (onde continue) dans un ordinateur, nous le mesurons à certains intervalles et le convertissons en nombre ; C'est ce qu'on appelle l'échantillonnage. C'est la fréquence d'échantillonnage (fs, unité Hz) et le nombre d'échantillons que nous prenons par seconde. Le critère de Nyquist stipule que pour récupérer avec précision un signal, la fréquence d'échantillonnage doit être au moins deux fois la fréquence la plus élevée du signal. Si cette condition n’est pas remplie, les hautes fréquences commencent à ressembler aux basses fréquences ; C'est ce qu'on appelle l'aliasing et les données sont définitivement corrompues car vous ne pouvez pas faire la distinction entre ces deux situations.

L'IA explique très bien ce concept et peut le démontrer avec des exemples. Mais c'est vous qui décidez lors du choix de votre fréquence d'échantillonnage : quelle est la bande passante réelle de votre signal, disposez-vous d'un filtre analogique anti-aliasing, à quelle vitesse fonctionne réellement votre ADC (Convertisseur analogique-numérique : la puce qui convertit le signal analogique en nombre). L'IA peut « suggérer » une fréquence d'échantillonnage, mais cette suggestion n'est qu'une supposition sans mesurer le spectre réel de votre signal.

Astuce : lorsque vous posez une question d'échantillonnage à l'IA, spécifiez vous-même la fréquence et la bande passante les plus élevées de votre signal. "Si la composante la plus élevée de mon signal est d'environ 4 kHz, comment dois-je choisir fs et où dois-je placer le filtre anti-aliasing ?" comme. Ne faites pas deviner le spectre à l'IA ; mesure.

FFT et analyse de fréquence

FFT (Fast Fourier Transform) est un algorithme rapide qui convertit un signal de l'axe du temps en axe des fréquences. Alors « quelles sont les fréquences de ce signal et avec quelle puissance ? » répond à la question. L'IA sait très bien implémenter FFT, interpréter les résultats et écrire du code Python (numpy/scipy). Mais il existe des erreurs courantes dans la FFT, et le code de l’IA peut les inclure silencieusement :

  • Mise à l'échelle de l'axe des fréquences : l'axe des fréquences de la sortie FFT dépend de la fréquence d'échantillonnage. Si fs est mal saisi, toutes les fréquences sont mal sorties, mais le graphique semble normal.
  • Fenêtrage : lorsqu'un morceau fini de signal est reçu, une discontinuité se produit sur les bords et un pseudo-étalement (fuite spectrale) est observé dans le spectre. Les fenêtres comme Hann et Hamming réduisent ce phénomène. Si le code AI ignore le fenêtrage, le résultat sera trompeur.
  • Normalisation de l'amplitude : une mise à l'échelle et une correction de fenêtre sont nécessaires pour convertir l'amplitude de la sortie FFT en valeur physique réelle. En cas d'omission, les amplitudes seront incorrectes.

conception de filtre

Un filtre est un circuit ou un algorithme qui extrait les fréquences indésirables d'un signal. Il existe quatre types de base : passe-bas (passe les basses fréquences), passe-haut, passe-bande et passe-bande (encoche). Il existe deux grandes familles de filtres numériques : FIR (réponse impulsionnelle finie, phase stable et linéaire) et IIR (réponse impulsionnelle infinie, transition abrupte avec moins de calcul mais stabilité et risque de phase).

L'IA explique les étapes de conception d'un filtre (fréquence de coupure, bande passante, atténuation de la bande d'arrêt, sélection de l'ordre) et écrit le code générateur de coefficients avec scipy. Mais la fréquence de coupure du filtre que vous concevez est normalisée (par rapport à la fréquence de Nyquist), et saisir fs de manière incorrecte ici est une erreur très courante. De plus, la stabilité et la distorsion de phase peuvent constituer un problème dans les filtres IIR, et la latence peut constituer un problème dans les systèmes temps réel. Assurez-vous de vérifier le filtre généré par l'IA avec un graphique de réponse en fréquence et un signal de test connu.

trois mini-cases

Cas 1 — Vibrations superposées. Un ingénieur échantillonne la vibration d'un moteur à 1 kHz et voit un fort pic dans la FFT à 300 Hz. Ce pic, qui ne correspond pas au design du moteur, prête à confusion. Il y a effectivement un véritable composant dans le moteur autour de 1300 Hz ; Un échantillonnage de 1 kHz est insuffisant pour cela (Nyquist 500 Hz) et 1300 Hz chevauchent 300 Hz. Après avoir discuté avec l'IA "si ce pic est réel ou un alias" et augmenté la fréquence d'échantillonnage à 5 kHz, le pic apparaît au bon endroit à 1300 Hz. Leçon : sur une colline douteuse, première question sur l'adéquation de l'échantillonnage.

Cas 2 — Fenêtre ignorée. Un stagiaire demande un code FFT à l'IA et l'exécute. Il s'attend à une tonalité de test à fréquence unique, mais constate une large diffusion sur tout le spectre. Le problème est que le code ne fait pas de fenêtrage (fuite spectrale). Dites à l'IA "ajouter une fenêtre de Hann et appliquer une correction d'amplitude" et la sortie revient au pic net attendu. Leçon : Testez le code FFT avec un signal monofréquence connu ; Vérifiez la fenêtre s'il y a une fuite.

Cas 3 — Mauvais fs. Un ingénieur analyse les données de l'enregistreur. L'appareil a enregistré à 48 kHz, mais la valeur par défaut de 44,1 kHz a été saisie dans le code AI. Toutes les fréquences sont décalées de 8 % ; Une tonalité de 1 000 Hz apparaît à 1 088 Hz. Une erreur est détectée lors de la vérification de la fs réelle de l'équipement de mesure. Leçon : la fréquence d'échantillonnage est le nombre le plus critique dans la chaîne d'analyse ; doit être vérifié à la source.

Modèles d'invite copiables

MODÈLE DE CONFIGURATION FFT "Écrivez un code d'analyse FFT en Python (numpy/scipy). Entrée : fréquence d'échantillonnage fs = [valeur] Hz, chaîne de signal 'x'. Laissez le code faire CE QUI SUIT : (1) Appliquer la fenêtre Hann, (2) Obtenir FFT, (3) mettre à l'échelle avec précision l'axe de fréquence par rapport à fs, (4) tracer un spectre d'amplitude unilatéral avec correction de fenêtre. À chaque étape du code "Veuillez indiquer dans la ligne de commentaire quelle hypothèse vous faites afin que je puisse vérifie-le."

MODÈLE DE CONTRÔLE D'ÉCHANTILLONNAGE « La fréquence significative la plus élevée de mon signal est d'environ [X] Hz. Expliquez la marge de Nyquist, la nécessité d'un filtre anti-aliasing et la marge de sécurité pratique lors du choix d'une fréquence d'échantillonnage. Suggérez une plage, mais soulignez que je dois la vérifier en mesurant le véritable spectre du signal.

MODÈLE DE CONCEPTION DE FILTRE "Concevez un filtre numérique passe-bas/haut/bande] avec scipy. Fréquence de coupure [X] Hz, fréquence d'échantillonnage fs=[Y] Hz. Comparez les options FIR et IIR (stabilité, phase, délai, charge de calcul). Montrez clairement dans le code comment la fréquence de coupure est normalisée à fs. Incluez également le code qui valide le filtre avec un graphique de réponse en fréquence."

MODÈLE DE VALIDATION DES RÉSULTATS "Examinez le code de traitement du signal ci-dessous et signalez les sources d'erreurs silencieuses : fs incorrect, fenêtrage ignoré, diaphonie unitaire (Hz/kHz, V/mV), manque de normalisation, diaphonie spectrale simple/double face. Suggérez comment je devrais tester (avec quel signal de référence) pour chacun. Code : [coller]."

Invite faible/Invite forte

INVITE FAIBLE : "Trouvez la fréquence de ce signal."

INVITE FORTE : "J'ai un réseau de signaux avec une fréquence d'échantillonnage de 10 kHz. Écrivez un code Python qui trouve les composantes de fréquence dominantes avec FFT ; utilisez la fenêtre de Hann et la correction d'amplitude, mettez à l'échelle l'axe des fréquences en fonction de fs. À la fin du code, ajoutez un bloc de validation avec un signal de test synthétique de 1 kHz fs et voyez si la mise à l'échelle est correcte."

Une invite faible produit une réponse sans contexte et suppose fs ; Il renvoie des paramètres d'invite forts et demande un bloc de test d'auto-vérification.

Tableau des unités et hypothèses en traitement du signal

notion

erreur fréquente

vérification

Fréquence d'échantillonnage (fs)

Par défaut au lieu du FS réel de l'appareil

Confirmation du réglage de l'enregistreur

axe des fréquences

Si fs est faux, tout l'axe se déplace

Tonalité de test de fréquence connue

Fenêtrage

Fuite spectrale en cas d'omission

Largeur de pic dans un signal monotone

Amplitude

Normalisation/correction manquante

Comparaison avec un signal d'amplitude connu

filtre coupé

normaliser l'erreur selon fs

Graphique de réponse en fréquence

Attention : Ce n'est pas parce qu'un graphique FFT semble fluide et crédible qu'il est précis. Si l’axe des fréquences n’est pas mis à l’échelle correctement, tous les pics sont au mauvais endroit mais le graphique semble parfait. Calibrez toujours avec une référence connue.

Erreurs courantes

  • Ne pas vérifier la fréquence d'échantillonnage de la source. Un mauvais fs décale toutes les fréquences.
  • Violer Nyquist et ne pas remarquer l'alias. Sur les collines suspectes, questionnez d’abord l’adéquation de l’échantillonnage.
  • Ignorer le fenêtrage dans FFT. La fuite spectrale ressemble à un véritable pic.
  • Oublier la normalisation de l'amplitude. Les amplitudes ne sont pas adaptées à la valeur physique.
  • Normalisation incorrecte de la fréquence de coupure du filtre à fs. Le filtre coupe à un endroit différent de celui prévu.

En résumé

Dans cette unité, vous avez positionné l'IA comme une aide puissante pour l'apprentissage des concepts de traitement du signal, l'écriture de codes FFT et de filtrage et la construction d'analyses. Mais dans le traitement du signal, les résultats peuvent être faussés silencieusement : une fréquence d'échantillonnage incorrecte, un fenêtrage sauté, un volume interférent ou un manque de normalisation rendent le graphique beau mais imprécis. Testez donc chaque code produit par l'IA par rapport à un signal de référence connu, vérifiez la fréquence d'échantillonnage de la source et testez chaque résultat pour la plausibilité unitaire et physique. Vérifiez le concept de Nyquist et d'alias au début de chaque analyse.

Tâche de candidature

Créez un signal de test synthétique en Python : somme de deux fréquences connues (par exemple 1 kHz et 3 kHz), fs=10 kHz. Demandez le code d'analyse à l'IA avec le modèle « FFT setup » et vérifiez que les pics apparaissent aux bonnes fréquences. Ensuite, entrez délibérément la fs de manière incorrecte (par exemple 8 kHz) et observez comment les pics se déplacent. Enfin, supprimez le fenêtrage et observez la fuite spectrale. Écrivez les résultats de chaque expérience en une phrase.

liste de contrôle

  • [ ] J'ai vérifié la fréquence d'échantillonnage (fs) à partir du réglage réel de l'enregistreur.
  • [ ] J'ai vérifié le critère de Nyquist et évalué le risque d'alias.
  • [ ] J'ai vérifié que le fenêtrage et la correction d'amplitude sont implémentés dans le code FFT.
  • [ ] J'ai testé le code avec un signal de référence de fréquence connue.
  • [ ] J'ai vérifié par réponse visuelle que la fréquence de coupure du filtre était correctement normalisée à fs.
  • [ ] J'ai rendu cohérentes toutes les unités (Hz/kHz, V/mV).