Wieluń - forum, informacje, ogłoszenia

Praca / Edukacja - Przetwarzanie sygnałów (matlab) - cepstra MFCC

rafalekjan - 2010-01-05, 14:03
Temat postu: Przetwarzanie sygnałów (matlab) - cepstra MFCC
Mam do zrobienia projekt o następującej treści:
Cytat:

1. Wczytać wyznaczony przez prowadzącego sygnał "mbi04popis.wav"
2. Przeprowadzić 4-krotną decymację sygnału
3. Wykreślić jego wykres
4. Obliczyć cepstra MFCC dla kolejnych fragmentów sygnału o długości 20ms z nakładkowaniem 10ms
5. Wyniki te przedstawić na wykresie 3D
6. Punkty 1-5 powtórzyć dla 6-krotnej decymacji i długości 30ms z nakładkowaniem 10ms
7. Wyniki te przedstawić na wykresie 3D
8. Po każdym z zadań przeprowadzić analizę uzyskanych wyników a na końcu opracowania zebrać najważniejsze wnioski


Jak do tej pory nie idzie mi źle, bo są to same podstawy ;) Zaciąłem się natomiast przy punkcie 4 i 5. Znalazłem funkcję w matlabie, która oblicza cepstra, ale musiałem poddać sygnał autokorelacji i nie wiem czy jest to właściwe wyjście.. :/ Czy należało to zrobić w jakiś inny sposób.
Kod programu:
Kod:

clear;
clf;

%wczytanie wav
[x,fp]=wavread('mbi04popis.wav');       %wczytanie wava o nazwie mbi04glowa
N=length(x);                            %długość wektora x
t=0:1/fp:(N-1)/fp;

%wykres wav
subplot(3,2,1);
plot(t,x);
xlabel('czas[s]');
ylabel('sygnal');

%decymacja wav
dr=4;                                   %rząd decymacji
y=decimate(x,dr);
fd=fp/dr;                               %częstotliwość decymacji
Ny=length(y);
ty=0:1/fd:(Ny-1)/fd;

%wykres wav po decymacji
subplot(3,2,2);
plot(ty,y);
xlabel('czas[s]');
ylabel('sygnal');

%cepstra MFCC o długości 20ms z nakładkowaniem 10ms
c=rceps(y);
z=acorr(c,fd,0.02,0.01,15);
subplot(3,2,3)
mesh(z);

%decymacja wav
dr=6;                                   %rząd decymacji
y=decimate(x,dr);
fd=fp/dr;                               %częstotliwość decymacji
Ny=length(y);
ty=0:1/fd:(Ny-1)/fd;

%wykres wav po decymacji
subplot(3,2,4);
plot(ty,y);
xlabel('czas[s]');
ylabel('sygnal');

%cepstra MFCC o długości 30ms z nakładkowaniem 10ms
c=rceps(y);
z=acorr(c,fd,0.03,0.01,15);
subplot(3,2,5)
mesh(z);

Link do badanego dźwięku:
http://www.4shared.com/fi...mbi04popis.html

Będę wdzięczny za jakiekolwiek podpowiedzi.
Pozdrawiam


Powered by phpBB modified by Przemo © 2003 phpBB Group