Ifeachor & Jervis (2002): Digital Signal Processing - A Practical Approach - 2. ed. Pearson Prentice Hall.

Like dokumenter
4. desember Antall vedleggsider: 2

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

Hjelpemidler: D Ingen trykte eller håndskrevne hjelpemidler tillatt. Bestemt, enkel kalkulator tillatt.

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMEN STE 6219 Digital signalbehandling

Hjelpemidler: D Ingen trykte eller håndskrevne hjelpemidler tillatt. Bestemt, enkel kalkulator tillatt.

UNIVERSITETET I OSLO

STE 6146 Digital signalbehandling. Løsningsforslag til eksamen avholdt

består av 7 sider inklusiv denne forsiden og vedlegg. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene.

LØSNINGSFORSLAG TIL SIGNALBEHANDLING 1 JUNI 2010

Eksamensoppgaven: Hele oppgavesettet består av 8 oppgaver. Hver oppgave har en %-angivelse som angir hvor mye den teller ved sensurering.

Høgskoleni østfold EKSAMEN. Oppgavesettet består av 8 sider inklusiv denne forsiden og vedlegg.

STE 6219 Digital signalbehandling Løsningsforslag

Transformanalyse. Jan Egil Kirkebø. Universitetet i Oslo 17./23. september 2019

LØSNINGSFORSLAG TIL EKSAMEN STE 6219 Digital signalbehandling

STE6146 Signalbehandling .RQWLQXHUOLJH ILOWUH

Tittel: Design av FSK-demodulator. Forfattere: Torstein Mellingen Langan. Versjon: 1.0 Dato: Innledning 1

UNIVERSITETET I OSLO

Fasit til midtveiseksamen

IIR filterdesign Sverre Holm

Sampling ved Nyquist-raten

EKSAMEN. Informasjon om eksamen. Emnekode og -navn: ITD13012 Datateknikk. Dato og tid: timer. Fagansvarlig: Robert Roppestad


Analyseøving 8 - løsningsforslag

LØSNINGSFORSLAG TIL EKSAMEN STE 6219 Digital signalbehandling

Del 4 Noen spesielle C-elementer

Emnenavn: Datateknikk. Eksamenstid: 3 timer. Faglærere: Robert Roppestad. Hele oppgavesettet består av 8 oppgaver, samt 1 vedlegg.

01-Passivt Chebychevfilter (H00-4)

IN 147 Program og maskinvare

UNIVERSITETET I OSLO

IIR filterdesign Sverre Holm

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

pdf

Uke 12: FIR-filter design

Fasit, Eksamen. INF3440/4440 Signalbehandling 9. desember c 0 + c 1z 1 + c 2z 2. G(z) = 1/d 0 + d 1z 1 + d 2z 2

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

01 Laplace og Z-transformasjon av en forsinket firkant puls.

303d Signalmodellering: Gated sinus a) Finn tidsfunksjonen y(t) b) Utfør en Laplace transformasjon og finn Y(s)

MAT-INF 2360: Obligatorisk oppgave 1

Uke 12: FIR-filter design

Fakultet for teknologi, kunst og design Teknologiske fag

Fakultet for teknologi, kunst og design Teknologiske fag

Fakultet for teknologi, kunst og design Teknologiske fag

Uke 4: z-transformasjonen

Bruk av interrupt og Timer i Arduino-program.

UNIVERSITETET I OSLO

Design og utforming av et anti-alias-filter

Fakultet for teknologi, kunst og design Teknologiske fag

Praktiske målinger med oscilloskop og signalgenerator Vi ser på likerettere og frekvensfilter

Løsningsforslag til EKSAMEN

LØSNINGSFORSLAG TIL KONTINUASJONSEKSAMEN STE 6219 Digital signalbehandling

Dagens tema INF2270. Cs preprosessor. Separat kompilering av C funksjoner. C og minnet. Dag Langmyhr,Ifi,UiO: Forelesning 5. februar 2007 Ark 1 av 15

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

