Forum » Programiranje » FFT transformacija EEG signalov v Matlab
FFT transformacija EEG signalov v Matlab
scarymovie ::
Pozdravljeni,
ukvarjam se z analizo EEG signalov (delta(4Hz), theta(4-8Hz), alfa(8-13Hz) in beta(13-30Hz)). Zanimajo me predvsem alfa in theta valovi. Prvič se soočam s procesiranjem signalov ter z Matlabom. Eeg podatki so zapisani v strukturi EEG.data (predvidevam da so to vzorci). Te podatke mi je skupaj z časi uspelo izrisati (primer: ). Da pa najdem (intenziteto) posameznih frekvenčnih valov pa bo potrebno spremeniti iz časovnega v frekvenčno območje. Uporabil sem fourierjevo transformacijo (FFT), se mi pa tu pojavlja nekaj vprašanj. Na spletu sem prebrskal in našel nekaj primerov kako bi v matlabu uporabil FFT. Preizkusil sem ta del kode:
Če uporabi to kodo dobim res signale v frekvenčenem prostoru, ampak nemorem zagotoviti če so pravilni. Ne razumem natančno kaj predstavljajo spremenljivke nfft, df, f. Prosil bi, če ima kdo izkušnje s tem, da mi malo razloži FFT ter kako pravilno vnesti podatke, na kaj biti pozoren.
Hvala!
ukvarjam se z analizo EEG signalov (delta(4Hz), theta(4-8Hz), alfa(8-13Hz) in beta(13-30Hz)). Zanimajo me predvsem alfa in theta valovi. Prvič se soočam s procesiranjem signalov ter z Matlabom. Eeg podatki so zapisani v strukturi EEG.data (predvidevam da so to vzorci). Te podatke mi je skupaj z časi uspelo izrisati (primer: ). Da pa najdem (intenziteto) posameznih frekvenčnih valov pa bo potrebno spremeniti iz časovnega v frekvenčno območje. Uporabil sem fourierjevo transformacijo (FFT), se mi pa tu pojavlja nekaj vprašanj. Na spletu sem prebrskal in našel nekaj primerov kako bi v matlabu uporabil FFT. Preizkusil sem ta del kode:
fs=128; nfft=2^(nextpow2(length(eeg_podatki))); df=fs/nfft; f=0:df:fs/2; X=fft(eeg_podatki, nfft); X=X(1:nfft/2+1); plot(f, abs(X));
Če uporabi to kodo dobim res signale v frekvenčenem prostoru, ampak nemorem zagotoviti če so pravilni. Ne razumem natančno kaj predstavljajo spremenljivke nfft, df, f. Prosil bi, če ima kdo izkušnje s tem, da mi malo razloži FFT ter kako pravilno vnesti podatke, na kaj biti pozoren.
Hvala!
- spremenilo: scarymovie ()
galu ::
fs ... frekvenca vzorčenja
nfft ... št. vzorcev
df ... frekvenčna ločjivost (google) oz.
f ... vektor frekvenc do Fs/2 (dalje je itak prezrcaljeno), za katere dobiš boš dobil rezultat
X ... rezultat FFT, ki se poreže do sredine (dalje je itak prezrcaljeno)
se računa zato, ker je FFT na vzorcih dolžine 2^n hitrejši (google) - ali docs. Lahko bi uporabil fft() brez drugega argumenta, ampak potem popravi nfft na dejansko dolžino eeg_podatki.
Disclaimer: ne uporabljam Matlaba in nisem na tekočem z njegovo sintakso.
P.S. paziti moraš na to, da je nastavljena frekvenca vzorčenja v matlabu enaka dejanski.
nfft ... št. vzorcev
df ... frekvenčna ločjivost (google) oz.
f ... vektor frekvenc do Fs/2 (dalje je itak prezrcaljeno), za katere dobiš boš dobil rezultat
X ... rezultat FFT, ki se poreže do sredine (dalje je itak prezrcaljeno)
nfft=2^(nextpow2(length(eeg_podatki)));
se računa zato, ker je FFT na vzorcih dolžine 2^n hitrejši (google) - ali docs. Lahko bi uporabil fft() brez drugega argumenta, ampak potem popravi nfft na dejansko dolžino eeg_podatki.
Disclaimer: ne uporabljam Matlaba in nisem na tekočem z njegovo sintakso.
P.S. paziti moraš na to, da je nastavljena frekvenca vzorčenja v matlabu enaka dejanski.
Tako to gre.
Zgodovina sprememb…
- spremenil: galu ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Analiza kode: goto rabimo po pametiOddelek: Novice / Znanost in tehnologija | 13799 (10359) | one too many |
» | Fourierjeva vrsta, fourierjeva transformacijaOddelek: Šola | 6930 (3716) | marjan_h |
» | Kje iz te slike lahko razberem frekvenco?Oddelek: Zvok in slika | 951 (818) | c0dehunter |
» | spektralni analizatorOddelek: Elektrotehnika in elektronika | 3427 (2478) | elektro87 |
» | [Matlab] Fouriereva transformacija in analiza odzivov procesaOddelek: Programiranje | 2822 (2647) | nosk8fx |