digitalna obrada signala
DESCRIPTION
Digitalna obrada signalaTRANSCRIPT
Sveučilište u SplituSveučilišni odjel za stručne studije
Digitalna Obrada SignalaLaboratorijske Vježbe
Ime i prezime: Ivan Rudež, Marijo Šego
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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