Keresés

Részletes keresés

Törölt nick Creative Commons License 2024.02.17 0 0 130

Maradjunk egyelőre valósban. (Ami pszeudo negatív frekvenciákkal könnyen megtehető.)

 

Mi történik, ha egymáshoz nagyon közel akarok tenni két illeszkedési pontot?

Vagyis, amikor nagyon meredek lenne a szűrő...

Valami drasztikus dolog történt. Valahogy nem lehet "sima" függvényekkel "hirtelen" változást elérni, mert máshol megbosszulja. (Ennek elkerülésére megpróbálhatunk egyre több és több illeszkedési pontot megadni. Nem fog menni?)

Törölt nick Creative Commons License 2024.02.13 0 0 129

Konvolúció.

 

Egy analóg szűrőnél folytonos,

digitális szűrőnél pedig diszkrét (időben és felbontásban is kvantált).

 

Az egyes késleltetésekhez tartozó együtthatók alapján a digitális szűrő spektrumát ki lehet számolni.

Sokkal egyszerűbb az átviteli függvényt meghatározni, mert ehhez csak néhány bemenő jelet kell átkergetni rajta.

 

Melyik részét nem érted?

 

(Nekem az a problémám, hogy nem elég nagy felbontású a lebegőpontos számábrázolás.)

Előzmény: mmormota (128)
mmormota Creative Commons License 2024.02.12 0 0 128

az ablakfüggvények transzformáltjára támaszkodnál

 

Ez valami félreértés.

Előzmény: Törölt nick (127)
Törölt nick Creative Commons License 2024.02.12 0 0 127

Tegyük fel, hogy akarsz tervezni egy szűrőt, és nem az ablakfüggvények transzformáltjára támaszkodnál...

 

A hatványokból álló mátrix segítségével a töréspontokat egyedileg tologathatod. Elvileg.

 

Erről akarna szólni ez a TOPik.

Előzmény: mmormota (122)
Törölt nick Creative Commons License 2024.02.12 0 0 126

Sajnálom, ha számodra értelmetlennek tűnik.

A szűrő együtthatóit a kiválasztott ablakfüggvény transzformálásával kapjuk.

(Talán az sem meglepő, hogy egy digitális szűrő és egy analóg szűrő között van hasonlóság.)

 

Mivel sok mérnök vagy szakácskönyvből dolgozik, vagy szűrőtervező programot használ, és az egésznek a matematikai alapjai nem is érdekli.

 

Csak példaként:

Multirate FIR Filters for Interpolating and Desampling
4 Hamming Window

Section 15 Digital FIR Filter Design by Windowing
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwjb55nAw6aEAxWC_rsIHTyND0IQFnoECBYQAQ&url=https%3A%2F%2Fcommunity.ptc.com%2Fsejnu66972%2Fattachments%2Fsejnu66972%2FPTCMathcad%2F176204%2F1%2F15_FIR_Filter_Design_by_Windowing.pdf&usg=AOvVaw3wCP2u3toWF3kBFxITeS1J&opi=89978449

FIR Filter Design
https://in.mathworks.com/help/signal/ug/fir-filter-design.html


Előzmény: mmormota (125)
mmormota Creative Commons License 2024.02.12 -2 1 125

Az ablakfgv-t nem arra használják, amit írtál. Elég értelmetlennek tűnik az egész hozzászólás.

Előzmény: Törölt nick (124)
Törölt nick Creative Commons License 2024.02.12 0 0 124

Biztos okos emberek voltak, akik az ismert ablakfüggvényeket kitalálták. Kíváncsi voltam, hogy "alapműveletekkel" mit lehet kihozni a témából. (Jó, jó. Az összeadás sem alapművelet, mert 1-el növelésre visszavezethető.)

 

Az ablakfüggvények meghatározzák az ilesztési pontok elrendezését.

Ezzel szemben a hatványmátrix lehetővé teszi ezen illesztési pontok tologatását.

Ez nagyobb szabadságot biztosít a tervezésnél.

 

 

Mottó: biztos okos ember volt, aki a kőbaltát feltalálta. Jobbat kitalálni nem is érdemes...

