Nazaj   Siol.net forumi > Aktualno > Znanost in okolje

Znanost in okolje za vse naravoslovne navdušence

 
 
Orodja za teme
  #1  
Staro 10.03.2007, 10:00
shem_me_zion Uporabnik shem_me_zion ni prijavljen
Pripravnik
Član od: Dec 2005
Naslov: anytown usa
Sporočila: 157
Privzeto Hi pass

Mi lahko nekdo napise v kateremkoli jeziku algoritem za high pass filter (rad bi se resil frekvenc 0.5-0.01 Hz; zahtevam nic(!!!) popacenja. Signal ima standardno vzorcno frekvenco)? Ce imas algoritem v Matlab, ti dolgujem vecerjo na Bizeljskem, polek dogovorjenega placila.
__________________
החוג-על-השמש
  #2  
Staro 12.03.2007, 14:03
mrjerry Uporabnik mrjerry ni prijavljen
Pacijent
Prikazne slike uporabnika/ce mrjerry
Član od: Aug 2003
Sporočila: 28.321
Privzeto Re: Hi pass

Filtrov brez popacenja v praksi ni. Obicajno se uporablja Butterworthov filter dovolj visokega reda (tam nekje okrog 10). Ce imas Matlab Signal Processing Toolbox, gre zadeva takole:

1. Potrebujes signal x (to imas).
2. Definiras koeficiente visokopasovnega Butterworthovega filtra: [B A] = butter(N,Wn,'high')
Pri tem je N red filtra, Wn pa relativna mejna (cut-off) frekvenca, ki je enaka kvocientu zelene mejne frekvence in Nyquistove frekvence (polovica frekvenca vzorcenja)
3. Uporabis obojestransko filtriranje z ukazom filtfilt(). y=filtfilt(B,A,x)

Karakteristike filtra si lahko ogledas s pomocjo GUIjev toolboxa.

Mimogrede... Butterworthov filter je IIR filter.
__________________
Uporabi obe roki. (by Smaug)
  #3  
Staro 12.03.2007, 14:19
mrjerry Uporabnik mrjerry ni prijavljen
Pacijent
Prikazne slike uporabnika/ce mrjerry
Član od: Aug 2003
Sporočila: 28.321
Privzeto Re: Hi pass

Aja se to... Karakteristiko filtra lahko vidis z ukazom fvtool(B,A) . Butterworth dovolj dobro deluje pri relativni mejni frekvenci nekje od 0.015 naprej (visokopasovni filter).

Zelo nizke frekvence lahko odstranis tudi z ukazom detrend, oziroma z odstevanjem srednjih vrednosti odsekov (nekoliko grob poseg, pa vendar). Poleg tega je pomembna tudi tvoja frekvenca locljivost. Ce frekvencna locljivost tvojega signala presega frekvence, ki jih zelis odrezati, potem se moras sprijazniti z dejstvom, da to pac ni mozno.

Ne vem, koliksna je tvoja frekvenca vzorcenja... Ce je 44100Hz, potem moras za frekvencno locljivost 0.01Hz signal vzorciti vsaj 100 sekund.
__________________
Uporabi obe roki. (by Smaug)
 

Značke
pass

Orodja za teme

Dovoljenja
Novih tem ne moreš odpirati
Odgovorov ne moreš objavljati
Priponk ne moreš dodajati
Svjoih objav ne moreš urejati

BB koda je Vključeno
Smeški - Vključeno
[IMG] koda je Vključeno
HTML koda je Izključeno
Hitra izbira


Časovni pas: GMT +1. Trenutno je ura: 18:47.