Enhet 4 / 9

Signalbehandling og dataanalyse

Gevinster:

  • Evne til nøyaktig å etablere signalbehandlingsparametere som samplingsfrekvens, filtertype og vindu med AI
  • Evne til å generere Python-kode for FFT, filterdesign og støyanalyse og sjekke Nyquist og aliasing
  • Evne til å verifisere AI-generert spektrumtolkning ved å sammenligne det med måling og fysisk forventning

Rådata fra en sensor, mikrofon eller strømlinje alene er ofte meningsløse; Det er nødvendig å behandle og tolke det på aksen for frekvens, amplitude og tid. Å trekke ut spektrum med FFT, filtrere støy, gjenkjenne en vibrasjonssignatur... Dette er alle signalbehandling og AI genererer rask Python-kode i dette området, forklarer konsepter, beregner filterkoeffisient. Men en liten parameterfeil i signalbehandlingen (feil samplingsfrekvens, feil vindu, hoppet over Nyquist-kontroll) ødelegger i det stille hele analysen; Koden gir ikke feil, den gir bare feil resultater. I denne enheten vil vi dekke å sette de riktige parameterne med AI, sjekke den genererte koden når det gjelder Nyquist og aliasing, og verifisere spektrumtolkningen med fysisk virkelighet.

Grunnleggende parametere: Sampling, Nyquist, Aliasing

Den første regelen for digital signalbehandling er Nyquist-Shannon-teoremet: for å representere et signal nøyaktig, må samplingsfrekvensen være minst to ganger den høyeste frekvenskomponenten i signalet. Ellers vil høye frekvenser vises som lave frekvenser (aliasing), og dette kan ikke reverseres.

Høyeste frekvens i signalet: f_max = 2 kHzMinste samplingsfrekvens: f_s ≥ 2 · f_max = 4 kHz For å la margin i praksis: f_s ≈ 5 · f_max = 10 kHz velges. Et analogt anti-aliasing-filter er også et MUST FØR sampling.

Forsiktig: Når AI foreslår en samplingsfrekvens, sørg for å sjekke om den gir Nyquist basert på den høyeste komponenten i signalet ditt. Koden kjører uten feil selv ved lav samplingsfrekvens; men resultatet er feil på grunn av aliasing. I tillegg kan ingen programvare angre denne feilen uten et anti-aliasing-filter i maskinvaren.

Oppløsning og vindu for FFT

Frekvensoppløsningen til FFT avhenger av samplingsfrekvensen og antall sampler: Δf = f_s / N. For finere oppløsning samler du enten flere sampler eller velger lavere f_s (uten å bryte Nyquist). I tillegg skaper diskontinuiteten mellom begynnelsen og slutten av signalet "spektral lekkasje"; For å redusere dette brukes vindusfunksjoner som Hann og Hamming.

f_s = 10 kHz, N = 1024 samples Frekvensoppløsning: Δf = 10000 / 1024 ≈ 9,77 HzTotal opptakstid: T = N / f_s = 1024 / 10000 ≈ 102,4 ms

Generering og kontroll av FFT og filterkode

Spesifiser samplingsfrekvensen, vindustypen og akseskalaen eksplisitt når du ber om FFT-koden fra AI. Følgende kode sender ut det ensidige amplitudespekteret til et signal:

importer numpy som npfs = 10000 # samplingsfrekvens (Hz) - verifiser Nyquist!N = 1024t = np.arange(N) / fs# eksempelsignal: 500 Hz + 1500 Hzx = np.sin(2*np.pi*500*t) + 0,5*np.sin(2*np.pi*1500*t)w = np.hanning(N) # vindu: reduserer spektrallekkasje normalisert av gain# check peak frequencypeaks = f[np.argsort(mag)[-2:]]print("Dominante frekvenser (Hz):", np)sort.

Når du sjekker denne koden vil du bli spurt: Er frekvensaksen virkelig Hz eller er prøveindeksen (rfftfreq brukt)? Er amplituden normalisert til vindusforsterkningen? Oppstår virkelig de forventede 500 og 1500 Hz toppene på disse punktene? Hvis du bekrefter koden med et kjent testsignal (sinus med enkelt frekvens), vil du trygt bekrefte aksen og normaliseringen.

Svak forespørsel / sterk forespørsel

SVAK:"Bruk FFT på disse dataene."(Resultat: samplingsfrekvens, akseskala og vindu er uklare; grafen er mest sannsynlig plottet på feil akse.)STERK:"Bruk FFT på et 10 kHz samplet signal. Oppgi:- Plott frekvensaksen i Hz (bruk rfft forsterkningsvinduet og normaliser vinduet med rfft-forsterkning ved normalisering). to dominerende frekvenser digitalt.- Marker Nyquist-grensen (5 kHz) på grafen Merk at aksen vil forskyves hvis samplingsfrekvensen er feil.

