86
Sveučilište u Splitu Sveučilišni odjel za stručne studije Digitalna Obrada Signala Laboratorijske Vježbe

Digitalna obrada signala

Embed Size (px)

DESCRIPTION

Digitalna obrada signala

Citation preview

Page 1: Digitalna obrada signala

Sveučilište u SplituSveučilišni odjel za stručne studije

Digitalna Obrada SignalaLaboratorijske Vježbe

Ime i prezime: Ivan Rudež, Marijo Šego

Page 2: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

VJEŽBA 10.c Linearna predikcija koeficijenata filtra pri projektiranju digitalnih filtera i kodiranju govornih signala

Description

LPC određuje koeficijente za linearni prediktor minimiziranjem predviđanja pogreške u smislu najmanjih kvadrata. To je aplikacija - filtar dizajn i kodiranje govora.

[a,g] = lpc(x,p) finds the coefficients of a pth-order linearno predviđanje (FIR filter)

p je kako polinoma predviđanja filtera, = [1 (2) ...(p +1)]. Ako je p nespecificirani, LPC koristi kao zadani p = length (x) -1. Ako je x matrica sadrži poseban signal u svakom stupcu, LPC vraća modela procjenu za svaki stupac u redovima matrice A i stupca vektor pogreška predviđanja varijance g. Duljina p mora biti manja od ili jednaka duljini xi.

Examples

Procijenite podataka koristeći niz trećine reda prema naprijed predviđanja, i usporedite s izvornim signalom.Prvo, stvoriti signalne podatke kao izlaz iz autoregresivni proces potaknut bijeli šum. Koristite zadnjih 4096 uzoraka izlaz AR procesa kako bi se izbjeglo start-up tranzijenat:

randn('state',0);noise = randn(50000,1); % Normalizirani bijeli Gaussov šumx = filter(1,[1 1/2 1/3 1/4],noise);x = x(45904:50000);

Izračunajte prediktorskoj koeficijent, procijenjena signala, pogreška predviđanja, a autokorelacija i slijed predviđanja pogreške:

a = lpc(x,3);est_x = filter([0 -a(2:end)],1,x); % Procijenjeni signale = x - est_x; % Greška predikcije[acs,lags] = xcorr(e,'coeff'); % Autokorelacijska sekvenca greške predikcije

Pogreška predviđanja, e (n), može se promatrati kao izlaz filtera predviđanje pogreške (z) je prikazano u nastavku, gdje je H (z) je optimalno linearno prediktor, x (n) je ulazni signal, a x (n) je predvidio

signal.Usporedi predikcijski signal s izvornim:

2

Page 3: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

plot(1:97,x(4001:4097),1:97,est_x(4001:4097),'--'); title('Izvorni signal i LPC procjena'); xlabel('Broj uzorka'); ylabel('Amplituda'); grid; legend('Izvorni audio signal','LPC procjena')

0 10 20 30 40 50 60 70 80 90 100-3

-2

-1

0

1

2

3

4

5Izvorni signal i LPC procjena

Broj uzorka

Am

plitu

da

Izvorni audio signal

LPC procjena

Autokorelacija pogreške predikcije:

plot(lags,acs); title('Autokorelacije predikcijske greške'); xlabel('Zaostajanje'); ylabel('Normalizirana vrijednost'); grid;

-5000 -4000 -3000 -2000 -1000 0 1000 2000 3000 4000 5000-0.2

0

0.2

0.4

0.6

0.8

1

1.2Autokorelacije predikcijske greške

Zaostajanje

Nor

mal

izira

na v

rijed

nost

3

Page 4: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Algoritam

LPC koristi autokorelacijsku metodu autoregresivnog (AR) modeliranja kako bi odredio koeficijente filtera. The generated filter might not model the process exactly even if the data sequence is truly an AR process of the correct order. This is because the autocorrelation method implicitly windows the data, that is, it assumes that signal samples beyond the length of x are 0.Program

randn('state',0);noise = randn(50000,1); % Normalized white Gaussian noisex = filter(1,[1 1/2 1/3 1/4],noise);x = x(45904:50000);a = lpc(x,3);est_x = filter([0 -a(2:end)],1,x); % Procijenjeni signale = x - est_x; % Pogreška predikcije[acs,lags] = xcorr(e,'coeff'); % ACS predikcijske pogreške

plot(1:97,x(4001:4097),1:97,est_x(4001:4097),'--');title('Izvorni signal i LPC estimacija');xlabel('Broj uzorka'); ylabel('Amplituda'); grid;legend('Izvorni signal','LPC Estimacija')

0 10 20 30 40 50 60 70 80 90 100-3

-2

-1

0

1

2

3

4

5Izvorni signal i LPC estimacija

Broj uzorka

Am

plitu

da

Izvorni signal

LPC Estimacija

plot(lags,acs); title('Autokorelacije predikcijske greške'); xlabel('Zaostajanje'); ylabel('Normalizirana vrijednost'); grid;

4

Page 5: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

-5000 -4000 -3000 -2000 -1000 0 1000 2000 3000 4000 5000-0.2

0

0.2

0.4

0.6

0.8

1

1.2Autokorelacije predikcijske greške

Zaostajanje

Nor

mal

izira

na v

rijed

nost

KOMENTARLPC model opisuje vremenski kratkotrajne koleracije u govornom signalu, određuje gruba spektralna svojstva govornog signala, dugotrajne korelacije određene su svojstvima pobude (titranje glasnica).

5

Page 6: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

VJEŽBA 10. D Spektralna analiza zvučnih podataka u realnom vremenu

demodaqsl_ai_spectrum.mdl

Potrebna je 32-bitna inačica MATLAB, Simulink, Data Acquisition Toolbox, DSP System Toolbox i Windows zvučna kartica da bi se otvorio i pokrenio model.

Promatramo spektrogram audio ulaza u živo u periodu 18 sekundi.

Ulazni signal u realnom vremenu audio signala putem mikrofona.Signal među-okvirima, sa 128 uzoraka po kadru. Svaki okvir se zatim pomoću Hammingov prozor funkcije, a DSP sustav Toolbox blok izračunava FFT za prozorom okvira.Sustav prikuplja FFTs za uzastopnih okvira i parcela ih proizvesti spektrogram.

Iako se koristi Windows zvučna kartica, ovaj model se lako može priključiti na podržane data acquisition uređaje.

6

Page 7: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

VJEŽBA 11/1 Objašnjenje zvučnog sažimanja postupkom najmanjeg kvadrata

Prikazat ćemo temeljnu ideju sažimanja zvučnih podataka postupkom najmanjih kvadrata tako što ćemo zamijeniti izvornu zvučnu datoteku aproksimacijom sastavljenom od linearne kombinacije funkcija kosinus. Metoda najmanjih kvadrata može se shvatiti kao postupak zamjene velikog skupa podataka s koeficijentima modela koji aproksimira podatke minimizirajući razliku između početnih podataka i modela.

PRIMJER

Neka je zadana funkcija f(t) = cos(t) + 5 cos(2t) + cos(3t) + 2 cos(4t).Dijagram prikaza funkcije f(t) za 0 ≤ t ≤ 2π prikazan je plavom krivuljom. Podrazumijevamo da je zadan skup podataka od 1000 diskretnih vrijednosti funkcije f(t) pravilno raspodijeljene unutar intervala 0 ≤ t ≤ 2π. Podatke možemo u potpunosti interpolirati modelom matrice A napišemo li u MATLABu:

t = linspace (0,2*pi,1000)'; b = cos(t) + 5*cos(2*t) + cos(3*t) + 2*cos(4*t); A = [ones(size(t)), cos(t), cos(2*t), cos(3*t), cos(4*t)]; x=A\b

x =

0.0000 1.0000 5.0000 1.0000 2.0000

plot (b)

0 100 200 300 400 500 600 700 800 900 1000-5

0

5

10

7

Page 8: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

plot (A)

0 100 200 300 400 500 600 700 800 900 1000-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

plot(x)

1 1.5 2 2.5 3 3.5 4 4.5 50

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

Tada rješavamo linearni sustav Ax = b pomoću naredbe x=A\b.

ZADATAK

Riješi sustav opisanim postupkom

Komponente vektora koji predstavlja rješenje opisuju koeficijente početne funkcije. Neki koeficijenti su mnogo veći od ostalih pa aproksimiramo funkciju f primjenom aproksimacije najmanjih kvadrata koja izostavlja dijelove modela s koeficijentima koji imaju vrlo male vrijednosti. Tako npr. možemo postaviti izraz za model najmanjih kvadrata

A = [cos(2*t), cos(4*t)];

i rješiti pripadajući sustav najmanjih kvadrata

8

Page 9: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

x=A\b.

Ovaj model koristi samo dva koeficijenta za opis skupa od 1000 podataka. Podudarnost je zadovoljavajuća, a prikazana je crvenom krivuljom. Dijagram dobijemo naredbom:

plot(t,b,'-b',t,A*x,'-r').

funkcija kosinus oscilira pravilnom frekvencijom. Višekratnici t u primjeru odgovaraju različitim frekvencijama jer što je veći višekratnik t, viša je frekvencija osciliranja. Metodom najmanjeg kvadrata odredili smo najbolju aproksimaciju podataka primjenom samo dvije frekvencije.

plot(t,b,'-b',t,A*x,'-r')

0 1 2 3 4 5 6 7-5

0

5

10

ZADATAK

Nacrtaj gornju krivulju i početnu b krivulju na istom dijagramu, oduzmi ih i prikaži grešku.Komentiraj postupak najmanjih kvadrata svojim riječima.

Metoda najmanjih kvadrata zasniva se na načelu da su najbolji oni pararametri a,b za koje je suma kvadrata razlika između mjerenih vrijednosti yi , i=1,2,...,n i izračunatih vrijednosti f (xi , a,b)minimalna.

a = t,b,'-b'; c = A*x,'-r'; e = a - c; plot (e)

0 100 200 300 400 500 600 700 800 900 1000-8

-6

-4

-2

0

2

4

6

8

10

9

Page 10: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

SEMINARSKI RAD VJEŽBA 12/2 Sažimanje podataka valićem wavelet

U kompresiji značajke određenog Waveleta na temelju, prvenstveno su povezane s relativnom u wavelet domeni reprezentacije za signal.Pojam iza kompresije temelji se na konceptu da je signal komponenta koja se može se točno aproksimira pomoću sljedećih elemenata: mali broj približenjima koeficijenata (na prikladno odabranom razini), a neki od detalja koeficijenata. Postupak sažimanja valićem, kao i postupak eliminiranja šuma, sastoji se od tri koraka:

Decompose Odaberite Wavelet, odaberite razinu N. Izračunaj wavelet dekompozicija signala je na razini N.

Threshold detail coefficientsZa svaku razinu od 1 do N, prag je odabran i teško praga primjenjuje se na detaljno koeficijentima.

ReconstructIzračunajte wavelet rekonstrukciju pomoću izvorne aproksimacijska koeficijenata razini N i modificiranih detaljno koeficijentima razinama od 1 do N.

Razlika de-noising postupku nalazi se u 2. koraku. Postoje dvije kompresije pristupi available. Prvi se sastoji od uzimanja wavelet širenje signala i čuvanje najveći apsolutnu vrijednost koeficijenta. U tom slučaju, možete postaviti globalni prag kompresije performanse, ili relativnu pravokutnu normi za oporavak performanse.

Dakle, potrebno je izabrati samo jedan parametar. Drugi pristup sastoji se u primjeni vizualno određene razinsko ovisne segmentacije level-dependent threshold.

Analizirat ćemo dva praktična primjera sažimanja zvučne datoteke primjenom globalne segmentacije thresholding, uz zadani i neoptimizirani izbor valića kako bi realizirali cjelovito rekonstruirani signal.

Prvi način