Előzmény: mmormota (122)
mmormota Creative Commons License 2024.02.11 -1 1 123

Mostanában sokkal könnyebb szűrést megvalósítani, mert már a kisebb uC-kben is van floating pont egység, így a lebegőpontos műveletek nem elfogadhatatlanul lassúbbak.

 

Régebben rengeteget kellett tipródnom az integer számolásokkal. Persze nem a kész c aritmetika könyvtárral, mert az úgy lassú lenne, mivel a bit szélesség nem igazodik az éppen szükséges minimumhoz. Hozzá kellett igazítani a feladathoz a számításokat. Mekkora a részeredmények legnagyobb lehetséges bit szélessége, nehogy túlcsorduljon valahol. Mikor és mennyivel lehet osztani, hogy ne okozzon túl nagy pontatlanságot. Lehet-e úgy összerakni, hogy minél több osztás 2 hatványával történjen (mert az shifttel is megy, sokkal gyorsabb). Assembly betéteket kellett betenni a c kódba, azzal is nyerve egy kis időt. Ezt a bit faragó szenvedést rendszerint én csináltam. :-)

 

Persze így rengeteg hibalehetőség volt. Úgy teszteltük, hogy valaki más PC-re megírta ugyanazt a számolást, amit a uC-n kellett futtatni. Aztán napokig futtattuk mindkettőt ugyanolyan álvéletlen bemeneti adatokkal, hogy ad-e a uC hibás kimenetet. Ha igen, akkor azzal a bemenő adat szakasszal tesztelve meg lehetett találni a hibát. (FIR szűrőnél ez működik)

mmormota Creative Commons License 2024.02.11 -1 1 122

Azért kérdeztem, mert nekem ez a probléma még nem jött elő, persze az is igaz, hogy nem valami sok digitális szűrőt terveztem. A görbe illesztése pontokra inkább tárgyak tervezésénél szokott nekem felvetődni, mondjuk egy hajlított dobozt akarok CAD-ban készíteni, hogy 3d printerrel kinyomtassam.

 

Szűrőnél mindig kész tervező programot használtam, csak a követelményeket kellett megadni (ebben és ebben a tartományban milyen csillapítás pl), az meg adott egy listát a szorzókkal. Megnéztem, belefér-e az időbe annyi művelet, ha igen, jó. Ha nem, akkor lehetett tűnődni, hogy engedhetek-e valahol az elvárásból, vagy erősebb vas kell.

Előzmény: Törölt nick (121)
Törölt nick Creative Commons License 2024.02.11 0 0 121

Szűrő tervezéshez. De ott valós frekvenciák helyett komplex z=esT számokkal darálunk.

 

Próbáld ki nyugodtan. Megadod a szűrő töréspontjait: frekvencia és csillapítás.

 

Egy trükk van benne, valóssá kell tenni. De az egyszerű, ha a megkettőzött hosszúságú késleltető lánc közepétől számolsz, nem pedig a lánc elejétől. Ezzel negatív frekvenciákat tudsz teremteni, és a képzetes rész kiesik.

 

Persze egy komplex mátrix inverálásához tudni kell osztani komplex számokkal.

De az egyszerű, mert az osztó konjugáltjával bővítjük a törtet.

Előzmény: mmormota (120)
mmormota Creative Commons License 2024.02.10 -1 0 120

Pontosan mihez van szükséged a polinom illesztésre?

Előzmény: Törölt nick (117)
Makethisworldabetterplace Creative Commons License 2024.02.09 0 0 119

S dönté az Örökkélétező Alkotó Irányító: Létezzen! S lőn elég értékes bit. A hozzáadott 1 növel. Az élet fejlődéa.

Előzmény: Törölt nick (118)
Törölt nick Creative Commons License 2024.02.09 0 0 118

Arra gyanakszok, hogy ekkora átfogáshoz már nincs elegendő értékes bit.

Vagyis a digitális számábrázolás korlátozni fogja a szűrő fokszámát.

 

 

