Eenheid 4 / 9

Signaalverwerking en gegevensanalyse

Winst:

  • Mogelijkheid om signaalverwerkingsparameters zoals bemonsteringsfrequentie, filtertype en venstering nauwkeurig vast te stellen met AI
  • Mogelijkheid om Python-code te genereren voor FFT, filterontwerp en ruisanalyse en Nyquist en aliasing te controleren
  • Mogelijkheid om door AI gegenereerde spectruminterpretatie te verifiëren door deze te vergelijken met metingen en fysieke verwachtingen

Ruwe gegevens van alleen een sensor, microfoon of elektriciteitsleiding zijn vaak zinloos; Het is noodzakelijk om het te verwerken en te interpreteren op de as van frequentie, amplitude en tijd. Spectrum extraheren met FFT, ruis filteren, een trillingssignatuur herkennen... Dit zijn allemaal signaalverwerking en AI genereert snelle Python-code op dit gebied, legt concepten uit, berekent de filtercoëfficiënt. Maar een kleine parameterfout in de signaalverwerking (verkeerde bemonsteringsfrequentie, verkeerd venster, overgeslagen Nyquist-controle) verpest stilletjes de hele analyse; De code geeft geen fouten, maar geeft alleen verkeerde resultaten. In deze unit behandelen we het instellen van de juiste parameters met AI, het controleren van de gegenereerde code in termen van Nyquist en aliasing, en het verifiëren van de spectruminterpretatie met de fysieke realiteit.

Basisparameters: bemonstering, Nyquist, aliasing

De eerste regel van digitale signaalverwerking is de stelling van Nyquist-Shannon: om een signaal nauwkeurig weer te geven, moet de bemonsteringsfrequentie minstens tweemaal de hoogste frequentiecomponent in het signaal zijn. Anders verschijnen hoge frequenties als lage frequenties (aliasing) en dit kan niet worden teruggedraaid.

Hoogste frequentie in het signaal: f_max = 2 kHzMinimale bemonsteringsfrequentie: f_s ≥ 2 · f_max = 4 kHzOm in de praktijk een marge over te laten: f_s ≈ 5 · f_max = 10 kHz wordt geselecteerd. Ook is een analoog anti-aliasingfilter een MUST VOOR het bemonsteren.

Let op: Wanneer AI een bemonsteringsfrequentie voorstelt, controleer dan of deze Nyquist levert op basis van de hoogste component van uw signaal. De code werkt zonder fouten, zelfs bij een lage bemonsteringsfrequentie; maar het resultaat is verkeerd vanwege aliasing. Bovendien kan geen enkele software deze fout ongedaan maken zonder een anti-aliasingfilter in de hardware.

Resolutie en venstering voor FFT

De frequentieresolutie van de FFT hangt af van de bemonsteringsfrequentie en het aantal monsters: Δf = f_s / N. Voor een fijnere resolutie verzamelt u meer monsters of kiest u een lagere f_s (zonder Nyquist te verbreken). Bovendien creëert de discontinuïteit tussen het begin en het einde van het signaal "spectrale lekkage"; Om dit te verminderen worden vensterfuncties zoals Hann en Hamming toegepast.

f_s = 10 kHz, N = 1024 samples Frequentieresolutie: Δf = 10000 / 1024 ≈ 9,77 Hz Totale opnametijd: T = N / f_s = 1024 / 10000 ≈ 102,4 ms

FFT- en filtercode genereren en controleren

Geef de bemonsteringsfrequentie, het venstertype en de asschaal expliciet op wanneer u de FFT-code opvraagt bij de AI. De volgende code voert het eenzijdige amplitudespectrum van een signaal uit:

importeer numpy als npfs = 10000 # bemonsteringsfrequentie (Hz) - verifieer Nyquist!N = 1024t = np.arange(N) / fs# bemonsteringssignaal: 500 Hz + 1500 Hzx = np.sin(2*np.pi*500*t) + 0,5*np.sin(2*np.pi*1500*t)w = np.hanning(N) # windowing: reduceert spectrale lekkage genormaliseerd door versterking# check piekfrequentiespeaks = f[np.argsort(mag)[-2:]]print("Dominante frequenties (Hz):", np.sort(pieken))

Wanneer u deze code controleert, wordt u gevraagd: is de frequentie-as echt Hz of wordt de voorbeeldindex (rfftfreq gebruikt)? Is de amplitude genormaliseerd voor de vensterversterking? Komen de verwachte pieken van 500 en 1500 Hz werkelijk op die punten voor? Als u de code verifieert met een bekend testsignaal (sinus met enkele frequentie), bevestigt u met vertrouwen de as en normalisatie.

Zwakke prompt/sterke prompt

ZWAK: "Pas FFT toe op deze gegevens." (Resultaat: bemonsteringsfrequentie, asschaal en vensters zijn onduidelijk; de grafiek is hoogstwaarschijnlijk op de verkeerde as uitgezet.) STERK: "Pas FFT toe op een bemonsterd signaal van 10 kHz. Zorg voor: - Teken de frequentie-as in Hz (gebruik rfftfreq). - Pas Hann-venster toe en normaliseer de amplitude met de vensterversterking. - Druk de twee dominante frequenties digitaal af. - Markeer de Nyquist-limiet (5 kHz) in de grafiek. dat de as zal verschuiven als de bemonsteringsfrequentie onjuist is."