% učitaj signal i odaberi dio za sažimanje od 500 uzoraka load leleccum; indx = 2600:3100; x = leleccum(indx); % Izvrši wavelet dekompoziciju signala n = 3; w = 'db3'; [c,l] = wavedec(x,n,w); % Sažmi primjenom nepromjenjivog praga thr = 35; keepapp = 1; [xd,cxd,lxd,perf0,perfl2] = ... wdencmp('gbl',c,l,w,n,thr,'h',keepapp); % grafički prikaži i izvornu i sažetu datoteku plot(x)

10

Page 11: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

0 100 200 300 400 500 600150

200

250

300

350

400

450

plot(xd)

0 100 200 300 400 500 600150

200

250

300

350

400

450

Rezultat je potpuno zadovoljavajući, ne samo zbog normiranog kriterija rekonstrukcije signala nego i sa stajališta vzualne percpcije. Rekonstrukcija koristi samo 15% koeficijenata.

Drugi način

% Load electrical signal and select a part of it. load leleccum; indx = 2600:3100; x = leleccum(indx); % Perform a wavelet decomposition of the signal % at level 5 using db3. wname = 'db2'; lev = 4; [c,l] = wavedec(x,lev,wname);

% Use wdcbm for selecting level dependent thresholds % for signal compression using the adviced parameters. alpha = 1.5; m = l(1); [thr,nkeep] = wdcbm(c,l,alpha,m); % Use wdencmp for compressing the signal using the above % thresholds with hard thresholding.

11

Page 12: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

[xd,cxd,lxd,perf0,perfl2] = ... wdencmp('lvd',c,l,wname,lev,thr,'h'); % Plot original and compressed signals. subplot(211) plot(indx,x) title('Izvorni signal'); subplot(212) plot(indx,xd) title('Sažeti signal');

xlab1 = ['2-norm rec.: ',num2str(perfl2)]; xlab2 = [' % -- nula cfs: ',num2str(perf0), ' %']; xlabel([xlab1 xlab2]);

2600 2650 2700 2750 2800 2850 2900 2950 3000 3050 3100100

200

300

400

500Izvorni signal

2600 2650 2700 2750 2800 2850 2900 2950 3000 3050 3100100

200

300

400

500Sažeti signal

2-norm rec.: 99.9647 % -- nula cfs: 88.2813 %

Valićem ćemo sažeti istu wav datoteku kao u primjeru MP3 sažimanja.

x=wavread('sunday.wav'); % Izvrši wavelet dekompoziciju signala n = 5; w = 'db5'; [c,l] = wavedec(x,n,w); % Sažmi primjenom nepromjenjivog praga thr = 40; keepapp = 1; [xd,cxd,lxd,perf0,perfl2] = ... wdencmp('gbl',c,l,w,n,thr,'h',keepapp); % grafički prikaži i izvornu i sažetu datoteku

12

Page 13: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

%nacrtat ćemo izvorni signal crnom, a sažeti crvenom bojom jedan iznad drugog na istoj slici figure hold on plot(x, 'k');

0 2000 4000 6000 8000 10000 12000 14000 16000-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

Izvorni signal

plot(xd, 'r'); legend('Izvorni signal', 'Sažeti signal');

0 2000 4000 6000 8000 10000 12000 14000 16000-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

Izvorni signal

Sažeti signal

%izvornu i sažetu datoteku možemo poslušati soundsc(x,16000); pause (1); soundsc(xd,16000);

KOMENTAR

Što smo u vježbi naučili.Poslušaj sažete datoteke. Što primjećuješ?

U vježbi smo naučili kako sažeti izvornu zvučnu datoteku. Kod sažete datoteke zvuk je neprepoznatljiv, teško se razumije.

13

Page 14: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

SEMINARSKI RAD VJEŽBA 12/3

Sažimanje dinamičkog područja audio signala postupkom Overlap-Add rekonstrukcije

SEMINARSKI RAD VJEŽBA 12/3Sažimanje dinamičkog područja audio signala postupkom Overlap-Add rekonstrukcije

ilustrira postupak sažimanja dinamičkog područja signala promjenom raspona magnituda svakog frekvencijskog pojasa. Ovaj nelinearna spektralna modifikacija slijedi preklapanje dodavajući FFT algoritam za rekonstrukciju. Ovaj sustav može se koristiti kao sustav govora pojašnjenja za osobe oštećena sluha.Algoritam u ovoj simulaciji

je izveden iz sustava za obradu adaptivnim telefonskih govornih signala za osobe oštećena sluha.

Ovaj sustav razgrađuje ulazni signal u preklapanja dijelova duljine 256. Preklapanje je 192, tako da svakih 64 uzoraka, novi dio je definiran i novi FFT je izračunati. Nakon spektra mijenja se i inverzna FFT izračunava, preklapanje dijelovi sekcija se zbrajaju. Ako ne spektralna modifikacija se obavlja, izlaz je umanjena replika ulaza.Kompresija mapira dinamički raspon veličine na svakoj frekvenciji smeće od raspon 0-100 dB na raspon ymin na ymax dB. ymin i ymax su vektori u MATLAB radnom prostoru s jednog elementa za svaki frekvencijski smeće, u ovom slučaju 256.Faza se ne mijenja. To je ne-linearni spektralna modifikacija.Do sažimanje dinamičkog raspona na određenim frekvencijama, slušatelj bi trebao biti u mogućnosti da vide tiše zvukove

Da biste koristili ovaj sustav treba pokazati učestalost ovisnosti dinamičkog raspona kompresije, pokrenuti simulaciju. Nakon repozicije, ulazne i izlazne podatke tako da ih možete vidjeti u isto vrijeme, promijeniti osjetljivost Slider 1 do 1000 na 10000.

ZADATAKPokreni model, izvrši promjene i komentiraj temeljem definicije dinamičkog područja.

14

Page 15: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Sažimanjem dinamičkog područja slušatelj čuje tiše zvukove, te se bez obzira na naglo povećanje zvuka slušatelj i dalje čuje tiše zvukove.

15

Page 16: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

VJEŽBA 13 A projektiranje linearnog neurona za predikciju slijedeće vrijednosti vremenskog reda

Sintaksa perceptron

Perceptron (hardlimitTF, perceptronLF)

Opis

Perceptron su jednostavne single-layer binarni klasifikatora, koje dijele ulazni prostor s linearnim odluka granice.

Perceptrons se osigurati povijesnog interesa. Za puno bolje rezultate koristite patternnet, koja se može riješiti nelinearno odvojive problema. Ponekad, kad ljudi govore da Perceptrons oni se odnose na prehranu-forward mreža prepoznavanja uzoraka, kao što patternnet. No, izvorni perceptron, opisao ovdje, može riješiti samo vrlo jednostavnih problema.

Perceptrons može naučiti riješiti usku klasu klasifikacijskih problema. Njihov značaj je da imaju jednostavan učenja pravilo, a bio je jedan od prvih neuronskih mreža pouzdano riješiti dao klasu problema.

perceptron(hardlimitTF,perceptronLF) takes these arguments,

hardlimitTFHard limit transfer function (default = 'hardlim')

perceptronLFPerceptron learning rule (default = 'learnp')

Primjer

x = [0 0 1 1; 0 1 0 1];t = [0 1 1 1];net = perceptron;net = train(net,x,t);view(net)y = net(x)

16

Page 17: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

0 0.5 1 1.5 2 2.5 310

-0.6

10-0.5

10-0.4

10-0.3

10-0.2

10-0.1

100

Best Training Performance is 0.25 at epoch 0

Me

an

Ab

so

lute

Err

or

(m

ae

)

3 Epochs

Train

Best

Projekt Linearne Predikcije

Pokazat ćemo kako projektirati linearni neuron koji predviđa slijedeću vrijednost vremenskog reda ako mu je zadano posljednjih pet vrijednosti.

Određivanje valnog oblika

Vrijeme određujemo od 0 do 5 sekundi u koracima od 1/40 sekunde.

time = 0:0.035:8;

Određujemo signal s obzirom na vrijeme.

signal = sin(time*4*pi); plot(time,signal) xlabel('Vrijeme'); ylabel('Signal'); title('Signal koji treba predvidjeti');

17

Page 18: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

0 2 4 6 8-1

-0.5

0

0.5

1

Vrijeme

Sig

nal

Signal koji treba predvidjeti

Postavljanje problema za neuračnu mrežu

Pretvoreni signal zatim se pretvara u niz stanica. Neuronske mreže predstavljaju vremenske korake kao niz stupaca ćelija, pravimo razliku od različitih uzoraka na određeno vrijeme, koji su zastupljeni sa stupovima matrice.

signal = con2seq(signal);

Kako bi postavili problem koristimo prve četiri vrijednosti signala kao početno ulazno stanje s kašnjenjem, a ostatak, osim posljednjeg koraka, kao ulaz

Xi = signal(1:4);X = signal(5:(end-1));timex = time(5:(end-1));

Sada smo odredili cilj kako bi se podudarao s ulazom, ali smo ga prethodno pomaknuli za jedan vremenski korak.

T = signal(6:end);

Projektiranje Linearnog sloja

Funkcija newlind projektira linearni sloj sa jednim neuronom koji predviđa slijedeći vremenski korak signala ako mu je zadana tekuća i četiri prethodne vrijednosti.

net = newlind(X,T,Xi);view(net)

Warning: Rank deficient, rank = 3, tol = 4.352074e-14.

18

Page 19: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Testiranje Linearnog sloja

Mrežu možemo pozvati kao funkciju na ulazni signal kako bi dobili vremenski odziv.

Y = net(X,Xi);Izlazni signal je nacrtan s ciljnim vrijednostima.

figureplot(timex,cell2mat(Y),timex,cell2mat(T),'+')xlabel('Vrijeme');ylabel('Izlaz - Cilj +');title('Izlazni signal i Ciljni signal');

0 1 2 3 4 5 6 7 8-1.5

-1

-0.5

0

0.5

1

Vrijeme

Izla

z -

Cilj

+

Izlazni signal i Ciljni signal

Grešku možemo nacrtati:

figureE = cell2mat(T)-cell2mat(Y);plot(timex,E,'r')hold offxlabel('Vrijeme');ylabel('Greška');title('Signal greške');

19

Page 20: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

0 1 2 3 4 5 6 7 8-2

-1.5

-1

-0.5

0

0.5

1

1.5x 10

-14

Vrijeme

Gre

ška

Signal greške

Pokazali smo kako projektirati dinamičku linearnu mrežu koja može predvidjeti slijedeću vrijednost signala iz tekuće i prethodne vrijednosti. Uočavamo da je greška izuzetno mala, a u najgorem slučaju 6x10-11.

20

Page 21: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

VJEŽBA 13 B Adaptivna linearna predikcija zvučnog signala neuralnom mrežom

Vježba ilustrira kako adaptivni linearni sloj može naučiti predvidjeti iduću vrijednost signala, ako mu je zadana tekuća i posljednje četiri vrijednosti.

Definiramo valni oblik

U periodu od 0 do 6 sekundi u koracima od 1/40 sekunde definirali smo dva vremenska intervala.

time1 = 0:0.035:6; % from 0 to 4 seconds time2 = 6.035:0.035:8; % from 4 to 6 seconds time = [time1 time2]; % from 0 to 6 seconds

signal započinje na jednoj frekvenciji pa prijelazi na drugu frekvenciju.

signal = [sin(time1*4*pi) sin(time2*8*pi)]; plot(time,signal) xlabel('Vrijeme'); ylabel('Signal'); title('Signal koji treba predvidjeti');

0 1 2 3 4 5 6 7 8-1

-0.5

0

0.5

1

Vrijeme

Sig

nal

Signal koji treba predvidjeti

Postavljanje problema za Neuralnu mrežu

Signal se konvertira u cell array. Neuralna mreža predstavlja vremensku oznaku u obliku stupaca cell array. Treba ih razlikovati od različitih vremenskih uzoraka, koji su predstavljeni stupcima matrica.

signal = con2seq(signal);

