Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Da ne otvaram novu temu, par pitanja...
(11-13-2017, 01:39 PM)mikikg Wrote: Sto se tice filtriranja ulaza (LPF), to je uvek pozeljno prvo uraditi na HW nivou i ograniciti bandwith konvertera pa tek onda preci u SW domen gde mozes da radis dodatni averaging/oversampling ili neko drugo naprednije DSP filtriranje ali HW filter je prakticno obavezan.

Filter takodje sprecava aliasing ili preslikavanje (anti-alias filter), vrlo nezgodan problem, dobije se potpuno ista sliku u frekvetnom domenu ali to nije sa te osnovne ocustanosti nego sa 2,3,x puta vece frekvencije i sto je jos losije prelika se sa gornjeg opsega slika u donji koji se prati i vise ne mozes da razluci sta je tu "original" a sto "kopija", jednom kada uleti preslikan spektar u nas BW od interesa ne mozes da se ponovo ocisti i nepovratno se pokvari signal koji se uzorkuje tj definisan BW koji se uzokuje.

Ovu temu je Braca imao na predavanju na KG skupu, prosao je skoro celu problematiku A/D konverzije, pogledajte obavezno snimak ako niste.

Zato nam je u interesu da imamo sto "strmiji" filter u analognom domenu sto sad opet povlaci svoje probleme jer to nije lako prakticno ostvariti za filtere veceg reda da budu dovoljno "flat" i dovoljno strmi i dovoljno temperaturno stabilni Smile
Kad te probleme oko filtera stavis pod jednu kapu onda se zavrsi na integrisanim ziratorima i digitalnim RF front-end-ovima koji to sada vec rade opasno dobro, pogledaj te RTL-SDR stikove, zavirite u sliku IC pelete tjunera ... !
Reply
Miki,

nije stvar bas toliko strasna koliko si predtavio.
Kao hardverski anti-aliasing filtar, u 99,9% aplikacija se koristi filtar 2. reda. Inace, red red filtra zavisi od potrebnih specifikacija filtra, koje se definisu prema signalu koji se digitalizuje. Ukoliko je potrebno dodatno filtriranje, ono se uglavnom radi softverski i to uglavnom IIR filtar.
Strmiji filter ne znaci da je bolja karakteristika. Kod strmijih filtara, sistema viseg reda, moze da se javi problem stabilnosti, tako da je najbolje prvo definisati gabarite filtra i onda na osnovu gabarita odrediti zeljeni red filtra.
Sum o kom ti pricas je kvantizacioni sum i on ima gausovu karakteristiku, tj. srednja vrednost mu je jednaka nuli. Tada usrednjavanje sluzi da bi se eliminisao sum. Inace, veci problem je sum koji se superponira sa korisnim signalom. Taj sum moze da ima bilo koju raspodelu, tako da onda moraju da se primene stohasticke metode.
Takodje je negde spomenut i ditering. To je tehnika pomocu koje se namerno ubaci sum u koristan signal da bi se izvrsila AD konverzija. Te metode su poznate kao stohasticke adicione AD konverzije.
Reply
Ja sam se malo tu osvrnuo i na RF gde filteri nisu bas tako naivni i uglavnom su bar 5. ili veceg reda, tu ulete nano/mikrovolti "odozgore" i totalno ti zabrljave signal koji u tom trenutku demodulises a sve se desava na nakeih u proseku -40dB gde je to jos i jak signal, ide se na ispod -100dB! Ne moze nista da se odsece "ziletom" nesto mora da procuri, a to je sad sve stvar tehnickih zahteva i u vecini slucajeva kompromisa.
Reply
Takodje Ubledeli je spomenuo 48kHz sampling rate, znaci "planira" bar 20kHz bandwith, sa kojim nivoom ce da se preslika nesto sa 30, 40, 50, 100 kHz u taj bandwith a pri tome pricamo o 72dB konverteru (12bit nativne rezolucije), nisu to malo vrednosti, utice to itekako i trebaju tu uglavnom dobri filteri.

Kada pricamo samo o DC merenju tu je druga i potpuno jednostavnija situcija, filteri nisu toliko kriticni.
Reply
Kao prvo, mora da ima HW anti-aliasing filtar. Red tog filtra zavisi iskljucivo od njegove potrebe, tj. mora da definise maksimalno dozvoljeno slabljenje u nepropusnom opsegu. Preslikavanja ce uvek biti, samo je pitanje koliko je njemu dozvoljeno preslikavanje. Ne znam koji stm koristi, ali F4 serija ima i DSP instrukcije. Upotrebom MACC instrukcije moze jednostavno da implementira IIR filtar.
Uglavnom, priroda signala definise sve potrebne zahteve za projektovanje filtara.
Reply
Treba da dodaš neko kašnjenje između