Hasonló probléma fordul elő numerikus integrálásnál. Ha túl kicsire vesszük az összegzendő intervallumokat.

Adogatjuk össze, aztán az összeg felkoppan, mert már olyan nagy, hogy a következő hozzáadandó egy bitet sem változtat rajta. Az élet nem habostorta. :(

Előzmény: Törölt nick (116)
Törölt nick Creative Commons License 2024.02.09 0 0 117

Nézzünk egy példát, amikor a polinom illesztés (valamilyen ismeretlen okból) elromlik:

 

Hatványmátrix:

 

Inverze:

 

Illesztett függvény (elszáll):

 

Előzmény: Törölt nick (116)
Törölt nick Creative Commons License 2024.02.09 0 0 116

Mielőtt rátérnék a digitális szűrők tervezésére és a z-transzformációra,

szükségünk van a polinom illesztés módszerére.

Ezt először valósban mutatom meg,

Valós frekvenciákkal és valós függvényekkel. {x,y} ∈ ℝ

 

Lagrange-interpoláció helyett a hatvány mátrixot használom.

Felírjuk az illesztési pontokon az x hatvnyait és a kívánt y értékeket.

Invertáljuk a mátrixot, majd beszorozzuk az y (oszlop)vektorral.

Itt most "célszerű" a 00 értékét 1-nek választani.

Voila:

 

Nézzünk meg egy másik példát is:

 

Azért hoztem ezt most elő, mert ha túl sok illesztési pontot próbálunk megadni, az valahogy elromlik. Nem igazán értem.

Próbálok rá mutatni példát valós függvényekkel...

Törölt nick Creative Commons License 2024.02.07 0 0 115

Nekem a köz-ép-iskolában még pneumatikus szabályozó köröket tanítottak.

Alapjelképző, jelformáló, beavatkozó. Rendelkező jel. Ilyen fogalmak rémlenek.

 

A jelformáló azért van,, mert azzal korrigálják vagy az érzékelő vagy a beavatkozó kretlen tulajdonságait.

Vagy például az Otto-motorban ilyen a gyújtási szög. A fordulatszám függvényében állítgatják.

Előzmény: szabiku_ (110)
Maketheworldabetterplace Creative Commons License 2024.02.07 0 1 114
Maketheworldabetterplace Creative Commons License 2024.02.07 0 0 113

150+kHz AM adók 3-4,5kHz. 450MHz ->15MHz 

Előzmény: szabiku_ (110)
mmormota Creative Commons License 2024.02.06 -1 0 112

Nem kell nagyon rövidnek lennie, amiatt, amit írtam.

Előzmény: szabiku_ (110)
szabiku_ Creative Commons License 2024.02.06 0 0 111

Ugye, ha karakterisztikán belüli munkapont beállításon van a cucc, akkor fohadt gyorsan tud működni, főleg a nyagyfrekis rf alkatrészek, de te kapcsolóüzemben kívánod a működést, jelelőállítást megcsinálni. És ez nagy különbség. 

Előzmény: szabiku_ (110)
szabiku_ Creative Commons License 2024.02.06 0 1 110

Nem látod kritikusnak? :) 

 

Egyszerű FET-ek... Hah. 

 

Nézegettél már hozzá teljesítmény FET-et, hogy mit ír az adatlapja, mennyi idő bekapcsolni, kikapcsolni, milyen a fel-le futása? Ugye kiszámoltam, hogy szerintem itt olyan 1 nanosec körüli időkön belül kell legyenek ezek a folyamatok, hogy beletedd a 10 MHz-es SSB jeledbe a megfelelő fázisinformációt, amitől még jól érthető lenne a beszédátvitel, nem vartyogás meg donaldkacsás. (lehet, hogy fél hi-fi minőségre tettem, nem tudom pontosan... lehet 5 nanosec se gond.) 

 

Szóval, te hány nanosecundumos időket gondolsz ezekre? És azokat melyik FET tudja leművelni? 

Előzmény: mmormota (74)
szabiku_ Creative Commons License 2024.02.06 0 0 109