Kako bi postavili problem korist demo prvih pet vrijednosti signala kao početna ulazna stanja kašnjenja. Preostale signale (ostatak) demo koristiti kao ulaz.

21

Page 22: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Xi = signal(1:5);X = signal(6:end);timex = time(6:end);

Ciljeve smo odredili tako da su prilagođeni ulazima. Mreža treba predvidjeti tekući ulaz, korištenjem samo posljednjih pet vrijednosti.

T = signal(6:end);

Projektiranje Linearnog sloja

Funkcija linearlayer kreira linearni sloj sa jednim Neuronom s tap delay posljednjih pet ulaza.

net = linearlayer(1:5,0.1);view(net)

Adaptiranje Linearnog sloja

The function *adapt* simulates the network on the input, while adjusting its weights and biases after each timestep in response to how closely its output matches the target.

It returns the update networks, it outputs, and its errors.

[net,Y] = adapt(net,X,T,Xi);

The output signal is plotted with the targets.

figureplot(timex,cell2mat(Y),timex,cell2mat(T),'+')xlabel('Time');ylabel('Output - Target +');title('Output and Target Signals');

22

Page 23: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

0 1 2 3 4 5 6 7 8-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Time

Out

put

- T

arge

t +

Output and Target Signals

% nacrtat ćemo i grešku.figureE = cell2mat(T)-cell2mat(Y);plot(timex,E,'r')hold offxlabel('Vrijeme');ylabel('Greška');title('signal greške');

0 1 2 3 4 5 6 7 8-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Vrijeme

Gre

ška

signal greške

KOMENTAR

Primjećujemo kako je greška izuzetno mala osim u početku i kako je mreža naučila ponašanje sustava na početku i nakon frekvencijskog prijelaza.

Pokazali smo kako adaptivni linearni sloj može naučiti predvidjeti iduću vrijednost signala, ako mu je zadana tekuća i posljednje četiri vrijednosti, bez obzira na promjene ponašanja signala.

Mreža predviđa tekući ulaz korištenjem pet posljednjih vrijednosti.

23

Page 24: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

VJEŽBA 14 B 1-D kontinuirana wavelet analiza

CILJ VJEŽBE

Wavelet Toolbox softver vam omogućuje obavljati kontinuiranu wavelet analizu vaših jednomjerni ili dvomjerni 1-D ulazne signale. Možete izvesti kontinuiranu Wavelet analizu na zapovjednoj liniji ili s grafičkim korisničkim sučeljima dostupne putem wavemenu.

Osnovne karakteristike

Kontinuirana transformacija valića (CWT) od 1-D ulaznog signala koristeći realnu i kompleksnu vrijednost valića.Wavelet Toolbox softver ima CWT algoritme temeljene na povezanosti signala s analizirajući valovod, CWT, a temelji se na diskretnoj Fourierova transformacija od ulaznog signala i analiziranja elementarni val, cwtft.

Inverzni CWT 1-D ulaznog signala. Analizirajući odabrani val, možete invertirati CWT i rekonstruirati vrijeme i skalu približno vašem ulaznom signalu. Vidi icwtft i icwtlin za detalje.

Wavelet križ spektra i koherentnost. Možete koristiti wcoher za izračun elementarni val križ spektra i usklađenost između dva vremenska niza.Elementarni val Križ spektra i usklađenost može otkriti lokalizirane sličnosti između dva vremenska niza u vremenu i opsegu. Vidi Wavelet usklađenost za demo.

Uzorak prilagođen valića za analize signala.Snaga wavelet analize je sposobnost da dizajn valića koji oponašaju struktura koje žele otkriti. Korištenje pat2cwav i wavemngr možete dodati prilagođene valiće optimizirane za otkrivanje određene obrasce u podacima. Vidi uzorak adaptirani valići za otkrivanje signala za demo ove funkcionalnosti.

Naučit ćemo kako:

Load a signal Perform a continuous wavelet transform of a signal Produce a plot of the coefficients Produce a plot of coefficients at a given scale Produce a plot of local maxima of coefficients across scales Select the displayed plots Switch from scale to pseudo-frequency information Zoom in on detail Display coefficients in normal or absolute mode Choose the scales at which analysis is performed

Budući da možete obaviti analize ili iz naredbenog retka ili pomoću grafičkog sučelja alata, ovaj dio ima podsekcije koji pokrivaju svaki način.

Konačna poddionica govori o tome kako razmijeniti signal i koeficijent informacija između diska i grafičkih alata.

Komandna linija neprekidne Wavelet analize

Ovaj primjer uključuje bučan sinusoidalni signal.

24

Page 25: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

1. Load a signal. From the MATLAB prompt, type

load noissin;

You now have the signal noissin in your workspace:

whos Name Size Bytes Class Attributes

noissin 1x1000 8000 double

2. Izvršite Kontinuiranu transformaciju Wavelet.

Use the cwt command. Type

c = cwt(noissin,1:48,'db4');

Analiza signala uvjetovana je sa CWT-om, skalom analize, i koji će se wavelet koristiti.Povratni argument c sadrži koeficijente na različitim skalama. U tom slučaju, c je 48-a-1000 matrica sa svakim retkom koji odgovara jednoj skali.

1. Plot the coefficients.

CWT naredba prihvaća četvrtinu argumenta. To je zastava da, kad je prisutna, omogućuje da CWT izradi radnju od apsolutnih vrijednosti kontinuiranim wavelet preobraženim koeficijentima.

CWT naredba može prihvatiti više argumenata za definiranje različite karakteristike odrađene radnje. Za više informacija, pogledajte CWT referentnu stranicu.

c = cwt(noissin,1:48,'db4','plot');

A plot appears.

Absolute Values of Ca,b Coefficients for a = 1 2 3 4 5 ...

time (or space) b

scale

s a

100 200 300 400 500 600 700 800 900 1000 1 4 71013161922252831343740434649

Dijagrami koeficijenata generated from the command line can be manipulated using ordinary MATLAB graphics commands.

2. Choose scales for the analysis.

25

Page 26: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Dijagrami koeficijenata generiraju se iz naredbenog retka i mogu biti napravljene korištenjem obične Matlab grafičke naredbe.

3. Odaberite skale za analizu.

Drugi argument za CWT vam daje finu kontrolu nad ljestvicama razina na kojima je kontinuirana analiza obavlja. U prethodnom primjeru, koristili smo sve skale 1 do 48, ali možete konstruirati bilo koje ljestvice vektora prema ovim ograničenjima:

• Sve skale moraju biti pravi pozitivni brojevi.• Skala prirasta mora biti pozitivna.• najviša skala ne može prijeći maksimalnu vrijednost, ovisno o signalu.

Let's repeat the analysis using every other scale from 2 to 128. Type

c = cwt(noissin,2:2:115,'db5','plot');

A new plot appears:

Absolute Values of Ca,b Coefficients for a = 2 4 6 8 10 ...

time (or space) b

scale

s a

100 200 300 400 500 600 700 800 900 1000 2 8 14 20 26 32 38 44 50 56 62 68 74 80 86 92 98104110

This plot gives a clearer picture of what's happening with the signal, highlighting the periodicity.

Ovaj zaplet daje jasniju sliku o tome što se događa sa signalom, naglašavajući periodičnost.

Kontinuirana analiza Koristeći grafičko sučelje

Primijenit ćemo kontinuirani Wavelet 1-D alat za analizu istog bučnog sinusoidalnog signala kojeg smo ispitali ranije korištenjem sučelja komandne linije u Command Line kontinuiranoj wavelet analizi.

1. Pokrenite Kontinuirani wavelet 1-D Tool. U MATLAB retku, upišite

wavemenu

Pojavljuje se Wavelet Toolbox Main Menu.

26

Page 27: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Odabiremo stavku izbornika Continuous Wavelet 1-D i pojavljuje se Continuous wavelet analysis tool for one-dimensional signal data.

1. Load a signal.

Choose the File > Load Signal menu option.

Kada se pojavi okvir Učitaj signal, odaberite demo MAT-file noissin.mat, koji bi trebao biti u MATLAB mapi alatni / Wavelet / wavedemo. Kliknite na gumb OK.

Bučni sinusoidalni signal učitan u kontinuirani Wavelet 1-D alat.

Zadana vrijednost za uzorkovanje razdoblje jednaka je 1 (drugi).

27

Page 28: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

2. Izvršite kontinuiranu Wavelet transformaciju.

Za početak naše analize, idemo izvršiti analizu koristeći db4 Wavelet na ljestvicama 1. do 48, baš kao što mi je pomoću funkcije naredbenog retka u prethodnom odjeljku.

U gornjem desnom dijelu kontinuirani wavelet 1-D alat, odaberite db4 Wavelet i mjerila 1-48.

2. Kliknite na tipku za analiziranje.

Nakon pauze za računanje, alat prikazuje koeficijenti grafički nacrt, koeficijenta linija odgovara skali = 24, a lokalni Maxima grafički nacrt, koja prikazuje ulančavanje preko skale (iz = 48 do a = 1) od koeficijenti lokalnog maksimuma.

2. Pogledajte wavelet liniju koeficijenata.

Odaberite drugu skalu = 40 klikom u koeficijentima nacrt sa desnom tipkom miša. Vidi korak 9, točnije, kako odabrati željenu radnju.

Kliknite na New Coefficients Line button. Alat ažurira radnju.

2. View Maxima Line.

28

Page 29: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

2. Pogledajte Maxima liniju.

Kliknite Refresh Maxima Line button.Lokalni maksimumi nacrta prikazuje ulančavanje preko ljestvica koeficijenta lokalnog maksimuma iz a= 40 dolje na a= 1.

Držite pritisnutu desnu tipku miša nad koeficijentima nacrta.Položaj miša daje Info okvira (nalazi se na dnu ekrana) u smislu lokacije (X) i mjerila (SCA).

3.4. 2. Prebacivanje iz skale Pseudo-Frequency informacija.

Koristeći opciju gumb na desnom dijelu zaslona, odaberite Frequenciesumjesto Scales. Opet držite desnu tipku miša nad koeficijentima grafičkog nacrta, položaj miša daje u lokaciju (X) i frekvenciju (FRQ) u Hertz.

29

Page 30: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Ovaj objekt vam tumači razmjer u smislu povezane pseudo-frekvencije, što ovisi o wavelet i uzorkovanja perioda ..

2. Poništite odabir posljednje dvije skale koristeći okvire u odabranoj osi okvira.

2. Detaljno povećavanje.

Povucite okvir gume (držeći pritisnutu lijevu tipku miša) bend preko dijela signala koje želite povećati.

2. Kliknite na gumb X + (nalazi se na dnu ekrana) za vodoravno povećavanje.

Kontinuirani Wavelet 1-D alat povećava prikazani signala i koeficijente grafičkog nacrta (za više informacija o zooming, vidi Spajanje skalama u Wavelet Toolbox Korisničkom priručniku).

30

Page 31: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Kao i kod analize naredbenog retka na prethodnim stranicama, možete promijeniti ljestvice ili Wavelet analizom ponoviti analizu. Da biste to učinili, jednostavno uredite potrebna polja i kliknite na gumb analiziranje.

2. Pogledajte normalne ili apsolutne koeficijente.

Kontinuirani Wavelet 1D alat vam omogućuje da iscrtate apsolutne vrijednosti wavelet koeficijenata, ili same koeficijente.

Općenitije, koeficijenti obojenosti mogu se obaviti u nekoliko različitih načina. Za više detalja o načinu obojenosti, vidi Controlling the Coloration Mode.

Odaberite samo jedan od apsolutnih načina ili normalnim načina iz izbornika Coloration Mode menu. U normalnim načinima, boje su skaliran između minimuma i maksimuma koeficijenata. U apsolutnim, boje se skaliraju između nule i maksimalne apsolutne vrijednosti koeficijenata.

Grafički koeficijenti nacrta prikazuje se u modu koje ste odabrali.

slika

31

