DSV
From Vragen3bachsem2
(→Examenvragen) |
(→Cursus) |
||
(74 intermediate revisions not shown) | |||
Line 1: | Line 1: | ||
+ | '''Afspraken:''' | ||
+ | |||
+ | Lees, voor ge een vraag stelt, is wat de andere mensen gevraagd hebben. Zo zit ge niet met 2x dezelfde vraag. Bekijk ook de oplossing van toledo is. | ||
+ | |||
+ | Stel u vragen concreet. Dus niet "leg is heel oefening x uit", maar begin dr zelf aan, kijk wat er niet lukt, en vraag dan concreet wat ge niet snapt. | ||
+ | |||
+ | Als ge iets bijschrijft bij een vraag waar al op is geantwoord kunt ge dat best met een alinea tussen doen (das dus twee keer enteren). Anders merkt er niemand dat er iets veranderd is en lezen ze derover. | ||
+ | |||
+ | Tim | ||
+ | |||
==Cursus== | ==Cursus== | ||
* Volgens mij staat er een fout in het opstellen van het codeboek van vectorkwantisatie, en moet D(-1) oneindig zijn initieel. | * Volgens mij staat er een fout in het opstellen van het codeboek van vectorkwantisatie, en moet D(-1) oneindig zijn initieel. | ||
Nee, er wordt bedoeld dat wanneer het verschil tussen 2 opeenvolgende gemiddelde afwijkingen D(k) relatief gezien kleiner is dan <math>\\epsilon</math>, men dan moet stoppen. Bij k = 0 geeft dit dus 1, en in volgende stappen wordt dit telkens kleiner en zal men naar 0 convergeren. Men kan <math>\\epsilon</math> dus best iets groter dan 0 nemen. | Nee, er wordt bedoeld dat wanneer het verschil tussen 2 opeenvolgende gemiddelde afwijkingen D(k) relatief gezien kleiner is dan <math>\\epsilon</math>, men dan moet stoppen. Bij k = 0 geeft dit dus 1, en in volgende stappen wordt dit telkens kleiner en zal men naar 0 convergeren. Men kan <math>\\epsilon</math> dus best iets groter dan 0 nemen. | ||
+ | |||
+ | BTW: op toledo bij course documents staat een pdfke over het LBG algoritme. [https://cygnus.cc.kuleuven.be/@@7BD9B240D361AC7A72B495D02265FFB8/courses/1/a-H01L7a-0607/content/_1464982_1/lbg.pdf als ge op toledo ingelogd zijt] Misschien is de moeite waard. Allen een schietgebedje voor vraag1: vectorkwantisatie :D | ||
+ | |||
+ | Hoe komen ze aan de distortie van die LBG? | ||
+ | |||
+ | => Nie da het belangrijk is, maar wrs gewoon de gemiddelde fout tussen codevectoren en trainingsvectoren. | ||
* Pariteitseigenschap bij lineaire fase filters: ze zeggen daar, buiten dat tabelleke, niks meer van die fasesprong op 0 of op <math>\\pi</math>. Er wordt vanalles afgeleid voor (anti)symmetrische responsies met L even of oneven, maar geen conclusies ivm die fasesprongen. Iemand n idee hoe ge dat dan afleidt? | * Pariteitseigenschap bij lineaire fase filters: ze zeggen daar, buiten dat tabelleke, niks meer van die fasesprong op 0 of op <math>\\pi</math>. Er wordt vanalles afgeleid voor (anti)symmetrische responsies met L even of oneven, maar geen conclusies ivm die fasesprongen. Iemand n idee hoe ge dat dan afleidt? | ||
Er is blijkbaar een verband tussen een fasesprong en een nulpunt van de frequentieresponsie (nulpunt = fasesprong) zoals te zien op figuur 5.9, maar waarom dit is, weet ik ook niet. | Er is blijkbaar een verband tussen een fasesprong en een nulpunt van de frequentieresponsie (nulpunt = fasesprong) zoals te zien op figuur 5.9, maar waarom dit is, weet ik ook niet. | ||
- | pagina 109: polen en nulpunten die op de eenheidscirkel liggen (dus polen en nulpunten van de systeemfunctie) geven aanleiding tot een fasesprong van <math>\\Delta\\phi = \\pi</math>. | + | pagina 109: polen en nulpunten die op de eenheidscirkel liggen (dus polen en nulpunten van de TRANSFERfunctie <- systeemfunctie is niet enkel eenheidscirkel) geven aanleiding tot een fasesprong van <math>\\Delta\\phi = \\pi</math>. |
+ | |||
* Nog iets over die pariteit: bij de even functies staat er steeds <math>cos(\\theta(i-1/2))</math>. Waar komt die -1/2 vandaan? | * Nog iets over die pariteit: bij de even functies staat er steeds <math>cos(\\theta(i-1/2))</math>. Waar komt die -1/2 vandaan? | ||
+ | => heb het eens uitgeschreven met een L=6 en dan komt het zo uit.. Hopelijk is het leesbaar: [http://student.kuleuven.be/~s0107955/pic.jpg pariteit] | ||
+ | |||
+ | => ge kunt het ook eenvoudig beredeneren, hier een figuurke: [http://student.kuleuven.be/~s0160886/files/p109.gif figuur 5.9] | ||
+ | |||
* op p182 staat beneden zo iets over BFH en BFL's dat je altijd rationale functies van z of z^-1 moet gebruiken, maar wat bedoelen ze hiermee want in het voorbeeld waar ze dan de onjuistheid van aantonen gebruiken ze toch nog altijd enkel rationele functies? Of gaat het erom dat als 'grondtal' niet z maar z^-1/2 gebruikt wordt in de eerste stap? | * op p182 staat beneden zo iets over BFH en BFL's dat je altijd rationale functies van z of z^-1 moet gebruiken, maar wat bedoelen ze hiermee want in het voorbeeld waar ze dan de onjuistheid van aantonen gebruiken ze toch nog altijd enkel rationele functies? Of gaat het erom dat als 'grondtal' niet z maar z^-1/2 gebruikt wordt in de eerste stap? | ||
=> Ik denk dat er alleen gehele machten gebruikt mogen worden. Wortels zijn niet echt rationeel zeker? | => Ik denk dat er alleen gehele machten gebruikt mogen worden. Wortels zijn niet echt rationeel zeker? | ||
- | Ge moogt mss wel wortels van z gebruiken voor theoretische bewijzen, maar in systemen is dit niet te realiseren. <math>z^{-1}</math> komt overeen met een tijdsvertraging. <math>z^{-1/2}</math> zou dan een halve tijdsvertraging zijn, wat niet realiseerbaar is. Maar | + | Ge moogt mss wel wortels van z gebruiken voor theoretische bewijzen, maar in systemen is dit niet te realiseren. <math>z^{-1}</math> komt overeen met een tijdsvertraging. <math>z^{-1/2}</math> zou dan een halve tijdsvertraging zijn, wat niet realiseerbaar is. Maar theoretisch een systeem opsplitsen in wortels, en dan weer samevoegen zodat ge op het einde terug een realiseerbaar systeem hebt (met gehele machten) krijgt mag wel denk ik. |
- | * | + | |
+ | * op p. 114 staat da LFF's FIR's zijn en daarom geen polen buiten de oorsprong hebben, hoe komt da? | ||
+ | |||
+ | FIR's hebben een diff vgl vd vorm y[k] = x[k] + a*x[k-1] + b*x[k-2] + ... Als ge dat omzet naar een systeemfunctie (z-transformatie naar H(z)) zult ge zien dat die geen polen buiten de oorsprong heeft. | ||
+ | |||
+ | Das ook logisch, want een FIR heeft geen uitstervingseffect (als ge ff geen ingang meer aanlegt dat de uitgang traag daalt, of zelfs stijgt als het onstabiel is), veroorzaakt door terugkoppeling. De grootte van dat effect is te zijn door de amplitude van de polen, 0 bij FIR's. | ||
+ | |||
+ | * Wat is de snelste manier om een eindige 2D convolutie op 2 matrixen uit te voeren? In een van de oefeningen wordt dit gedaan voor een 2x2 matrix met enkel "0.25" als alle vier de elementen. Maar om een of ander reden zie ik niet meteen hoe je aan die geraakt. | ||
+ | |||
+ | Eén van de 2 matrices spiegelen rond het (0,0) element en dan beide matrices elkaar doen overlappen overlappen, beginnend met het (0,0) element van beide matrices en dan een scalair product nemen van de overlappende elementen, en dan heb ge een element uit de convolutiematrix. Mss ist nie zo begrijpbaar zonder figuurke ;) | ||
==Oefenzittingen== | ==Oefenzittingen== | ||
+ | |||
+ | * oef 2.3: wat zijn convolutiemaskers? komt dat overeen met de coefficienten van de impulsresponsie (in frequentiedomein)? | ||
+ | |||
+ | convolutiemasker = h[k]. Het zegt wat ge met u orgineel signaal moet convolueren om u doelsignaal te krijgen. Als ge daar een systeem van maakt is dat hetzelfde als de impulsresponsie. | ||
+ | |||
+ | impulsresonsie is enkel in tijdsdomein ... Maar ik denk dat ge H(f) bedoelt? Das dan gewoon de DFT van h[k], zoals in de oplossing van die oef wordt uitgelegd .. | ||
+ | |||
+ | * oef 2.4: deel c snap ik niet | ||
+ | |||
+ | p17 onderaan: n-de afgeleide van tijdsfunctie = maal <math>(j*2*\\pi*f)^n</math> van de fourier transformatie. Dat kunt ge gewoon als transferfunctie beschouwen. De amplitude daarvan is dan <math>(2*\\pi*f)^n</math>, dus een rechte met helling <math>2*\\pi</math> voor de eerste afgeleide. Dat kunt ge dan vergelijken met u benadering. | ||
+ | |||
+ | => Klopt die figuur in de oplossingen eigl? Zogezegd raakt <math>2 \\pi f</math> aan <math>2 sin(2 \\pi f)</math>, maar 2*sin heeft toch in het begin ne rico die dubbel zo steil is? | ||
+ | |||
+ | => Ah IC, de rico's waren bij mij gewoon ni afgeprint daarmee dat het er nogal onvergelijkend uitzag. | ||
+ | |||
+ | * oef 4.4: hanning: voor 30dB lees ik daar toch eerder iets van bijna 1/NT af?? | ||
+ | |||
+ | Alles boven een frequentie 2/NT wordt 30 dB verzwakt bij Hanning, dus een bandbreedte van 4/NT. Moest de eerste zijlob bvb op 20dB liggen, zou ge die niet op het volgend spraakspectrum mogen leggen, en zou de eerste lob nog binnen de bandbreedte van het spraaksignaal dat ge wilt wegfilteren (<math>B_T</math>) moeten liggen, wat meer punten zou betekenen. | ||
+ | |||
+ | * Oef 5.2: Is er ook een manier om te weten welke amplitude die dingen ongeveer hebben(bv of een NUL tot aan nul raakt (zoals in d) of niet). | ||
+ | |||
+ | Het principe is dat ge de eenheidscirkel in de opgaves afgaat met stijgende hoeken. Een pool in de buurt zal u amplitude doen stijgen, en hoe dichter die pool bij de eenheidscirkel, hoe meer het stijgt. Een nulpunt doet het dalen, en als het nulpunt op de eenheidscirkel zelf ligt zal de amplitude nul zijn. Meervoudige polen en nulpunten hebben een sterker effect dan enkelvoudige (hoe meer hoe sterker). Als ge een lijn trekt door n pool zal de hoek van die lijn int amplitudespectrum een lokaal maximum zijn, en omgekeerd voor nulpunt. Ge moet gewoon is draaien rond u eenheidscirkel bij die voorbeeldjes en zien wat u amplitudespectrum doet, dan hebt get snel door. | ||
+ | |||
+ | => wat betekent dan eigl een pool of nulpunt in de oorsprong? welk effect heeft dit op de amplitude? | ||
+ | |||
+ | als er niks anders ligt op een bepaalde hoek heeft die effect. bij a bvb zorgt die pool voor verhogingen op andere plaatsen dan de nulpunten. Bij b is het overal laag door da nulpunt int midden behalve als er een pool langskomt. Bij c net andersom en door het 8 voudig zijn (dus meer effect) ligt alles hoger dan in a en b. Zoiets :) | ||
+ | |||
+ | Op p109 staat dezelfde uitleg adhv die figuur (figuur 5.6 en formule 5.13). | ||
+ | |||
+ | * Oef 5.5: Als de impulsresponsie symmetrisch is, heeft men een LFF. Waarom? | ||
+ | |||
+ | p114, eerste zin. 'men kan aantonen dat ...' Gij moet het dus niet kunnen aantonen. | ||
+ | |||
+ | * Oef 6.6: Wat is da van die systeemfuncties, hoe maakt ge da van da convolutiemasker? | ||
+ | |||
+ | Systeemfunctie = H(z), transferfunctie = H(<math>\\omega</math>). De systeemfunctie is dus de z-transformatie van het convolutiemasker. Omdat ge het convolutie deze keer 2x moet toepassen moet ge het kwadrateren (serie -> maal elkaar). | ||
+ | |||
+ | * oef 6.6: da's weer met convolutiemaskers, ik snap er eigenljk niks van.. | ||
+ | Concreet snap ik niks. :P Ik bedoel daarmee, vanwaar komen alle oplossingen? En op het einde: hoort een 3x1 X een 1x3 geen 3x3 matrix te geven? | ||
+ | Misschien nog concreter: hoe doet ge die convolutie ofzo? 2D zie ik da ni in? Verschuiven? spiegelen? .. | ||
+ | |||
+ | Dit is wa ik er van begijp. Ten eerste, die matrix, geen flauw idee hoe ge met convoluties van een 2x2 naar een 3x3 matrix geraakt, maar, ge kunt hem wel makkelijk omzetten naar H(z), zoals ook in de oplossing staat. Elke rij en kolom buiten plaats (0,0) is gewoon een vertraging extra, dus voor de 1e rij is de 1e kolom het huidig element <math>z_1</math> (= 1), 2e kolom is vorig element <math>z_1</math> (= <math>z^{-1}</math>), enz. Plaats (1, 1) bv is dan vorig element <math>z_1</math> en vorig element <math>z_2</math> = <math>z_1^{-1}</math> * <math>z_2^{-1}</math>. Op die manier zet ge dat dus om naar H(<math>z_1, z_2</math>). Nu weet ge dat een convolutie van h(u, v) met zichzelf gelijk is aan de vermenigvuldiging van H(x, y) met zichzelf, dus kwadrateer H(<math>z_1, z_2</math>) gewoon en zet het vervolgens terug om naar een matrix volgens de omgekeerde manier dat ge van de matrix naar de H(z) gaat. | ||
+ | |||
+ | Is dat een deftig antwoord of begrijp ik uw vraag niet goed en zit ik hier maar schrale dingen neer te schrijven? Alleszins, als hij zo'n vraag vraagt, moet ge het dus nie "snappen", ge kunt het gewoon makkelijk uitrekenen door om te zetten naar H(z) en terug te converteren. | ||
+ | |||
+ | * oef 6.7: ditto --> mss dat ik dees snap als iemand 6.6 uitlegt. | ||
+ | |||
+ | Da's hier weer hetzelfde, ge kunt het middelste element bekijken als hetgeen uitgemiddeld wordt, er moet dus sowieso vertraging op uw output zitten, want anders is uw systeem niet causaal, aangezien ge de waarde van de volgende sample moet weten (3e kolom & 3e rij). | ||
+ | |||
+ | Hm, verder vind ik het een beetje lastig om uit te leggen. K snap het voor 20 sec en dan is 't weer weg, dan komt het weer terug, enz. Als iemand hier iets deftig voor kan neerschrijven, ga uw gang, we hebben nog uren tijd tot 9u morgenvroeg ;). | ||
==Examenvragen== | ==Examenvragen== | ||
Line 21: | Line 101: | ||
* "een niet-gehele wijziging van bemonsteringsfrequentie?". Zou m daar genoegen nemen met een decimator en een interpolator met een gedeelde LDF, of moet ge daar de hele polyfase uitwerking geven? | * "een niet-gehele wijziging van bemonsteringsfrequentie?". Zou m daar genoegen nemen met een decimator en een interpolator met een gedeelde LDF, of moet ge daar de hele polyfase uitwerking geven? | ||
- | * "schets ook het fasespectrum.". Het amplitudespectrum schetsen kan ik, dat hebben we in de oz gedaan, maar van fasespectra weet ik echt niks vanaf. En toch duikt dat plots in examenvragen op. Iemand een idee hoe ge dat doet? | + | Volgens mij is het daarbij (en bij de meeste vragen die em stelt) wel voldoende om decimator, interpolator te geven, maar gade pas max krijgen als ge ook polyfase geeft - Jonas |
+ | |||
+ | * "schets ook het fasespectrum.". Het amplitudespectrum schetsen kan ik, dat hebben we in de oz gedaan, maar van fasespectra weet ik echt niks vanaf. En toch duikt dat plots in examenvragen op. Iemand een idee hoe ge dat doet? (tis trouwens niet zoals in systeemtheorie, gewoon u fasesprongen van 90 graden optellen, dat werkt enkel bij continue systemen) | ||
+ | |||
+ | Als het een lineaire fase filter is, ist gewoon rechte lijn met fasesprong van pi op de nulpunten. Int algemeen geval nog steeds geen idee. | ||
+ | |||
+ | * Leg uit hoe bij A/D en D/A conversie de eisen voor de gebruikte analoge filters kunnen verzwakt worden door de gepaste digitale technieken aan te wenden. ?? | ||
+ | |||
+ | De hele uitleg p176-177 | ||
+ | |||
+ | * Er zijn een paar examenvragen met variaties op 'voor welke L is <math>L^k*h[k]*u[k]</math> stabiel als H(z) onstabiel is'. Intiutief zou ik iets zeggen als L < 1/|verste pool|, maar hoe rekent ge zoiets echt uit? | ||
+ | |||
+ | Ik probeer maar: Z-transformatie is SUM(x[k]*z^-k) dus ge neemt uw L bij in z-macht en ziet zo da ge overal in overdrachtsfunctie z kunt vervangen door z/L. Hier prutst ge dan wss wa mee om te zorgen dat polen binnen eenheidscirkel zitten wat intuïtief idd zoiets als die 1/pool oplevert :) | ||
+ | |||
+ | * Van CFT naar (E)DFT: hoe doet ge da het best? | ||
+ | |||
+ | de uitleg van pagina 29-31 met die tekeningen bij | ||
+ | |||
+ | * VTK examenvraag vorig jaar, H(z) = (z-2)(z-3)/6(z-1/2)(z-1/3) --> bij antwoorden staat dat dit een lineaire fase filter is. de nulpunten zijn echter z =2 en z = 3, in een LFF zou er dan toch ook een nulpunt 1/2 en 1/3 moeten zijn? en geen polen? (buiten in oorsprong) | ||
+ | Hierbij aanvullend: stel dat deze voorwaarden wel voldaan zijn, hoe ben je dan zeker dat het ook een LFF is? (maw, wat zijn de voldoende voorwaarden voor een LFF) | ||
+ | |||
+ | |||
+ | Ik denk dat het idd geen LFF is om aangehaalde reden. Je kan de overdrachtsfunctie omzetten in standaardvorm A(z)*e^j*Phi(omega) en zo de fase bepalen. | ||
+ | |||
+ | Volgens mij heeft ie het antwoord op lineaire fase filter en minimum fase filter omgewisseld. | ||
+ | |||
+ | * Ergens een vraag: 3. Oefening. 12 punts EDFT van een reële reeks x[k]. X[0] tot X[6] | ||
+ | gegeven, gevraagd: x[0], x[6], som(x[k]), som(e^(j*2*pi/3)*x[k]), | ||
+ | som(abs(x[k]^2)). Zonder eerst IEDFT te berekenen natuurlijk (anders was | ||
+ | 't maar een beetje dom telwerk...). '''Hoe doet ge het dan wél, zonder IEDFT?''' | ||
==Andere== | ==Andere== | ||
+ | Dees was ik al vergeten: | ||
+ | |||
+ | Beste studenten, | ||
+ | |||
+ | na het vragenuurtje van dsp1 waren er nog twee vragen niet geheel beantwoord. | ||
+ | Ik geef hieronder per email een antwoord, sorry voor de vertraging: | ||
+ | |||
+ | (1) over lineaire fase filters: waarom leidt de opgegeven ligging van de | ||
+ | nulpunten inderdaad tot een lineaire fase: | ||
+ | |||
+ | je moet kijken naar de H(z) die uit deze ligging volgt, en dan zul je | ||
+ | zien dat die symmetrie of antisymmetrie vertoont, en volgens de uitgewerkte | ||
+ | gevallen in de cursustekst leidt dit dan inderdaad tot een lineaire fase. | ||
+ | Je kan het ook nagaan met geometrie en goniometrische formules, en dan | ||
+ | blijkt dat ook te kloppen, maar dat is een veel langere weg. | ||
+ | |||
+ | bv nulpunt op 1 geeft z-1 -> antisymmetrisch | ||
+ | bv nulpunten op a en 1/a geeft (z-a)(z-1/a) = z^2 -(a+1/a)z + 1 | ||
+ | -> antisymmetrisch | ||
+ | enz | ||
+ | |||
+ | (2) bij bemonsteren van banddoorlaatsignalen: waarom levert de n-de | ||
+ | herhaling van de basisband een bijdrage op onmiddellijk rechts van | ||
+ | de originele positieve frequentieband? | ||
+ | |||
+ | Dit is enigszins moeilijk om in woorden uit te leggen, maar ik zal het | ||
+ | proberen: | ||
+ | stel dat je als bemonsteringsfrequentie zou nemen f_s = f_h / n | ||
+ | (voor de definities van deze symbolen: zie cursustekst), | ||
+ | dan zou voor 1*f_s, onmiddellijk rechts van zowel de negatieve als | ||
+ | de positieve oorspronkelijke bijdrage (A en B respectievelijk hieronder | ||
+ | links), een herhaling hiervan verschijnen (rechter figuur) | ||
+ | (ik hoop dat deze figuren goed doorkomen; je bekijkt dit best | ||
+ | met een font met vaste breedte zoals courier): | ||
+ | |||
+ | ^ ^ | ||
+ | | | | ||
+ | A | B AA | BB | ||
+ | --------------------> --------------------> | ||
+ | |||
+ | Maar dat is uiteraard niet het ganse spectrum want je moet ook | ||
+ | 2*f_s, 3*f_s, enz tot in het oneindige, erbij zetten. | ||
+ | Maar vanaf een bepaald veelvoud loopt het fout want | ||
+ | dan gaat een A overlappen met een B (hieronder is de situatie getekend | ||
+ | tot 10*f_s en vanaf 11*f_s zou het fout lopen). Ook | ||
+ | bij negatieve veelvouden van f_s krijg je overlaps (niet getekend) | ||
+ | |||
+ | ^ | ||
+ | | | ||
+ | AAAAAA|AAAAABBBBBBBB | ||
+ | ------------------------------> | ||
+ | |||
+ | Het is dus duidelijk dat de keuze f_s = f_h / n niet goed is. Als | ||
+ | je f_s = 2 f_h /n zou nemen, zou je in de bovenstaande redenering | ||
+ | voldoende "gaten" laten waardoor overlap wordt vermeden: | ||
+ | |||
+ | ^ | ||
+ | | | ||
+ | A A A |A A AB B B B B B | ||
+ | --------------------------> | ||
+ | |||
+ | Bovenstaande schets geeft de herhalingen weer t/m 5*f_s, maar laat ook | ||
+ | zien dat verdere herhalingen geen problemen opleveren (en er zijn ook | ||
+ | geen problemen voor de negatieve veelvouden van f_s). | ||
+ | Nu was in dit geval de ruimte tussen A en B 10 "lege hokjes", waarvan | ||
+ | er 5 (de helft) opgevuld worden met A, en ook 5 met B (niet getekend, | ||
+ | voor negatieve veelvouden van f_s). Het ganse originele spectrum, | ||
+ | A en B inbegrepen, neemt 12 hokjes in beslag. In het algemeen kan je in | ||
+ | de ruimte tussen A en B (overeenkomend met 2*(n-1) hokjes, zie de cursus | ||
+ | voor de definitie van n) dus n-1 bijdragen A en n-1 bijdragen B plaatsen. | ||
+ | Het (n-1)de veelvoud van f_s levert dus een bijdrage A op, onmiddellijk | ||
+ | links van de originele B, en het n-de veelvoud een bijdrage onmiddellijk | ||
+ | rechts ervan. | ||
+ | Deze uitleg gaat ervan uit dat alles netjes past en dat er geen | ||
+ | overblijvende lege gebieden zijn, maar je kan de uitleg ook doortrekken | ||
+ | naar die gevallen en ook daar kom je tot hetzelfde besluit. | ||
+ | |||
+ | Ik hoop dat deze antwoorden verder verduidelijking geven. | ||
+ | |||
+ | Met vriendelijke groeten, | ||
+ | |||
+ | Patrick Wambacq | ||
+ | |||
+ | ==Afkortingen== | ||
+ | |||
+ | BFH - BFL: Bemonsteringsfrequentieverhoger, -verlager | ||
+ | |||
+ | FIR - IIR: (in)finite impulse response | ||
+ | |||
+ | NRDF -RDF: (niet) recursief discreet filter | ||
+ | |||
+ | LFF: lineaire fase filter | ||
+ | |||
+ | LTI: lineair tijdsinvariant (systeem) |
Current revision as of 21:59, 19 June 2007
Afspraken:
Lees, voor ge een vraag stelt, is wat de andere mensen gevraagd hebben. Zo zit ge niet met 2x dezelfde vraag. Bekijk ook de oplossing van toledo is.
Stel u vragen concreet. Dus niet "leg is heel oefening x uit", maar begin dr zelf aan, kijk wat er niet lukt, en vraag dan concreet wat ge niet snapt.
Als ge iets bijschrijft bij een vraag waar al op is geantwoord kunt ge dat best met een alinea tussen doen (das dus twee keer enteren). Anders merkt er niemand dat er iets veranderd is en lezen ze derover.
Tim
Contents |
[edit] Cursus
- Volgens mij staat er een fout in het opstellen van het codeboek van vectorkwantisatie, en moet D(-1) oneindig zijn initieel.
Nee, er wordt bedoeld dat wanneer het verschil tussen 2 opeenvolgende gemiddelde afwijkingen D(k) relatief gezien kleiner is dan Failed to parse (Can't write to or create math temp directory): \\epsilon , men dan moet stoppen. Bij k = 0 geeft dit dus 1, en in volgende stappen wordt dit telkens kleiner en zal men naar 0 convergeren. Men kan Failed to parse (Can't write to or create math temp directory): \\epsilon
dus best iets groter dan 0 nemen.
BTW: op toledo bij course documents staat een pdfke over het LBG algoritme. als ge op toledo ingelogd zijt Misschien is de moeite waard. Allen een schietgebedje voor vraag1: vectorkwantisatie :D
Hoe komen ze aan de distortie van die LBG?
=> Nie da het belangrijk is, maar wrs gewoon de gemiddelde fout tussen codevectoren en trainingsvectoren.
- Pariteitseigenschap bij lineaire fase filters: ze zeggen daar, buiten dat tabelleke, niks meer van die fasesprong op 0 of op Failed to parse (Can't write to or create math temp directory): \\pi
. Er wordt vanalles afgeleid voor (anti)symmetrische responsies met L even of oneven, maar geen conclusies ivm die fasesprongen. Iemand n idee hoe ge dat dan afleidt? Er is blijkbaar een verband tussen een fasesprong en een nulpunt van de frequentieresponsie (nulpunt = fasesprong) zoals te zien op figuur 5.9, maar waarom dit is, weet ik ook niet.
pagina 109: polen en nulpunten die op de eenheidscirkel liggen (dus polen en nulpunten van de TRANSFERfunctie <- systeemfunctie is niet enkel eenheidscirkel) geven aanleiding tot een fasesprong van Failed to parse (Can't write to or create math temp directory): \\Delta\\phi = \\pi .
- Nog iets over die pariteit: bij de even functies staat er steeds Failed to parse (Can't write to or create math temp directory): cos(\\theta(i-1/2))
. Waar komt die -1/2 vandaan? => heb het eens uitgeschreven met een L=6 en dan komt het zo uit.. Hopelijk is het leesbaar: pariteit
=> ge kunt het ook eenvoudig beredeneren, hier een figuurke: figuur 5.9
- op p182 staat beneden zo iets over BFH en BFL's dat je altijd rationale functies van z of z^-1 moet gebruiken, maar wat bedoelen ze hiermee want in het voorbeeld waar ze dan de onjuistheid van aantonen gebruiken ze toch nog altijd enkel rationele functies? Of gaat het erom dat als 'grondtal' niet z maar z^-1/2 gebruikt wordt in de eerste stap?
=> Ik denk dat er alleen gehele machten gebruikt mogen worden. Wortels zijn niet echt rationeel zeker?
Ge moogt mss wel wortels van z gebruiken voor theoretische bewijzen, maar in systemen is dit niet te realiseren. Failed to parse (Can't write to or create math temp directory): z^{-1}
komt overeen met een tijdsvertraging. Failed to parse (Can't write to or create math temp directory): z^{-1/2} zou dan een halve tijdsvertraging zijn, wat niet realiseerbaar is. Maar theoretisch een systeem opsplitsen in wortels, en dan weer samevoegen zodat ge op het einde terug een realiseerbaar systeem hebt (met gehele machten) krijgt mag wel denk ik.
- op p. 114 staat da LFF's FIR's zijn en daarom geen polen buiten de oorsprong hebben, hoe komt da?
FIR's hebben een diff vgl vd vorm y[k] = x[k] + a*x[k-1] + b*x[k-2] + ... Als ge dat omzet naar een systeemfunctie (z-transformatie naar H(z)) zult ge zien dat die geen polen buiten de oorsprong heeft.
Das ook logisch, want een FIR heeft geen uitstervingseffect (als ge ff geen ingang meer aanlegt dat de uitgang traag daalt, of zelfs stijgt als het onstabiel is), veroorzaakt door terugkoppeling. De grootte van dat effect is te zijn door de amplitude van de polen, 0 bij FIR's.
- Wat is de snelste manier om een eindige 2D convolutie op 2 matrixen uit te voeren? In een van de oefeningen wordt dit gedaan voor een 2x2 matrix met enkel "0.25" als alle vier de elementen. Maar om een of ander reden zie ik niet meteen hoe je aan die geraakt.
Eén van de 2 matrices spiegelen rond het (0,0) element en dan beide matrices elkaar doen overlappen overlappen, beginnend met het (0,0) element van beide matrices en dan een scalair product nemen van de overlappende elementen, en dan heb ge een element uit de convolutiematrix. Mss ist nie zo begrijpbaar zonder figuurke ;)
[edit] Oefenzittingen
- oef 2.3: wat zijn convolutiemaskers? komt dat overeen met de coefficienten van de impulsresponsie (in frequentiedomein)?
convolutiemasker = h[k]. Het zegt wat ge met u orgineel signaal moet convolueren om u doelsignaal te krijgen. Als ge daar een systeem van maakt is dat hetzelfde als de impulsresponsie.
impulsresonsie is enkel in tijdsdomein ... Maar ik denk dat ge H(f) bedoelt? Das dan gewoon de DFT van h[k], zoals in de oplossing van die oef wordt uitgelegd ..
- oef 2.4: deel c snap ik niet
p17 onderaan: n-de afgeleide van tijdsfunctie = maal Failed to parse (Can't write to or create math temp directory): (j*2*\\pi*f)^n
van de fourier transformatie. Dat kunt ge gewoon als transferfunctie beschouwen. De amplitude daarvan is dan Failed to parse (Can't write to or create math temp directory): (2*\\pi*f)^n
, dus een rechte met helling Failed to parse (Can't write to or create math temp directory): 2*\\pi
voor de eerste afgeleide. Dat kunt ge dan vergelijken met u benadering.
=> Klopt die figuur in de oplossingen eigl? Zogezegd raakt Failed to parse (Can't write to or create math temp directory): 2 \\pi f
aan Failed to parse (Can't write to or create math temp directory): 2 sin(2 \\pi f)
, maar 2*sin heeft toch in het begin ne rico die dubbel zo steil is?
=> Ah IC, de rico's waren bij mij gewoon ni afgeprint daarmee dat het er nogal onvergelijkend uitzag.
- oef 4.4: hanning: voor 30dB lees ik daar toch eerder iets van bijna 1/NT af??
Alles boven een frequentie 2/NT wordt 30 dB verzwakt bij Hanning, dus een bandbreedte van 4/NT. Moest de eerste zijlob bvb op 20dB liggen, zou ge die niet op het volgend spraakspectrum mogen leggen, en zou de eerste lob nog binnen de bandbreedte van het spraaksignaal dat ge wilt wegfilteren (Failed to parse (Can't write to or create math temp directory): B_T ) moeten liggen, wat meer punten zou betekenen.
- Oef 5.2: Is er ook een manier om te weten welke amplitude die dingen ongeveer hebben(bv of een NUL tot aan nul raakt (zoals in d) of niet).
Het principe is dat ge de eenheidscirkel in de opgaves afgaat met stijgende hoeken. Een pool in de buurt zal u amplitude doen stijgen, en hoe dichter die pool bij de eenheidscirkel, hoe meer het stijgt. Een nulpunt doet het dalen, en als het nulpunt op de eenheidscirkel zelf ligt zal de amplitude nul zijn. Meervoudige polen en nulpunten hebben een sterker effect dan enkelvoudige (hoe meer hoe sterker). Als ge een lijn trekt door n pool zal de hoek van die lijn int amplitudespectrum een lokaal maximum zijn, en omgekeerd voor nulpunt. Ge moet gewoon is draaien rond u eenheidscirkel bij die voorbeeldjes en zien wat u amplitudespectrum doet, dan hebt get snel door.
=> wat betekent dan eigl een pool of nulpunt in de oorsprong? welk effect heeft dit op de amplitude?
als er niks anders ligt op een bepaalde hoek heeft die effect. bij a bvb zorgt die pool voor verhogingen op andere plaatsen dan de nulpunten. Bij b is het overal laag door da nulpunt int midden behalve als er een pool langskomt. Bij c net andersom en door het 8 voudig zijn (dus meer effect) ligt alles hoger dan in a en b. Zoiets :)
Op p109 staat dezelfde uitleg adhv die figuur (figuur 5.6 en formule 5.13).
- Oef 5.5: Als de impulsresponsie symmetrisch is, heeft men een LFF. Waarom?
p114, eerste zin. 'men kan aantonen dat ...' Gij moet het dus niet kunnen aantonen.
- Oef 6.6: Wat is da van die systeemfuncties, hoe maakt ge da van da convolutiemasker?
Systeemfunctie = H(z), transferfunctie = H(Failed to parse (Can't write to or create math temp directory): \\omega ). De systeemfunctie is dus de z-transformatie van het convolutiemasker. Omdat ge het convolutie deze keer 2x moet toepassen moet ge het kwadrateren (serie -> maal elkaar).
- oef 6.6: da's weer met convolutiemaskers, ik snap er eigenljk niks van..
Concreet snap ik niks. :P Ik bedoel daarmee, vanwaar komen alle oplossingen? En op het einde: hoort een 3x1 X een 1x3 geen 3x3 matrix te geven? Misschien nog concreter: hoe doet ge die convolutie ofzo? 2D zie ik da ni in? Verschuiven? spiegelen? ..
Dit is wa ik er van begijp. Ten eerste, die matrix, geen flauw idee hoe ge met convoluties van een 2x2 naar een 3x3 matrix geraakt, maar, ge kunt hem wel makkelijk omzetten naar H(z), zoals ook in de oplossing staat. Elke rij en kolom buiten plaats (0,0) is gewoon een vertraging extra, dus voor de 1e rij is de 1e kolom het huidig element Failed to parse (Can't write to or create math temp directory): z_1
(= 1), 2e kolom is vorig element Failed to parse (Can't write to or create math temp directory): z_1 (= Failed to parse (Can't write to or create math temp directory): z^{-1}
), enz. Plaats (1, 1) bv is dan vorig element Failed to parse (Can't write to or create math temp directory): z_1
en vorig element Failed to parse (Can't write to or create math temp directory): z_2 = Failed to parse (Can't write to or create math temp directory): z_1^{-1} * Failed to parse (Can't write to or create math temp directory): z_2^{-1}
. Op die manier zet ge dat dus om naar H(Failed to parse (Can't write to or create math temp directory): z_1, z_2 ). Nu weet ge dat een convolutie van h(u, v) met zichzelf gelijk is aan de vermenigvuldiging van H(x, y) met zichzelf, dus kwadrateer H(Failed to parse (Can't write to or create math temp directory): z_1, z_2 ) gewoon en zet het vervolgens terug om naar een matrix volgens de omgekeerde manier dat ge van de matrix naar de H(z) gaat.
Is dat een deftig antwoord of begrijp ik uw vraag niet goed en zit ik hier maar schrale dingen neer te schrijven? Alleszins, als hij zo'n vraag vraagt, moet ge het dus nie "snappen", ge kunt het gewoon makkelijk uitrekenen door om te zetten naar H(z) en terug te converteren.
- oef 6.7: ditto --> mss dat ik dees snap als iemand 6.6 uitlegt.
Da's hier weer hetzelfde, ge kunt het middelste element bekijken als hetgeen uitgemiddeld wordt, er moet dus sowieso vertraging op uw output zitten, want anders is uw systeem niet causaal, aangezien ge de waarde van de volgende sample moet weten (3e kolom & 3e rij).
Hm, verder vind ik het een beetje lastig om uit te leggen. K snap het voor 20 sec en dan is 't weer weg, dan komt het weer terug, enz. Als iemand hier iets deftig voor kan neerschrijven, ga uw gang, we hebben nog uren tijd tot 9u morgenvroeg ;).
[edit] Examenvragen
- "een niet-gehele wijziging van bemonsteringsfrequentie?". Zou m daar genoegen nemen met een decimator en een interpolator met een gedeelde LDF, of moet ge daar de hele polyfase uitwerking geven?
Volgens mij is het daarbij (en bij de meeste vragen die em stelt) wel voldoende om decimator, interpolator te geven, maar gade pas max krijgen als ge ook polyfase geeft - Jonas
- "schets ook het fasespectrum.". Het amplitudespectrum schetsen kan ik, dat hebben we in de oz gedaan, maar van fasespectra weet ik echt niks vanaf. En toch duikt dat plots in examenvragen op. Iemand een idee hoe ge dat doet? (tis trouwens niet zoals in systeemtheorie, gewoon u fasesprongen van 90 graden optellen, dat werkt enkel bij continue systemen)
Als het een lineaire fase filter is, ist gewoon rechte lijn met fasesprong van pi op de nulpunten. Int algemeen geval nog steeds geen idee.
- Leg uit hoe bij A/D en D/A conversie de eisen voor de gebruikte analoge filters kunnen verzwakt worden door de gepaste digitale technieken aan te wenden. ??
De hele uitleg p176-177
- Er zijn een paar examenvragen met variaties op 'voor welke L is Failed to parse (Can't write to or create math temp directory): L^k*h[k]*u[k]
stabiel als H(z) onstabiel is'. Intiutief zou ik iets zeggen als L < 1/|verste pool|, maar hoe rekent ge zoiets echt uit?
Ik probeer maar: Z-transformatie is SUM(x[k]*z^-k) dus ge neemt uw L bij in z-macht en ziet zo da ge overal in overdrachtsfunctie z kunt vervangen door z/L. Hier prutst ge dan wss wa mee om te zorgen dat polen binnen eenheidscirkel zitten wat intuïtief idd zoiets als die 1/pool oplevert :)
- Van CFT naar (E)DFT: hoe doet ge da het best?
de uitleg van pagina 29-31 met die tekeningen bij
- VTK examenvraag vorig jaar, H(z) = (z-2)(z-3)/6(z-1/2)(z-1/3) --> bij antwoorden staat dat dit een lineaire fase filter is. de nulpunten zijn echter z =2 en z = 3, in een LFF zou er dan toch ook een nulpunt 1/2 en 1/3 moeten zijn? en geen polen? (buiten in oorsprong)
Hierbij aanvullend: stel dat deze voorwaarden wel voldaan zijn, hoe ben je dan zeker dat het ook een LFF is? (maw, wat zijn de voldoende voorwaarden voor een LFF)
Ik denk dat het idd geen LFF is om aangehaalde reden. Je kan de overdrachtsfunctie omzetten in standaardvorm A(z)*e^j*Phi(omega) en zo de fase bepalen.
Volgens mij heeft ie het antwoord op lineaire fase filter en minimum fase filter omgewisseld.
- Ergens een vraag: 3. Oefening. 12 punts EDFT van een reële reeks x[k]. X[0] tot X[6]
gegeven, gevraagd: x[0], x[6], som(x[k]), som(e^(j*2*pi/3)*x[k]), som(abs(x[k]^2)). Zonder eerst IEDFT te berekenen natuurlijk (anders was 't maar een beetje dom telwerk...). Hoe doet ge het dan wél, zonder IEDFT?
[edit] Andere
Dees was ik al vergeten:
Beste studenten,
na het vragenuurtje van dsp1 waren er nog twee vragen niet geheel beantwoord. Ik geef hieronder per email een antwoord, sorry voor de vertraging:
(1) over lineaire fase filters: waarom leidt de opgegeven ligging van de nulpunten inderdaad tot een lineaire fase:
je moet kijken naar de H(z) die uit deze ligging volgt, en dan zul je zien dat die symmetrie of antisymmetrie vertoont, en volgens de uitgewerkte gevallen in de cursustekst leidt dit dan inderdaad tot een lineaire fase. Je kan het ook nagaan met geometrie en goniometrische formules, en dan blijkt dat ook te kloppen, maar dat is een veel langere weg.
bv nulpunt op 1 geeft z-1 -> antisymmetrisch bv nulpunten op a en 1/a geeft (z-a)(z-1/a) = z^2 -(a+1/a)z + 1
-> antisymmetrisch
enz
(2) bij bemonsteren van banddoorlaatsignalen: waarom levert de n-de herhaling van de basisband een bijdrage op onmiddellijk rechts van de originele positieve frequentieband?
Dit is enigszins moeilijk om in woorden uit te leggen, maar ik zal het proberen: stel dat je als bemonsteringsfrequentie zou nemen f_s = f_h / n (voor de definities van deze symbolen: zie cursustekst), dan zou voor 1*f_s, onmiddellijk rechts van zowel de negatieve als de positieve oorspronkelijke bijdrage (A en B respectievelijk hieronder links), een herhaling hiervan verschijnen (rechter figuur) (ik hoop dat deze figuren goed doorkomen; je bekijkt dit best met een font met vaste breedte zoals courier):
^ ^ | | A | B AA | BB --------------------> -------------------->
Maar dat is uiteraard niet het ganse spectrum want je moet ook 2*f_s, 3*f_s, enz tot in het oneindige, erbij zetten. Maar vanaf een bepaald veelvoud loopt het fout want dan gaat een A overlappen met een B (hieronder is de situatie getekend tot 10*f_s en vanaf 11*f_s zou het fout lopen). Ook bij negatieve veelvouden van f_s krijg je overlaps (niet getekend)
^ | AAAAAA|AAAAABBBBBBBB ------------------------------>
Het is dus duidelijk dat de keuze f_s = f_h / n niet goed is. Als je f_s = 2 f_h /n zou nemen, zou je in de bovenstaande redenering voldoende "gaten" laten waardoor overlap wordt vermeden:
^ | A A A |A A AB B B B B B -------------------------->
Bovenstaande schets geeft de herhalingen weer t/m 5*f_s, maar laat ook zien dat verdere herhalingen geen problemen opleveren (en er zijn ook geen problemen voor de negatieve veelvouden van f_s). Nu was in dit geval de ruimte tussen A en B 10 "lege hokjes", waarvan er 5 (de helft) opgevuld worden met A, en ook 5 met B (niet getekend, voor negatieve veelvouden van f_s). Het ganse originele spectrum, A en B inbegrepen, neemt 12 hokjes in beslag. In het algemeen kan je in de ruimte tussen A en B (overeenkomend met 2*(n-1) hokjes, zie de cursus voor de definitie van n) dus n-1 bijdragen A en n-1 bijdragen B plaatsen. Het (n-1)de veelvoud van f_s levert dus een bijdrage A op, onmiddellijk links van de originele B, en het n-de veelvoud een bijdrage onmiddellijk rechts ervan. Deze uitleg gaat ervan uit dat alles netjes past en dat er geen overblijvende lege gebieden zijn, maar je kan de uitleg ook doortrekken naar die gevallen en ook daar kom je tot hetzelfde besluit.
Ik hoop dat deze antwoorden verder verduidelijking geven.
Met vriendelijke groeten,
Patrick Wambacq
[edit] Afkortingen
BFH - BFL: Bemonsteringsfrequentieverhoger, -verlager
FIR - IIR: (in)finite impulse response
NRDF -RDF: (niet) recursief discreet filter
LFF: lineaire fase filter
LTI: lineair tijdsinvariant (systeem)