Sveučilišni studijski centar za stručne studije Temeljne postavke digitalne obrade zvučnih signala Uvod u digitalnu obradu zvučnih signala Viši predavač Ozren Bilan 2009. CILJ Uvodnog predavanje i VJEŽBE_1: Sažeto, pomodu praktičnih, zanimljivih primjera na predavanju i zadataka na vježbi, primjenom MATLAB-a, Wavelab-a i Adobe Audition, izložiti temeljne ideje i postavke digitalne obrade zvučnih signala. Podrazumijeva se da je student odslušao kolegij Digitalne obrade signala te su mu poznate temelji linearnih vremenski nepromjenjivih sustava i MATLAB alati. Na kraju su pitanja na koja student treba znati odgovoriti. Obrađene temeljne postavke naknadno se razrađuju uz praktične primjere i zadatke. Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala Temeljne postavke digitalne obrade zvučnih signala Cilj: Sažeto, pomodu praktičnih, zanimljivih primjera na predavanju i zadataka na vježbi, primjenom MATLAB-a, Wavelab-a i Adobe Audition, izložiti temeljne ideje i postavke digitalne obrade zvučnih signala. Podrazumijeva se da je student odslušao kolegij Digitalne obrade signala te su mu poznate temelji linearnih vremenski nepromjenjivih sustava i MATLAB alati. Na kraju su pitanja na koja student treba znati odgovoriti. Obrađene temeljne postavke naknadno se razrađuju uz praktične primjere i zadatke. Uvod u digitalnu obradu zvučnih signala Najopdenitije se DSP definira kao obrada diskretnih vremenskih signala. Međutim, ova definicija ne uključuje utjecaj DSP na suvremene tehnologije i mogudnosti korisnika pri obradi bilo kojeg oblika informacije. Pored toga, DSP koristi posebne tipove podataka - signale, pri demu je cilj obrade izdvajanje informacije. Najednostavnijim rječnikom, privlačnost postupaka digitalne obrade signala izvire iz činjenice koja pretvara bilo koji informatičko inžinjerski problem u matematički: ako postoji matematičko rješenje problema, onda ga je mogude rješiti digitalnom obradom signala. Temeljem matematičkog rješenja nastaje programski algoritam – točan i ponovljiv postupak koji se ne ovisi o sklopovlju, uvjetima okoline te se vrlo lako može promjeniti i poboljšati. Štoviše, postupci se mogu mijenjati u realnom vremenu za različite uvjete, a to nije mogude realizirati analognom elektronikom. Skoro sve što se može realizirati analognom elektronikom, može se još bolje napraviti primjenom digitalne obrade signala, a neka rješenja mogu se primijeniti samo digitalnom obradom signala. Filteri, oscilatori pa i pojačala snage mogu se realizirati digitalnom obradom signala zato jer se njihova osnovna funkcionalnost može opisati matematičkim relacijama. Najteži dio je razumijevanje primijenjene matematike za digitalnu obradu. Međutim, u najvedem broju slučajeva složeniji matematički postupci i njihova programska primjena ved su napravljeni u programskim paketima poput MATLAB-a. Bududi da se DSP isključivo sastoji od primijenjene matematike i računalnih algoritama potpuno je neovisna o platformi računala. Digitalna obrada signala primjenom MATLAB-a predstavlja stvarnu DSP, a osobno računalo sa MATLAB-om je stvarni DSP procesor. Na računalu, možemo snimati, pohranjivati i obrađivati zvučne signale, a na izlazu možemo dobiti signal u bilo kojoj rezoluciji, bilo kojem formatu i poslušati ga u najvišoj mogudoj kvaliteti, bez obzira jesmo li digitalnu datoteku ulaznog signala učitali ili programski generirali. Navedena činjenica potpuno je promijenila načine i postupke projektiranja elektroničkih sustava. Pogledajmo kako način formatiranja zvučnog signala mijenja način obrade i pojačanja signala. Analogni sustav: Signal mikrofona pojačamo pretpojačalom i dovodimo na uređaj za analogni zapis. Na izlazu uređaja za analogni zapis signal propuštamo kroz niz uređaja za obradu signala i pretpojačalo te dovodimo na analogno pojačalo koje pobuđuje zvučnike. Svaki uređaj dodaje šum i izobličenja pa su tipične karakteristike ograničene kvalitetom uređaja. Za visoku kvalitetu potrebne su komponente vrlo visoke točnosti ali se određena razina tehničkih karakteristika ne može prijedi. mikrofon pretpojačalo analogni zapis analogna obrada pretpojačalo analogno pojačalo zvučnik analogni signal Verzija 2010 1/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala mikrofon s Delta-Sigma ADC 1-bitni digitalni zapis, digitalna obrada i Delta-Sigma DAC digitalno PWM pojačalo klase D zvučnici digitalni bipolarni 1-bit DSD signal Digitalni sustav: mikrofonu je ugrađen AD pretvarač pa se signal odmah dovodi na uređaj za digitalni zapis i DSP obradu. Svaki AD pretvarač u mikrofonu generira i metapodatke. Izlazni digitalni signal SDM 1-bitnim bipolarnim signalom neposredno pobuđuje digitalno PWM pojačalo klase D koje pobuđuje zvučnike. Diskretni sustav je krajnje jednostavan, rezolucija i odnos signal šum su po želji korisnika iako komponente od kojih je građen ne moraju biti vrhunske točnosti. ASIO4ALL je univerzalni driver za Windows operacijske sustave koji omogudava direktnu reprodukciju digitalnog audio zapisa na razne uređaje. Predstavlja jedan od oblika Kernel strujanja. Karakterizira ga vrlo mala latencija i neovisan je o sklopovlju. To znači da ga možemo koristiti na svim računalima, bez obzira na tip zvučne kartice. Ne služi kao zamjena postojedim pogonskim programima (driverima), ne utječe na njih, te ne utječe na stabilnost računalnog sustava u cjelini. U MATLAB-u biramo Files->Preferences->DSP->ASIO Najčešde se koristi kod audio sustava sa USB DACom, Besplatan je za korištenje, a podržani operacijski sustavi su Win 98SE, ME, 2000, XP, Vista, Win 7 i Win 8. WASAPI - je Microsoftov vlastiti ASIO; pogonskom programu audio uređaja predstavlja sučelje vrlo niske latencije. Ako je WASAPI podešen u Exclusive modu komunicira direktno s zvučnim uređajem. Druge aplikacije tada ne mogu koristiti zvučni uređaj. Ako se koristi u Shared modu druge aplikacije mogu koristiti WASAPI ali prethodno moraju konvertirati audio signal u podešeni format prije nego koriste mikser. WASAPI se koristi sa dva stila. Jedan način je Push stil, a drugi stil je Event ili Pull stil. Činjenica da postoje DSP čipovi i procesori, koji se koriste u mnogim profesionalnim primjenama, nije relevatna za shvatanje i savladavanje specifičnih znanja DSP tehnologije jer se obrada izvršava programski ili sklopovski. Današnja računalna tehnologija je temeljena na primjeni tranzistorskih binarnih platformi pri čemu temeljni principi DSP ne ovise o tehnologiji ni na koji način. Digitalna obrada signala bit de onda dostupna i na bududim sustavima i tehnološkim platformama koje tek treba realizirati, poput računala temeljenih na kvantnim stanjima ili biomolekularnim računalima. Aspekt matematičkog rješenja problema pri digitalnoj obradi signala je temeljni izvor njegove snage, a ne primjena neke posebne tehnološke platforme ili operacijskog sustava pri obradi zvučnih signala. Verzija 2010 2/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala Digitalni signalni procesor (DSP) Digitalni signalni procesor DSP je specijalizirani mikroprocesor kojemu je interna arhitektura optimizirana za brze operacijske potrebe digitalne obrade zvučnog signala i bitno se razlikuje od Von Neummanove konfiguracije jer se primjenjuje Harvard ili Super Harvard konfiguracija mikroprocesora. Digitalni signalni procesor obrađuje podatke u realnom vremenu pa je idealan za primjene koje ne mogu tolerirati kašnjenja. Tako se omogudava bolji zvuk, slike itd. Cijena im varira od 1 do 200 Eura (400 MHz/2400 MFLOPS). Kategorizirani su po frekvenciji takta, veličini RAM-a i ROM-a, tipu sabirnice, veličini i tipu Flash memorije, kudištu, brzini izraženoj u MMAC/MIPS/FLOPS i U/I naponima. Poznati proizvođači i udio tržišta: Texas Instruments AT&T Motorola Analog Devices NEC ostali 46.7 % 18.7 % 15 % 9.3 % 8.4% 1.9% Uvodni zaključci DSP se razlikuje od ostalih područja računalske znanosti jer koristi posebne tipove podataka - signale. Signal opisuje kako se jedan parametar mijenja u odnosu prema drugom parametru. Temeljni razlog obrade zvučnog signala je izdvajanje informacije. DSP se temelji na računalskim programima pa promjenom programa mijenjamo ponašanje sklopa. Računalni programi su snažni jer mogu izvršiti više od analognog sklopovlja (iako nisu uvijek jednako brzi), pa se simulacije mogu izvršavati u računalnim programima (MATLAB, JAVA...) Za primjene u realnom vremenu koriste se DSP čipovi - nisu skupi i slični su μ-procesorima gdje je mogude ugraditi veliki broj različitih funkcija u jedan čip. Točnost im možemo podesiti po volji, a vremenski im se karakteristike ne mijenjaju jer su vrlo stabilni. Osobno računalo s MATLAB-om je stvarni DSP procesor. Analogno digitalna pretvorba Pri pohrani i obradi signala u digitalnom obliku ne koristimo cjeloviti analogni signal nego ga zamjenjujemo vrijednostima uzoraka amplitude uzetih u pravilnim intervalima. Taj postupak nazivamo sempliranje, uzorkovanje ili otipkavanje. Problem je u tome da signal moramo semplirati na takav način kojim de odabrani uzorci točno predstavljati signal. Dakle iz odabranih uzoraka moramo točno rekonstruirati izvorni analogni signal iako to nije uvijek idealno. Sempliranjem se analogni vremenski kontinuirani signal pretvara u odgovarajudi diskretni vremenski promjenjivi signal što nam omogudava obradu na digitalnim sustavima; računalima ili DSP procesorima. U stvarnosti sempliranje prate još dvije operacije: kvantizacija i binarno kodiranje. Kvantizacija je postupak kojim se svakom uzorku pridjeljuje numerička vrijednost, dakle, uzorci se mjere, a binarno kodiranje je pretvorba dekadskih vrijednosti izmjerenih uzoraka u binarni kod. Analogno-digitalni pretvarači obavljaju sva tri koraka. Sempliranje Digitalni signali predstavljeni su skupovima diskretnih vrijednosti koji se obrađuju računalnim algoritmima. Najvedi broj informacija u stvarnom svijetu predstavljen je analognim signalima koji se Verzija 2010 3/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala kontinuirano mijenjaju pri čemu ih ljudi neposredno opažaju. Matematički promatrano, analogni signali imaju beskonačno područje vrijednosti pa se ne mogu neposredno obraditi računalom. Računalima je za pravilan rad potreban konačni skup diskretnih vrijednosti kako bi izvršili programske algoritme. Zbog toga računala uvijek zahtjevaju digitalne signale. U svakom analognom signalu postoji šum, pa ako postavimo da je razlika dvije susjedne razine digitalnog signala manja od šuma u analognom signalu, analogni signal možemo kvalitetno i točno diskretizirati. Početak postupka pretvorbe analognog signala u digitalni predstavlja sempliranje. U vremenski pravilnim intervalima mjerimo i zadržavamo uzorke analognog signala. Uređaj koji izvršava takvu funkciju naziva se analogno digitalni pretvarač ADC. Temeljne karakteristike signala mogu se predstaviti u vremenskom području (pri čemu opažamo vremensku promjenu signala) i frekvencijskom području (pri čemu opažamo frekvencijske komponente ili spektar signala). Vremensko i frekvencijsko područje su matematički povezani i lako se prijelazi iz jednog u drugo pri čemu se signal ne mijenja nego se mijenja samo oblik prikaza. signal x(t) Kontinuirani signal u vremenskom području semplirajuda funkcija s(t) signal x[n] SEMPLIRANJE množenje analognog signala x(t) i semplirajude funkcije s(t): x(t) = x(nT ) = x(t)s(t) KVANTIZACIJA Niz diskretnih Binarno kodiranih vrijednosti signal x[n] u području uzoraka Kako bi točno zadržali sve vremenske karakteristike signala u frekvencijskom području moramo sačuvati sadržaj pravilnim postupkom sempliranja. Taj zahtjev nazivamo Nyquistov kriterij: frekvencija sempliranja fs ili period sempliranja Ts, moraju biti najmanje dvostruko viši od najviše frekvencijske komponente analognog signala. Pri tome neke komponente signala mogu biti štetne ili nepotrebne (npr. visokofrekvencijski šum izvan čujnog područja) pa je potpuniji način izražavanja Nyquistovog kriterija korištenjem potrebne širine frekvencijskog pojasa fB, analognog signala. Tada vrijedi: fs 2 fB Ts 1 1 fs 2 fB Spektar sempliranog signala i alias Nakon postupka sempliranja nastaje posljedica: u frekvencijskom području rezultirajudeg digitalnog signala nastaju replike (kopije) spektralnih slika širine frekvencijskog pojasa na cjelobrojnim višekratnicima frekvencije sempliranja. Matematički ih možemo dokazati primjenimo li diskretnu Fourierovu transformacija (DTFT) na dobiveni digitalni signal. Ako promatrani signal ima širinu frekvencijskog pojasa fB i sempliran je Nyquistovom frekvencijom fs = 2 fB, tada de spektralne slike digitalnog signala u frekvencijskom području biti jedna pored druge i dodirivat de se. Ako se djelovi spektralnih slika preklapaju, pojavu nazivamo alias. Alias nastaje sempliranjem frekvencijom nižom od Nyquistove. Verzija 2010 4/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala Digitalni signal se ošteduje pojavom aliasa pa je važno ograničiti frekvencijsku širinu pojasa analognog signala prije sempliranja s analognim anti-alias filterom kako bi se eliminirale sve frekvencijske komponente iznad frekvencijske širine pojasa od interesa. Semplirano frekvencijom višom od Nyquistove - preuzorkovano 0 fs fB fB 1 fs fB 2 fs Semplirano Nyquistovom frekvencijom fB fB Semplirano frekvencijom nižom od Nyquistove – poduzorkovano, nastaje ALIAS Sempliranje u frekvencijskom području pri preuzorkovanju, sempliranju Nyquistovom frekvencijom i frekvencijom nižom od Nyquistove Kvantizacija Današnja tehnologija ima ograničenje praktične obrade signala u tome što vrijednosti uzoraka moraju biti predstavljene konačnim skupom diskretnih brojeva. Područje svih mogudih vrijednosti konačnog skupa uobičajeno izražavamo brojem bitova. Izrazimo li vrijednosti signala 8 bitnim brojevima mogude je 28 = 256 vrijednosti. Postupak pridjeljivanja diskretnih brojeva sempliranim vrijednostima signala nazivamo kvantizacija. Bududi da u intervalu kvantizacije analogni signal može poprimiti bilo koju vrijednost u prosjeku de uvjek nastati greška tj. razlika razine između stvarne vrijednosti analogne vrijednosti uzorka i kvantizirane razine. Tu razliku nazivamo greška kvantizacije ili šum kvantizacije. Intuitivno je shvatljivo da de vedi broj bita rezultirati manjom pogreškom jer de se razlika između dvije susjedne vrijednosti smanjivati. Ideju možemo kvantificirati izrazom za odnos signal prema kvantizacijskom šumu, koji u slučaju statistički slučajne greške kvantizacije iznosi u decibelima (dB): signal / šum(dB) 1.76 6.02 N N je broj bita korištenih pri kvantizacijskom postupku, pa CD kvaliteta rezolucije 16 bita ima teoretski odnos signal/šum oko 98 dB. Vedi broj korištenih bita poboljšava ovaj odnos ali istovremeno poskupljuje cijenu i povedava složenost postupka proračuna. Ako šum kvantizacije nije statistički potpuno slučajan dolazi do drugih tipova problema i neželjenih tvorbi u spektru digitalnog signala. Tada je mogude povedati frekvenciju sempliranja (npr. postupkom umetanja nula ili naduzorkovanjem), a ostaviti isti broj bita kako bi se zadržale sve informacije signala u frekvencijskom području interesa. Tu temu analizira napredna digitalna obrada zvučnih signala. Sekvenca - prikaz digitalnih signala Pretpostavimo da sempliramo signal x(t) frekvencijom sempliranja fs. Perod sempliranja bit de Ts = 1/fs. Dakle na cjelobrojnim višekratnicima Ts prikupljamo vrijednosti signala. Nakon što je signal sempliran, bez obzira je li ili nije kvantiziran, pridjeljujemo mu skup diskretnih brojeva koji predstavlja uzorke signala kao x[n], gdje je x naziv varijable, a n je cijeli broj koji identificira određenu vrijednost u skupu vrijednosti signala. Pretpostavimo sekvencu: x[n]=1,2,3,4,5,6,7,8,9,10 i x[0]=3. Skup vrijednosti signala od 1 do 10 je vremenski uređen. To znači da je npr. vrijednost 9 dobivena prije vrijednosti 10, a nakon vrijednosti 8 itd. Uobičajeno se pretpostavlja da signal (ili sustav) uključen u Verzija 2010 5/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala trenutku n=0, što odgovara vremenu t=0 sempliranog analognog signala. Slijededi uzorak nastaje u slijededem trenutku sempliranja, a označavamo ga n = 1. Ovakvim načinom označavanja vrijednosti negativnog indeksa označavaju hipotetske vrijednosti prije početka ili prije uključivanja signala ili sustava. Dakle, vrijeme na dijagramu sukcesivnih vrijednosti uzoraka teče na desno. Ako signal kasnimo, sve vrijednosti signala pomiču se na desno. Ako signal prethodimo sve vrijednosti signala pomiču se na lijevo. Dakle, pomak na lijevo je ranije (prethođenje), a pomak na desno kasnije (kašnjenje). Ako sustav obrađuje vrijednosti signala uzorak po uzorak, što nazivamo uzročno posljedični ili kauzalni sustav onda vrijednosti signala s negativnim indeksom nisu dostupni sustavu. Dakle da bi sustav pribavio vrijednosti s negativnim indeksom, a to su one koje su bile prije uključivanja sustava, potreban mu je vremeplov koji anticipira vrijednosti signala prije uključenja. Izaberemo li vrijednost n=0, u ovom slučaju jednaka je vrijednosti signala 3, kako bi započeli postupak sempliranja, vrijednosti s desna predstavljaju one koje de se dobiti kako postupak napreduje, dok one s lijeva predstavljaju hipotetske ranije vrijednosti ili one vrijednosti koje bi dobili kada bi vrijeme teklo unatrag. U toj situaciji prošlost postaje bududnost. Bududi da smo pridjelili numeričku vrijednost 3, uzorku signala u x[0], signal možemo predstaviti slijededom tablicom: n x[n] -2 1 -1 2 0 3 1 4 2 5 3 6 4 7 5 8 6 9 7 10 Dakle, x[5] = 8 , x[-1] = 2 itd. Svaka uzastopna vrijednost uzoraka n naziva se korak ili broj uzorka. Tako je x[5], 6 koraka ili uzoraka kasnije u odnosu na x[-1]. Sve navedeno možemo predstaviti slijededim dijagramom ramp funkcije translatirane u lijevo za 3 indeksa: n=-2:7; % odredi index n x=(n+3).*((n+3)>=0); % odredi translatiranu % verziju rampa stem(n,x, 'filled'); grid xlabel('korak n ili broj uzorka'); ylabel('x(t) ili x[n]'); title('x[n]=1,2,3,4,5,6,7,8,9,10 i x[0]=3'); proteklo vrijeme x[n, n=4] x(t) x[0] = 3 diskretni signal ili sekvenca x[n] nastaje sempliranjem kontinuiranog signala x(t) Kažemo da je signal x[n] u području uzoraka. Ponekad kažemo da je x[n] u vremenskom području ali nakon sempliranja gubimo sve vremenske informacije osim ako ne znamo koliko je Ts. Period sempliranja Ts može biti bilo koji, a s digitalnim signalom imamo samo vremenski uređen skup uzoraka. Verzija 2010 6/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala Označavanje signala Kako bi označili signal x[n] koji kasni za k uzoraka koristimo zapis x[n-k]. Za prethodni primjer signala tablica prokazuje vrijednosti x[n-1]; dakle to je signal x[n] koji kasni jedan korak tj. jedan uzorak: n x[n] n-1 x[n-1] x[n-1] -2 1 -3 x[-3] ? -1 2 -2 x[-2] 1 0 3 -1 x[-1] 2 1 4 0 x[0] 3 2 5 1 x[1] 4 3 6 2 x[2] 5 4 7 3 x[3] 6 5 8 4 x[4] 7 6 9 5 x[5] 8 7 10 6 x[6] 9 Kao rezultat dobivamo signal translatiran za jedan uzorak ili korak u desno prema signalu koji ne kasni x[n]. Dakle, indeks n uvijek možemo shvatiti kao tekudi uzorak sustava pa de indeks vrijednosti n-k označiti vrijednost koja je nastala prije k koraka ili indeksa. Sekvenca vrijednosti signala x[n-k] sačuvala je proteklu vrijednost signala koje su nastale prije k koraka. Linearna kombinacija tekudih i prethodnih uzoraka – kružni međuspremnik Jedan od najvažnijih postupaka pri digitalnoj obradi signala je proces linearne kombinacije tekudih (trenutnih) uzoraka s uzorcima signala koji kasne (prošlih ili prethodnih uzoraka). Postupak se matematički vrlo lako opisuje ali je mnogo korisnije za razumijevanje vizuelno predočiti princip rada tipičnog DSP procesora. Temelj djelovanja je kružni međuspremnik, a u slučaju koji demo prikazati ima 8 memorijskih lokacija. Generiranje uzoraka u kružnom međuspremniku Iz AD pretvarača izlaze uzorci signala. Tekudi uzorak x[n] pohranjuje se u nultu lokaciju međuspremnika. Kako dolaze novi uzorci pohranjena vrijednost pomiče se za jedan položaj u smjeru kazaljke u međuspremniku. Dakle, slijededi položaj sadržava signal koji kasni za jedan korak ili jedan uzorak x[n-1]. Verzija 2010 7/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala To znači da je prethodni uzorak, dobiven prije jednog koraka ili jednog uzorka, pohranjen za vrijeme jednako jednom periodu u memorijskoj lokaciji u međuspremniku. U trenutku početka rada sustava, u n = 0, sadržaj uzastopnih međuspremničkih lokacija označava se x[-1], x[-2] itd. U njima nije ništa pohranjeno ili je vrijednost na lokaciji jednaka nuli. Razlog tome je što ih postupak sempliranja i pomaka još nije napunio pripadnim vrijednostima. Uzorci signala s negativnim vrijednostima indeksa predstavljaju budude vrijednosti memorijskih lokacija međuspremnika. Razmislimo li o načinu indeksiranja uzoraka možemo zaključiti da vrijednosti s negativnim indeksima predstavljaju budude vrijednosti signala koje nisu trenutno dostupne. Istovremeno pozitivne vrijednosti indeksa predstavljaju tekudu vrijednost i protekle vrijednosti uzoraka. Konačno, moramo uočiti da ako želimo proizvesti izlaz x[n]+x[n-5], adresiramo 5. položaj u međuspremniku i sumiramo ga sa tekudim uzorkom. U našem primjeru međuspremnik sadržava uzorke koji kasne 7 koraka, a opdenito kružni međuspremnik može sadržavati vrlo veliki broj zakašnjelih (prošlih ili proteklih) vrijednosti. Za programsko upravljanje kružnim međuspremnikom potrebna su četiri parametra. Prvo, mora postojati kazaljka (pointer) koja de pokazivati početak kružnog međuspremnika u memoriji. Drugo, mora postojati kazaljka koja de pokazivati završetak kružnog međuspremnika ili varijabla koja mu pohranjuje duljinu. Trede, mora se odrediti veličina koraka adresiranja. Navedene tri vrijednosti određuju veličinu i konfiguraciju kružnog međuspremnika i ne mijenjaju se za vrijeme rada programa. Četvrta vrijednost, kazaljka posljednjeg uzorka mijenja se kako se pribavljaju novi uzorci. Drugim riječima, programska logika upravlja kako se ažurira četvrta vrijednost temeljem vrijednosti tri preostale. Iako je logika vrlo jednostavna potrebna je ekstremna brzina. To je bit DSP: DSP treba optimizirati kako bi upravljao kružnim međuspremnicima najvišom mogudom brzinom. Temeljni oblici diskretnih signala Svi realni signali modeliraju se kombinacijama temeljnih signala. Tri najvažnija su impuls, step i sinus. Jedinični uzorak - impuls Određen je izrazom [n] 1 za n = 0, [n] 0 za n ≠ 0 n=-30:30; % odredi index n delta=(n==0); % odredi delta sekvencu stem(n,delta, ‘filled’) % nacrtaj delta sekvencu Step Određen je izrazom Verzija 2010 u[n] = 1 za n 0 u[n] = 0 za n < 0 8/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala n=-30:30; % odredi index n u_step=(n>=0); % odredi sekvencu jediničnog stepa stem(n, u_step, ‘filled’) % nacrtaj Sinusna funkcija Sempliramo analognu sinusoidu frekvencije f frekvencijom sempliranja fs. dobit demo vrijednosti sinusoide na cjelobrojnim višebrojnicima perioda sempliranja, Ts. Drugim riječima, varijablu vremena t u sinusnoj funkciji možemo zamijeniti varijablom tn= nTs = n/fs. Onda je: x(t ) sin(2ft ) f x(t n ) sin(2fnTs ) sin 2 n x[n] fs x[n] sin(n) 2 f fs To je definicija digitalne frekvencije signala Ω koja se često koristi pri digitalnoj obradi signala bududi da izražava odnos frekvencije u Hz i digitalne frekvencije uz zadanu frekvenciju sempliranja fs. disp('generiranje diskretnog sinusoidalnog signala'); N=input('upiši broj uzoraka: '); n=0:0.1:N; x=sin(n); figure, stem(n,x,'filled'); grid; xlabel('uzorci'); ylabel('amplituda'); title('diskretni sinusoidalni signal'); Snaga i energija digitalnih signala - Parsevalov teorem Analogni signali, npr. pojačala, fizički prenose energiju do zvučnika, kako bi se izvršio koristan rad. Digitalni signali nose samo informaciju, a ne prenose energiju. Digitalni signali predstavljeni su samo brojevima koji predstavljaju analogni signal. Sinusni napon amplitude A, napona Uef, disipira snagu na poznatoj impedanciji prema relaciji: P Uef 2 R Snaga je proporcionalna kvadratu efektivnog napona, a potrošena energija je umnožak snage i vremena. U analogiji s prethodnim izrazom, možemo odrediti snagu digitalnog signala kao srednji kvadrat vrijednosti signala: 1 N 1 P | x[n] |2 N n 0 Bududi da broj uzoraka N, određuje prozor ili vremenski otvor t=NTs, mogude je odrediti energiju N 1 digitalnog signala: E | x[n] |2 n 0 Verzija 2010 9/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala Realni signali moraju poštivati zakon sačuvanja energije. Zbog toga signal u vremenskom području mora imati istu energiju kao signal u frekvencijskom području. Digitalni signali moraju imati istu energiju u oba područja. E x(t ) dt 2 2 X ( F ) dF U jednadžbi lijeva strana je u vremenskom području, a desna u frekvencijskom. Rezultat je Parsevalov teorem. Digitalnom signalu energija je ista u vremenskom i frekvencijskom području. Teorem sačuvanja energije implicira da snaga digitalnog signala ne smije ovisiti o frekvenciji sempliranja fs. Kauzalni i nekauzalni sustavi Živimo u kauzalnom, tj. uzročno-posljedičnom svijetu u kojemu nije mogude anticipirati bududnost. Kauzalni sustavi opisani su fizičkim principima kauzalnosti, pa ne možemo koristiti ono što de se dogoditi u bududnosti. Ako je sustav obrade signala kauzalan, onda može koristiti samo tekude i protekle informacije za proračun izlaznog uzorka sustava. Ako je tekudi izlazni uzorak y[n], kauzalni sustav može koristiti samo tekudi ulazni uzorak x[n], protekle vrijednosti ulaznog signala x[n-k] i protekle vrijednosti izlaznog signala y[n-k]. Pri tome je jedino ograničenje da se ne mogu koristiti informacije prije uključenja sustava, što ukazuju negativne vrijednosti indeksa ulaznih i izlaznih uzoraka. Za kauzalne sustave onda imamo matematičku pretpostavku da su sve vrijednosti signale prije uključenja sustava jednake nuli: x[n] i y[n] = 0 za sve n < 0. Ideja uzročno posljedičnih kauzalnih sustava intuitivno je vrlo privlačna za sve sustave koji obrađuju signale uzorak po uzorak u realnom vremenu. Primjer je obrada zvučnih signala u realnom vremenu u uređajima za nagluhe osobe. Međutim, posjedujemo li sustav u kojem smo akumulirali i pohranili cjeloviti signal prije obrade, npr. digitalnu zvučnu datoteku ili pri tzv. blok obradi, tada možemo koristiti nekauzalni sustav. Uzrok je što u pohranjenom signalu protekle i budude vrijednosti nemaju smisla. U takvim slučajevima mogudi su ulazni signali i izlazni signali s negativnim vrijednostima indeksa i mogude je koristiti vrijednosti signala koji su pomaknuti u prošlost ili bududnost: signal x[n+k] i x[n-k]. Npr. ako jednostavnom manipulacijom promjene rednog broja uzorka, zvučni signal reproduciramo od posljednjeg uzorka prema prvom, učinak je isti kao da vrijeme teče u nazad. Jednadžba diferencija Tekudi izlazni signal kauzalnog linearnog vremenski nepromjenjivog sustava sastoji se samo od linearne kombinacije: 1) tekudih i prethodnih vrijednosti ulaznog signala i 2) prethodnih vrijednosti izlaznog signala. Neka zadani sustav koristi N+1 izlaznih uzoraka i M+1 ulaznih uzoraka kako bi izračunao tekudi izlazni uzorak. Opda jednadžba koja opisuje ovaj sustav je: N a k 0 M k y[ n k ] bk x[ n k ] k 0 Izraz y[n-k] predstavlja vrijednosti izlaznog signala, a izraz x[n-k] predstavlja ulazne vrijednosti signala. Koeficijenti a i b predstavljaju linearne težinske faktore. Normaliziramo li sve koeficijente tako da je a0 = 1, može izraziti izlaz bilo kojeg LTI sustava u obliku: Verzija 2010 10/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala N M k 1 k 0 y[n] a k y[n k ] bk x[n k ] Važno je uočiti kako ova dva oblika jednadžbe diferencija opisuju bilo koji vremenski nepromjenjivi linearni sustav. Jednom kad odredimo koeficijente a i b u potpunosti je određeno ponašanje sustava, zato jer se može izračunati izlazni signal y[n] za bilo koji ulazni signala x[n]. Vektori koeficijenata a i b potpuno određuju DSP sustav pa je to razlog zbog kojeg su MATLAB-u potrebna samo ta dva vektora kako bi analizirao DSP sustav. Iako jednadžba diferencija potpuno opisuje ponašanje sustava u području uzoraka ili u vremenskom području, postoje i drugi opisi sustava. Tako npr. za primjenu može biti mnogo povoljniji frekvencijski odziv. Međutim, svi ostali opisi sustava matematički su povezani s jednadžbom diferencija. Jednadžba diferencija je temeljna jednadžba teorije digitalne obrade signala. Oblik jednadžbe diferencija implicira postojanje dva tipa LTI sustava: 1) Rekurzivni sustavi, kojima tekudi uzorak ovisi o vrijednostima prethodnih uzoraka i o ulaznom signalu. To je slučaj kada je a k 0 za svaki k 1. Bududi da je izraz filter sinonim sustava, rekurzivni sustavi nazivaju se IIR ili filteri beskonačnog impulsnog odziva; oni imaju povratnu vezu. 2) Nerekurzivni sustavi, kojima tekudi izlaz ovisi samo o ulaznim vrijednostima. To je slučaj kada je a k 0 za sve k 1. Sustavi nemaju povratnu vezu i nazivaju se FIR ili filteri konačnog impulsnog odziva. Model kružnog međuspremnika linearnog vremenski nepromjenjivog sustava DSP sustav FIR IIR Ovaj dijagram predstavlja najopdenitiji prikaz implementacije bilo kojeg LTI sustava. LTI DSP sustav obrađuje samo tekudu vrijednost ulaznog signala, pri demo se ulazne vrijednosti signala koje kasne pohranjuju se u ulaznom međuspremniku, a izlazne vrijednosti signala pohranjuju se u izlaznom međuspremniku. Opdenito vrijedi: Proračun jednadžbe diferencija predstavlja algoritam bilo kojeg i algoritam za sve linearno vremenski nepromjenjive sustave u digitalnoj obradi signala. Rekurzivni sustav IIR koristi ulazni i izlazni međuspremnik (ima povratnu vezu). Nerekurzivni sustav FIR koristi samo ulazni međuspremnik (nema povratne veze). b koeficijenti neposredno predstavljaju težinu svake vrijednosti ulaznog međuspremnika. a koeficijenti neposredno predstavljaju težinu svake vrijednosti izlaznog međuspremnika. Verzija 2010 11/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala Impulsni odziv Važna karakteristika FIR filtere, koja se lako dokazuje, je ta da se odziv FIR filtera na ulazni signal sastoji samo od impulsnog odziva h[n]: M M k 0 k 0 y[n] bk x[n k ] bk [n k ] h[n] h[k ] bk Drugim riječima to znači da impulsni odziv FIR filtera h[n] identičan je skupu b koeficijenata filtera. Konvolucija To nas dovodi do definicije konvolucije. Kažemo: izlaz FIR filtera je konvolucija impulsnog odziva s ulaznim signalom, što određuje slijededi izraz: M y[n] h[n] x[n] h[k ]x[n k ] k 0 Simbol predstavlja operator konvolucije. Konvolucijski operator je asocijativan i komutativan kao i algebra s realnim brojevima. Impulsni odziv možemo izračunati i za IIR sustav. U tom slučaju impulsni odziv h[n] nede biti konačan nego de biti predstavljen beskonačnom sekvencom. Međutim, i dalje vrijedi da je izlazni signal IIR sustava konvolucija impulsnog odziva i ulaznog signala. Dakle, drugi način sagledavanja vremenske karakteristike bilo kojeg LTI DSP sustava je preko impulsnog odziva. Što je transformacija ? Transformacija (Fazorska, Fourierova, Laplaceova transformacija, Z, Hilbertova i Wavelet bit de obrađene naknadno) je bilo koji postupak koja skup jednih podataka mijenja ili transformira u skup drugih podataka. Pri tome je najvažnije da drugi skup podataka bitno olakšava rad. z-transformacija i prijenosna funkcija Vrlo snažna analitička metoda sastoji se od transformacije digitalnih signala i sustava iz vremenskog ili područja uzoraka u z-područje. Tada svojstva sustava predstavljamo preko kompleksne varijable (z). Iako na prvi pogled izgleda da smo otežali matematički alat, z-transformacija uveliko pojednostavljuje analizu stabilnosti i frekvenijskog odziva. Jednostrana ili unilateralna ztransformacija X (z), digitalnog signala x[n], određena je izrazom: X ( z ) x[n]z n n 0 Ili u kompaktnom matematičkom zapisu: X ( z) Z{x[n]} Gdje operator Z{} označava izvođenje z-transformacije argumenta u skladu s gornjom definicijom. Važno svojstvo z-transformacije, koje demo dokazati, naziva se svojstvo kašnjenja, a glasi: Verzija 2010 12/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala Z{x[n k ]} z k Z{x[n]} To znači da je: z-transformacija signala koji kasni za k uzoraka je z-k puta z-transformacija signala koji ne kasni. Izvršimo li z-transformaciju obje strane jednadžbe diferencija pa primjenimo svojstvo kašnjenja dobivamo prijenosnu funkciju LTI sustava u z-području: H ( z) Y ( z ) b0 b1 z 1 b2 z 2 b3 z 3 ... bM z M X ( z ) a0 a1 z 1 a 2 z 2 a3 z 3 ... a N z N Razlog zbog kojeg H(z) nazivamo prijenosna funkcija je taj što za zadanu z-transformaciju ulaznog signala X (z), H (z) je funkcija koja daje izlazni signal z-transformacije Y(z) neposrednim množenjem: Y ( z) H ( z) X ( z) Dakle, H(z) prijenosi ulaz X(z) na izlaz u z-području Y(z). Za slučaj FIR filtera H(z) je z-transformacija impulsnog odziva h[n] pa konvolucija u vremenskom području uzoraka postaje množenje u zpodručju. Prijenosna funkcija bilo kojeg LTI DSP sustava h[n] je z-transformacija impulsnog odziva H(z). Matematičke karakteristike prijenosne funkcije pokazuju nam karakteristike DSP sustava. Vrlo su značajne lokacije nula i polova prijenosne funkcije. Nule i polovi su korijeni polinoma brojnika i nazivnika. Može se pokazati da je nužan i dovoljan uvjet stabilnosti DSP filtera lokacija polova unutar jedinične kružnice u kompleksnoj ravnini. Diskretna Fourierova transformacija DTFT i frekvencijski odziv Najvažniji dio svake DSP zadade je razumijevanje kako je pohranjena informacija u signalu s kojim radimo. Postoje samo dva uobičajena načina kojim predstavljamo informaciju u signalima koji se javljaju u prirodi: informacija prikazana u vremenskom području i informacija prikazana u frekvencijskom području. Informacija prikazana u vremenskom području opisuje kada se nešto dogodilo i kolika je amplituda pojave. To je najjednostavniji način pohrane informacije u signalu. Za razliku od toga, informacije u frekvencijskom području prikazuju se indirektno. Mnoge pojave imaju periodičnost. Mjerenjem frekvencije, faze i amplitude ovih periodičnih promjena, najčešde dobivamo informacije o sustavu. Jedinstveni uzorak, sam po sebi, ne sadržava informacije o periodičnosti. Informacija je pohranjena u odnosima mnogih točaka signala. To nas dovodi do značaja frekvencijskog odziva i odziva na koračnu pobudu. Odziv na step opisuje kako sustav modificira informaciju predstavljenu u vremenskom području. Za razliku od toga, frekvencijski odziv pokazuje kako se mijenja informacija predstavljena u frekvencijskom području. Diskretna Fourierova transformacija DTFT predstavlja matematički postupak kojim prelazimo iz područja vremenskih uzoraka u frekvencijsko područje. Iz frekvencijskog područja, vradamo se u vremensko, inverznom-DTFT. Pretpostavimo zadani digitalni signal x[n]. Diskretna Fourierova transformacija DTFT signala je: Verzija 2010 13/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala X () x[n]e n jn N x[n]e jn n 0 Pri tome je digitalna frekvencija 2 f fs Digitalna frekvencija odgovara frekvenciji f u Hz, kada je poznata frekvencija sempliranja fs. Opdenito DTFT je kompleksna funkcija. Pri procjeni neke određene digitalne frekvencije Ω, rezultat de se sastojati od realnog i imaginarnog dijela, što najčešde interpretiramo kao magnitudu i fazni kut. Pogledamo li gornju formalno-matematičku definiciju DTFT vidimo da je prvi član predstavljen beskonačnom sumom. Takav proračun mogud je olovkom na papiru, a nije mogud na računalu jer implicira nekauzalni signal. Drugi član implicira beskonačni nekauzalni signal. Taj izraz se koristi na računalu i jasno je da broj članova nikad nije beskonačan jer računala ne funkcioniraju s beskonačnim skupovima. Dakle, točnost DTFT u MATLAB-u, ovisi o broju uzoraka. DTFT signal predstavlja podatke u frekvencijskom području, pa rezultat X(Ω) nazivamo spektar signala x[n]. DTFT posjeduje svojstvo kašnjenja slično z-transformaciji. Pretpostavimo izvođenje DTFT signala x[nk] sa Xk(Ω). Onda vrijedi: X k () e jk X () DTFT signala koji kasni k koraka je e-jkΩ puta DTFT signala koji ne kasni. Drugo svojstvo DTFT je periodičnost Ω s periodom 2π. To ukazuje da de spektar digitalnog signala u frekvencijskom podtučju biti beskonačan. Periodičnost je povezana s kopijama spektra na cjelobrojnim vrijednostima frekvencije sempliranja. U frekvencijskom području određujemo frekvencijski odziv DSP sustava kao funkciju H(Ω) koja pomnožena s DTFT ulaznog signala daje DTFT izlaznog signala: Y () H () X () Napravimo li DTFT obe strane jednadžbe diferencija i primijenimo svojstvo kašnjenja DTFT dobijemo: H () Y () b0 b1e j b2 e j 2 b3 e j3 ... bM e jM X () a0 a1e j a 2 e j 2 a3 e j3 ... a N e jN Usporedimo li ovu jednadžbu s prijenosnom funkcijom i izvršimo li supstituciju z = ejΩ u prijenosnu funkciju, uočit demo jednadžbe su potpuno identične. Verzija 2010 14/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala Zaključujemo. frekvencijski odziv DSP sustava jednak je vrijednost prijenosne funkcije sustava kada je računamo za kompleksni broj z = ejΩ: H () H ( z, z e j ) Bududi da se kompleksni brojevi predstavljeni izrazom z = ejΩ nalaze na jediničnoj kružnici u kompleksnoj ravnini, zaključujemo da je frekvencijski odziv filtera vrijednost prijenosne funkcije izračunate za vrijednosti na obodu jedinične kružnice u kompleksnoj ravnini. To prikazuje slika dobivena naredbom zplane, koja crta polove i nule linearnog sustava: Izračunamo li DTFT impulsnog odziva bilo kojeg LTI DSP sustava dobivamo frekvencijski odziv. Sumirajmo: svaki linearni sustav ima impulsni odziv, odziv na step i frekvencijski odziv. Odziv na step, (b), može se odrediti diskretnom integracijom impulsnog odziva, (a). Frekvencijski odziv može se odrediti iz impulsnog odziva Brzom Furierovom transformacijom (FFT), a može se prikazati na linearnoj skali, (c) ili u decibelima (d). Gibbsov učinak Bududi da je pri Furierovoj analizi razvoj u red beskonačan, u praksi moramo odbaciti više članove reda (više harmonike). Taj postupak ima naziv truncation. Pri rekonstrukciji (sintezi) signala iz oblika bez viših harmonika ne dobivamo izvorni signal. Mogude je pokazati da je Furierov razvoj u red optimalan. To znači da de srednji kvadrat greške (MSE) između originalnog signala i rekonstruiranog signala biti minimalan u odnosu na druge razvoje u red s istim brojem koeficijenata. Što se uzme više koeficijenata u obzir to de greška biti manja. Međutim, interesantna je činjenica koja pokazuje da de uvijek postojati prebačaj i podbačaj signala pri naglim promjenama valnog oblika, pa čak i onda kada je broj harmonika vrlo visok. Pojavu nazivamo Gibbsov učinak. Kvadratnom valnom obliku prebačaj i podbačaj iznosi oko 9%. Pokazat demo kako sumom neparnih sinusoidalnih harmonika Fourierovog reda generirati kvadratni valni oblik pa demo MATLAB naredbom surf prikazati 3D Gibbsov učinak. Verzija 2010 15/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala nhar = 15; % broj harmonika reda, koriste se samo neparni fs = 1024; % frekvencija sampliranja Hz tinc = 1/fs; % inkrement sampliranja t = 0:tinc:1; % kreiraj točke vremenskih uzoraka u intervalu od 1 s y = zeros(nhar,length(t)); % incijalizacija matrice kako bi sačuvali kumulativnu rekonstrukciju x = zeros(size(t)); % inicijalizacija akumulatora valnog oblika % petlja koja sumira neparne harmonike colr = ['b', 'r', 'g', 'k', 'c']; % boje višestrukih valnih oblika na istom dijagramu for kl=1:nhar k = 2*(kl-1)+1; % pretvorba u neparni broj figure(2) % dijagram individualnih sinusnih oblika set(gcf,'Position', [567 429 437 247]) sad = (4/(k*pi))*sin(2*pi*k*t); % Individualni harmonici plot(t,sad,colr(mod(kl1,length(colr))+1)); hold on xlabel('vrijeme [s]') ylabel('Amplituda') title('Individualne komponente') x = x + sad; % sumiramo harmonike y(kl,:) = x; % pohrani kumulativni valni oblik u ovom trenutku figure(1) % slika koja prikazuje kumulativni valni oblik set(gcf,'Position', [62 429 437 247]) plot(t,x) xlabel('vrijeme [s]') ylabel('Amplituda') title('Složeni valni oblik') pause % pauza ažuriranja grafike i prikaz dijagrama end figure(2) hold off pause % 3D površina predstavlja postupnu transformaciju sinusnog vala u kvadratni valni oblik surf(y); shading interp axis off ij title('Nastanak kvadratnog vala: Gibbsov učinak') Tipovi i oblici filtera Digitalni filter je numerički postupak ili algoritam koji transformira zadanu sekvencu u drugu koja ima poželjnija svojstva. Pri tome idealni filter: propušta komponente signala određenih frekvencija bez prigušivanja, a komponente na ostalim frekvencijama idealno prigušuje. Prema tome frekvencijska karakteristika ima vrijednost jednaku jedan ili nula. DSP algoritme filtera analiziramo određivanjem: njihovih karakteristika u vremenskom području preko Jednadžbe diferencija Odziva na jedinični step – impulsnog odziva njihovih karakteristika u frekvencijskom području preko Područja z-transformacije Preko prijenosne funkcije sustava Dijagrama nula i polova u z-ravnini Fourierovom transformacijom preko frekvencijskog odziva Područje frekvencija u kojima frekvencijska karakteristika ima jediničnu vrijednost naziva se propusni pojas, a područje frekvencija gdje je frekvencijska karakteristika jednaka nuli je pojas gušenja. Verzija 2010 16/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala Karakteristike filtera u vremenskom i frekvencijskom području Frekvencijsko područje Odziv na step je mjera ponašanja filtra u vremenskom području. Važna su tri parametra: brzina prijelaza prebačaj faznu linearnost pokazuje simetrija gornje i donje polovine stepa). Kako bi odijelili bliske frekvencije: filter mora imati brzo odrezivanje. U propusnom području, frekvencije se moraju propuštati kroz filter potpuno nepromijenjene amplitude, što znači: ne smije nastajati valovanje u propusnom području. Kako bi se zadovoljavajude blokirale frekvencije u nepropusnom području: nužno je postidi dobru atenuaciju nepropusnog područja Vremensko područje Ako za bilo koji sustav nacrtamo magnitudu H(Ω) u ovisnosti o Ω dobit demo frekvencijski odziv filtera. Nacrtamo li fazni kut H(Ω) u ovisnosti o Ω dobit demo fazni odziv filtera. Pokazat demo da se sve značajne informacije o odzivu filtera nalaze u frekvencijskom području od Ω = 0 do Ω = π, što je u Hz od 0 do fs/2 Hz. Kao primjer analiziramo jednostavni sustav 1. reda s prijenosnom funkcijom: 1 1 0.5 z 1 H ( z) Supstitucijom z = ejΩ dobiva se frekvencijski odziv: H () Verzija 2010 1 1 0.5e j 17/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala Oblik karakteristike filtera može se izračunati i nacrtati: omega=0:pi/512:pi; % sve informacije o odzivu filtera nalaze % se u frekvencijskom području od % Ω = 0 do Ω = π % u Hz od 0 do fs/2 Hz. H=1./(1+0.5*exp(-j*omega)); plot(omega/pi,abs(H)); grid; title('Magnitudni frekvencijski odziv'); xlabel('Omega izražena u pi-radijana'); ylabel('H(omega)'); Frekvencijski odziv odnosno oblik karakteristike filtera je takav da propušta samo visoke frekvencije, te ga nazivamo visokopropusni filter. Za sada to još ne znamo, ali ovo je tip viskopropusnog filtera 1. reda koji nazivamo kvantizer oblikovanja šuma noise-shaping quantizer, o kome demo govoriti pri obradi Delta Sigma Modulatora DSM. Inverzna DTFT i projektiranje digitalnih filtera DTFT je matematički postupak određivanja spektra X(Ω) koji pripada signalu x[n]. Vrlo važno pitanje glasi: ako je zadan spektar signala, kakav je signal u vremenskom području uzoraka? Odgovor daje inverzna vremenski diskretna Fourierova transformacija izrazom: x[n] 1 2 X ()e jn 2 d gdje se integral proračunava u bilo kojem 2π intervalu Ω. Koje je temeljno pitanje pri projektiranju digitalnih filtera? Važna primjena inverzne DTFT je odgovor na pitanje: ako je zadan oblik filtera H(Ω), kojim demo ga impulsnim odzivom h[n] dobiti? Drugim riječima, ako je zadan frekvencijski odziv filtera, kako demo odabrati koeficijente da bi ga realizirali? U najvažnijem primjeru, pokazat demo da de odziv idealnog niskopropusnog filtera dati slijededi impulsni odziv: 1 h[n] sin(nc ) c sin c(nc ) n Ωc predstavlja kritičnu ili odreznu frekvenciju filtera, a funkciju sinc određujemo izrazom: sinc (x) = [sin (x)]/ x x=linspace(-10,10); y=sinc(x); plot(x,y); grid; predistitravanje postistitravanje Očito je da zvuk nede biti najbolji jer odziv sustava (predistitravanje) nastaje prije pobude. Ovaj problem nekauzalnog sustava s tranzijentnom jekom rješava se postupkom apodizacije. Verzija 2010 18/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala Digitalno analogni pretvarač DAC DSP sustav mora digitalni signal nakon obrade pretvoriti u analogni, a uređaj ili proces koji izvršava tu funkciju naziva se digitalno analogni pretvarač DAC. To se postiže na nekoliko različitih načina. Obični N-bitni DAC pretvara niz vremenski diskretnih linearnih N-bitnih PCM uzoraka audio signala sempliranih frekvencijom fs u vremenski kontinuirani napon. Postoje: a) b) c) (obični) DAC naduzorkujudi DAC Delta-Sigma DAC. Dodamo li b) ili c) filter oblikovanja šuma (noise shaping) možemo dodatno poboljšati rezoluciju. Obični DAC iz ulaznih PCM uzoraka neposredno daje analogni valni oblik. Odnos signal/šum iznosi: odnos _ signal / šum(dB) 1.76 6.02N Naduzorkujudi DAC mnogostruko povisuje frekvenciju sempliranja primjenom digitalnih filtera, a zatim koristi obični DAC kojem je olakšana obrada signala. Odnos naduzorkovanja OSR jednak je Gdje je fs frekvencija uzorkovanja, fB frekvencijska širina pojasa ulaznog signala. Ako ulazni signal ima frekvenciju sempliranja fs, onda de izlazni signal imati frekvenciju sempliranja fs puta OSR. Tada de se odnos signal šum povedati za faktor naduzorkovanja OSR prema izrazu: odnos _ signal / šum(dB) 1.76 6.02 N 10 log OSR Rezolucija se može poboljšati dodamo li oblikovanje šuma noise shaping. Postupak naduzorkovanja nije učinkovit jer zahtjeva vrlo velike brzine procesora ali omogudava DAC-ovima vrlo loše rezolucije da daju na izlaz signale ekstremno visoke rezolucije. Delta-sigma DAC naduzorkuje ulazne PCM uzorke, a zatim rekvantizira u 1-bitni bipolarni niz podataka čiji je niskofrekvencijski sadržaj očekivani audio signal, npr. SACD. Pri zapisu signala na medij ili tvrdi disk ponekad se koristi i unipolarni niz. Odnos signal/šum iznosi: Gdje je F funkcija reda L filtera i iznosi: Na predavanjima i vježbama prikazat demo i simulirati svaki od ovih postupaka sa stajališta kvalitete zvuka i poslušati rezultat, te obraditi učinke jittera i dithera. VJEŽBA 1: Snimanje zvuka i pohrana zvučnih datoteka na tvrdi disk, spektar signala Jedna od varijanti kondenzatorske izvedbe mikrofona koristi permanentno polarizirani dielektrik. Taj materijal naziva se elektret. Takvi mikrofoni nisu skupi kao kondenzatorski, a mogu se koristiti za potrebe mjerenja s vrlo visokom točnošdu. Kvalitetnije izvedbe su s back-elektretom. Na vježbi demo koristiti komercijalno dostupan elektret mikrofon, s naponom polarizacije od 1.5V, a sa Delta-Sigma sustavom back elektret tip MIC-02. Verzija 2010 19/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala Uz nisku osjetljivost od 6mV/Pa, zbog niskog napona polarizacije, ovakvi mikrofoni su osjetljivi na šumove i nisu najprikladniji za korištenje s mjernim sustavom, ali zadovoljavaju za snimanje govora. Mikrofon je opremljen kabelom s mini chinch priključkom 3,5mm. Priključit demo ga na prednju ili stražnju mikrofonsku priključnicu računala. Za podešavanje u Win7 64b otvaramo: Control Panel\All Control Panel Items\Sound Ako mikrofon ispravno radi bargraf pokazuje promjenu razine Mikrofon je priključen na prednji panel Mikrofon radi ispravno Za snimanje zvuka koristimo MATLAB naredbu wavrecord kako bi pohranili audio signal s mikrofona. Format naredbe je: y = wavrecord(n, fs); gdje je n broj uzoraka koje snimamo, a fs frekvencija sempliranja. Slijededi program snimit de signal mikrofona u trajanju od 2 sekunde. U MATLAB-u s dual procesorom 3,2 GHz i 6 GB RAM-a možemo snimati s fs preko 3 MHz. Verzija 2010 20/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala Program 1 >> fs=16000; % frekvencija sempliranja do 3,2 MHz trajanje=2; % trajanje snimke u sekundama fprintf ('Pritisni bilo koju tipku za početak %g sekundi snimanja...', trajanje); pause fprintf ('Snimanje u tijeku...'); y=wavrecord(trajanje*fs, fs); % trajanje*fs predstavlja ukupni broj uzoraka u snimci fprintf('Snimanje završeno.\n'); fprintf('Pritisni bilo koju tipku za reprodukciju snimke...'); pause; fprintf('\n'); wavplay(y,fs); Pritisni bilo koju tipku za početak 2 sekundi snimanja...Snimanje u tijeku...Snimanje završeno. Pritisni bilo koju tipku za reprodukciju snimke... Program izvrši osobno kako bi se u potpunosti shvatio postupak snimanja. U gornjem primjeru trajanje*fs predstavlja ukupan broj uzoraka koji se snima. Snimljeni uzorci zvučne datoteke pohranjuju se u varijablu y. To je vektor dimenzije 32000x1. Tip podatka y je double, a prostor koji zauzima u memoriji je 256000 bajta. Naredbom whos prikazat de se zauzede memorije svim varijablama radnog prostora. >> whos Name fs trajanje y Size 1x1 1x1 32000x1 Bytes Class 8 8 256000 Attributes double double double Naredbe wavplay i wavrecord podržavaju se samo na Windows platformi. U prethodnom primjeru imamo samo jedan kanal i tip podataka uzoraka je double. Ako želimo promijeniti navedena podešenja, naredbi wavrecord uvodimo dodatne ulazne argumente. Detaljniji format naredbe onda je: y = wavrecord(n, fs, channel, dataType); gdje je channel (uobičajeno 1 ili 2) predstavlja broj kanala koji se snimaju, a dataType (uobičajeno double, single, int16, uint8) predstavlja tip podataka snimljenih uzoraka. Različiti tipovi podataka zahtijevaju različite iznose memorijskog prostora. Program 2 fs=16000; % frekvencija sempliranja trajanje=2; % trajanje snimke – upiši broj sekundi po volji channel=1; % Mono snimka fprintf ('Pritisni bilo koju tipku za početak %g sekundi snimanja...', trajanje); pause fprintf ('Snimanje u tijeku...'); y=wavrecord(trajanje*fs, fs, channel, 'uint8'); % trajanje*fs predstavlja ukupni broj uzoraka u snimci fprintf('Snimanje završeno.\n'); fprintf('Pritisni bilo koju tipku za reprodukciju snimke i grafički prikaz...'); pause; Verzija 2010 21/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala fprintf('\n'); wavplay(y,fs); Pritisni bilo koju tipku za početak 2 sekundi snimanja...Snimanje u tijeku...Snimanje završeno. Pritisni bilo koju tipku za reprodukciju snimke i grafički prikaz... >> whos Name Size Bytes Class Attributes channel fs trajanje y 1x1 1x1 1x1 32000x1 8 8 8 32000 double double double uint8 >> class(y) ans = uint8 Primjer je sličan prethodnom, osim što je tip podataka 'uint8'. Uzorci su pohranjeni u varijabli "y" dimenzija 32000x1, a elementi su cjelobrojne vrijednosti između 0 i 255. Memorijski prostor je veličine 32000 B što je samo 1/8 prethodnog primjera. Naredbom class(y) prikazujemo tip varijable "y". Tablica prikazuje sve podržane tipove podataka naredbom wavrecord. Tip podatka double single int16 Prostorni zahtjevi/uzorku 8 B/uzorku 4 B/uzorku 2 B/uzorku uint8 1 B/uzorku Područje sampliranih podataka Realni broj između *-1, 1] Realni broj između *-1, 1] Cjelobrojna vrijednost između *-32768, 32767] ili [-2^(nbits-1), 2^(nbits-1)-1] Cjelobrojna vrijednost između *0, 255+ ili *0, 2^nbits-1] Kad se u Matlab R2012a upiše doc wavrecord doznajemo da je naredba wavrecord zastarila. Nova naredba za snimanje je audiorecorder. Upiši doc audiorecorder pa u izvješde napiši detalje o naredbi. Naredba audiorecorder omogudava vrlo precizno upravljanje postupkom snimanja. Program 3 fs=16000; % frekvencija sampliranja nbits=16; nChannels=1; trajanje=3; % trajanje snimke arObj=audiorecorder(fs, nbits, nChannels); fprintf('Pritisni bilo koju tipku za početak %g sekunde snimanja...', trajanje); pause fprintf('Snimanje...'); recordblocking(arObj, trajanje); fprintf('Snimanje završeno.\n'); fprintf('Pritisni bilo koju tipku za reprodukciju snimke...'); pause; fprintf('\n'); play(arObj); fprintf('Crtanje valnog oblika...\n'); y=getaudiodata(arObj); % Pribavi podatke audio uzoraka plot(y); % Nacrtaj valni oblik Pritisni bilo koju tipku za početak 3 sekunde snimanja...Snimanje...Snimanje završeno. Pritisni bilo koju tipku za reprodukciju snimke... Crtanje valnog oblika... Verzija 2010 22/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala Naredbom whos dobivamo informacije o primijenjenim varijablama: >>whos Name ans arObj fs nChannels nbits trajanje y Size 1x1 1x1 1x1 1x1 1x1 1x1 48000x1 Bytes Class 112 112 8 8 8 8 384000 Attributes audioplayer audiorecorder double double double double double Pohrana zvučnih datoteka na tvrdi disk Audio wav datoteke možemo zapisati na disk naredbom wavwrite. Format naredbe je: wavwrite(y, fs, nbits, waveFile); gdje y predstavlja audio podatke koje zapisujemo, fs je frekvencija sempliranja, nbits je broj bita ili rezolucija. waveFile je zvučna datoteka koju pohranjujemo. U našem slučaju napisat demo putanju i ime zvučne vaw datoteke: 'C:\Users\Ozren\Documents\MATLAB\bilan.wav'. U slijededem primjeru demo zapisati snimku u datoteku bilan.wav. Potrebno je obratiti pozornost na putanju zapisa. Program 4 fs=44100; % frekvencija sempliranja trajanje=2; % trajanje snimke fprintf('Pritisni bilo koju tipku kako bi pokrenio %g sekunde snimanja...', trajanje); pause fprintf('Snimanje u tijeku...'); y=wavrecord(trajanje*fs, fs); fprintf('Snimanje završeno.\n'); fprintf('Pritisni bilo koju tipku kako bi pohranio zvučnu datoteku %s...', 'bilan.wav'); pause nbits=16; % broj bita ili rezolucija 16-bit) wavwrite(y, fs, nbits, 'C:\Users\Ozren\Documents\MATLAB\bilan.wav'); %pazi na putanju i stavi svoje ime i prezime za naslov datoteke fprintf('Zapis datoteke završen %s\n', 'bilan.wav'); fprintf('Pritisni bilo koju tipku kako bi reproducirao datoteku %s...\n', 'bilan.wav'); fprintf('Reprodukcija zvučne datoteke...'); wavplay(y, fs); ; % pokreni aplikaciju za reprodukciju wav zvučne datoteke fprintf('pritisni bilo koju tipku kako bi grafički prikazao datoteku %s...\n', 'bilan.wav'); pause plot (y); Pritisni bilo koju tipku kako bi pokrenio 2 sekunde snimanja...Snimanje u tijeku...Snimanje završeno. Pritisni bilo koju tipku kako bi pohranio zvučnu datoteku bilan.wav...Zapis datoteke završen bilan.wav Pritisni bilo koju tipku kako bi reproducirao datoteku bilan.wav... Reprodukcija zvučne datoteke... pritisni bilo koju tipku kako bi grafički prikazao datoteku bilan.wav... Verzija 2010 23/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala S A D A U primjeru smo pohranili audio datoteku kao tip podataka 'uint8' pod imenom "bilan.wav". Nakon toga pozvali smo aplikaciju za reprodukciju ".wav" datoteka. Srednji C ili c1 262 Hz Klavijatura predstavlja logaritamsku frekvenciju skale, s podvostručenjem fundamentalne frekvencije nakon svakih sedam bijelih tipki. Bijele tipke su note: A, B, C, D, E, F i G. 1 Srednji C ili c 262 Hz Na klaviru demo odsvirat ton srednji C u trajanju cijele note i snimiti pomodu Matlaba. Koristit demo elektret mikrofon priključen na računalo. Zvučnu datoteku nazvat demo c1_01.wav u rezoluciji 16 bita s frekvencijom sempliranja 44100 Hz u trajanju oko 2400 ms. Datoteku demo učitati u Adobe Audition pa demo prikazati valni oblik, spektar i spektrogram signala. Vremenski prikaz signala Harmonici Spektar signala Spektrogram signala Vrijeme – trajanje signala Verzija 2010 Harmonici Fundamental Fundamental ili osnovni harmonik 24/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala U WaveLabu možemo prikazati 3D spektar s vremenskom promjenom harmonika: Program 5 Datoteku demo učitati u Matlab pa demo prikazati valni oblik i FFT signala kako bi odredili spektar i 1 frekvenciju snimljenog fundamentala c . Iz razine i spektra harmonika možemo odrediti točnost ugađanja i tip klavira. [snd, sampFreq, nBits] = wavread('c1_01.wav'); size(snd) sound(snd, 44100, 16) s1 = snd(:,1); timeArray = (0: 104158-1) / sampFreq; timeArray = timeArray * 1000; %skalira u milisekunde plot(timeArray, s1) grid; ans = 104158 1 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 200 400 600 800 1000 1200 1400 1600 1800 2000 2200 0.2 0 -0.2 -0.4 -0.6 -0.8 20 Verzija 2010 40 60 80 100 120 140 160 180 200 25/26 Ozren Bilan: Temeljne postavke digitalne obrade zvučnih signala n = length(s1); p = fft(s1); % proracunava fourierovu transformaciju nUniquePts = ceil((n+1)/2); p = p(1:nUniquePts); % izabire prvu polovinu jer je druga polovina % zrcalna slika prve p = abs(p); % uzima apsolutnu vrijednost ili magnitudu p = p/n; % skalira s brojem tocaka signala pa % magnituda ne ovisi o duzini signala % niti o frekvenciji sampliranja p = p.^2; % kvadriramo da dobijemo snagu % mnozi s dva if rem(n, 2) % neparni nfft iskljucuje Nyquistovu tocku p(2:end) = p(2:end)*2; else p(2:end -1) = p(2:end -1)*2; end freqArray = (0:nUniquePts-1) * (sampFreq / n); % kreira frekvencijsku postavu plot(freqArray/1000, 10*log10(p)) grid; xlabel('Frekvencija (kHz)') ylabel('Snaga (dB)') -20 Spektar signala srednjeg C s fundamentalom od 262,9 Hz X: 0.2629 Y: -41.25 -40 Snaga (dB) -60 -80 -100 -120 0.5 1 1.5 2 Frekvencija (kHz) 2.5 3 3.5 4 PITANJA ZA KOLOKVIJ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Što je obrada diskretnih zvučnih signala? Kako formatiranje signala uvjetuje obradu? Što su ASIO4ALL i WASAPI, načini i stilovi korištenja? Što je Digitalni signalni procesor? Objasni sempliranje pri ADC pretvorbi? Objasni spektar sempliranog signala i alias? Što je kvantizacija? Kako se prikazuju digitalni signali? Kako označavamo sekvencu diskretnog signala? Opiši princip rada kružnog međuspremnika Definiraj temeljne oblike signala i objasni digitalnu frekvenciju Objasni snagu i energiju signala i Parsevalov teorem Razlika kauzalnih i nekauzalnih sustava Što je jednadžba diferencija? 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Što implicira oblik jednadžbe diferencija? Što je impulsni odziv ? Objasni pojam konvolucije Usporedi z-transformaciju i prijenosnu funkciju Što su nule, polovi i kako određuju stabilnost? Objasni Diskretnu Fourierovu transformaciju DTFT i frekvencijski odziv Objasni Gibbsov učinak Opdenito kakvi tipovi i oblici filtera postoje? Kako su povezani Inverzna DTFT i projektiranje digitalnih filtera? Koje je temeljno pitanje pri projektiranju digitalnih filtera? Što je DAC, kakvi postoje, koliki im je odnos signal-šum? Objasni MATLAB programe na vježbi Kraj uvodnog predavanja i 1. vježbe (25 stranica) Verzija 2010 26/26
© Copyright 2024 Paperzz