Page 32: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Uvoz i izvoz informacija iz grafičkog sučelja

The Continuous Wavelet 1-D je alat grafičko sučelje koji vam omogućuje da stavljate i uzimate podatke s diska.

Možete Umetniti signale iz diska u Continuous Wavelet 1-D tool. Spremiti wavelet koeficijente iz Continuous Wavelet 1-D alata u disk.

Učitavanje signala u Continuous Wavelet 1-D Tool

Za učitavanje signala u svom konstruiranom MATLAB radnom prostoru u Continuous Wavelet 1-D alatu, spremite signal u MAT-datoteke (sa nastavkom mat ili drugom).

Na primjer, pretpostavimo da ste osmislili signal pod nazivom warma i želite ga analizirati u Continuous Wavelet 1-D alatu.

save warma warma

Radno područje warma varijable mora biti vektor.

sizwarma = size(warma)

sizwarma = 1 1000

Da biste učitali ovaj signal u Continuous Wavelet 1-D alat, koristite izbornik File option> Load Signal. Pojavljuje se dijaloški okvir koji vam omogućuje da odaberete odgovarajuću MAT-datoteku za učitavanje.

32

Page 33: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Napomena Prva jednodimenzionalna varijablakoju smo susreli u datoteci smatra se signalom. Varijable se pregledavaju po abecednom redu.

Spremanje wavelet koeficijenata

Continuous Wavelet 1-D alat vam omogućuje da spremite wavelet koeficijente na disk. Alatni okvir stvara Mat datoteku u trenutnoj mapi s proširenom WC1 i imenuje ga.

Za spremanje kontinuiranih wavelet koeficijenata od ovoj analizi, koristite opciju izbornikaFile > Save > Coefficients.

Pojavljuje se dijaloški okvir koji vam omogućuje da odredite mapu i naziv datoteke za spremanje koeficijenata.

Razmotrimo primjer analize:

File > Example Analysis > with haar at scales [1:1:64] → Cantor curve.

Nakon spremanja kontinuiranih wavelet koeficijenata u datoteku cantor.wc1, učitajte varijable u svoje radno područje:

load cantor.wc1 -matwhos

Name Size Bytes ClassCoeff 64x21881120256 double arrayscales 1x64 512 double arraywname 1x4 8 char array

Varijable coefs i scales sadrže kontinuirane wavelet koeficijente i pripadajuće skale. Točnije, u gornjem primjeru, coefs je 64-po-2188 matrica, jedan redak za svaku skalu, a skale je 1-po-64 vektor 1:64. Varijabla wname sadržava wavelet ime.

33

Page 34: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

VJEŽBA Nedecimirana Wavelet analiza

CILJ VJEŽBEVježba pokazuje kako izvršiti dekompoziciju signala primjenom nedecimirane wavelet analize.

Ova vrsta redudancije, prijevod neovisne preobrazbe je posebno korisna za denoising, koji je jedan od najvažnijih wavelet aplikacija. Ova vrsta analize je već izrađena za stacionarne wavelet transform (SWT) funkcija (1-D stacionarni Wavelet funkcije) i SWT GUI. Ova transformacija ipak ima ozbiljno ograničenje: signalna dužina mora imati snagu dva perioda i produžetak rada mora se koristiti za temelje DWT.

Učitaj izvorni signal

load noisbloc; L = length(noisbloc)L =

1024 plot(noisbloc,'r') axis tight title('Izvorni Signal')

L = 1024

100 200 300 400 500 600 700 800 900 1000

-5

0

5

10

15

20

Izvorni Signal

Učitani signal je dužine 1.024, tako da možete koristiti SWT funkcije da ga razgrađuju. Mi sada izrežite učitavanje signalna i zadržite samo 979 uzoraka, što nije snaga 2 (plava linija ispod grafičkog nacrta).

nkeep = 979;

34

Page 35: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

sig = noisbloc(1:nkeep); hold on plot(sig,'b') title('Izvorni i Skraćeni Signali')

0 100 200 300 400 500 600 700 800 900 1000-10

-5

0

5

10

15

20

25Izvorni i Skraćeni Signali

Multilevel 1-D Non-Decimated Wavelet Decomposition

n = 5; % Decomposition level w = 'db1'; % Haar wavelet WT = ndwt(sig,n,w) % Multilevel 1-D wavelet decomposition.

WT =

rowvect: 1 level: 5 mode: 'sym' filters: [1x1 struct] dec: {[1x984 double] [1x984 double] [1x983 double] [1x982 double] [1x981 double] [1x980 double]} longs: [984 984 983 982 981 980 979] Funkcija NDWT vraća strukturu koja sadrži parametre ne decimirane preobrazbe.

Filteri povezani s wavelet:

WT.filters

ans =

LoD: [0.7071 0.7071] HiD: [-0.7071 0.7071] LoR: [0.7071 0.7071] HiR: [0.7071 -0.7071]

35

Page 36: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Dekompozicija je organizirana u sekvenci koeficijenata prema razini i vrsti signala (aproksimacija ili detalj). Koeficijenti su ulančani i dati WT.dec koja je jednaka [Ca (N) Cd (N) Cd (N-1) ... Cd (1)]:

WT.dec

ans =

[1x984 double] [1x984 double] [1x983 double] [1x982 double] [1x981 double] [1x980 double]

Dužine koeficijenta sekvenci su date od originalnog signala WT.longs:

WT.longs

ans =

984 984 983 982 981 980 979

I konačno, diskretna wavelet transformacija proširenog moda je

WT.mode

ans =

sym

Višerazinska 1-D Nedecimirana Wavelet Rekonstrukcija

Počevši od dekompozicije, možemo izgraditi sve komponente (aproksimacije i detalja) korisne za analizu:

A = cell(1,n);D = cell(1,n);for k = 1:n A{k} = indwt(WT,'a',k); % Approximations (low-pass components) D{k} = indwt(WT,'d',k); % Details (high-pass components)end

Za Denoise ili obradu signala, možete mijenjati koeficijente prije rekonstrukcije, na primjer, tako da odredite prag.

Sada se koncentriramo na mogućnosti ne-decimirane preobrazbe. Prvo provjerite da li su koeficijenti nepromijenjeni, na rekonstrukcijama su savršeni, tj. sig = (k) + D (k) + ... + D (1).

err = zeros(1,n);for k = 1:n E = sig-A{k}; for j = 1:k

36

Page 37: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

E = E-D{j}; end err(k) = max(abs(E(:)));enddisp(err)

1.0e-13 *

0.1688 0.1538 0.1925 0.1764 0.1749

Zatim smo ilustrirali grafički dvije različite dekompozicija od originalnog signala: aproksimacija i detalji na razini 1 i aproksimacija na razini 5, plus zbroja detalja razina od jedan do pet.

for k = [1 5] figure('Color','w') subplot(2,1,1); plot(A{k},'b'); axis tight; xlabel(['A' int2str(k)]) subplot(2,1,2); plot(sig-A{k},'g'); axis tight; xlabel(['Sum of Details from 1 to ' int2str(k)])endclear A D E err

100 200 300 400 500 600 700 800 900

0

10

20

A1

100 200 300 400 500 600 700 800 900

-2

0

2

Zbroj detalja od 1 do 1

37

Page 38: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

100 200 300 400 500 600 700 800 900-5

0

5

10

15

A5

100 200 300 400 500 600 700 800 900

-4

-2

0

2

4

Zbroj detalja od 1 do 5

Počevši od drugog početnog signala, možemo pokazati učinak promjene proširenog rada.

load noissin;% Truncate the signalx = noissin(1:512);wname = 'sym4';level = 5;% Consider the decompositions obtained using two different extension modes:W1 = ndwt(x,level,wname,'mode','zpd'), % Zero paddingW2 = ndwt(x,level,wname,'mode','per'), % Periodization

A5_W1 = indwt(W1,'a',level);A5_W2 = indwt(W2,'a',level);

W1 = rowvect: 1 level: 5 mode: 'zpd' filters: [1x1 struct] dec: {1x6 cell} longs: [547 547 540 533 526 519 512]W2 = rowvect: 1 level: 5 mode: 'per' filters: [1x1 struct] dec: {1x6 cell} longs: [547 547 540 533 526 519 512]

38

Page 39: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Aproksimacije su vrlo slične, s razlikama koje se pojavljuju na početku i na kraju tih aproksimacija.

figure('Color','w')subplot(3,1,1); plot(A5_W1,'r'); axis tight; title('A5 - Zero padding');subplot(3,1,2); plot(A5_W2,'b'); axis tight; title('A5 - Periodization');subplot(3,1,3); plot(A5_W1-A5_W2,'m','LineWidth',2); axis tight;xlabel('Diffence between the approximations');

50 100 150 200 250 300 350 400 450 500-1

0

1

A5 – Postavljanje Nula

50 100 150 200 250 300 350 400 450 500-1

0

1

A5 - Periodizacija

50 100 150 200 250 300 350 400 450 500-0.05

00.050.1

Razlika između aproksimacije

ZAKLJUČAK

Što je zbroj detalja veći to je šum manji.

VJEŽBA Wavelet analiza periodičnog signala uronjenog u šum

Definiramo periodični signal koji je zbroj dviju sinusnih frekvencija F1 = 10 i F2 = 40 oštećenog od normalnog distribuiranog bijelog šuma. Mi ćemo izračunati spektralnu gustoću snage (PSD) procjenjenu pomoću spektralnu procjene i kontinuiranu wavelet transformaciju pomoću wavelet gaus4.

Radimo analizu signala.

39

Page 40: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

F1 = 15; F2 = 50; Fs = 1000; t = 0:1/Fs:1; x = sin(2*pi*t*F1) + sin(2*pi*t*F2); wn = randn(1,length(x)); wn = 1.5*wn/std(wn); xn = x + wn; plot (xn)

0 200 400 600 800 1000 1200-6

-4

-2

0

2

4

6

h = spectrum.welch; Hpsd = psd(h,xn,'Fs',Fs); clf; hLIN = plot(Hpsd); ydata_XN = get(hLIN,'ydata');

0 50 100 150 200 250 300 350 400 450 500-26

-24

-22

-20

-18

-16

-14

Frequency (Hz)

Pow

er/f

requ

ency

(dB

/Hz)

Welch Power Spectral Density Estimate

40

Page 41: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Možete vidjeti dvije glavne frekvencije u spektrogramu.

Sada računamo tablicu za dopunu vrijednosti skale i frekvencije za gaus4 wavelet. Nakon toga određujemo skale koje pripadaju frekvencijama F1 = 10 i F2 = 40.

wname = 'gaus4';scales = 1:1:128;TAB_Sca2Frq = scal2frq(scales,wname,1/Fs);[~,idxSca_1] = min(abs(TAB_Sca2Frq-F1));Sca_1 = scales(idxSca_1)[mini,idxSca_2] = min(abs(TAB_Sca2Frq-F2));Sca_2 = scales(idxSca_2)

Sca_1 = 50

Sca_2 = 13

Nakon toga računamo continuous wavelet transform signala pa crtamo skalogram of wavelet coefficients i dvije vodoravne linije koje pripadaju skalama Sca_1 i Sca_2 povezanim s frekvencijama F1 i F2.

coefs = cwt(xn,scales,wname);clf; wscalogram('image',coefs,'scales',scales,'ydata',xn);hold onplot([1 size(coefs,2)],[Sca_1 Sca_1],'Color','m','LineWidth',2);plot([1 size(coefs,2)],[Sca_2 Sca_2],'Color','w','LineWidth',1);

100 200 300 400 500 600 700 800 900 1000-10

0

10Analyzed Signal

Scalogram Percentage of energy for each wavelet coefficient

Time (or Space) b

Sca

les

a

100 200 300 400 500 600 700 800 900 1000 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99106113120127

2

4

6

8

10

12x 10

-3

hold on plot([1 size(coefs,2)],[Sca_1 Sca_1],'Color','m','LineWidth',2); plot([1 size(coefs,2)],[Sca_2 Sca_2],'Color','w','LineWidth',1);