Del 1 En oversikt over C-programmering

Fakultet for teknologi, kunst og design Teknologiske fag

Uke 4: z-transformasjonen

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

Uke 4: z-transformasjonen

INF 1040 høsten 2008: Oppgavesett 9 Sampling og kvantisering av lyd (kapittel 11)

Repetisjon: Eksempel. Repetisjon: Aliasing. Oversikt, 26.februar Gitt. Alle signaler. Ettersom. vil alle kontinuerlig-tid signaler.

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

Høgskoleni østfold EKSAMEN. Emnekode: Emne: ITD30005 Industriell IT. Dato: Eksamenstid: kl til kl. 1300

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

EKSAMEN (Del 1, høsten 2015)

UNIVERSITETET I OSLO

Generell informasjon om faget er tilgjengelig fra It s learning.

EKSAMEN. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 11 sider inklusiv vedlegg og denne forsiden.

EKSAMEN (Del 2, våren 2015) Løsningsforslag

Forkunnskapskrav. Hva handler kurset om. Kontaktinformasjon. Kurset er beregnet på en student som kan

Høgskoleni østfold EKSAMEN. Dato: Eksamenstid: kl til kl. 1200

Høgskoleni østfold EKSAMEN. Emnekode: Emne: ITD13012 Datateknikk (deleksamen 1, høstsemesteret) Dato: Eksamenstid: kl til kl.

UNIVERSITETET I OSLO

EKSAMEN Løsningsforslag. med forbehold om bugs :-)

Løsningsforslag til 2. del av Del - EKSAMEN

Generell informasjon om faget er tilgjengelig fra It s learning.

EKSAMEN. Oppgave 1. (26%)

Gruppe: D1A Dato: Tid: Antall oppgavesider: 3 Antall vedleggsider : 0

STE 6219 Digital signalbehandling Løsning til kontinuasjonseksamen

Repetisjon: Sampling. Repetisjon: Diskretisering. Repetisjon: Diskret vs kontinuerlig. Forelesning, 12.februar 2004

UNIVERSITETET I OSLO

Programmering i C++ Løsningsforslag Eksamen høsten 2005

Sampling, kvantisering og lagring av lyd

Løsningsforslag til EKSAMEN

EKSAMEN. Oppgavesettet består av 3 oppgaver. Alle spørsmål på oppgavene skal besvares, og alle spørsmål teller likt til eksamen.

Cs preprosessor. Dagens tema. Betinget kompilering

Emne: IRE12011 / Programmering og mikrokontrollere Lærer: Åge T Johansen

Emnenavn: Industriell IT. Eksamenstid: 4 timer. Faglærer: Robert Roppestad

Løsningsforslag til 2. del av Del - EKSAMEN

c;'1 høgskolen i oslo

EKSAMEN. Emne: Algoritmer og datastrukturer

UNIVERSITETET I OSLO.

Transkript:

Avdeling for Ingeniegfag EKSAMENSOPPGAVE Emne: IRE31613 Signalbehandling Lærer Per Thomas Huth Age Johansen Grupper: Dato: Tid: 13ELE-D, 123LEY 3. desember 2015 09.00 13.00 Antall oppgavesider: 6 Antall vedleggsider: 2 Inklusiv forside. Sensurfrist: 4. Januar 2015 Hjelpemidler: Ifeachor & Jervis (2002): Digital Signal Processing - A Practical Approach - 2. ed. Pearson Prentice Hall. James II. McClellan et al (2003): Signal Processing First.. Pearson Prentice Hall. (Totalt eller kopi av utdrag) Artikler etc.: Overview of Information Theory (chapt. 16) UNIK-kompendium (302) Kalkulator, tegne og skrivesaker. KANDIDATEN MÅ SELV KONTROLLERE AT OPPGAVESETTET ER FULLSTENDIG. Alle deloppgaver teller likt ved bedømming. Side 1