Ez a fázisjel mondja meg, hol legyenek a végfokon (ami kapcsolgat) a nullátmenetek. Ez ugye négyszöges lenne így ideálisan, amit egy LP szűrővel kerekítenénk le hullámosra. Csak sajnos szerintem nem is lenne szép négyszöges, mert túl szapora az egész kb. 10 MHz-en. 

Előzmény: Törölt nick (76)
Törölt nick Creative Commons License 2024.02.06 0 0 108

Ismerem a sorfejtést. A transzformációnak több változata van.

Egyrészt a két pí lehet egyik vagy másik oldalon, vagy kellő középen megátkozva, szétosztva oda és vissza.

És még nem mindegy, hogy a negatív idpőt is integrálja, vagy csak nullától. Utóbbi valami kuzális Green-függvény.

 

Viszont itt a számolgatásnál kicsit rácsodálkoztam. Mert egyformák a magnitudók.

Próba képpen az egyiket beszoroztam, a másikat pedig elosztottam kettővel.

Habár felesleges volt, mert az eredmény ugyanaz. Y=A*B vagy Y=(2*A)*(B/2)

 

Ahhoz, hogy amplitudó arányokat meg lehessen állapítani, kell például egy harmadik frekvencia.

A moduláló jel két különböző amplitudójú és frekvenciájú jel összege például.

(Most meg egy különös hibával küzdünk, valamit elszámol a kontroller. Rossz a fordító vagyáthallatszik a memória?)

Előzmény: mmormota (98)
Törölt nick Creative Commons License 2024.02.06 0 0 107

Néha kifutottunk a μC program memóriájából. (Pl. futásidőre optimalizálva, nem kódméretre. Ciklusok kitekerése például.)

 

125 kiB kontroller 100 MIPS.

512 kiB viszont csak 40 MIPS, és az I/O műveleteknél kell egy nop(), mert a busz csak fele órajellel teker.

Ez a sebességvesztés összefügg a kapuhálózat méretével? Nem tudja elég gyorsan dekódolni a címet?

Előzmény: mmormota (101)
Törölt nick Creative Commons License 2024.02.06 0 1 106

Ugrótábla. Előre kiszámolsz dolgokat, aztán kikeresed a táblázatból és alkalmazod a korrekciót.

Mer' aki régóta Vodás az ó-Vodás? De aki West-et szív az West-es. ;)

Előzmény: mmormota (101)
Törölt nick Creative Commons License 2024.02.06 0 1 105

Az egy tipikus trükk, hogy amit csak lehet, fordítási időben kell számoltatni, nem futás közben.

Viszont akkor nem lehet paraméterezni. Van arany középút. Bizonyos szorzásokat egyszer kell elvégezni, azaz új változó bevezetése. Egyébként az egy tipikus probléma, hogy a feldolgozandó jelek gyorsabban jönnek, mint amit az algoritmus tud követni. És akkor őrjöngenek, hogy pedig ez Real-Time (finite response time).

Előzmény: Maketheworldabetterplace (100)
mmormota Creative Commons License 2024.02.06 -1 2 104

Így előre elkészített szövegeket tényleg ki lehetne számolni, ilyen szíkjú diex féléket, vagy mondjuk szám sorolgató állomást régivágású kémeknek. :-)

Előzmény: Maketheworldabetterplace (102)
Maketheworldabetterplace Creative Commons License 2024.02.06 0 0 103

Azt az eredményt adja a gép, hogy a szűklyukat gyakran fogod emlegetni. :-)

Előzmény: mmormota (101)
Maketheworldabetterplace Creative Commons License 2024.02.06 0 1 102

A modulált eredményt kiszámolja, és azt "lejátssza". Gondolatolvasó és jövőbe látó gép? Kronovizor? :-)

Előzmény: mmormota (101)
mmormota Creative Commons License 2024.02.06 -1 1 101

Mármint mit? Mindent értelemszerűen nem lehet, legfeljebb a korrekciós faktorokat, de az meg magától értetődő. A többit valós időben kell számolni, hiszen előre nem tudhatja, mit beszélek majd a mikrofonba. ;-)

Előzmény: Maketheworldabetterplace (100)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!