41

Page 42: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

100 200 300 400 500 600 700 800 900 1000-10

0

10Analyzed Signal

Scalogram Percentage of energy for each wavelet coefficient

Time (or Space) b

Sca

les

a

100 200 300 400 500 600 700 800 900 1000 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99106113120127

2

4

6

8

10

12x 10

-3

Iako je manje jasno nego u bešumnom slučaju, možemo vidjeti da su te linije još uvijek povezane s lokalnim maksimumima energije u scalogram.

Analiza složenijeg signala

Projektirat ćemo složeniji signal koji predstavlja sinusni polinom određen u tri susjedna intervala: frequency F1 = 10 for the intervals [0 0.25] and [0.75 1] which correspond to the indices 1:250 and 750:1000, and frequency F2 = 40 for the interval [0.25 0.75] which corresponds to the indices 251:749.

F1 = 15; F2 = 50; Fs = 1000; t = 0:1/Fs:1; x = sin(2*pi*t*F1).*((t<0.25)+(t>0.75)) + sin(2*pi*t*F2).*(t>0.25).*(t<0.75); plot (x) %and display the analyzed signal. clf; plot(x);axis tight title('Signal'); xlabel('Vrijeme (ili Širina)')

42

Page 43: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

100 200 300 400 500 600 700 800 900 1000-1

-0.5

0

0.5

1Signal

Vrijeme (ili Širina)

h = spectrum.welch; Hpsd = psd(h,x,'Fs',Fs); clf; plot(Hpsd);

0 50 100 150 200 250 300 350 400 450 500-65

-60

-55

-50

-45

-40

-35

-30

-25

-20

-15

Frequency (Hz)

Pow

er/

frequency (

dB

/Hz)

Welch Power Spectral Density Estimate

Spektar je vrlo sličan onome postignutom u slučaju zbroja dvaju sinusa. To nam ne daje informacije o položaju bilo kojih događaja u vremenu i prostoru.

Sada, izračunamo kontinuiranu wavelet transformaciju signala i ucrtamo scalogram od wavelet koeficijenata i dvije horizontalne linije koje odgovaraju mjerilima Sca_1 i Sca_2 povezane s frekvencijama F1 i F2. Također ćemo izvući dvije vertikalne linije koje razdvajaju intervale.

wname = 'gaus4';scales = 1:1:128;coefs = cwt(x,scales,wname);

43

Page 44: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

clf; wscalogram('image',coefs,'scales',scales,'ydata',x);hold onplot([1 size(coefs,2)],[Sca_1 Sca_1],'Color','m');plot([1 size(coefs,2)],[Sca_2 Sca_2],'Color','m');plot([250 250],[1 128],'Color','g','LineWidth',2);plot([750 750],[1 128],'Color','g','LineWidth',2);

100 200 300 400 500 600 700 800 900 1000-1

0

1Analyzed Signal

Scalogram Percentage of energy for each wavelet coefficient

Time (or Space) b

Scale

s a

100 200 300 400 500 600 700 800 900 1000 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99106113120127

0

0.005

0.01

0.015

plot([1 size(coefs,2)],[Sca_1 Sca_1],'Color','m'); plot([1 size(coefs,2)],[Sca_2 Sca_2],'Color','m'); plot([250 250],[1 128],'Color','g','LineWidth',2); plot([750 750],[1 128],'Color','g','LineWidth',2);

100 200 300 400 500 600 700 800 900 1000-1

0

1Analyzed Signal

Scalogram Percentage of energy for each wavelet coefficient

Time (or Space) b

Sca

les

a

100 200 300 400 500 600 700 800 900 1000 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99106113120127

0

0.005

0.01

0.015

Imajte na umu da wavelet analiza radi vrlo učinkovito otkrivanje vremena ili prostora događanja. Intervali s različitim frekvencijama su jasno otkriveni.

ZAKLJUČAK

44

Page 45: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

U principu, alati najprikladniji za spektralne analize signala temelje se na FFT, međutim, valići, iako nije posebno posvećen ovoj vrsti analize, mogu obnoviti neke od ovog spektra informacija.

Wavelet proceduru smo koristili za kontinuiranu wavelet transformaciju i funkciju scal2freq izračuna podudarnosti između tablica vrijednosti skala i frekvencija. Ova tablica ovisi o odabranom wavelet-u. Potom, tražili smo skalu koja odgovara na frekvencije ili obrnuto.

Ovaj postupak stvara aproksimirane vrijednosti, no oni su uglavnom dovoljno dobro kada se primjenjuju na signale koje nisu prekompleksni. Ovaj postupak je također vrlo učinkovit u otkrivanju vremena ili prostora događaja.

VJEŽBA: Wavelet koherencija

CILJ VJEŽBE

Kontinuirana wavelet transformacija (CWT) omogućuje vam da analizirate vremenske evolucije frekvencijskog sadržaja određenog signala ili vremena serije.Primjena CWT na dvije vremenske serije i unakrsnog ispitivanja dvaju dekompozicija može otkriti lokalizirane sličnosti u vremenu i skali. Područja u vrijeme frekvencija ravnine gdje dvije vremenske serije izlažu zajedničku snagu ili u skladu faza ukazivaju na odnos između signala.

Za zajednički stacionarne vremenske serije, križ spektra i pripadajući usklađenost funkcija na temelju Fourierove transformacije ključni su alati za otkrivanje zajedničko ponašanje u frekvenciji. U općem slučaju nestacionarnih, wavelet-based pandani mogu definirati i osigurati vrijeme lokalizirane alternative.Wcoher.m funkcija pruža ove wavelet-based procjene. Svrha ovog demo je razumjeti

kako koristiti wcoher.m i interpretirati rezultate.

U vježbi ćemo izrediti tri primjera korištenjem: dva sinusna vala u Gaussovom šumu, sinusni i dopplerov signal te ćemo detektirati anomalije sustava primjenom koherencije valića.

U primjerima ćemo koristiti kompleksne vrijednosti valića. Primjenom kompleksnih valića CWT, Cx(a,b), realnog vremenskog reda x, je kompleksna funkcija parametra skale a i parametra lokacije b.

Primjer 1: Dva sinusna vala u Gaussovom šumu

45

Page 46: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Prvi primjer uvodi različite grafičke reprezentacije koje se nalaze u wcoher.m funkciji.Primjer također naglašava korisnost faze informacija dobivenih od korištenja kompleks-cijenjenih valića.

Razmotrite dvije sinusne funkcije na intervalu [0,1] pomoću 2.048 bodova. Obje sinusne funkcije imaju frekvenciju od 8 Hz. Jedna od funkcija ima početnu fazu odlazne pi / 4 radijana. Obje sinusne funkcije su oštećene od dodatka nultom srednjem Gausovim šumom s varijance 0,5. Razmotrite CWT dva signala (obilježeni s x i y) pomoću cgau3 spremljenu u wavelet za cijelu skalu od 1-512.

wname = 'cgau2';scales = 1:512;ntw = 21;t = linspace(0,1,2048);x = sin(16*pi*t)+0.25*randn(size(t));y = sin(16*pi*t+pi/4)+0.25*randn(size(t));wcoher(x,y,scales,wname,'ntw',ntw,'plot','cwt');

200 400 600 800 1000 1200 1400 1600 1800 2000

-1

0

1

Analyzed Signal

200 400 600 800 1000 1200 1400 1600 1800 2000

-1

0

1

Analyzed Signal

Modulus

200 400 600 800 1000 1200 1400 1600 1800 2000 1

53

105

157

209

261

313

365

417

469

Modulus

200 400 600 800 1000 1200 1400 1600 1800 2000 1

53

105

157

209

261

313

365

417

469

Angle

200 400 600 800 1000 1200 1400 1600 1800 2000 1

53

105

157

209

261

313

365

417

469

Angle

200 400 600 800 1000 1200 1400 1600 1800 2000 1

53

105

157

209

261

313

365

417

469

The common period of the signals at scale 128 is clearly detected in the moduli of the individual wavelet spectra. Using

Freq = scal2frq(128,'cgau3',1/2048);

note that this corresponds to a frequency of 8 Hz, which is equivalent to (1/8)*2048 = 256 samples per period with the given sampling frequency.

Wavelet spektar, definiran za svaki signal, karakteriziran modulom i fazom CWT dobivenih pomoću složenih vrijednosti wavelet-a. Označavaju pojedinačne wavelet spektre kao CX (a, b), a Cy (a, b). Dvije dekompozicije su potpuno iste, u prijevodu, jer CWT je nepromjenljiv. Da biste ispitati odnos između dva signala u vremenskim razmjerima ravnine, razmislite da wavelet križ spektra Cxy (A, B), je definiran kao

46

Page 47: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

gdje označava složen konjugat. Izglađena verzija ove funkcije je prikazana na sljedećoj slici.

wcoher(x,y,scales,wname,'ntw',ntw,'plot','wcs');

200 400 600 800 1000 1200 1400 1600 1800 2000

-1

0

1

Analyzed Signals

Modulus

Sca

les

200 400 600 800 1000 1200 1400 1600 1800 2000 1

53

105

157

209

261

313

365

417

469

Angle

Times

Sca

les

200 400 600 800 1000 1200 1400 1600 1800 2000 1

53

105

157

209

261

313

365

417

469

Magnituda Wavelet unakrsnog spektra može se tumačiti kao apsolutne vrijednosti domaće kovarijance između dvije vremenske serije u vremenskim razmjerima ravnine. U ovom primjeru, ova nenormalna količina naglašava činjenicu da su oba signala imaju značajan doprinos diljem 128 skale na svim pozicijama.

Sljedeća slika prikazuje najvažniju wavelet koherentnost. Empirijska wavelet koherentnost za x i y je definirana kao omjer:

47

Page 48: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

gdje je S stoji za zaglađivanje operatora u vremenu i opsegu.Valić koherentnosti može se tumačiti kao lokalni kvadrata koeficijenta korelacije u vremenskim razmjerima ravnine.

wcoher(x,y,scales,wname,'ntw',ntw,'plot');

200 400 600 800 1000 1200 1400 1600 1800 2000

-1

0

1

Analyzed Signals

Wavelet Coherence - Modulus and Phase

200 400 600 800 1000 1200 1400 1600 1800 2000 1

53

105

157

209

261

313

365

417

469

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Strelice u slici predstavljaju relativnu fazu između dva signala u ovisnosti o skali i položaju.Relativna faza saznanja iz zaglađene procjene Wavelet poprečnog spektra, S (Cxy (a, b)).Ravnina relativnih faza je prekrivena na Wavelet koherentnosti.Relativna faza informacije daje lokalni mjeru odgode između dvije vremenske serije. Imajte na umu da za vage diljem 128, smjer strelice bilježi relativnu fazna razlika između dva signala od pi / 4 radijana.

Razmislite o primjeru koji uključuje prolazno ponašanje i suptilniji odnos između dvije vremenske serije.

Primjer 2: Sine and Doppler Signal

4-Hz sinusni val sa aditiva Gaussova šuma je uzorkovano na rešetki od 1024 bodova nad intervalom [0,1].Drugi put serija je doppler signala bila manja učestalosti tijekom vremena. Razmislite

CWT od dva signala (obilježeni xiy) pomoću cgau3 složenu Wavelet za cijelih skala 1-512.

wname = 'cgau2';scales = 1:512;ntw = 21;t = linspace(0,1,1024);x = -sin(8*pi*t) + 0.4*randn(1,1024);x = x/max(abs(x));y = wnoise('doppler',10);

48

Page 49: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

wcoher(x,y,scales,wname,'ntw',ntw,'plot','cwt');

100 200 300 400 500 600 700 800 900 1000

-0.5

0

0.5

1Analyzed Signal

100 200 300 400 500 600 700 800 900 1000

-0.4

-0.2

0

0.2

0.4

Analyzed Signal