Code:
aout.write(f);

i

Code:
ain.read()

Na brzinu sam video da je settling time za STM32 negde oko 3-6us i gotovo je sigurno da ga nisi ispoštovao. Izgleda da meriš pre nego što je DAC postavio svoj izlaz. To samo za test koji si sproveo sa DAC/ADC.
Za nešto ozbiljnije naravno, treba drugačije.
Reply
mcu je stm32 f446re koji ima fpu bas da ja ne bi lomio glavu sa integerima nepotrebno
u dsp biblioteci postoje gotovi fir i iir filteri, pa cu probati i njih.
http://www.keil.com/pack/doc/CMSIS/DSP/html/index.html
stavicu za pocetak hardverski filter prvog reda, mozda i nesto nize frekvencije
posto mi nije bas ni nuzno da imam do 20 kHz

dma cu probati ali ne postoji neki high level api, jedino da prckam dublje, sto zasad izbegavam

pitanje: koliko je precizna wait funkcija za mala vremena reda mikrosekunde?
Reply
Tebi ne treba wait funkcija. To se sve radi preko interapta. Prvo, moras da definises koja ti je frekvencija semplovanja. Ako je 44,1kHz, onda uzmes neki tmr i definises interapt na svakih 22,6us. Kada se generise interapt trigerujes AD konverziju. Zavrsetak AD konverzije generise svoj interapt i tada saljes na D/A konvertor.
Reply
(11-13-2017, 08:18 PM)vojinilic Wrote: Kao prvo, mora da ima HW anti-aliasing filtar. Red tog filtra zavisi iskljucivo od njegove potrebe, tj. mora da definise maksimalno dozvoljeno slabljenje u nepropusnom opsegu. Preslikavanja ce uvek biti, samo je pitanje koliko je njemu dozvoljeno preslikavanje. Ne znam koji stm koristi, ali F4 serija ima i DSP instrukcije. Upotrebom MACC instrukcije moze jednostavno da implementira IIR filtar.
Uglavnom, priroda signala definise sve potrebne zahteve za projektovanje filtara.

Ovde je zanimljivo da se nama u sustini "isplati" raditi mnogo brzu konverziju uzorkovanja (ako je moguce) i to tako sto se analogni LPF filter podesi na x5 ili x10 vecu ucestanost od one koje nas interesuje jer na tako visokoj frekvenciji filter ima dovoljno dobru atenuaciju i lakse je napraviti takav filter, pri tome smo sigurni da BW od interesa je daleko od granicne frekvencije i filtera i A/D konvertera i tu se onda radi DSP gde mozes da se stvarno skoro "ziletom" odsece neko parce propusnog opsega koje nas interesuje uz pomoc FIR ili IIR digitalnih filtera.
Reply
Jedan zanimljiv primer sta bi sve mogao da "vidi" taj A/D konverter od STM32F446RET6, bukvalno isto kao sa ove slike.
Tu se primecuje jedno 100 razlicitih radio signala i to ovi u levom delu su svi sa po 10kHz bandwith-a (AM broadcasting), u desnom delu ove "linice" su sve signali nekih stanica ali sa BW koji se meri u par desetina Hz, cuuuudo informacija, ne mozes da se preslusa sta sve ima ...
Mora malo da se prvo razmisli sta ces sa tim signalima i informacijama da radis, hoces da meris DC napon ili RMS vrednost ili ces da radis nesto drugo? Smile

[Image: attachment.php?aid=25092]


Attached Files Thumbnail(s)

Reply
Jedno pitanje vezano za akviziciju i prenos podataka. Da li je neko radio akviziciju preko WiFi-a? Kokretno, da li mogu da radim akviziciju 32 kanala frekvencijom semplovanja 16kHz i u real-time-u podatke da saljem PC-u ili mobilnom telefonu i prikazujem? Kakva bi uopste konekcija tu bila? Da li moj uredjaj mora da se kaci na neku mrezu ili moze uvek PC ili tel da se nakaci na moj uredjaj i da pokrene akciziciju?
Reply
Prvo treba proracunati grubu procenu trazenog trafick-a, dakle 16kHz po kanalu gde su ti najverovatnije uzorci 16bit duzine (10bit ili 12bit naravno spada pod 16bit, tesko to moze da se spakuje drugacije) sto dovodi do 256kbit/s po kanalu, to puta 32 kanala i dolazimo do nekih 8Mbit/s RAW traficka.
Tu ce morati jos da se odvoje neki resursi za sinhronizacione karaktere ili neke dodatne karaktere u okviru naseg protokola, izacice to na nekih 10-ak Mbit/s, ni malo naivna kolicina podataka.

