1.0. Temeljne postavke digitalne obrade zvučnih signala

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(2ft )

f 
x(t n )  sin(2fnTs )  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  
 jn
N
  x[n]e  jn
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  j3  ...  bM e  jM

X () a0  a1e  j  a 2 e  j 2  a3 e  j3  ...  a N e  jN
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(nc )  c sin c(nc )
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