Modulus

100 200 300 400 500 600 700 800 900 1000 1

53

105

157

209

261

313

365

417

469

Modulus

100 200 300 400 500 600 700 800 900 1000 1

53

105

157

209

261

313

365

417

469

Angle

100 200 300 400 500 600 700 800 900 1000 1

53

105

157

209

261

313

365

417

469

Angle

100 200 300 400 500 600 700 800 900 1000 1

53

105

157

209

261

313

365

417

469

Analiza sinusne funkcije na lijevoj strani pokazuje skalu povezanu s razdobljem (koja je jednaka 1024/8 = 128).Analiza Doppler signala ističe tipični vremenski razmjer slike ilustriran smanjenjem frekvencije (povećava skalu) kao funkciju vremena. The wavelet cross spectrum je prikazan na slijedećoj slici.

wcoher(x,y,scales,wname,'ntw',ntw,'nsw',1,'plot','wcs');

100 200 300 400 500 600 700 800 900 1000

-0.5

0

0.5

1Analyzed Signals

Modulus

Sca

les

100 200 300 400 500 600 700 800 900 1000 1

53

105

157

209

261

313

365

417

469

Angle

Times

Sca

les

100 200 300 400 500 600 700 800 900 1000 1

53

105

157

209

261

313

365

417

469

49

Page 50: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Magnituda je više poučna i pokazuje sličnost lokalne frekvencije ponašanja dvaju vremenski serija u vremenskim razmjerima ravnine. Oba signala imaju sličan doprinos oko 128 ljestvice u odnosu na interval [300, 700]. Uočene su vizualne kontrole na vremenske domene ravnine. Dodatne zanimljive informacije postaje izražajne u Wavelet koherentnosti.

wcoher(x,y,scales,wname,'ntw',ntw,'plot');

100 200 300 400 500 600 700 800 900 1000

-0.5

0

0.5

1Analyzed Signals

Wavelet Coherence - Modulus and Phase

100 200 300 400 500 600 700 800 900 1000 1

53

105

157

209

261

313

365

417

469

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Faza informacije možete tumačiti u pronalaženju različitih regija vremenskih razmjera ravnine i istaknuti nekoliko cjelovitih ponašanja. Neki prolazni sitni doprinosi varijabilnosti vremenske serije pojavljuju se u malim skalama na početku Dopplerovog signala, koji pokazuje brze oscilacije.Ponašanje nije koherentno i fazne promjene su vrlo brze. Međutim, na pozicijama većim od 150 i skalama većim od 130, brojne koherentne regije mogu se lako otkriti, ograničena je stabilnost fazne informacije. Zbog faza informacija je toliko korisna u određivanju koherentnog ponašanja, drugi zastupljeni alat je dostupan za fokusiranje na faze. Fazne informacije kodirane su na obje strane strelice, ili vektorske, orijentacije i boju pozadine.Boja pozadine je povezana s mapiranju intervalu [-pi, pi].

wcoher(x,y,scales,wname,'ntw',ntw,'plot','wcoh');

Podaci analizirani u ovom primjeru velikodušno su osigurani naftnoj kompaniji Total. Dva signala, sensor1 i sensor2, zabilježeni su u dvije različite prostorne lokacije.Kvazi-periodični signal se pojavljuju na oba senzora i ukazuje na sustavnu anomaliju. Iako je moguće otkriti oscilatorno ponašanje ispitujući podatke snimljene na individualnom senzoru, analizirajući zajedničko vrijeme razmjera varijacije uzorkovanog ulaza na dvije prostorno-odvojena senzora rezultira smanjenju lažne pozitivne stope. Prethodne studije koriste složenu emisiju Morlet wavelet da lažan signal vrti oko skale 15. Ovaj primjer koristi složeni Morlet Wavelet cmor1-3 i vage 1:0.1:50.scales = 1:0.1:50;wname = 'cmor1-3';load sensor1; load sensor2

50

Page 51: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

long = 4000;first = 5000;last = first + long-1;indices = (first:last);s1 = sensor1(indices);s2 = sensor2(indices);wcoher(s1,s2,scales,wname,'ntw',ntw,'plot','cwt');

500 1000 1500 2000 2500 3000 3500 4000

-1

0

1

Analyzed Signal

500 1000 1500 2000 2500 3000 3500 4000

-0.5

0

0.5

1

Analyzed Signal

Modulus

500 1000 1500 2000 2500 3000 3500 4000 1

53

105

157

209

261

313

365

417

469

Modulus

500 1000 1500 2000 2500 3000 3500 4000 1

53

105

157

209

261

313

365

417

469

Angle

500 1000 1500 2000 2500 3000 3500 4000 1

53

105

157

209

261

313

365

417

469

Angle

500 1000 1500 2000 2500 3000 3500 4000 1

53

105

157

209

261

313

365

417

469

Slika prikazuje obje CWT dekompozicije. Podaci iz sensora1 nalazi se na lijevoj strani, a podaci iz sensora2 desno. Srednja brojka panela sadrži grafički prikaz pojedinačnog CWT modula za sensor1

i sensora2. Oba CWT modula grafički otkrivaju jake komponente oko skale 16 tijekom otprilike prvih 2.000 bodova. Obje skale i položaji komponenata pokazuju dobro slaganje na dva prostorno-odvojena senzora.Sljedeći korak pokazuje wavelet križ spektra.

wcoher(s1,s2,scales,wname,'ntw',ntw,'plot','wcs');

51

Page 52: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

500 1000 1500 2000 2500 3000 3500 4000

-1

0

1

Analyzed Signals

Modulus

Sca

les

500 1000 1500 2000 2500 3000 3500 4000 1

53

105

157

209

261

313

365

417

469

Angle

Times

Sca

les

500 1000 1500 2000 2500 3000 3500 4000 1

53

105

157

209

261

313

365

417

469

Modul od Wavelet križ spektra jasno pokazuje snažnu komponentu oko skale 16.Magnituda komponente povećava i smanjuje tijekom vremena, ali je općenito jaka za otprilike prvih 2500 bodova signala. Konačno, računanje wavelet koherentnosti i umetanjem u fazu poprečno zaglađenog Wavelet spektra pokazuje da su podaci iz dva senzora izložbene koherentnosti blizu 1 i približno konstantan u relativnoj fazi u skalama interesa.

ntw = 51; % N-point time windownts = 10; % N-point scale windownat = 50; % number of arrows in timenas = 20; % number of arrows in scaleasc = 0.75; % scale factor for the arrows (see QUIVER).wcoher(s1,s2,scales,wname,'nat',nat,'nas',nas, ... 'ntw',ntw,'nts',nts,'asc',asc,'plot');

52

Page 53: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

500 1000 1500 2000 2500 3000 3500 4000

-1

0

1

Analyzed Signals

Wavelet Coherence - Modulus and Phase

500 1000 1500 2000 2500 3000 3500 4000 1

53

105

157

209

261

313

365

417

469

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Kodiranje pozadinske boje u koherentnosti površine za fazu naglašava sklad u relativnoj fazi ponašanja u dva senzora na skali interesa.

wcoher(s1,s2,scales,wname,'nat',nat,'nas',nas, ... 'ntw',ntw,'nts',nts,'asc',asc,'plot','wcoh');

500 1000 1500 2000 2500 3000 3500 4000

-1

0

1

Analyzed Signals

Wavelet Coherence - Phase

500 1000 1500 2000 2500 3000 3500 4000 1

53

105

157

209

261

313

365

417

469

-3 -2 -1 0 1 2 3

Wavelet koherentna analiza uvelike olakšava otkrivanje kvazi-periodične komponente indikativne u sustavu anomalije.Korištenje drugih valića (cgaus2 ili cmor1.5) ne mijenja ove zaključke, ali precizna lokalizacija u ljestvici od kritičkog fenomena prirodno se mijenja ovisno o preispitivanju wavelet.

ZAKLJUČAKOvaj demo je pokazao kako koristiti wavelet poprečni spektar i wavelet koherentnost je otkrila

Cjeloviti kod

53

Page 54: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Click Next to continue or Stop to end wcoherdemo.m (1/16)--------------------------------------------------------------------------- WAVELET COHERENCE

Kontinuirana wavelet transformacija (CWT) omogućuje vam da analizirati vremenske Evolucija frekvencijskog sadržaja određenog signala ili vrijeme serije. Primjena CWT na dvije vremenske serije i poprečnog ispitivanje dvije dekompozicija može otkriti lokalizirane sličnosti u vremenu i razmjera. Područja u vrijeme frekvencija ravnini gdje dvije vremenske serije izlagačkog zajednička snaga ili u skladu faza ponašanje ukazuje na odnos između signali. Za zajednički stacionarni vremenske serije, na križanju spektra i povezana usklađenost funkcija na temelju Fourier transform su ključni alati za otkrivanje zajedničkog ponašanje u frekvenciji. U općoj nestacionarnih slučaju, wavelet-based kolegama može definirati osigurati vrijeme lokaliziran alternative.| Wcoher.m | funkcija omogućuje ti wavelet-based procjenitelji.Svrha ovog demo je razumjeti kako koristiti | wcoher.m | i interpretirati rezultate. U svim sljedećim Primjers, kompleks-cijenjenim valići koriste. Kada kompleks valić se koristi, CWT, Cx (b), od realna vremenske serije, x je složeno-cijenjena funkcija razmjera parametra i b location parametar.---------------------------------------------------------------------------

wname = 'cgau2';scales = 1:512;ntw = 21;t = linspace(0,1,2048);x = sin(16*pi*t)+0.25*randn(size(t));y = sin(16*pi*t+pi/4)+0.25*randn(size(t));wcoher(x,y,scales,wname,'ntw',ntw,'plot','cwt');Freq = scal2frq(128,'cgau3',1/2048);wcoher(x,y,scales,wname,'ntw',ntw,'plot','wcs');wcoher(x,y,scales,wname,'ntw',ntw,'plot');wname = 'cgau2';scales = 1:512;ntw = 21;t = linspace(0,1,1024);x = -sin(8*pi*t) + 0.4*randn(1,1024);x = x/max(abs(x));y = wnoise('doppler',10);wcoher(x,y,scales,wname,'ntw',ntw,'plot','cwt');wcoher(x,y,scales,wname,'ntw',ntw,'nsw',1,'plot','wcs');wcoher(x,y,scales,wname,'ntw',ntw,'plot');wname = 'cmor1-3';load sensor1; load sensor2long = 4000;first = 5000;last = first + long-1;indices = (first:last);s1 = sensor1(indices);

54

Page 55: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

s2 = sensor2(indices);wcoher(s1,s2,scales,wname,'ntw',ntw,'plot','cwt'); wcoher(s1,s2,scales,wname,'ntw',ntw,'plot','wcs'); ntw = 51; % N-point time windownts = 10; % N-point scale windownat = 50; % number of arrows in timenas = 20; % number of arrows in scaleasc = 0.75; % scale factor for the arrows (see QUIVER).wcoher(s1,s2,scales,wname,'nat',nat,'nas',nas, ... 'ntw',ntw,'nts',nts,'asc',asc,'plot');wcoher(s1,s2,scales,wname,'nat',nat,'nas',nas, ... 'ntw',ntw,'nts',nts,'asc',asc,'plot','wcoh');

500 1000 1500 2000

-1

0

1

Analyzed Signal

500 1000 1500 2000

-1

0

1

Analyzed Signal

Modulus

500 1000 1500 2000 1

53

105

157

209

261

313

365

417

469

Modulus

500 1000 1500 2000 1

53

105

157

209

261

313

365

417

469

Angle

500 1000 1500 2000 1

53

105

157

209

261

313

365

417

469

Angle

500 1000 1500 2000 1

53

105

157

209

261

313

365

417

469

200 400 600 800 1000 1200 1400 1600 1800 2000

-1

0

1

Analyzed Signals

Modulus

Sca

les

200 400 600 800 1000 1200 1400 1600 1800 2000 1

