Sunteți pe pagina 1din 2

Estimarea frecventei fundamentale folosind functia de autocorelatie si functia AMDF

Obiective: Cunoasterea algoritmilor de estimare a frecventei fundamentale (F0) in domeniul timp: functia de autocorelatie, functia AMDF (Average Magnitude Difference Function). Cunoasterea aplicatiilor ce implica determinarea F0: codarea semnalului (inclusiv GSM), sisteme de sinteza, sisteme de recunoastere. Implementarea in Matlab a acestor algoritmi Studiul performantelor algoritmilor si influenta: tipului ferestrei de analiza, lungimii ferestrei de analiza. Evidentierea deficientelor si propuneri de imbunatatire: metoda limitarii, filtrarea semnalului Vizualizarea si captarea graficelor cu precizarea concluziilor care se desprind Raport de laborator cu rezultatele experimentale Cunostinte preliminare: Detectia liniste/vorbire (vezi L3) si analiza cadru cu cadru Definirea si semnificatia functiei de autocorelatie pe termen scurt (vezi curs) si a functiei AMDF (documentare in Internet). Proprietati. Notati expresiile si dati modalitatea de implementare in Matlab. Utilizarea pachetelor software: COLEA si MAD (vezi L3) Lucrul cu functii in Matlab, filtrarea semnalelor (proiectarea filtrelor Butterworth, filtrarea) Etape de lucru: Etapa I: Utilizarea functiei de autocorelatie pentru estimarea frecventei fundamentale a) Realizati detectia liniste/vorbire ca in laboratorul anterior si estimati esantionul de inceput/sfarsit. Aplicati prelucrarile pentru portiunea de vorbire (in primul caz pentru o vocala) b) Utilizati o fereastra de analiza de N=256 esantioane (N va fi variabil) si afisati esantioanele si functia de autocorelatie in aceeasi fereastra. Remarcati maximele din semnal si maximele din functia de autocorelatie. Repetati vizualizarea pentru fereastra rectangulara/Hamming de diferite lungimi. Cum comentati rezultatele in cazul in care N creste de la 32 la 512? c) Estimati valoarea perioadei/frecventei fundamentale din maximele functiei de autocorelatie. Valorile lui T0 in afara domeniului 50-180 esantioane se elimina. Ce probleme intampinati? Afisati F0 (daca Fe=10 KHz) pentru fiecare cadru prelucrat. d) Explicati de ce anvelopa functiei de autocorelatie are o panta descrecatoare de forma k/N ? Cum o puteti corecta pentru a pune in evidenta maximele mult mai bine ? Etapa II. Utilizarea functiei de autocorelatie a semnalului limitat a) Conform Etapa I b) Pentru fiecare cadru de semnal aplicati o limitare a acestuia (cf. Curs) la un prag ce variaza intre (0,3 0,8) din maximul/minimul pentru cadrul respectiv. Aplicati functia de autocorelatie asupra semnalului limitat ca in Etapa I.b. c) Analog Etapa I.c, pentru noua situatie. Comparati graficele cu cele de la Etapa I.c. d) Folosind pragurile de la b) limitati semnalul la +/- 1 si repetati vizualizarile. Ce efecte obtineti ?

Etapa III. Utilizarea functiei de autocorelatie a semnalului filtrat a) Reducerea oscilatiilor amortizate datorate raspunsului tractului vocal din functia de autocorelatie se poate face prin filtrarea semnalului in gama de variatie a F0. b) Proiectati un filtru trece jos Butterworth de ordinul 6, cu frecventa de taiere de 500 Hz (poate fi variabila !). Folositi functia butter. c) Folosind functia filter filtrati semnalul. Afisati-l. d) Aplicati functia de autocorelatie ca in Etapa I, respectiv II. Comentati rezultatele. Etapa IV. Utilizarea functiei AMDF pentru estimarea F0 a) analog ca in Etapa I, dar aplicati functia AMDF (expresia ei, din documentare individuala) b) Estimand minimele din AMDF veti determina valoarea lui T0/F0. c) Discutati/comparati rezultatele

Concluzii: Algoritmii de estimare a F0 folosind functia de autocorelatie si functia AMDF programele Matlab implementate rezultatele experimentale notate in caiete: tabele, capturi de grafice raport sintetic cu principalele concluzii. Notati alte metode de estimare a F0 (asa cum rezulta din documentatie) Comparati modul de implementare sugerat in etapele de mai sus cu modalitatea concreta in cazul aplicatiilor COLEA si MAD.