Fórum témák
» Több friss téma |
Hello!
A minap láttam Topi spektrum analizátorát. Kerestem az interneten, hogy hogyan lehet digitálisan sávszűrőt csinálni, de nem jutottam 1-ről a 2-re. Arra lennék kíváncsi, hogy Topi vagy mások milyen elv szerint dolgoztak. Csak annyit tudok erről a szűrőről, hogy a bemeneti jelet eltárolom, majd késleltetéssel összeadom az eredeti bemeneti jellel.
Nem az eredeti jelet adod hozzá, hanem annak valahányszorosát. keress rá úgy, mint IIR (végtelen, vagy FIR (véges) szűrő. Matematikai alapja a Fourier-transzformáció. Itt a "konvolválás" lesz a kulcsszó.
Szerencsére ma már bőven találsz a neten irodalmat, bár szerintem nem kezdőknek való téma. Egy gyakorlatiasabb megoldás található itt :
Bővebben: Link illetve a kapcsolódó oldalakon.
Ha kifejezetten a spektrumanalizátor érdekel, akkor azt szerintem FFT-vel (Fast Fourier Transfom) csinálta Topi és nem egyedi sávszűrőkkel. Az FFT során egy jelmintából előállítható a benne található komponensek táblázata, a táblázat elemeinek száma emlékeim szerint 2 hatvány. FFT-re rákeresve a neten szerintem rengeteg találat van.
Van erre egy magyar nyelvű,kiváló könyv.
Dr. Simonyi Ernő Digitális szűrők A digitális jelfeldolgozás alapjai Műszaki Könyvkiadó,Budapest 1984 Meglehetősen elméleti,de alapos,és ez a téma már csak ilyen. (Fourier bácsi nemigen látott forrasztópákát.)
Sziasztok!
Kicsit más kérdés mint ami fentebb volt, de a cím maradéktalanul stimmel. Van egy töltőgépem, ami edénybe potyogtat festéket (kvázi mintha homok lenne). Az edény alatt van egy analóg mérleg egybeépítve a műszererősítővel (itt 5V jön már ki), amit egy méteres kanóc után digitalizálok avr-rel. A program szerint egy bizonyos töltősúly eléréséig kellene dolgoznia, majd azt követően leállni. Sajnos már félúton leáll, amit végül a potyogásnak tudtam be, ugyanis amikor egy ilyen kis "csomagocska" lepottyan az edénybe, akkor üt rajta egyet, amit a szerencsétlen szintúgy megmér mint a hasznos tömeget. Ellenőrzésként naplóztam a mért adatokat, és ez alátámasztani látszik az elgondolásomat, hogy ide bizony egy szűrő kell. A mellékelt diagramon jól látszik, hogy az ideálisan elvárt folyamatosan emelkedő _egyenes_ vonal helyett egy nagyon sűrűn cakkozott zajos valamit mér, amiből azért sejteni lehet hogy mi akar lenni. Tudtok-e ajánlani valami egyszerűen kivitelezhető szűrő algoritmust, ami leszedi ezeket a tüskéket, de persze a dc komponenst meghagyja. Mindezt persze valós időben kevés erőforrással, 8 biten, és ha kávét főz, az se baj..
Egy egyszerű RC aluláteresztő szűrővel, integráló taggal próbálkoztál? szerintem az időállandó jó megválasztásával megoldható, nem biztos hogy kell nagy meredekségű digitális szűrő, vagy akár FFT .
Sajnos a "vashoz" mar nem tudok hozzanyulni, mindenkepp szoftveres megoldas johet csak szoba. Nem tudok egy plusz szurot, meg hozzavalo erositot beepiteni.
Alkalmazhatnál medián szűrőt, az algoritmusa sem túl bonyolult. Túlmintavételezed a jeledet, figyelve az alias-ra. Majd a vett mintákat érték szerint sorba állítod, és csak a középső elemet tekinted helyes adatnak, a többit eldobod. Ez kifejezetten impulzusszerű zajok szűrésére ajánlott. Fokozható a hatás, ha a középső néhány mintát átlagoljuk is, tehát sorba állít, legkisebb, legnagyobb értékű mintákat eldob, középső mintákat átlagol.
Csak otletkent .
En azt csinaltam egy kezdetleges wobler eseteben hogy a digitalizalt jelet "integraltam" es hataroltam. Egyszeruen ami ilyen nagy tulloves volt azt nullanak deklaraltam .Ugyanis ilyen gyors es nagy jel nem lehetett sehonnan se a hanggeneratorbol vagy a mert negypolusbol . A meresekbol adodo jel monoton ekkora gyors ugras nem lehetseges tehat " letiltod "a "buffer" vagy a memoriabol valo kiolvasaskor a megjelenites elott.De lehet az elott is ha elegge gyors a szubrutin . En adatbeolvasakor " hataroltam" megjeleniteskor meg korrigaltam es integraltam is mert akkor mar lehetett lassan is ugyanis regen es nagyon lassu 7Mhz -es kis szamitogeppel csinaltam. Ami ott latszik az zaj , a tullovesek az en esetemben a magam epitette AD konverterban tortentek . Aztan lattam /szereztem gyari ugyanolyan tipusu konvetert abban is volt komparalasi hiba es tulloves. Aztan mar nem foglakoztam vel amiota van soft analizator ami amator celjaimnak megfelel.
Itt van egy a témába vágó anyag: Bővebben: Link
Ha bővebben akarod, akkor Dr. Simán István: A digitális jelfeldolgozás alapjai (Budapesti Műszaki Főiskola tankönyv)
Nahát, ez elég jónak tűnik! Gondoltam gyorsan modellezem excelben, de letettem róla, mert több mint kétezer adatot nem fogok kézzel rendezgetni, automatizmust meg nem tudok rá, annyira nem ismerem azért. Valszeg teszek majd egy próbát "élesben", csak a vezetőség nem szereti ha kísérletezéssel töltöm az időt Egyébként mi az az alias amire figyelni kellene?
Igen, erre a megoldásra én is gondoltam már, csak nem tudom egzaktul meghatározni hogy mekkora "lehet", és mekkora "nem lehet" a lövése, mert kijelző nincs a rendszerben. A diagram amit mellékeltem az suttyomban készült, úgy hogy rákötöttem a notimat, és egy valós töltési ciklust naplóztam. Már ezért is csúnyán néztek.
Ha az excel-es adataimon jól működik a szűrés, akkor beégetem a töltőbe is, és reménykedek hogy most már jól fog működni. Ha nem, akkor lehet a fejem porba hull... Amúgy azért van ez az egész cécó, mert a tisztelt Főnök megbízott ennek a gépnek a megépítésével, ami első példánynak egész jó lett, de van ez a hibája. Ezzel még együtt lehetne élni, de megbízott, hogy építsek neki mégegyet! Az ismert hibát pedig nem szeretném tovább vinni, inkább ebben is kijavítani. Köszönöm az eddigi hozzászólásokat, meg a további ötleteket is ha lesz még
Azthiszem nekem sose fog menni ez digitális jelfeldolgozás. Akárhány jegyzetet olvasok el, mindegyik teli van kínai képletekkel meg olyan dolgokkal, amikhez valami nagyon egyetemi tudás szükséges.
Nincs ennek a digitális jelfeldolgozásnak egyszerűbb módja? Nem akarom elhinni. Pl. ha egy jelből tudni akarom mekkora amplitúdóval szerepel az 1kHz-es összetevő, nem lehetne valahogy egyszerűbben kiszámítani?
Analóg jelek mintavételezése során a nem megfelelő mintavételi frekvencia megválasztása átlapolódást okoz a mintákban, ezt nevezik az alias jelenségének. A mintavételezési frekvencia legalább duplája kell legyen az analóg jel sávszélességének (Nyquist-tétel).
Példa: Legyen az analóg jel sávszélessége 100 Hz, ekkor a mintavételezési frekvenciának legalább 200 Hz-nek kell lennie (nagyobb lehet, de kisebb nem!). Lényeg az, hogy az ADC előtt korlátozni kell az analóg jel sávszélességét (aluláteresztő szűrő), úgy hogy a mintavételezési frekvencia felénél már nagy elnyomása legyen a szűrőnek, így az e fölötti frekvenciájú komponensek amplitúdója jelentősen csillapodjon. A mintavételezési frekvenciát Te választod meg, de erre oda kell figyelni.
Hm.. Köszönöm, most már ezt is tudom. Ez a jel alapból erősen túlmintavételezett, mert nekem a dc komponens kell belőle, és a mintavételezés többszáz Hz-es (most pontosan nem tudom, de úgy saccolom).
Egyébként engem is zavar, hogy ennyire el van bonyolódva ez a szűrős dolog. Nyilván megvan az oka, de hogy ne lehessen egyszerű leírást találni hozzá, ez tényleg gáz. Ha jól emlékszem pont Topi analizátorában elég szépen le van vezetve az "egyszerű" séma..
Hol van ez a "Topi féle analizátor" ?
Adott összetevőt Fourier transzformációval tudsz megnézni az adott jelben, erre valók az FFT-t tudó pc-s analizátor programok (Fast Fourier Transformation), az általam linkelt jegyzetben is valószínűleg az egyik bonyolult képlet ezt írja le
Próbálkozz játssz a programokkal, hogy mit lehet, meg elvileg nyílt forráskódban is érhető el FFT algoritmus készre megírva, hogy adott programodhoz csak hozzácsaphasd...
Úgy látom félreérted a dolgot. A jel sávszélessége nem azonos azzal, hogy Te milyen frekvenciájú komponensre vagy kíváncsi. A jel zajjal és a lehulló cseppek által keltett spektrumkomponensekkel terhelt. Ezeknek a sávját kell korlátozni a korábban említett módon.
Életszerű példa: Legyen a mérés 50 Hz-es szinuszos zajjal terhelve. Ha a mintavételezési frekvenciát 50 Hz-re választjuk, akkor a DC komponens helyére (amit mérni szeretnénk) belapolódik a szinuszos komponens is, mely meghamisítja a mérést. Gyanítom ez így első olvasásra elég furán hangzik, de ez a mintavételezés következménye. A neten elég sok dokumentum foglalkozik ilyen jellegű témákkal, érdemes rákeresni.
Igen, értem már miről beszélsz! Például háromszög jelnél kapok egy (másik frekvencián) szintén tökéletes háromszöget, mint a digitális szkópoknál. Na ezt jól megaszmondtam
Mindazonáltal nekem akkoris csak a jel dc komponense kell, és szoftveresen. Szétnézek az fft, dft játékosok háza táján. Amúgy sajtóhuba: nem Topi, hanem deguss írta a cikket az fft-ről, most előkerestem (itt)
Basszus, nem engedte már szerkeszteni. Szóval az a baj, hogy nem tudok belenyúlni az áramkörbe! A dc komponenst nem lehet valahogy leválasztani erről az egyvelegről?
Miért nem átlagolsz ? Vennél mondjuk 5-6 mintát másodpercenként az analóg jelből és átlagolnád
"kipotyogna" belőle a cseppek beeséséből adódó hullámzás
FFT vagy DFT segítségével biztosan meg lehet oldani, viszont a belapolódott komponenseket az sem szedi ki, ráadásul bonyolult is. Azt megírhatnád, hogyan néz ki az analóg jelformáló része az áramkörnek. Mivel és hogyan erősítesz?
Átlagolással csak elkened a nagy csúcsokat, de nem szűröd ki megfelelően. A technika, amit írsz tökéletesen működik abban az esetben, ha a mintavételi frekvencia páros egész számú többszöröse a zaj frekvenciájának, egyébként nem vezet túl jó eredményre.
Hali
Nem lehetne esetleg valami modon a merleg mechanikat megvaltoztatni? Mert ahogy latom a problemat, az az, hogy a mechanika nagyon leng. En csinaltam egy par adagolo rendszert, 5 kg-tol 1-2 tonnasig, de a mechanika rossz kialakitasa nagyon sok problemat okozott. Mai napig mukodik pl 1 tonnas 8 komponenses takarmanykevero rendszerem, ahol is csigas adagoloval adagolnak szemes termenyt. Nincs semmi problemaja, es egy PC-s vezerles viszi az osszemerest (ontanulos szoraskorrekcioval, recept kezelessel). Atlagolas nincs benne, mert rontja a pontossagot es a sebesseget. Viszont a mechanika kialakitasa (3 pont fuggesztes, stabil alapszerkezet) csokkenti a rezgeseket, igy nincs is szukseg atlagolasra. Gondolom nalad 10 bites AD van, tehat ha ott nagy a lenges, akkor a mechanika nagyon rossz kialakitasu. Nekem 12 bites AD dolgozik (7109), es igy sem latszik lenges, pedig a csigas adagolo nem eppen idealis az adagolashoz, es meg a tavolsag is eleg nagy a csiga kimenete, es a tartaly alja kozott(a leeso anyag utese eleg nagy). Esetleg meg az adagolo kimeneti mennyiseget kellene csokkenteni, hogy egyszerre ne essen le sok anyag. (5 kg-ot 10 mp tolo rendszer egy 2 kg-os merlegen pl nagyon rossz arany) Idézet: „kaqkk írta: Miért nem átlagolsz ? Vennél mondjuk 5-6 mintát másodpercenként az analóg jelből és átlagolnád "kipotyogna" belőle a cseppek beeséséből adódó hullámzás” Mert nem esik ki. Átlagolok olyan 50 mintával, de semmi előnyöm nincs belőle. Sokkal többet meg nem szánhatok rá, mert elfogy a proci.
Ugyan nem írtam, de nálam a bruttó mért tömeg maximuma olyan 400gramm körül van. Tehát amit tudok a mechanikán játszani, az mind összemérhető a hasznos tömeggel. Ráadásul rengeteg az elektromos szmog. Ja, azt nem mondtam hogy konyhai mérlegből lett kialakítva. Gyakorlatilag szinte a tüsszentést is méri.
Délután támadt egy ötletem, azt kipróbálom az adataimon, hogy mit mutat, majd beszámolok.. Idézet: „ Miért nem úgy csinálod hogy figyeled az adc mérésedet, ha a mért érték nagyobb mint az előző akkor lepottyant valami a mérlegre ekkor vársz annyit hogy a tranziens lemenjen majd mérsz rendesen...” Mert a potyogás maga tranziens, és semmi visszajelzés nincs hogy most jót mérek vagy nem. Magyarul ha várok, és közben pottyant mégegyet akkor gáz van.
Hali
Valami mechanikus csillapitast kell rakni ra, mert igy az eletbe sem lesz merleg belole. Esetleg meg az erosito bemenetere (a ket jelagba) egy RC szurest betenni. Ez a ket agba soros ellenallas (pl 1k) es a ket ag koze 100n-470n-1u (nem elko) C tagot betenni. Nagyon fontos az arnyekolas, mert a merlegcella jele 5-10 mV nagysagrendu. Esetleg ha a feldolgozo erositorol tudnal valami rajzot feltenni, lehet tobbet tudnank segiteni. A masik fontos szempont, hogy a cella vegerteke es a merendo mennyiseg lehetoleg kozel legyen egymashoz. Tehat egy 20 kg vegerteku merleggel nem lehet soha 400 grammos tartomanyban pontosan merni. Ez olyan kb/sacc meres, de soha sem lesz pontos. A 400 grammhoz maximum 1000 gramm vegerteku merleget hasznalhatsz. Igy 400 osztasu lehet a merleg, de ennel nagyobb osztasnal sok hibat fog bevinni a mechanika, a homersekletfugges, az erosito instabilitasa. Magyarul soha sem fog ket egyforma merest produkalni, es a "0" pontod is maszni fog mint pok a falon. Ezen semmilyen szuro algoritmus se fog segiteni.
Az elobb timeout miatt nem tudtan leirni:
Itt van az asztalomon egy 6 kg cellabol kialakitott 5000g vegerteku merleg, es ennel is a mechanika miatt instabil a meres. Csak a cella maga stabil, viszont a mechanika jelentos rezgest visz be a meresbe. Az elektronikat OPA2333 erositovel, es MCP3551 AD-vel csinaltam. Mucellaval stabil, de a merleget raakasztva soha nem all meg a kijelzes. Most a mechanikus urak at fogjak alakitani, es tesznek bele csillapitast, hogy lehessen hasznalni. |
Bejelentkezés
Hirdetés |