Avdeling for Ingenieirfag Oppgave 1 Figuren under viser prosessen hvor et analogt system digitaliseres for siden å bli behandlet digitalt. Input filter ADC withsarnple and hold x(n)digital(n) processor DAC Output filter y(t) Vi tenker oss at vi har følgende analogt signal: x(t) = sin27t500t+ (1/3) sin2n1500t + (1/5)sin2n2500 t + (1/7)sin2n3500t + (1/9)sin2n4500t [V] Lag en enkel skisse av signalet i tidsplanet og forklar hva slags signal vi har. Tegn frekvensspekteret (frekvensresponsen)i området <-5kflz;5kHz> for det gitte signalet. I frekvensplanet legger vi til komponenten.5[f].skisser signalet i tidsplanet nå. Forklar. Vi skal punktprøve et signal med samme båndbredde som over. I et idealisert tilfelle: Hvilket filter vil du bruke på inngangen og hva blir minimum punktprøvingsfrekvens. Istedenfor det ideatiserte filteret benyttes et filter med Butterworth karakteristikk: A(f) = Her er n ordenen på filteret. Vi har et 4. ordens filter med en grensefrekvens, f på 5kHz. Punktprøvingsfrekvensen er i utgangspunktet satt til 10kHz. Finn Aliasing feilen ved grensefrekvensen. t) Finn minste punktprøvingsfrekvens som er nødvendig for at signal til aliasing feilnivået skal være mindre enn 10 % ved grensefrekvensen. Finn minste punktprøvingsfrekvens som er nødvendig for at signal til aliasing feilnivået skal være mindre enn kvantiseringsstøyen når vi koder med 8 bit. Vi tenker oss at den digitale prosessen som skal utføres er et LTI system på diskret form som vist i figuren under. Følgende er gitt: h[n] = {0,2,2,0,..}og x[n] = {0,1,1,1,0..}. x[n] h[n] y[n] Finn y[n]. Side 2

Vi bytter system og betrakter i det etterfølgende to LTI filter. Hvilke egenskaper har et LTI system og hva slags type filter er beskrevet i j). Finn h[n] når y[n] = x[n] + x[n 1] + x[n 2] + x[n 3]. Lag en skisse. Finn H(z) ut i fra overstående og p1ottpoler og nullpunkter 1) Vis at z 1 z' Ser nå videre på følgende filter hvor y[n] = 0. 8y[n 1] + 0. 8x[n] + x[n 1]. Finn H(z) Plott poler og nullpunkt for H (Z). 1 Finn H(e-14))og vis at IH(e11701 2 1. Til slutt konstruerer vi et filter. Et lavpassfilter er spesifisert ut i fra følgende i figuren under: Passband grensefrekvens: 2,0 khz. Transisjonsbånd: 0,80 khz. Stoppbandsdempning: > 50dB. Samplingsfrekvens: 10 khz. fp Passband Transition Stopband band Bruk vindusmetoden til å finne koeffisientene i et FIR filter for denne filterspesifikasjonen. Hvilke vindusfunksjoner kjenner du som tilfredsstiller filterets spesifikasjoner. Velg et Hammingvindu i beregningene videre i oppgaven. Definer Hammingvinduet med antall koeffisienter. Finn korrigert cut-off frekvens fc. Beregn de 2 første koeffisientene. Side 3