53

105

157

209

261

313

365

417

469

Angle

Times

Sca

les

200 400 600 800 1000 1200 1400 1600 1800 2000 1

53

105

157

209

261

313

365

417

469

55

Page 56: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

200 400 600 800 1000 1200 1400 1600 1800 2000

-1

0

1

Analyzed Signals

Wavelet Coherence - Modulus and Phase

200 400 600 800 1000 1200 1400 1600 1800 2000 1

53

105

157

209

261

313

365

417

469

0.2 0.4 0.6 0.8

200 400 600 800 1000-1

-0.5

0

0.5

Analyzed Signal

200 400 600 800 1000

-0.4

-0.2

0

0.2

0.4

Analyzed Signal

Modulus

200 400 600 800 1000 1

53

105

157

209

261

313

365

417

469

Modulus

200 400 600 800 1000 1

53

105

157

209

261

313

365

417

469

Angle

200 400 600 800 1000 1

53

105

157

209

261

313

365

417

469

Angle

200 400 600 800 1000 1

53

105

157

209

261

313

365

417

469

100 200 300 400 500 600 700 800 900 1000-1

-0.5

0

0.5

Analyzed Signals

Modulus

Sca

les

100 200 300 400 500 600 700 800 900 1000 1

53

105

157

209

261

313

365

417

469

Angle

Times

Sca

les

100 200 300 400 500 600 700 800 900 1000 1

53

105

157

209

261

313

365

417

469

100 200 300 400 500 600 700 800 900 1000-1

-0.5

0

0.5

Analyzed Signals

Wavelet Coherence - Modulus and Phase

100 200 300 400 500 600 700 800 900 1000 1

53

105

157

209

261

313

365

417

469

0.2 0.4 0.6 0.8

56

Page 57: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

1000 2000 3000 4000

-1

0

1

Analyzed Signal

1000 2000 3000 4000

-0.5

0

0.5

1

Analyzed Signal

Modulus

1000 2000 3000 4000 1

53

105

157

209

261

313

365

417

469

Modulus

1000 2000 3000 4000 1

53

105

157

209

261

313

365

417

469

Angle

1000 2000 3000 4000 1

53

105

157

209

261

313

365

417

469

Angle

1000 2000 3000 4000 1

53

105

157

209

261

313

365

417

469

500 1000 1500 2000 2500 3000 3500 4000

-1

0

1

Analyzed Signals

Modulus

Sca

les

500 1000 1500 2000 2500 3000 3500 4000 1

53

105

157

209

261

313

365

417

469

Angle

Times

Sca

les

500 1000 1500 2000 2500 3000 3500 4000 1

53

105

157

209

261

313

365

417

469

500 1000 1500 2000 2500 3000 3500 4000

-1

0

1

Analyzed Signals

Wavelet Coherence - Modulus and Phase

500 1000 1500 2000 2500 3000 3500 4000 1

53

105

157

209

261

313

365

417

469

0.2 0.4 0.6 0.8

500 1000 1500 2000 2500 3000 3500 4000

-1

0

1

Analyzed Signals

Wavelet Coherence - Phase

500 1000 1500 2000 2500 3000 3500 4000 1

53

105

157

209

261

313

365

417

469

-3 -2 -1 0 1 2 3

57

Page 58: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

VJEŽBA Wavelet skalogram primjenom 1D Wavelet analize

Ova demonstracija pokazuje kako dobiti spektralne informacije o signalu pomoću kontinuirane wavelet transformacije analize. Signal Processing Toolbox ™ je potreban za pokretanje demonstracije.

Alati koji najbolje odgovara za spektralnu analizu signala su oni koje se temelje na FFT. Dok valići nisu posebno dizajnirani za spektralne analize, možemo obnoviti nekoliko spektralni informacija pomoću wavelet analize.

U ovoj demonstraciji vršimo i Fourierova analizu i wavelet analizu različitih osnovnih periodičnih signala. Zatim, možemo usporediti spektralne informacije koje se nalaze u svakoj od njih.

Analiza osnovnog periodičkog signala

Definirajte vrlo jednostavan periodični signal, kao što je sinusni signal s frekvencijom FRQ = 10.

Fs = 1000;t = 0:1/Fs:1;Frq = 10;x = sin(2*pi*t*Frq);plot(x,'r'); axis tighttitle('Signal');xlabel('Time or Space')

100 200 300 400 500 600 700 800 900 1000-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1Signal

Vrijeme (ili Širina)

Izračunavamo procjenu spektralnu gustoću snage (PSD) pomoću spektralne procjene signala. Zatim, možemo pronaći glavnu frekvenciju gledajući spektralne gustoće i locirajući frekvenciju na kojoj PSD doseže svoj maksimum.

h = spectrum.welch;

58

Page 59: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Hpsd = psd(h,x,'Fs',Fs); hLIN = plot(Hpsd); xdata = get(hLIN,'XData'); ydata = get(hLIN,'ydata'); [dummy,idxMax] = max(ydata); FreqMax = xdata(idxMax) hold on ylim = get(gca,'YLim'); plot([FreqMax,FreqMax],ylim,'m--')

FreqMax =

15.6250

0 50 100 150 200 250 300 350 400 450 500-90

-80

-70

-60

-50

-40

-30

-20

-10

Frequency (Hz)

Pow

er/f

requ

ency

(dB

/Hz)

Welch Power Spectral Density Estimate

Ovaj rezultat je približna vrijednost "prave frekvencije."

Sada smo izračunali kontinuiranu wavelet transformaciju pomoću gaus4 Wavelet, pa ćemo vidjeti gdje se nalaze spektralne informacije.

wname = 'gaus4';scales = 1:1:128;coefs = cwt(x,scales,wname);

Koristeći funkciju scal2freq, možemo izračunati korespondenciju tablicu skala i frekvencija. Ova tablica ovisi o odabranom wavelet. Mi tražimo skalu koja odgovara frekvenciji FRQ korištenu za dizajn signala.

TAB_Sca2Frq = scal2frq(scales,wname,1/Fs);clf;plot(TAB_Sca2Frq); axis tight; gridhold onplot([scales(1),scales(end)],[Frq Frq],'m--')set(gca,'YLim',[0 100])

59

Page 60: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

title('Correspondence Table of Scales and Frequencies');xlabel('Scale')ylabel('Frequency')

20 40 60 80 100 1200

10

20

30

40

50

60

70

80

90

100Lista Podudaranja Skale i Frekvencije

Skala

Fre

kven

cija

Nalazimo skalu Sca koja odgovara frekvencijskom FRQ za Wavelet gaus4.

[~,idxSca] = min(abs(TAB_Sca2Frq-Frq)); Sca = scales(idxSca)

Sca =

33

Sada, mi koristimo kontinuiranu wavelet analizu za izračun scalogram od wavelet koeficijenata pomoću wavelet gaus4. Ucrtajte ovaj scalogram i horizontalnu liniju koja odgovara mjerilu SCA povezane s frekvencijskom FRQ. Možemo vidjeti da je ova linija povezuje maksimume energije u scalogram.

wscalogram('image',coefs,'scales',scales,'ydata',x); hold on plot([1 size(coefs,2)],[Sca Sca],'Color','m','LineWidth',2);

60

Page 61: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

100 200 300 400 500 600 700 800 900 1000-1

0

1Analyzed Signal

Scalogram Percentage of energy for each wavelet coefficient

Time (or Space) b

Sca

les

a

100 200 300 400 500 600 700 800 900 1000 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99106113120127

2

4

6

8

10

x 10-3

U scalogramu, maksimumi energije su otkriveni na skali od 50, što odgovara frekvenciji 10. Ovo je jedna od metoda pomoću wavelet analizu koristimo za dobivanje spektralne informacije.

Također može koristiti površinu kontura za pregled spektralne informacije.

clf; coefs = cwt(x,scales,wname,'scalCNT'); hold on plot([1 size(coefs,2)],[Sca Sca],'Color','m','LineWidth',2);

100 200 300 400 500 600 700 800 900 1000-1

0

1Analyzed Signal

Scalogram Percentage of energy for each wavelet coefficient

Time (or Space) b

Scale

s a

100 200 300 400 500 600 700 800 900 1000 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99106113120127

2

4

6

8

10x 10

-3

Mjesto frekvencije informacija u scalogramu ovisi o wavelet-u koji se koristi za analizu. Neki valići su u mogućnosti da otkriju lokaciju frekvencije vrlo dobro. Sada ćemo pokazati kako to drugi valići obavljaju.

Imajte na umu da vrijednost skale SCA odgovara frekvenciji FRQ također ovisi o wavelet.

61

Page 62: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Dobra detekcija s Mexican hat valićem

wname = 'mexh'; TAB_Sca2Frq = scal2frq(scales,wname,1/Fs); [~,idxSca] = min(abs(TAB_Sca2Frq-Frq)); Sca = scales(idxSca)

Sca =

17

clf; coefs = cwt(x,scales,wname,'scalCNT'); hold on plot([1 size(coefs,2)],[Sca Sca],'Color','m','LineWidth',2);

100 200 300 400 500 600 700 800 900 1000-1

0

1Analyzed Signal

Scalogram Percentage of energy for each wavelet coefficient

Time (or Space) b

Scale

s a

100 200 300 400 500 600 700 800 900 1000 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99106113120127

2

4

6

8

10

12

14x 10

-3

Dobra detekcija s Morlet valićem

wname = 'morl'; TAB_Sca2Frq = scal2frq(scales,wname,1/Fs); [~,idxSca] = min(abs(TAB_Sca2Frq-Frq)); Sca = scales(idxSca)

Sca =

54

clf; coefs = cwt(x,scales,wname,'scalCNT'); hold on plot([1 size(coefs,2)],[Sca Sca],'Color','m','LineWidth',2);

62

Page 63: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

100 200 300 400 500 600 700 800 900 1000-101

Analyzed Signal

Scalogram Percentage of energy for each wavelet coefficient

Time (or Space) b

Scale

s a

100 200 300 400 500 600 700 800 900 1000 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99106113120127

2

4

6

8

10x 10

-3

Loša detekcija s Haar valićem

wname = 'haar'; TAB_Sca2Frq = scal2frq(scales,wname,1/Fs); [~,idxSca] = min(abs(TAB_Sca2Frq-Frq)); Sca = scales(idxSca)

Sca =

66

clf; coefs = cwt(x,scales,wname,'scalCNT'); hold on plot([1 size(coefs,2)],[Sca Sca],'Color','m','LineWidth',2);

100 200 300 400 500 600 700 800 900 1000-1

0

1Analyzed Signal

Scalogram Percentage of energy for each wavelet coefficient

Time (or Space) b

Sca

les

a

100 200 300 400 500 600 700 800 900 1000 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99106113120127

0.5

1

1.5

2

2.5

3

3.5x 10

-3

63

Page 64: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

KOMENTAR

Detekcija ovisi o valiću kojeg uzimamo. Ako se odabere Haar valić onada je detekcija loša, a ako se odabere Morlet ili Mexican hat valić onda će detekcija biti dobra,

VJEŽBA: Adaptivno poništavanje šuma fuzzy logikom

CILJ VJEŽBEPrikazati adaptivno nelinearno poništavanje šuma primjenom Fuzzy logike pomoću funkcija ANFIS, GENFIS1 i EVALFIS, naučiti generirati nelinearni signal smetnje i signal s diskontinuitetom.

TEORETSKA OBRADA

Fuzzy logika prikazuje visoku razinu informacija o fuzzy sustavu zaključivanja. Na vrhu je dijagram sustava sa jasno označenim ulazom i izlazom. Odmah ispod dijagrama se nalazi popunjeni tekst koji prikazuje naziv trenutačnog FIS-a.

Signal i šum

Definirat ćemo hipotetički signal informacije x sempliran sa 100Hz za vrijeme od 6 s.

