Pelnas:
- Gebėjimas teisingai konstruoti ir taikyti atrankos, Nyquist ir slapyvardžio koncepcijas su AI palaikymu
- Galimybė išversti FFT, filtrų dizaino ir langų žingsnius į juodraštį kodą ir skaičiavimus naudojant AI
- Galimybė patikrinti AI gautus signalų apdorojimo rezultatus su etaloniniu signalu, įrenginio valdymu ir matavimu
Signalų apdorojimas yra elektronikos ir ryšių inžinerijos širdis: menas paimti įtampos bangą, garso įrašą, jutiklio skaitymą ar radijo signalą ir išgauti jame esančią informaciją, išvalyti triukšmą ir jį transformuoti. Šiame skyriuje pamatysite, kaip dirbtinio intelekto pagalba išmokti signalų apdorojimo sąvokų, kurti filtrų ir transformacijų skaičiavimus bei atlikti analizę su Python kodu. Tačiau perspėjimas nuo pat pradžių: nedidelė konceptuali klaida apdorojant signalą (neteisingas diskretizavimo dažnis, praleistas langas, trukdantis vienetas) visiškai ir tyliai iškraipys rezultatą; Grafikas vis dar atrodo gerai, bet jis neteisingas. Štai kodėl būtina patikrinti kiekvieną AI pateiktą rezultatą pagal žinomą atskaitos signalą ir įrenginio valdymą.
Mėginių ėmimas ir Nyquist: kur viskas prasideda
Norėdami apdoroti analoginį signalą (nepertraukiamą bangą) kompiuteryje, matuojame jį tam tikrais intervalais ir konvertuojame į skaičių; Tai vadinama atranka. Tai yra atrankos dažnis (fs, vienetas Hz), kiek mėginių paimame per sekundę. Nyquist kriterijus teigia, kad norint tiksliai atkurti signalą, diskretizavimo dažnis turi būti bent du kartus didesnis už didžiausią signalo dažnį. Jei ši sąlyga neįvykdoma, aukšti dažniai pradeda atrodyti kaip žemi dažniai; Tai vadinama slapyvardžiu, o duomenys visam laikui sugadinami, nes negalite atskirti šių dviejų situacijų.
AI labai gerai paaiškina šią sąvoką ir gali tai parodyti pavyzdžiais. Bet jūs nusprendžiate rinkdamiesi diskretizavimo dažnį: koks yra tikrasis jūsų signalo pralaidumas, ar turite analoginį filtrą nuo slapyvardžio, kokiu greičiu iš tikrųjų veikia jūsų ADC (Analog-Digital Converter: lustas, konvertuojantis analoginį signalą į skaičių). AI gali „pasiūlyti“ diskretizavimo dažnį, tačiau šis pasiūlymas yra spėjimas, nematuojant tikrojo signalo spektro.
Patarimas: užduodami AI atrankos klausimą, patys nurodykite aukščiausią signalo dažnį ir pralaidumą. "Jei didžiausias signalo komponentas yra ~4 kHz, kaip pasirinkti fs ir kur dėti anti-aliasing filtrą?" patinka. Neverskite AI atspėti spektro; matuoti.
FFT ir dažnio analizė
FFT (Fast Furjė transformacija) yra greitas algoritmas, konvertuojantis signalą iš laiko ašies į dažnio ašį. Taigi "kokie dažniai yra šiame signale ir kokia galia?" atsako į klausimą. AI labai gerai sekasi įgyvendinti FFT, interpretuoti rezultatus ir rašyti Python kodą (numpy/scipy). Tačiau yra bendrų FFT klaidų, ir AI kodas gali jas tyliai įtraukti:
- Dažnio ašies mastelio keitimas: FFT išvesties dažnio ašis priklauso nuo diskretizavimo dažnio. Jei fs įvestas neteisingai, visi dažniai išvedami neteisingai, tačiau grafikas atrodo normalus.
- Langų sudarymas: kai gaunamas baigtinis signalo gabalas, jo kraštuose atsiranda nenutrūkstamumas ir spektre stebimas pseudo sklaidymas (spektro nutekėjimas). Tokie langai kaip Hannas ir Hamingas tai sumažina. Jei AI kodas praleidžia langą, rezultatas bus klaidinantis.
- Amplitudės normalizavimas: norint konvertuoti FFT išvesties amplitudę į tikrąją fizinę vertę, reikia keisti mastelį ir koreguoti langą. Jei praleisite, amplitudės bus neteisingos.
filtro dizainas
Filtras yra grandinė arba algoritmas, išgaunantis iš signalo nepageidaujamus dažnius. Yra keturi pagrindiniai tipai: žemųjų dažnių (praleidžia žemus dažnius), aukšto dažnio, dažnių juostos ir dažnių juostos (įpjovos). Yra dvi didelės skaitmeninių filtrų šeimos: FIR (ribinis impulsinis atsakas, stabili ir tiesinė fazė) ir IIR (begalinis impulsinis atsakas, staigus perėjimas su mažesniu skaičiavimu, bet stabilumu ir fazės rizika).
AI paaiškina filtro projektavimo žingsnius (ribinis dažnis, pralaidumo juosta, stabdymo juostos slopinimas, tvarkos pasirinkimas) ir su scipy įrašo koeficiento generavimo kodą. Tačiau jūsų sukurto filtro ribinis dažnis yra normalizuotas (lyginant su Nyquist dažniu), o neteisingas fs įvedimas čia yra labai dažna klaida. Be to, stabilumas ir fazės iškraipymai gali būti IIR filtrų problema, o vėlavimas gali būti problema realaus laiko sistemose. Būtinai patikrinkite dirbtinio intelekto sukurtą filtrą naudodami dažnio atsako grafiką ir žinomą bandymo signalą.
trys mini dėklai
1 atvejis – persidengianti vibracija. Inžinierius paima variklio vibraciją esant 1 kHz ir mato stiprią FFT smailę esant 300 Hz. Ši viršūnė, kuri neatitinka variklio konstrukcijos, kelia painiavą. Iš tikrųjų variklyje yra tikras komponentas, kurio dažnis yra apie 1300 Hz; Tam nepakanka 1 kHz atrankos (Nyquist 500 Hz) ir 1300 Hz persidengė 300 Hz. Aptarus su AI „ar ši smailė yra tikra, ar slapyvardis“ ir padidinus mėginių ėmimo dažnį iki 5 kHz, smailė pasirodo tinkamoje vietoje ties 1300 Hz. Pamoka: ant abejotinos kalvos, pirmasis klausimas atrankos tinkamumas.
2 atvejis – praleistas langas. Stažuotojas paprašo FFT kodo iš AI ir jį vykdo. Jis tikisi vieno dažnio bandymo tono, bet mato platų spektrą. Problema ta, kad kodas nedaro langų (spektro nutekėjimo). Pasakykite AI „pridėkite Hann langą ir pritaikykite amplitudės korekciją“ ir išvestis grįš į laukiamą aštrų piką. Pamoka: patikrinkite FFT kodą su žinomu vieno dažnio signalu; Patikrinkite langą, ar nėra nuotėkio.
3 atvejis – neteisingas fs. Inžinierius analizuoja duomenis iš registratoriaus. Įrenginys įrašė 48 kHz dažniu, tačiau į AI kodą buvo įvestas numatytasis 44,1 kHz. Visi dažniai perkeliami 8%; 1000 Hz tonas pasirodo esant 1088 Hz. Klaida randama tikrinant faktinius matavimo įrangos fs. Pamoka: mėginių ėmimo dažnis yra pats svarbiausias skaičius analizės grandinėje; turi būti patikrinta iš šaltinio.
Kopijuojami raginimo šablonai
FFT SETUP TEMPLATE"Parašykite FFT analizės kodą Python programoje (numpy/scipy). Įvestis: mėginių ėmimo dažnis fs=[value] Hz, signalo eilutė 'x'. Leiskite kodui atlikti TAI: (1) Taikykite Hann langą, (2) gaukite FFT, (3) tiksliai išskirkite vieną spektro langą, lyginant su spektro ašimi4. Taisymas kiekviename kodo žingsnyje „Komentarų eilutėje nurodykite, kurią prielaidą darote, kad galėčiau ją patikrinti“.
MĖGINIŲ ĖMIIMO VALDYMO ŠABLONIS „Didžiausias reikšmingas mano signalo dažnis yra maždaug [X] Hz. Paaiškinkite Nyquist ribą, anti-aliasing filtro poreikį ir praktinę saugos ribą renkantis mėginių ėmimo dažnį. Pasiūlykite diapazoną, bet pabrėžkite, kad turėčiau tai patikrinti išmatuodamas tikrąjį signalo spektrą.
FILTRO KONSTRUKCIJOS ŠABLONIS "Sukurkite [žemo/aukšto/juosto] pralaidumo skaitmeninį filtrą su scipy. Ribinis dažnis [X] Hz, diskretizavimo dažnis fs=[Y] Hz. Palyginkite FIR ir IIR parinktis (stabilumas, fazė, delsa, skaičiavimo apkrova). Kode aiškiai parodykite, kaip ribinis dažnis yra normalizuojamas į filtrą, kuris patvirtina dažnio grafą.
REZULTATŲ PATVIRTINIMO ŠABLONAS „Išnagrinėkite toliau pateiktą signalo apdorojimo kodą ir pažymėkite tyliųjų klaidų šaltinius: neteisingas fs, praleistas langas, vieneto skersinis pokalbis (Hz/kHz, V/mV), normalizavimo trūkumas, vienpusis/dvipusis spektro skersinis pokalbis. Pasiūlykite, kaip turėčiau patikrinti (su kokiu atskaitos signalu) kiekvienam. Kodas: [įklijuoti].
Silpnas raginimas / Stiprus raginimas
WEAK PROMPT: „Rasti šio signalo dažnį“.
STIPRUS raginimas: "Turiu signalų masyvą, kurio diskretizavimo dažnis yra 10 kHz. Parašykite Python kodą, kuris su FFT randa dominuojančius dažnio komponentus; naudokite Hann langą ir amplitudės korekciją, mastelėkite dažnio ašį pagal fs. Kodo pabaigoje pridėkite patvirtinimo bloką su sintetiniu 1 kHz bandymo signalu ir žiūrėkite, ar teisingas fscal.
Silpna raginimas pateikia atsakymą be konteksto ir daro prielaidą, kad fs; Jis grąžina stiprius raginimo parametrus ir ragina atlikti savęs patikrinimo bandymo bloką.
Signalų apdorojimo vienetų ir prielaidų lentelė
koncepcija
dažna klaida
patikrinimas
Atrankos dažnis (fs)
Numatytasis vietoj faktinio įrenginio FS
Patvirtinimas iš diktofono nustatymų
dažnio ašis
Jei fs neteisingas, visa ašis pasislenka
Žinomas dažnio bandymo tonas
Langai
Spektrinis nutekėjimas, kai praleidžiama
Monotoninio signalo smailės plotis
Amplitudė
Trūksta normalizavimo/pataisymo
Palyginimas su žinomos amplitudės signalu
filtro iškirpimas
normalizuoti paklaidą pagal fs
Dažnio atsako grafikas
Atsargiai: vien todėl, kad FFT grafikas atrodo sklandžiai ir patikimai, dar nereiškia, kad jis tikslus. Jei dažnio ašies mastelis yra neteisingas, visos smailės yra netinkamoje vietoje, bet grafikas atrodo tobulas. Visada kalibruokite naudodami žinomą nuorodą.
Dažnos klaidos
- Nepatikrinamas mėginių ėmimo dažnis iš šaltinio. Neteisingas fs perkelia visus dažnius.
- Pažeidžia Nyquist ir nepastebi slapyvardžio. Ant įtartinų kalvų pirmiausia suabejokite mėginių ėmimo tinkamumu.
- FFT langų praleidimas. Spektrinis nuotėkis atrodo kaip tikras piko taškas.
- Pamiršus amplitudės normalizavimą. Amplitudės lieka nesuskaičiuotos pagal fizinę vertę.
- Neteisingai normalizuojamas filtro išjungimo dažnis į fs. Filtras pjauna kitoje vietoje, nei tikėtasi.
Apibendrinant
Šiame skyriuje AI nustatėte kaip galingą pagalbą mokantis signalų apdorojimo koncepcijų, rašant FFT ir filtro kodą bei kuriant analizę. Tačiau apdorojant signalą rezultatai gali būti tyliai iškraipomi: neteisingas diskretizavimo dažnis, praleistas langas, trukdantis garsumas arba normalizavimo trūkumas daro grafiką gražią, bet netikslią. Taigi patikrinkite kiekvieną AI sukurtą kodą pagal žinomą atskaitos signalą, patikrinkite šaltinio atrankos dažnį ir patikrinkite kiekvieno rezultato vienetą ir fizinį patikimumą. Kiekvienos analizės pradžioje patikrinkite Nyquist ir slapyvardžio sąvoką.
Taikymo užduotis
Sukurkite sintetinį bandomąjį signalą Python: dviejų žinomų dažnių suma (pvz., 1 kHz ir 3 kHz), fs=10 kHz. Prašykite analizės kodo iš AI naudodami „FFT sąrankos“ šabloną ir patikrinkite, ar smailės rodomos tinkamais dažniais. Tada sąmoningai neteisingai įveskite fs (pvz., 8 kHz) ir stebėkite, kaip pasislenka smailės. Galiausiai nuimkite langą ir pamatysite spektrinį nuotėkį. Kiekvieno eksperimento rezultatus surašykite vienu sakiniu.
kontrolinis sąrašas
- [ ] Patikrinau atrankos dažnį (fs) pagal faktinį įrašymo įrenginio nustatymą.
- [ ] Patikrinau Nyquist kriterijų ir įvertinau slapyvardžio riziką.
- [ ] Patikrinau, ar FFT kode įdiegtas langų keitimas ir amplitudės korekcija.
- [ ] Išbandžiau kodą žinomo dažnio atskaitos signalu.
- [ ] Vizualiu atsakymu patikrinau, ar filtro ribinis dažnis buvo teisingai normalizuotas į fs.
- [ ] Padariau nuoseklius visus vienetus (Hz/kHz, V/mV).