To sve moze da se pokrene preko TCP ili UDP ili mozda kombinacija oba protokola (slicno kao FTP protokol), TCP se koristi za kontrolne pakete dok se UDP koristi za RAW prenos.

Zavisno od WiFi modula, moze da se radi u AP ili client modu, jednom kada se uspostavi konekcija onda se otvara Socket konekcija i to je tehnicki end-point komunikacije.
Raspakovati te podatke ili ih dalje procesirati zna da bude problem, posebno na telefonu, pojesce to mnooogo resursa i za ovakve stvari ne moze da se racuna na nikakvu HW akceleleraciju od strane CPU (da je MJPEG ili neki drugi Codec to bi i moglo da prodje) i to sve da pod uslovom da je WiFi konekcija "sa 5 crtica" tj da je signal dovoljno jak da se koristi maksimum od 54Mbit/s raspolozivog trafick-a.
Reply
Ja sam logovao temperaturu a to je mnooogo daleko od tvojih zahteva Smile  tako da nisam baš siguran. Teoretski treba da može..
Moj WiFi modul je u STA (station) modu i vezuje se na AP (AccessPoint). Dodelio sam mu fiksnu IP adresu i mogu da mu pristupim iz cele mreže.
Na njemu je podignut Web server kome se pristupa sa bilo kog uređaja koji ima WiFI.
Tebi takva konfiguracija ne odgovara, već zbog količine podataka i brzine uzorkovanja, treba da ideš na direktnu vezu između logger-a i PC, telefona, tableta...
Ja sam radio sa ESP8266 koji ne podržava WiFi-direct opciju (to je P2P konekcija pa je za tvoju aplikaciju bolje rešenje) ali njegov stariji brat ESP32 podržava. Ovo nisam probao samo sam nailazio na informacije o tome.
ESP32 možeš da poručiš tu kod nas preko Vitaelko i to kao modul pod nazivom ESP32WROOM.
Spominjem ti ova dva modula od Esspressif jer su dosta rašireni po DIY zajednici pa ima informacija. Imam i CC3200 WiFi razvojni sistem od TI ali sa njim imam manje iskustva.
Reply
Možeš raditi više varijanti, PC direktno da se zakači na tvoj uređaj (AP mod), da uređaj zakačiš na neki externi WiFi AP (Station mod) pa PC na isti taj WiFi AP i slično. Čak kod nekih WiFi transivera moguća je kombinacija.
Ono što ja mislim da će ti biti problem je da ne možeš imati real time prikaz podataka, jer WiFi komunikacija zavisi od dosta faktora i imaćeš sigurno gubitke paketa, a rekonekcija može potrajati dosta dugo.
Druga je priča ukoliko imaš mogućnost da uradiš buffer u uređaju i da kada završiš merenje taj buffer prebaciš na PC radi dalje analize. Ili makar da prilikom slanja imaš dovoljno buffera kako bi i u slučaju prekida komunikacije od par sekundi to se izbaferuje u uređaju.
Kod prenosa podataka slike, zvuka i slično najčešće se koristi UDP protokol jer omogućava veću propusnu moć i ne očekuje stroge kriterijume oko hand-shaking-a, za razliku od TCP protokola koji ima stožih pravila. UDP možeš posmatrati kao UART, ti šalješ pa ukoliko neko prima podatke super. Nema integrisane provere koegzistentnosti podataka. Kod TCP protokola stvar je mnogo pouzdanija, integrisana provera, ali i tačno se mora poštovati metod da se konekcija ostvari regularno i dok traje konekcija socket je zauzet i slično. Nedostatak je više kontrolnih podataka u TCP paketu, pa je i propusna moć manja.
Reply
Konkretno 2Mbyte/s je zeljeni protok. Kanali se paralelno sempluju sa 24bit rezolucijom. Mislio sam na P2P pa me interesuju iskustva.
Reply
802.11b ti ne završava posao
802.11g/n je ok
Ove standarde podržava većina uređaja.
Nažalost sa P2P nemam nikakva iskustva.
Reply
WiFi po meni u industriskim uslovima moze samo da se koristi kao ne-kriticni monitoring ili neku ad-hock intervenciju na masini, ni u ludilu ne bih to koristio za bilo kakvu procesnu kontrolu, samo dodje @1van sa spravicom u "ugasi vas", zaboravili ste "poster" sto je postavio, "bas hakera briga: sto je ..." :-) ... A gde je kripcija u celoj prici? To nije zezanje, mora dobro da se razmisli kada se radi nesto po etru!
I to problem se produbljuje toliko da iako sad koristis kripciju koja da kazemo da nije moguca da se razbije (samo primera radi), recimo ovaj emitovan signal u etru ce "moza" neko moci da dekrptuje ali za 10 godina kada ta kripcija bude izbusena ili racunari dovoljno napreduju da mogu da rade brute-force metode i cistom silom razbiju enkripciju, to je opasan problem!