time = (0:0.02:6)'; x = sin(40./(time+0.02)); plot(time, x) title('Signal informacije x','fontsize',10) xlabel('Vrijeme','fontsize',10) ylabel('x','fontsize',10)

0 1 2 3 4 5 6-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1Signal informacije x

Vrijeme

x

Pretpostavimo da se informacijski signal x ne može izmjeriti bez signala smetnje n2, kojeg generira izvor šuma n1 nekim nepoznatim nelinearnim procesom.

64

Page 65: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Dijagram pokazuje oblik signala šuma izvora n1.

n1 = randn(size(time)); plot(time, n1) title('Izvor šuma n1','fontsize',10) xlabel('Vrijeme','fontsize',10) ylabel('n1','fontsize',10)

0 1 2 3 4 5 6-4

-3

-2

-1

0

1

2

3

4Izvor šuma n1

Vrijeme

n1

Pretpostavljamo da se signal smetnje n2, koji se pojavljuje u mjerenom signalu, generira nepoznatom nelinearnom jednadžbom:

n2(k) = 4*sin(n1(k))*n1(k-1)/(1+n1(k-1)^2)

Opisana nelinearna karakteristika prikazana je oblikom površine na dijagramu.

domain = linspace(min(n1), max(n1), 20); [xx, yy] = meshgrid(domain, domain); zz = 4*sin(xx).*yy./(1+yy.^2);

surf(xx, yy, zz); xlabel('n1(k)','fontsize',10); ylabel('n1(k-1)','fontsize',10); zlabel('n2(k)','fontsize',10); title('Nepoznata karakteristika informacijskog kanala koja generira nelinearne smetnje','fontsize',10);

65

Page 66: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Zajedno su prikazani izvor šuma n1 i smetnja n2. Smetnja n2 povezana je s izvorom šuma n1 putem opisanog vrlo nelinearnog procesa te se iz grafa ne može vidjeti da su ta dva signala korelirana bilo kojim načinom.

n1d0 = n1; % n1 kašnjenje 0 n1d1 = [0; n1d0(1:length(n1d0)-1)]; % n1 kašnjenje 1 n2 = 4*sin(n1d0).*n1d1./(1+n1d1.^2); % signal smetnje

subplot(2,1,1) plot(time, n1); ylabel('Signal šuma n1','fontsize',10); subplot(2,1,2) plot(time, n2); ylabel('Signal smetnje n2','fontsize',10);

66

Page 67: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

0 1 2 3 4 5 6-4

-2

0

2

4

Sig

nal šum

a n

1

0 1 2 3 4 5 6-2

-1

0

1

2

Sig

nal sm

etn

je

n2

Izmjereni signal m predstavlja sumu izvorne informacije signala x i smetnje n2. Međutim, nije nam poznata smetnja n2. Jedino što nam je dostupno je signal šuma n1 i izmjereni signal m, a naša zadaća je otkriti izvornu informaciju signal x. U prozoru je izmjereni signal m koji je kombinacija x i n2.

m = x + n2; % mjereni signal subplot(1,1,1) plot(time, m) title('Izmjereni signal','fontsize',10) xlabel('Vrijeme','fontsize',10) ylabel('m','fontsize',10)

0 1 2 3 4 5 6-3

-2

-1

0

1

2

3Izmjereni signal

Vrijeme

m

67

Page 68: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Gradnja modela ANFIS

Primjenom funkcije ANFIS identificirat ćemo nelinearni odnos između n1 i n2. Iako n2 ne poznajemo, za vježbu, možemo uzeti signal m kao "zagađeni" oblik n2. Dakle, pri ovom postupku, signal x obrađujemo kao "šum".

Pretpostavit ćemo da je poznat stupanj nelinearnog kanala, pa ćemo postaviti 2. Zbog toga ćemo primijeniti ANFIS s dva ulaza za učenje. Pridijelit ćemo dvije funkcije svakom ulazu, pa ćemo imati ukupno 4 fuzzy pravila za učenje. Postavit ćemo da je veličina koraka step jednaka 0.2. Pri tome u komandnom prozoru možemo vidjeti sve informacije pri učenju.

delayed_n1 = [0; n1(1:length(n1)-1)]; trn_data = [delayed_n1 n1 m];

% Generiramo početni FIS mf_n = 2; ss = 0.2; in_fismat=genfis1(trn_data, mf_n); % Primjenjujemo ANFIS kako bi fino ugodili početni FIS out_fismat = anfis(trn_data, in_fismat, [nan nan ss]); % Testiramo ugođeni model s podacima za učenje estimated_n2 = evalfis(trn_data(:, 1:2), out_fismat); estimated_x = m - estimated_n2;

ANFIS info: Number of nodes: 21Number of linear parameters: 12Number of nonlinear parameters: 12Total number of parameters: 24Number of training data pairs: 301Number of checking data pairs: 0Number of fuzzy rules: 4

Start training ANFIS ...

1 0.712346 2 0.708375 3 0.706485 4 0.704996 5 0.704049Step size increases to 0.220000 after epoch 5. 6 0.703499 7 0.703211 8 0.702686 9 0.702467Step size increases to 0.242000 after epoch 9. 10 0.702071

Designated epoch number reached --> ANFIS training completed at epoch 10.

68

Page 69: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

Nakon učenja, procijenjeni signal n2 računa se primjenom naredbe EVALFIS. Prikazani su izvorni n2 i procijenjeni n2 na ANFIS izlazu, pri tome treba imati na umu da je n2 potpuno nepoznat.

subplot(2,1,1)plot(time, n2)ylabel('n2 (nepoznat)');

subplot(2,1,2)plot(time, procijenjeni_n2)ylabel('Procijenjeni n2');

0 1 2 3 4 5 6-2

-1

0

1

2

n2 (

unkn

own)

0 1 2 3 4 5 6-2

-1

0

1

2

3

Est

imat

ed n

2

Procijenjeni signal informacije x onda je jednaka razlici izmjerenog signala m i procijenjene smetnje n2 predstavljene na izlazu ANFIS.

Grafički je prikazan izvorni signal informacije x i procijenjeni signal x primjenom ANFIS modela. Vidimo da je funkcija ANFIS i bez intenzivnog učenja, napravila vrlo dobru procjenu signala.

subplot(2,1,1)plot(time, x)ylabel('x (nepoznat) ');subplot(2,1,2)plot(time, estimated_x, 'r')ylabel('Procijenjeni x')

0 1 2 3 4 5 6-1

-0.5

0

0.5

1

x (

unknow

n)

0 1 2 3 4 5 6-2

-1

0

1

2

Estim

ate

d x

69

Page 70: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

ZADATAKa) Napiši što smo u vježbi naučili, a pri tome kratko i shvatljivo opiši funkcije ANFIS, EVALFIS i

GENFIS1 koristeći MATLAB help.

U vježbi smo naučili kako prikazati adaptivno nelinearno poništavanje šuma primjenom Fuzzy logike pomoću funkcija ANFIS, GENFIS1 i EVALFIS.

ANFIS koristi hibridni algoritam učenja za prepoznavanje članstva funkcijom parametra sa jednim izlazom. Kombinacija najmanjih kvadrata i povratnih gradijenata silaznom metodom se koristi za obučavanje FIS članskih funkcija parametra za oblikovanje dobivenih ulaznih/izlaznih podataka.

EVALFIS simulira FIS za ulazne podatke U i vraća izlazne podatke Y. Za sistem sa M ulaznim varijablama i L izlazim varijablama.

GENFIS1 generira početni Sugeno-type FIS za ANFIS vježbu koristeći mrežu podjela. Generira jedan izlaz FIS koristeći mrežu podjela u podacima (bez grupiranja) koristi se za prikupljanje početnih uvjeta za ANFIS vježbu. Podatak je matrica sa N+1 stupcem gdje prvi N stupac sadrži podatke za svaki FIS ulaz, i posljednji stupac sadrži izlazne podatke.

b) Definiraj hipotetički signal informacije x frekvencije ½ Hz s diskontinuitetom na 0.3 i 0.72, sempliran sa 1000Hz za vrijeme od 1 s.

tu neznam dali treba još nešto dadavatitime = (0:0.001:1)';x = 4*sin(4*pi*time);x = x - sign(time - .3) - sign(.72 - time);plot(time,x); xlabel('t'); ylabel('x');grid on;

c) Ponovi postupak estimacije signala sa signalom iz točke (b).

Cjeloviti programski kod:

time = (0:0.001:1)'; x = 4*sin(4*pi*time); x = x - sign(time - .3) - sign(.72 - time); plot(time,x); xlabel('t'); ylabel('x'); grid on;

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-6

-5

-4

-3

-2

-1

0

1

2

3

4

t

x

70

Page 71: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

n1 = randn(size(time)); plot(time, n1) title('Izvor šuma n1','fontsize',10) xlabel('Vrijeme','fontsize',10) ylabel('n1','fontsize',10)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-4

-3

-2

-1

0

1

2

3

4Izvor šuma n1

Vrijeme

n1

domain = linspace(min(n1), max(n1), 20); [xx, yy] = meshgrid(domain, domain); zz = 4*sin(xx).*yy./(1+yy.^2); surf(xx, yy, zz); xlabel('n1(k)','fontsize',10); ylabel('n1(k-1)','fontsize',10); zlabel('n2(k)','fontsize',10); title('Nepoznata karakteristika informacijskog kanala koja generira nelinearne smetnje','fontsize',10);

71

Page 72: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

n1d0 = n1; % n1 kašnjenje 0 n1d1 = [0; n1d0(1:length(n1d0)-1)]; % n1 kašnjenje 1 n2 = 4*sin(n1d0).*n1d1./(1+n1d1.^2); % signal smetnje

subplot(2,1,1) plot(time, n1); ylabel('Signal šuma n1','fontsize',10); subplot(2,1,2) plot(time, n2); ylabel('Signal smetnje n2','fontsize',10);

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-4

-2

0

2

4

Sig

nal š

uma

n1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-2

-1

0

1

2

Sig

nal s

met

nje

n2

72

Page 73: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

m = x + n2; % mjereni signal subplot(1,1,1) plot(time, m) title('Izmjereni signal','fontsize',10) xlabel('Vrijeme','fontsize',10) ylabel('m','fontsize',10)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-8

-6

-4

-2

0

2

4

6Izmjereni signal

Vrijeme

m

delayed_n1 = [0; n1(1:length(n1)-1)]; trn_data = [delayed_n1 n1 m];

% Generiramo početni FIS mf_n = 2; ss = 0.2; in_fismat=genfis1(trn_data, mf_n); % Primjenjujemo ANFIS kako bi fino ugodili početni FIS out_fismat = anfis(trn_data, in_fismat, [nan nan ss]);

ANFIS info: Number of nodes: 21Number of linear parameters: 12Number of nonlinear parameters: 12Total number of parameters: 24Number of training data pairs: 1001Number of checking data pairs: 0Number of fuzzy rules: 4

Start training ANFIS ...

1 2.96417 2 2.96168 3 2.96007 4 2.9593 5 2.95917Step size increases to 0.220000 after epoch 5.

73

Page 74: Digitalna obrada signala

DIGITALNA OBRADA ZVUČNIH SIGNALA SPIE09 Ozren Bilan, viši predavač Laboratorijske vježbeIme i prezime: Ivan Rudež, Mario Šego

6 2.9591 7 2.95904 8 2.959 9 2.95901 10 2.95894

Designated epoch number reached --> ANFIS training completed at epoch 10.

% Testiramo ugođeni model s podacima za učenje estimated_n2 = evalfis(trn_data(:, 1:2), out_fismat); estimated_x = m - estimated_n2;

subplot(2,1,1) plot(time, x) grid ylabel('x (Nepoznat) '); subplot(2,1,2) plot(time, estimated_x, 'r') grid ylabel('Procijenjeni x')

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-6

-4

-2

0

2

4

x (N

epoz

nat)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-6

-4

-2

0

2

4

6

Pro

cije

njen

i x

74