Høgskolen i Østfold 1RE31613Signalbehandling Avdeling for Ingeniørfag Oppgave 2 a) Et digitalt filter har et Pole/Zero-plott som vist i figur 2A. Alle svarene i denne deloppgaven skal begrunnes. Hva slags filtertype viser figuren (LP, HP, BP, BS)? Er dette et FIR- eller IIR-filter? Hvilken orden har filteret? Er filteret stabilt? b) Samme filter som i deloppgave a). Grovskisser frekvensresponsen (amplitude) til filteret som en funksjon av den digitale vinkelfrekvensen, w. Kun relative amplitudeverdier er viktige. En av polene som er vist ligger plassert i punktet (-0,6464524 + j 0,5901187) i det komplekse planet. For filteret tilsvarer dette en analog frekvens på 8473 Hz. Beregn samplingsfrekvensen (Fs) i dette tilfellet. (Har du dårlig tid til en nøyaktig beregning, kan du gjøre en overslagsberegning.) 1 Pole/Zero Plot 0.51- Part Imaginary -0.5H Figur 2A -1.5-1 -0.5 0 0.5 1 1.5 Real Part c) I vedlegg 1 er det listet 3 programfiler som utgjør kjernen i et IIR-filterprogram som har blitt benyttet i en laboratorieøvelse. Filene iir.h og iir.cpp danner selve filteret som er realisert som en CPP-klasse. IIR-filteret er strukturert som en kaskadekobling av 2. ordens seksjoner. Side 4

Tegn blokkskjemaet for en 2. ordens filterseksjon slik den er beskrevet i programmet. Før på symboler / variabelnavn fra programmet i blokkskjemaet. d) I funksjonen (metoden) filter(), finnes en for-løkke. Hva er hensikten til denne, dvs, hva representerer for-løkka i forhold til den aktuelle, totale filterstrukturen. Hvorfra hentes koeffisientverdier og andre data som bestemmer filteret, og hvor skjer dette i programmet? e) Ved å programmere en digital testutgang AV og PÅ inne i interruptrutina, kan man få innsikt i hvor mye tid som går med til de enkelte delene av denne. Tidene kan måles med oscilloskop. Programlista nedenfor viser et eksempel på hvordan dette kan gjøres, og figur 2B viser det målsatte resultatet ut fra at samplingsfrekvensen DigitalOut TEST(PA_O); extern "C" void i2s_dma_isr(void) static float sampleoutl = 0.0f; static float sampleoutr = 0.0f; av en skopmåling med proben festet på TEST-utgangen. Gå er 46900 Hz, som den har vært i laboratorieforsøkene. TEST = 1; Write output samples, (-1,1) float to 16 bit signed integer dmamemtx[0] = (int16_t)(sampleoutl*32768*volume); dmamemtx[1] = (int16_t)(sampleoutr*32768*volume); Read input samples. 16 bit signed integer to (-1,1) float. float sampleinl = (float)( (int16_t)dmamemrx[0] )/32768.0f; float sampleinr = (float)( (int16_t)dmamemrx[1] )/32768.0f; TEST = 0; TEST = 1; FILTER sampleoutl = iirl.filter(sampleinl); sampleoutr = iirr.filter(sampleinr); TEST = 0; Clear DMA interrupt flag DMA1->LIFCR 1= DMA_LIFCR_CTCIF3; TEST = 1; TEST = 0; Side 5

21.3 ps 100 ns 100 ns 1500 ns 8000 ns 220 ns 4-11, Figur 2B OBS! Det er de målsatte verdiene i figuren som gjelder, ikke de relative lengdene til pulsene. Med det viste måleoppsettet, hvor lang tid går med til de egentlige filteroperasjonene / filteralgoritmene? Hvor lang tid går med til nødvendige, faste operasjoner i interruptrutina som ikke er direkte tilknyttet filteroperasjonene? Hvor mye (i antall nanosekunder) anslår du at man kan øke filteralgoritmen, før programmet bryter sammen. Utførelsen av TEST-instruksjonene tar også tid. Svar også på spørsmålet i forrige punkt, når du har korrigert for denne tiden. f) Gjør en modifisering av programmet slik at du ved hjelp av den blå bryteren på kortet og en ekstra trykkbryter (newbut) kan velge mellom 4 virkemåter for filterprogrammet: bluebut newbut Funksjon 0 0 Bypass signalet sendes utenom filteret 0 1 Mono samme lyd i begge outputkanaler (filtrert) 1 0 Normal filtrering i separate kanaler 1 1 Mute - ingen lyd DigitalIn newbut(pa_1); Reads 0 when pushed OBS! Det er ikke nødvendig å skrive inn hele programmet på nytt, men forklar hvor du setter inn endringene. Side 6