Filterontwerp en ruisanalyse

AI kan lage/hoge/banddoorlaatfiltercoëfficiënten (FIR/IIR) genereren. Maar de afsnijfrequentie, orde en stabiliteit van het filter moeten worden gecontroleerd. Het kan instabiliteit van hoge orde en fasevervorming veroorzaken, vooral bij IIR-filters. Nadat u het filter heeft ontworpen, plot u de frequentierespons (Bode-achtig) om te zien of de afsnijding op de juiste plaats zit en er geen ongewenste rimpel in de doorlaatband zit.

De typische taak bij ruisanalyse is het scheiden van het echte signaal van de ruis. Evalueer hier de door de AI voorgestelde drempel of filter tegen de fysieke bandbreedte van het signaal: als uw echte signaal zich op 0-500 Hz bevindt, is een component op 2 kHz hoogstwaarschijnlijk ruis of interferentie. AI geeft statistieken; Jij maakt de fysieke interpretatie.

Validatie van de spectruminterpretatie met de fysieke realiteit

Bij het interpreteren van een spectrum maakt AI redelijke maar niet altijd nauwkeurige conclusies, zoals “Er is een piek bij 50 Hz, dit is netinterferentie.” Vergelijk deze opmerkingen met de fysieke verwachting: Heeft het systeem echt een 50 Hz netaansluiting? Zijn de verwachte rotatiefrequentie en harmonischen bijna aanwezig in het trillingsspectrum van een motor? Herhaal indien mogelijk de meting met een tweede methode (andere sensor, andere software) en zie dezelfde pieken.

Hint: Voor elke spectruminterpretatie: "met welk fysisch fenomeen komt deze piek overeen?" Stel de vraag. 50/100/150 Hz-netwerk en zijn harmonischen, rotatiefrequentie en zijn veelvouden in roterende machines, en schakelfrequentie in schakelende voedingen zijn bekende kenmerken. Een onbekende piek is een reële gebeurtenis of een meet-/verwerkingsfout; Onderzoek beide.

Mini-hoesje

Een R&D-ingenieur meet de trillingen van een ventilator en laat de AI het spectrum interpreteren. "Er is een dominante piek bij 1200 Hz, dit kan een lagerstoring zijn", zegt AI. De ingenieur regelt de snelheid van de ventilator: 1800 tpm = 30 Hz. Er wordt verwacht dat de overgangsfrequenties van lagers en schoepen op bepaalde waarden liggen die compatibel zijn met deze cyclus; 1200 Hz komt met geen van deze overeen. Het regelt de bemonsteringsfrequentie: het signaal draagt ​​inhoud tot 2 kHz, maar er wordt slechts 2 kHz bemonsterd, dus een Nyquist-schending. De piek bij 1200 Hz is een spookfrequentie die het gevolg is van aliasing. Wanneer ik de bemonsteringsfrequentie verhoog naar 8 kHz, verdwijnt de valse piek. Les: test spectruminterpretatie altijd met fysieke cyclus-/frequentieverwachtingen en correcte bemonstering.

Veelvoorkomende fouten

  • Bemonsteringsfrequentie kiezen zonder het Nyquist-criterium te controleren; Aliasing over het hoofd gezien.
  • Laat de FFT-frequentie-as op de monsterindex staan ​​in plaats van op Hz.
  • Verwarren van spectrale lekkage als een signaal zonder venstering.
  • De amplitude wordt niet genormaliseerd op basis van het aantal vensters/monsters.
  • Controleert de stabiliteit van het IIR-filter en de fasevervorming niet.
  • Spectrumpieken interpreteren zonder ze te testen in afwachting van fysieke toerentallen/frequentie.

Samengevat

  • De bemonsteringsfrequentie moet minimaal tweemaal de hoogste component van het signaal zijn; Anders zal aliasing de hele analyse verstoren.
  • FFT-resolutie Δf = f_s/N; Kies N en f_s volgens uw behoefte.
  • Windowing vermindert spectrale lekkage; normaliseer de amplitude volgens de vensterversterking.
  • Verifieer de AI-code met een bekend testsignaal om de as en normalisatie te bevestigen.
  • Controleer de filterstabiliteit en frequentierespons door deze in kaart te brengen.
  • Test spectruminterpretatie altijd met verwachting van fysieke frequentie.

Applicatie taak

Genereer een testsignaal met een bekende frequentie (bijvoorbeeld 500 Hz + 1500 Hz sinus). Vraag FFT en filtercode aan bij AI. Vervolgens: (1) controleer of aan het Nyquist-criterium is voldaan, (2) controleer of de FFT-pieken daadwerkelijk verschijnen bij 500 en 1500 Hz, (3) verlaag opzettelijk de bemonsteringsfrequentie onder Nyquist en observeer hoe aliasing een valse piek creëert. Noteer uw waarnemingen en de parameter die u hebt gecorrigeerd.