|
|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2024 04 23, 23:08. Visos datos yra GMT + 2 valandos.
|
|
|
|
Forumas » Skaitmeninė elektronika » Furjė skaičiavimai spektro analizavimui
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
Puslapis 1 iš 2 Pereiti prie 1, 2 Toliau |
|
|
|
Furjė skaičiavimai spektro analizavimui |
Parašytas: 2006 09 08, 20:00 |
|
|
|
Reikia grafiškai atvaizduoti signalo spektrą.. Pasigūglinau, radau, kad tam naudojama Furjė (Fourier) transformacija. Pasiskaitinėjau wikipediją ir dar kelis straipsniukus, radau visokių formulyčių.. Pvz.:
Ir dar daug panašių.. Kiek mačiau, visur naudojami kompleksiniai skaičiai. Kiek skaičiau, niekaip neįsikirtau kaip visa tai vyksta. Kiek supratau, tai sugeneruojamas "idealus" tiriamo dažnio ir formos signalo periodas, tarkim 512 taškų. Tada paimamas tokio paties ilgio tiriamo signalo gabaliukas, sudauginami šių abiejų signalų taškai ir apskaičiuojama tų sandaugų suma.
Deja kas toliau ar prieš tai vyksta neišsiaiškinau. Dar skaičiau, kad reikia apversti kiekvienos reikšmės bitus.
Gal kam teko su tuo susidurti? Gal galėtumėte smulkiau nupasakoti? Bent patį principą, toliau jau pats kapanosiuos. |
|
|
|
|
|
|
Furjė skaičiavimai spektro analizavimui |
Parašytas: 2006 09 08, 21:44 |
|
|
|
na furje transformacijos principas tai ishskaidyti kazkokia tai funkcija i sinuso (kosinuso) funkciju suma. jei isivaizduoji kazkoki signala (analogini)
tai jis sudarytas ish kruvos skirtingo daznio sinusoidziu sumos.
tai va spektras parodo statistishkai kurio daznio sinusoides yra naudojamos ir kiek stipriai .. jei taip galima ishsireiksti.
dabar del skaitmeninio signalo tai jis visada teigiamas... todel manau kad pagal ta signala galima sudaryt fukcija naudojant b-splainus
o beto skaitmenineje elektronikoje reiktu naudoti skaitmenine furje transformacija t.t DFT (digital furje transformation) |
|
|
|
|
|
|
Furjė skaičiavimai spektro analizavimui |
Parašytas: 2006 09 08, 22:03 |
|
|
|
Is kart siulau ieskoti informacijos apie greitaja Furje transformacija (FFT - Fast Fourier Transformation). DFT butu nelabai geras pasirinkimas del skaiciavimu spartos.
Siaip nemazai teko su tuo susidurti univere ir dar daugiau savo praktikoj, todel pasistengsiu kiek padeti. Kai atgausiu savo toplapa, tai ir knyga galesiu atsiusti apie skaitmeniniu signalu apdorojima (anglu kalba, nes lietuviskas vertimas kazkur dinges).
Tik kol kas sorry, neturiu laiko plestis, nes ne prie savo kompo sia savaite vis prisedu...
P.S. galetum apsviesti, kiek sioj srityje nusimanai, kad isivaizduociau, nuo kurios vietos pradet kazka aiskint. |
|
|
|
|
|
|
Furjė skaičiavimai spektro analizavimui |
Parašytas: 2006 09 08, 22:50 |
|
|
|
Kriptas, tai jo, žinau, kad belekoks signalas sudarytas iš visokių sinusoidžių sumos, tik kol kas neįsivaizduoju kaip rasti kokios tos sinusoidės Ir taip pat žinau, kas tas spektras ie ką jis parodo.
Pasigūglinęs radau pakankamai ilgą ir nuobodų straipsnį apie tas visas transformacijas: http://ccrma.stanford.edu/~jos/mdft/
Tik čia kad viską įsisavinti, reikia turbūt bent savaitę laiko sėdėt..
Šiaip, anksčiau mano pateikta formulė beveik aiški, tik neįsivaizduoju ką daryti su tais kompleksiniais skaičiais laipsnio rodiklyje.
Žmonės sako, kad tą e^x reikia išsiskleisti eilute (jau mokėmės to, net egzaminas buvo, bet po savaitės viską užmiršau), bet..
Taip pat nesuprantu kam čia yra n ir k kintamieji - juk sumuojama, kai n=0..N-1, o tas k irgi imamas 0..N-1 ribose
Kaip suprantu, čia N - signalo frakmento semplų skaičius, n - semplo numeris. O kas tas k ?
Šiaip, čia pirmas mano susidūrimas su tokiais dalykais, tai nelabai ką tegaliu pasakyti |
|
|
|
|
|
|
Furjė skaičiavimai spektro analizavimui |
Parašytas: 2006 09 09, 03:09 |
|
|
|
apie tai siek tiek mokiausi universitete, bet nieko supramtamo nepaaiskino.
Is esmes viskas gana paprasta
jei sudauguinsime du vienodu daznumu signalus tai isejime gausime nuolatine itampa. taip veikia sinchroninis detektorius. isejimo itampa priklausys nuo fazes. jei jos sutampa tai bus maksimali itampa, jei 90laipsniu tai nuline.
visa tai ir darome FFT algoritme.
arba analogineje elektronikoje ta dalyka atitinka sinchroninis detektorius
arba "double balanced mixer"
jei daznumai nesutampa gauname kintama itampa. kurios vidutine reiksme per ilgesni laika lygi nuliui.
kaip fft atleikamas turbut visi zino.
padauginame signala is sinuso, paskui padauginame is kosinuso, ir tada juos sumuojame.
jei tesingai atsimenu viskas iseina pagal formule
sin(x)^2+cos(x)^2=1 kur siuo atveju tas vienetas tai signalo lygis. |
|
|
|
|
|
|
Furjė skaičiavimai spektro analizavimui |
Parašytas: 2006 09 09, 14:04 |
|
|
|
Na, Digix tu cia kazkaip sudetingai aiskini (bent jau as nelabai supratau).
Blaster, dar nepasakei, kur ta naudosi. Jei kompe, tai problemu nera (yra daug paruostu moduliu ivairioms programavimo kalboms). Jei nori visa ta sugrust i kontroleri, tai gali tekt ir pavargti (nors manau irgi galima butu rasti paruostu kodo gabalu).
Kita variantas, jei nori pats sita ismokti ir savo rankom padaryti.
Pasakyk, kur tau butu geriau atsiust knyga (~13MB) ar tik skyriu apie FFT (~130KB). Ten rasi ir paaiskinimu ir kodo pavyzdziu (FORTRAN ar BASIC).
Is esmes, tai FFT duoda kompleksini spektra ir jame realioji bei menamoji dalys yra atskiruose masyvuose. Kad atvaizduot amplitudziu spektra, uztenka apskaiciuot realios ir menamosios daliu sakni is kvadratu sumos.
Kad butu aiskiau:
An - musu analizuojamas masyvas.
Rm ir Im - realioji (Real) ir menamoji (Imaginary) dalys gautos po FFT
pastaba: R ir I masyvai yra dvigubai mazesni uz A masyva.
Tada tiesiog
for m = 1 to M .............//cia M - masyvo dydis
Sm = Sqrt(Rm^2 + Im^2)
Va ta Sm masyva ir atvaizduoji. Gali saknies net netraukti, tik tada gausi ne amplitudziu, o galios spektra.
Jei reikia, kiekvieno tasko vaiduojama dazni apsiskaiciuoji pagal tavo turima diskretizacijos dazni, t.y. fm = F/2*M/m, cia F - diskretizacijos daznis (sample rate).
P.S. Is tikro spektra mes gauname ir su neigiamais dazniais (masyvai tokio pat dydzio kaip ir analizuojamas masyvas), bet daugeliu atveju mes juos tiesiog ignoruojame del simetrijos. Kazka konkretesnio butu galima pasakyt, jei zinociau konkretu uzdavini (kur bus naudojama).
P.P.S. Cia rasiau daugiau is atminties, tai gali but ir siokiu tokiu netikslumu... Bet esme tai ta pati. |
|
|
|
|
|
|
Furjė skaičiavimai spektro analizavimui |
Parašytas: 2006 09 09, 14:38 |
|
|
|
Aš tai bandysiu paleisti su µC, tik bėda ta, kad noriu tai pasidaryti pats, t.y. reikia suprasti.
Viską ką turi gali mesti į:
ftp://home.circuit.lt/ Turi leisti prisijungt anonimiškai, mesk į !upload.
Jei bus noro ką nors downloadint, junkis su šiais duomenim (nes anonimams ribojimas iki 20kB/s):
user: guest
pass: circuitlt
Va aš nesuprantu paties FFT algoritmo, iš kur ten tie kompleksiniai skaičiai atsiranda? Kas tas neigiamas dažnis?
Radau aš ir pavyzdį ARM mikrovaldikliui: http://www.jandspromotions.com/philips2005/Winners/Abstracts/AR1731_abstract.pdf
Ir čia biškis teorijos: http://cnx.org/content/m12032/latest/
Ten kalbama apie kvadratinį, Hanning ir Hamming langus, pateikiami spektro skirtumai. Tik kažkaip nerandu tos formulės išreiškimo į tokią, kurią jau galima būtų apskaičiuoti |
|
|
|
|
|
|
Furjė skaičiavimai spektro analizavimui |
Parašytas: 2006 09 09, 16:07 |
|
|
|
Aidai,
mano paaiskinimas, manau nera sudetingas. ir kompleksiniai skaiciai ten nereikalingi.
kaip sakiau tiesiog reikia imituoti sincronini detektoriu programiniu budu.
o jei del algoritmu tai koks milionas puslapiu per gogle bus apie tai.
ir visa esme ten kaip supaprastinti kad gauti didziausia greiti.
o jei primityviai imant tai algoritmas toks
i=i+sqrt*(a[x]*sin(x*z)+a[x]*cos(x*z))
cia a[] tavo irasyto signalo masyvas, x tasko numeris ir z skaicius toks kad x*z butu 360laipniu arba atitinkamai radianu kai x atitinka pilna perioda. |
|
|
|
|
|
|
Furjė skaičiavimai spektro analizavimui |
Parašytas: 2006 09 09, 17:27 |
|
|
|
Apie langus tiesiog pamirsau pamineti. Nors jie daugiau reikalingi spektro isgryninimui. Manau jog tau pilnai uztektu ir kokio paprasto (pvz trapecinio) ar is vis staciakampio (tik tada daugiau problemu auksto daznio srityje).
Juk nereikia tau ten ypatingo tikslumo.
O dabar truputi pasigilinau i Digix pasisakymus ir pagaliau supratau apie ka tu . Cia juk paprasciausia koreliacija su bazinem (siu atveju harmoninem) funkcija. Tik uzmirsai sumos narius pakelt kvadratu. Kitas dalykas dar yra tai, jog reikia gauta skaiciu padalinti is atitinkamos konstantos, kad gautum tikra verte. Ta konstanta priklauso nuo masyvo dydzio.
Deja sis variantas yra vienas leciausiu.
Pastarojo algoritmo atlikimo laikas yra proporcingas N^2 (N-masyvo dydis), kai tuo tarpu FFT atlikimo laikas yra proporcinas N*log2N. Bet to FFT proporcingumo konstanta yra mazesne.
Kol analizuojamu tasku nedaug, tai viskas OK, bet kai tasku daug, tai stipriai pasijaucia.
Kontroleryje siulau daryt lenteles, kad nereiketu kiekviena karta skaiciuot lango ar sinuso...
P.S. prie ftp prisijungti nepavyko nei per exploder'i nei per WinCommander'i... |
|
|
|
|
|
|
Furjė skaičiavimai spektro analizavimui |
Parašytas: 2006 09 09, 19:35 |
|
|
|
nu as neparasiau tikslios formules, tik kazka apytiksliai.
tikra verte dazniausia nereikalinga, vistiek viska tenka normalizuoti, nes paprastai svarbu harmoniku santykis.
o siaip tai reiketu dalinti is masyvo dydzio. cia mes skaicuojame vidutine reiksme.
kvadratu atrodo kelti nereikia, nes tai jau savaime atlikta.(bet cia negarantuoju)
ir siaip cia pats primityviausas budas, kurio esu isitikines kad niekas nenaudos. cia tik bandziau paaiskinti pati principa.
kad reikia sudauginti su signalus. |
|
|
|
|
|
|
Furjė skaičiavimai spektro analizavimui |
Parašytas: 2006 09 10, 00:22 |
|
|
|
Hm, pamėginkim dabar viską apibendrinti ir išsivesti galutinę spektro masyvo skaičiavimo formulę. Aš būčiau linkęs su µC neskaičiuoti trigonometrinių funkcijų, nes tam reikia išsireiškinėti eilutes, sukti daug ciklų ir panašiai. Dėl to labai tiktų gatavos lentelės.
Va radau truputį vaikiškiau (suprantamiau) paaiškintą principą: http://rnowik.com/document/7/
Aidai, pamėgink dar prisijungti, gal užtaikei ant to momento, kai servas buvo tvarkomas.. |
|
|
|
|
|
|
Furjė skaičiavimai spektro analizavimui |
Parašytas: 2006 09 10, 01:00 |
|
|
|
Žodžiu, pasiskaitinėjau tą linką ir supratau, kad:
Norint sužinoti kiek konkrečiai to dažnio yra signale, reikia jo funkciją dauginti iš signalo ir po to visas sandaugas suvidurkinti/sudėti. Tokiu būdu, jei dažniai atitinka, gaunamas teigiamas skaičius, o jei neatitinka, gaunamas skaičius atrimas nuliui.
Šis metodas tinka tik tuo atveju, kai signalo ir funkcijos fazės atitinka. O jei jos neatitinka, reikia kompleksinių skaičių, apie kuriuos skaitau toliau
Na, bent išsiaiškinau kam tie kompleksiniai skaičiai... |
|
|
|
|
|
|
Furjė skaičiavimai spektro analizavimui |
Parašytas: 2006 09 10, 01:43 |
|
|
|
Jau su-upload'inau. Ten rasi SSA (skaitmeniniu signalu apdorojimo) teorija.
Jei nenori skaiciuot sinusu ir vaizduosi tarkim 32 stulpeliu, verta pasidaryt 64 lenteles, kuriu dydziai po 32 elementus. Tada tereikes isrinkta signalo gabaliuka sudauginti su lenteles elementais, sudet kvadratus ir vaizduot stulpeliu auksciais. Beje, lenteleje butu ne tik sinuso funkcija, bet kartu ir reikiamas langas.
Deja, kol kas su tiek mazai tasku neesu dirbes, todel negaliu garantuot, jog taip paprastai pavyks. Pabandysiu rytoj paeksperimentuot sitoje srityje. O kol kas paziurinek ta knyga, kuria atsiunciau. Ten parasyta gana linksmu stiliumi, todel ne itin sunkiai skaitoma. Bet kokiu atveju, jei nori suprasti ir isigilinti, tai bent savaite uztruksi... |
|
|
|
|
|
|
Furjė skaičiavimai spektro analizavimui |
Parašytas: 2006 09 10, 04:50 |
|
|
|
o kokia problema su sinusais ir kosinusais?
tai tiesiog masyvai, arba kitaip sakant lentele
sin[x] ={1,2,3,4,5....}
ir viskas
del kompleksiniu skaiciu tai vel tik kvailas ismislas, kad baisiau atrodytu.
tissiog reikia sin ir cos amplitudes pagal piatgoro teorema sudeti. |
|
|
|
|
|
|
Furjė skaičiavimai spektro analizavimui |
Parašytas: 2006 09 10, 23:54 |
|
|
|
OK, kažkas man čia neaišku. Bandau modeliuotis su exeliu.. Tarkim bandau apskaičiuoti kiek yra vieno konkretaus dažnio sinusoidės kažkokiame signale.
Exelio failiuką rasire čia: ftp://guest@home.circuit.lt/misc/fourier.xls (pass: circuitlt)
Ten du lapai, pirmame grafikai, o antrame skaičiavimai.
Ten kaip pavyzdį susikuriu signalą, kuris sudarytas iš dviejų funkcijų - sinuso ir kosinuso. Šių funkcijų amplitudės, fazės ir "dažniai" skiriasi. Jei žiūrėti į žemiau esančias eilutes, tai sinusą atitinka 'k1', o kosinusą - 'k16'. Tai tarsi dažniai.
Ir štai kas gaunasi: kol neliečiu signalo dedamųjų (sinuso ir kosinuso) fazių, tol matome gražų spektrą. Vos juos paliečiu - spektras kaip mat nusigrybauja.
Kas blogai? |
|
|
|
|
|
|
Google paieška forume |
|
|
Naujos temos forume |
|
|
FS 22 Tractors
Farming Simulator 19 Mods,
FS 22 Maps,
FS22 Mods |
|
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
|
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS22 Trucks |
|
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
|
Paskola internetu
Vartojimo paskola,
paskola automobiliui,
paskola būsto remontui |
|
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope |
|
FS22 Mods
FS22 Harvesters,
FS22 Tractors Mods,
FS22 Maps Mods |
|
FS22 Mods
FS22 Maps,
FS22 Harvesters,
FS22 Tractors |
|
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
|
Sims 4 Mods
Sims 4 CC Clothes,
Sims 4 Hair CC,
Sims 4 Skill Cheat |
|
Optic sight
Binoculars for hunting elk,
Best compact binoculars,
Riflescope hunting |
|
|
|