Konkretan primer imate i na gore postavljenoj fotki, tamo negde oko 2MHz ima brdo stanica koje emituju kriptovane poruke sa specificnim modulacijama, za sad se nezna sta se tu desava, ali za X godina, hmmm ...
Reply
Evo da dam par konkretnih informacija, posto se povela rasprava.
1. Uredjaj nije namenjen za industriju, vec samo sa naucno-istrazivacke svrhe. Ne kod nas, vec u inostranstvu. Konkretno u pitanju je kompanija Tecnalia
2. Uredjaj je namenjen stimulaciji kultura nervnih celija u cilju izucavanja odgovora ukrstenih vrsta celija na razlicite tipove i parametre pobude
3. Pobuda se vrsi strujnim impulsima, tj. projektuje se strujni generator koji je u stanju da generise strujne impulse u opsegu 0-1mA u koracima od 1uA!!!
4. Stimulacioni deo ima 32 kanala, a i merni ima 32 kanala. Snimanje se vrsi na uSD karticu. 32 kanala se sempluju paralelno sa Fs=16kHz, rezolucije 24bit.
5. Real time monitoring snimanja nije neophodna stvar, vec sam ja hteo da vidim kakva je situacija kada bi se koristio WiFi za tu namenu, nesto kao Bluetooth SPP profil.
Reply
Quote:3. Pobuda se vrsi strujnim impulsima, tj. projektuje se strujni generator koji je u stanju da generise strujne impulse u opsegu 0-1mA u koracima od 1uA!!!

He he, biće "veselo" od 1-10uA...

Kakav talasni oblik ti treba iza? Da li je u pitanju oblik i napon akcionih potencijala?
Da li je kontrolisana provodnost medijuma, tj. koliki maksimalni pad napona očekuješ na potrošaču?
Koje su promene temperature i vlažnosti u okruženju? Ima li jonizacionih zračenja ili jonizovanih gasova?
Reply
(11-14-2017, 05:57 PM)Macola Wrote:
Quote:3. Pobuda se vrsi strujnim impulsima, tj. projektuje se strujni generator koji je u stanju da generise strujne impulse u opsegu 0-1mA u koracima od 1uA!!!

He he, biće "veselo" od 1-10uA...

Kakav talasni oblik ti treba iza? Da li je u pitanju oblik i napon akcionih potencijala?
Da li je kontrolisana provodnost medijuma, tj. koliki maksimalni pad napona očekuješ na potrošaču?
Koje su promene temperature i vlažnosti u okruženju? Ima li jonizacionih zračenja ili jonizovanih gasova?

Tacno si zaoukruzio ono sto je najzesce!!! Tu sam se polomio dok nisam napravio arhitekturu strujnog generatora.
Vlaga i temperatura su strogo kontrolisane. Postoji neki PCB na kom se posadi kultura nervnih celija. PCB ujedno predstavlja i matricu elektroda od 32 polja. Uredjaj se nalazi zajedno sa PCB-om i posadjenom kulturom u nekoj rernici koja drzi 37C (telesna temperatura coveka).
Oblik stimulacionih impulsa je pravougaoni. Impuls moze da bude samo pravougaoni, a moze da ga isprati i simetrican negativan impuls.
Nema nikakvih zracenja ili gasova. Komora je strogo kontrolisana, inace bi cela kultura otisla u kantu.
Ideja za dizajn strujnog generatora je modifikovana Howland-ova strujna pumpa koja radi u master-slave rezimu. Ja sam jos malo malo modifikovao to resenje u smislu ubacivanja jednog bafera, kako bih kompenzovao struju koja ide kroz sens otpornik, odnosno da samo struja koja ide kroz potrosac ide kroz sens otpornik. Koristim otpornike od 0.05% telerancije i ultra precizne operacione pojacavace koji nisu bas jeftini, ali su im za karakteristike momacke. Ovakav strujni generator ide na analogne prekidace ADG5421BRMZ-RL7 koji ima struju curenja u iskljucenom stanju 0.05nA!!!
Reply


Forum Jump:


Users browsing this thread: 6 Guest(s)