VEDLEGG1 - Tre sentrale programfiler fra laboratorieoppgaver main.cpp: #include "mbed.h" #include "TLV320.h" #include "i2s.h" #include "dma.h" #include "IIR.h" #include "fdacoefs.h" Serial pc(usbtx, USBRX); DigitalIn bluebut(user_button); IirClass iirl(mwspt_nsec, &NL[0], &NUM[0], &DEN[0]); IirClass iirr(mwspt_nsec, &NL[0], &NUM[0], &DEN[0]); Interface NUCLEO-F411RE / TLV320AIC23B audio codec. Current setup: Fs=48000 (/ 46900) Hz, 16 bit samples. Funcion prototypes for void initsystem(void); DMA buffers int32_t dmamemrx[2]; int32_t dmamemtx[2]; Other gloabal variables volatile float volume=1.0f; DMA interrupt extern "c" void i2s_dma_isr(void) { static float sampleoutl = 0.0f; static float sampleoutr = 0.0f; Write output samples, (-1,1) float to 16 bit signed integer dmamemtx[0] = (int16_t)(sampleoutl*32768*volume); dmamemtx[1] = (int16_t)(sampleoutr*32768*volume); Read input samples. 16 bit signed integer to (-1,1) float. float sampleinl = (float)( (int16_t)dmamemrx[0] )/32768.0f; float sampleinr = (float)( (int16_t)dmamemrx[1] )/32768.0f; FILTER sampleoutl = iirl.filter(sampleinl); sampleoutr = iirr.filter(sampleinr); Clear DMA interrupt flag DMA1->LIFCR I= DMA_LIFCR_CTCIF3; } int main() { initsystem(); while(1) ( /* --- LOOP --- */ } } Side 7

iir.h: #ifndef IIR_H #define IIR H #include "m];ed.h" extern Serial pc; class IirClass { private: const float (*a)[3]; const float (*b)[3]; float (*dly)[2]; Peker til tellerpolynom peker til nevnerplynom delay samples for all stages short nsec; antall filterseksjoner const int *nl; public: IirClass(short nsec, const int *nl, const float(*a)[3], const float(*b)[3]); float filter(float input); } ; #endif iir.cpp: #include "IIR.h" IIR The filter accepts unmodified filter coeffients from Matlab FDATOOL exported as C-header files (single precicion). DEN[] -> b[] NUM[] -> a[] IirClass::IirClass(shortnSec, const int*_nl, const float (*_a) [3], const float (*_b) (3) ) nsec nsec; # sections nominator denominator nl = _nl; # filter coefficients in section dly = static_cast <float (*)[2]> (malloc(nsec * 2 * sizeof(float))); if (dly == NULL) { pc.printf("iir Buffer allocation failed!\n"); exit(1); } else { pc.printf("iir Buffer allocation OK!\n"); pc.printf("... Filling buffer with zeros\n"); for (int i = 0; i < nsec; i++) { dly[i][0] = 0.0; dly[i][1] = 0.0; float IirClass::filter(float input) float yn = 0, un; for (int i = 0; i < nsec; i++, input = yn) { if ( nl[i] == 1) { yn = input * a[i] [0]; else { un = input - b[i][1] * dly[i][0] - b[i][2] * dly[i] [1]; yn = a[i][0] * un a[i] [1] * dly[i] [0] + a[i] [2] * dly[i] [1]; dly[i] [1] = dly[i][0]; update delays dly[i] [0] = un; update delays return yn; Side8