Filterdesign og støyanalyse

AI kan generere lav/høy/båndpassfilterkoeffisienter (FIR/IIR). Men skjærefrekvensen, rekkefølgen og stabiliteten til filteret må kontrolleres. Det kan forårsake høy ordens ustabilitet og faseforvrengning, spesielt i IIR-filtre. Etter å ha designet filteret, plott frekvensresponsen (Bode-lignende) for å se at cutoff er på rett sted og det er ingen uønsket krusning i passbåndet.

Den typiske oppgaven i støyanalyse er å skille det virkelige signalet fra støyen. Her, evaluer AIs foreslåtte terskel eller filter mot den fysiske båndbredden til signalet: hvis det virkelige signalet ditt er på 0-500 Hz, er en komponent på 2 kHz mest sannsynlig støy eller interferens. AI gir statistikk; Du gjør den fysiske tolkningen.

Validering av spektrumtolkningen med fysisk virkelighet

Når man tolker et spektrum, gjør AI rimelige, men ikke alltid nøyaktige slutninger som "Det er en topp ved 50 Hz, dette er nettinterferens." Sammenlign disse kommentarene med den fysiske forventningen: Har systemet virkelig en 50 Hz nettforbindelse? Er den forventede rotasjonsfrekvensen og harmoniske nesten der i vibrasjonsspekteret til en motor? Hvis mulig, gjenta målingen med en annen metode (annen sensor, annen programvare) og se de samme toppene.

Hint: For hver spektrumtolkning, "hvilket fysisk fenomen tilsvarer denne toppen?" Still spørsmålet. 50/100/150 Hz nettverk og dets harmoniske, rotasjonsfrekvens og dets multipler i roterende maskiner, og svitsjefrekvens i svitsjestrømforsyninger er kjente signaturer. En ukjent topp er enten en reell hendelse eller en måle-/behandlingsfeil; Undersøk begge deler.

Mini etui

En FoU-ingeniør måler vibrasjonen til en vifte og får AI til å tolke spekteret. "Det er en dominerende topp på 1200 Hz, dette kan være lagerfeil," sier AI. Ingeniøren styrer hastigheten på viften: 1800 rpm = 30 Hz. Lager- og bladovergangsfrekvenser forventes å være på visse verdier som er kompatible med denne syklusen; 1200 Hz tilsvarer ikke noen av disse. Den kontrollerer samplingsfrekvensen: signalet har innhold på opptil 2 kHz, men bare 2 kHz samples, så et Nyquist-brudd. Toppen ved 1200 Hz er en spøkelsesfrekvens som er et resultat av aliasing. Når jeg øker samplingsfrekvensen til 8 kHz, forsvinner den falske toppen. Leksjon: test alltid spektrumtolkning med fysisk syklus/frekvensforventning og korrekt prøvetaking.

Vanlige feil

  • Velge samplingsfrekvens uten å sjekke Nyquist-kriteriet; Overser aliasing.
  • Forlater FFT-frekvensaksen ved prøveindeksen i stedet for Hz.
  • Ta feil av spektrallekkasje som et signal uten vindu.
  • Normaliserer ikke amplitude etter antall vinduer/prøver.
  • Kontrollerer ikke IIR-filterets stabilitet og faseforvrengning.
  • Tolke spektrumtopper uten å teste dem i påvente av fysisk turtall/frekvens.

Oppsummert

  • Samplingsfrekvensen må være minst to ganger den høyeste komponenten av signalet; Ellers vil aliasing forstyrre hele analysen.
  • FFT-oppløsning Δf = f_s/N; Velg N og f_s i henhold til ditt behov.
  • Vindu reduserer spektrallekkasje; normaliser amplituden i henhold til vindusforsterkningen.
  • Bekreft AI-koden med et kjent testsignal for å bekrefte akse og normalisering.
  • Sjekk filterstabiliteten og frekvensresponsen ved å plotte den.
  • Test alltid spektrumtolkning med forventning om fysisk frekvens.

Søknadsoppgave

Generer et testsignal med kjent frekvens (f.eks. 500 Hz + 1500 Hz sinus). Be om FFT og filterkode fra AI. Deretter: (1) verifiser at Nyquist-kriteriet er oppfylt, (2) kontroller at FFT-toppene faktisk vises ved 500 og 1500 Hz, (3) reduserer bevisst samplingsfrekvensen under Nyquist og observer hvordan aliasing skaper en falsk topp. Legg merke til dine observasjoner og parameteren du korrigerte.