Mateusz Fruba I9M1S1 L1,2

background image

1




Wojskowa Akademia Techniczna




Systemy Dialogowe

Sprawozdanie

z ćwiczenia laboratoryjnego

nr 2

Temat ćwiczenia:

Analiza sygnału mowy. Ekstrakcja charakterystyk w

środowisku MATLAB






Grupa I9M1S1

Mateusz Fruba

Prowadzący:

dr inż. Andrzej Wiśniewski







background image

2

Zadanie 1.

Zarejestrowane słowo stanowi L-próbkowy sygnał



i

s , gdzie

L

i

1

. Będziemy analizować

sygnał



i

s pozyskany w środowisku umiarkowanie zakłóconym. Usunąć ciszę z sygnału



i

s ,

wykonać wykres tego sygnału w funkcji czasu,

1. Przetwarzanie wstępne: z powodu takich czynników jak ofset konwertera A/D i szumu

o częstotliwości 50 (60) Hz w sygnale, digitalizowany sygnał mowy ma niezerową
wartość średnią, niezbędną dla wielu sposobów przetwarzania. Utworzyć sygnał



i

z o

zerowej wartości średniej:



L

1

i

i

s

L

1

 

i

s

i

z

dla

L

i

1

Wykonać wykres sygnału



i

z w funkcji czasu.


Rozwiązanie:

[s, fs] = wavread(

'lab2_shortV1.wav'

);

%wczytwanie pliku

ts=1/fs;

L=length(sig);

t_sygnalu=ts*(L-1);

os_czasu=0:ts:t_sygnalu;

u = ((1/L)*sum(s,

'double'

));

z=zeros(1,L);

for

j=1 : L

z(j)=s(j) - u;

end

;

W powyższym rozwiązaniu po wczytaniu pliku dźwiękowego wyznaczam czas całkowitego
sygnału (t_sygnalu), który jest potrzebny do wykonania wykresu przebiegu czasowego
oryginalnego sygnału.
Jako pierwszy wyrysowywany jest wykres przedstawiający L-próbkowy sygnał s(i) w funkcji
czasu:

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

Przebieg czasowy oryginalnego sygnału

czas [s]

w

ar

to

śc

i p

be

k

background image

3



Następnie zgodnie z wzorami:



L

1

i

i

s

L

1

 

i

s

i

z

dla

L

i

1

Wyznaczam z(i):

u = ((1/L)*sum(s,

'double'

));

z=zeros(1,L);

for

j=1 : L

z(j)=s(j) - u;

end

;

Otrzymamy wykres sygnału z(i) o zerowej wartości średniej w funkcji czasu:

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

-1.2

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

Przebieg czasowy sygnału z(i)

czas [s]

w

ar

to

śc

i p

be

k













background image

4

Zadanie drugie:

2. Sygnał



i

z podzielić na ramki (segmenty) o długości

N

256. Dla każdej ramki

wyznaczyć:

wartość największą M

 

n

z

max

M

N

n

1

energię sygnału

 

N

1

n

2

n

z

log

E

współczynniki LPC (przyjąć p=12)

liczbę przejść przez zero PPZ

 

 

N

2

n

1

n

z

sign

n

z

sign

2

1

PPZ

gdzie:

 

 

 

 

 

 

0

n

z

dla

1

n

z

sign

0

n

z

dla

1

n

z

sign





Rozwiązanie:

T = zeros(1,256);

M = zeros(1,256);

x=1;

W_rows=floor(L/256);

M=zeros(W_rows,1);

E=zeros(W_rows,1);

PPZ=zeros(W_rows,1);

LPC=zeros(W_rows,13);

W=zeros(W_rows,256);

tmp=zeros(1,256);

p=12;

for

i=1:1:W_rows

sumsig=0;

for

i2=1:1:256;

W(i,i2)=z(x);

tmp(1,i2)=z(x)*z(x);

if

(i2>1)

sumsig=sumsig+abs(sign(z(x))-sign(z(x-1)));

end

;

x=x+1;

end

;

M(i)=max(abs(W(i,:)));

E(i)=log10(sum(tmp,

'double'

));

LPC(i,:)=lpc(W(i,:),p);

PPZ(i)=0.5*sumsig;

end

;

l_ram=1:1:W_rows;

background image

5

Po podzieleniu sygnału na ramki uzyskałem 57 pełnych ramek które przechowywane są w
zmiennej W.


Kolejno wyznaczam dla każdej ramki:
-wartość największą: zgodnie ze wzorem

 

n

z

max

M

N

n

1

, odpowiada temu zapis w kodzie:

M(i)=max(abs(W(i,:)));

-energię sygnału: zgodnie ze wzorem

 

N

1

n

2

n

z

log

E

, odpowiada temu zapis w kodzie:

E(i)=log10(sum(tmp,

'double'

));

-współczynniki LPC dla p=12: odpowiada temu zapis w kodzie:

LPC(i,:)=lpc(W(i,:),p);

-liczbę przejść przez zero: zgodnie ze wzorem

 

 

N

2

n

1

n

z

sign

n

z

sign

2

1

PPZ

,


Odpowiadający temu zapis w kodzie:

PPZ(i)=0.5*sumsig;
gdzie
sumsig=sumsig+abs(sign(z(x))-sign(z(x-1)));





























background image

6

Następnie wyświetlone zostają kolejno wykresy:
-Maksymalnych wartości w poszczególnych ramkach
-Energia sygnału w poszczególnych ramkach
-Wykres obrazujący liczbę przejść przez zero w poszczególnych ramkach

0

10

20

30

40

50

60

0

0.5

1

1.5

Wykres maksymalnych wartości w poszczególnych ramkach

numer ramki

w

ar

to

ść

n

aj

w

ks

za

M

0

10

20

30

40

50

60

-3

-2

-1

0

1

2

Energia sygnału w poszczególnych ramkach

numer ramki

en

er

gi

a

sy

gn

u

0

10

20

30

40

50

60

0

20

40

60

80

100

Wykres obrazujący PPZ w poszczególnych ramkach

numer ramki

lic

zb

a

pr

ze

ć

pr

ze

z

ze

ro



background image

7

Obserwując wykres wartości maksymalnych oraz wykres energii sygnału, zauważyć możemy
że oba wykresy zachowują się podobnie z tym że dla wartości maksymalnych bliskich zeru
energia przyjmuje wartości ujemne. Na wykresie wartości maksymalnych możemy także
zaobserwować dużą różnicę pomiędzy wartościami maksymalnymi fonemów e1 oraz e2 nad
pozostałymi fonemami.
Za to na wykresie obrazującym ilość przejść przez zero możemy zaobserwować zależność
pomiędzy gęstością sygnału a ilością ppz.
Wartości największe i najmniejsze spośród wszystkich ramek:
M

max

= 1.0046

M

min

= 0.0161

E

max

= 1.3729

E

min

= -2.4928

PPZ

max

= 99

PPZ

min

= 4



Wykresy prezentujące współczynniki LPC dla poszczególnych ramek:

0

10

20

30

40

50

60

-3

-2

-1

0

1

2

3

W

ar

to

ść

lp

c

Nr ramki

Współczynniki LPC 2,3,4 dla poszczególnych ramek


background image

8

0

10

20

30

40

50

60

-3

-2

-1

0

1

2

3

W

ar

to

ść

lp

c

Nr ramki

Współczynniki LPC 5,6,7 dla poszczególnych ramek

0

10

20

30

40

50

60

-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

W

ar

to

ść

lp

c

Nr ramki

Współczynniki LPC 8,9,10 dla poszczególnych ramek

background image

9

0

10

20

30

40

50

60

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

W

ar

to

ść

lp

c

Nr ramki

Współczynniki LPC 11,12,13 dla poszczególnych ramek



























background image

10

Zadanie trzecie

3. Wyznaczyć i porównać spektrogramy sygnału



i

z :

pokazać wpływ oknowania (przyjąć okna: prostokątne i Hamminga)

dobrać szerokość i przekrycie okien.

Wykresy sygnału z(i) po zastosowaniu spektrogramu dla stałej szerokości 1024, okna
Hamminga oraz zmiennego przekrycia.

Time

F

re

q

u

e

n

c

y

Okno Hamminga nfft=1024 noverlap=32

0.1

0.2

0.3

0.4

0.5

0.6

0

5000

10000

Time

F

re

q

u

e

n

c

y

Okno Hamminga nfft=1024 noverlap=128

0.1

0.2

0.3

0.4

0.5

0.6

0

5000

10000

Time

F

re

q

u

e

n

c

y

Okno Hamminga nfft=1024 noverlap=512

0.1

0.2

0.3

0.4

0.5

0.6

0

5000

10000














background image

11

Wykresy sygnału z(i) po zastosowaniu spektrogramu dla zmiennej szerokości, okna
Hamminga oraz stałego przekrycia wynoszącego 128.

Time

F

re

q

u

e

n

c

y

Okno Hamminga nfft=256 noverlap=128

0.1

0.2

0.3

0.4

0.5

0.6

0

5000

10000

Time

F

re

q

u

e

n

c

y

Okno Hamminga nfft=512 noverlap=128

0.1

0.2

0.3

0.4

0.5

0.6

0

5000

10000

Time

F

re

q

u

e

n

c

y

Okno Hamminga nfft=1024 noverlap=128

0.1

0.2

0.3

0.4

0.5

0.6

0

5000

10000



















background image

12

Wykresy sygnału z(i) po zastosowaniu spektrogramu dla stałej szerokości 1024 i 512, okna
Hamminga oraz bardzo zróżnicowanego przekrycia.

Time

F

re

q

u

e

n

c

y

Okno Hamminga nfft=1024 noverlap=1020

0.1

0.2

0.3

0.4

0.5

0.6

0

5000

10000

Time

F

re

q

u

e

n

c

y

Okno Hamminga nfft=512 noverlap=8

0.1

0.2

0.3

0.4

0.5

0.6

0

5000

10000

Wykresy sygnału z(i) po zastosowaniu spektrogramu dla stałej szerokości 1024 i 512, okna
prostokątnego oraz bardzo zróżnicowanego przekrycia.

Time

F

re

q

u

e

n

c

y

Okno Prostokatne nfft=1024 noverlap=1020

0.1

0.2

0.3

0.4

0.5

0.6

0

5000

10000

Time

F

re

q

u

e

n

c

y

Okno Prostokatne nfft=512 noverlap=8

0.1

0.2

0.3

0.4

0.5

0.6

0

5000

10000


Powyżej wyrysowane są spektrogramy kolejno pod wpływem okna Hamminga, pod
wpływem okna prostokątnego dla zmiennych szerokości i przekrycia. Jak możemy zauważyć
spektrogram pod wpływem okna Hamminga jest bardziej posiada lepszą rozdzielczość

background image

13

częstotliwości, niż pod wpływem okna prostokątnego lecz jest gorszy pod względem
rozdzielczości amplitudowej.

Zadanie czwarte

4. Wybrać i narysować pięć ramek, po jednej z każdego z fonemów zarejestrowanego

słowa. Dla każdej ramki:

a) dokonać analizy autokorelacyjnej [xcorr(sig)];
b) wyznaczyć 256-punktowe FFT z oknem Hamminga. Narysować widmo

amplitudowe dla częstotliwości z zakresu





2

f

0

s

;

c) dokonać analizy formantów dla fonemów (tam gdzie to możliwe) za pomocą

poniższych metod:

Metoda I:

 wyznaczyć widmo amplitudowe

[

abs(fft(sig)];

 wyznaczyć widmo amplitudowe

[

abs(fft(hamming(256) .* sig))];

 wyznaczyć widmo mocy

[

10 log10(abs(fft(hamming(256) .* sig)))];

Metoda II:

 wyznaczyć widmo predykcji liniowej:

a=lpc(hamming(256) .* sig, 16);
h=abs(1 ./ fft([a zeros(1,256-17)]));

Wykonać wykresy widm i wyznaczyć częstotliwości formantowe (porównać

wyniki w/w metod);

d) ramki rozszerzyć o 256 próbki zerowe i dla takiej ramki wyznaczyć widmo

512-punktowe („nowa” ramka powinna składać się z 256 próbek „starej”
ramki w otoczeniu 128 próbek zerowych z przodu i z tyłu analizowanego
sygnału mowy; zastosować 512-punktowe okno Hamminga); narysować
wykres widma amplitudowego, porównać z widmem z punktu b)


Rozwiązanie

ramka_s=zeros(1,256);

ramka_e1=zeros(1,256);

ramka_d=zeros(1,256);

ramka_2e=zeros(1,256);

ramka_m=zeros(1,256);

ramka_s(1,1:256)=z(2560:2815);

ramka_e1(1,1:256)=z(4608:4863);

ramka_d(1,1:256)=z(7936:8191);

ramka_2e(1,1:256)=z(8960:9215);

ramka_m(1,1:256)=z(11008:11263);

ramka=abs(fft(Hamming(256).*ramka_s'));

ramka1=abs(fft(Hamming(256).*ramka_e1'));

ramka2=abs(fft(Hamming(256).*ramka_d'));

ramka3=abs(fft(Hamming(256).*ramka_2e'));

ramka4=abs(fft(Hamming(256).*ramka_m'));

a1=lpc(hamming(256) .* ramka_s', 16);

a2=lpc(hamming(256) .* ramka_e1', 16);

a3=lpc(hamming(256) .* ramka_d', 16);

background image

14

a4=lpc(hamming(256) .* ramka_2e', 16);

a5=lpc(hamming(256) .* ramka_m', 16);

h1=abs(1 ./ fft([a1 zeros(1,256-17)]));

h2=abs(1 ./ fft([a2 zeros(1,256-17)]));

h3=abs(1 ./ fft([a3 zeros(1,256-17)]));

h4=abs(1 ./ fft([a4 zeros(1,256-17)]));

h5=abs(1 ./ fft([a5 zeros(1,256-17)]));

ramka_s1=zeros(1,512);
ramka_e11=zeros(1,512);

ramka_d1=zeros(1,512);

ramka_2e1=zeros(1,512);

ramka_m1=zeros(1,512);

ramka_s1(128:383)=ramka_s(1:256);

ramka_e11(128:383)=ramka_e1(1:256);

ramka_d1(128:383)=ramka_d(1:256);

ramka_2e1(128:383)=ramka_2e(1:256);

ramka_m1(128:383)=ramka_m(1:256);

ramka_s1=abs(fft(Hamming(512).*ramka_s1'));

ramka_e11=abs(fft(Hamming(512).*ramka_e11'));

ramka_d1=abs(fft(Hamming(512).*ramka_d1'));

ramka_2e1=abs(fft(Hamming(512).*ramka_2e1'));

ramka_m1=abs(fft(Hamming(512).*ramka_m1'));



Pierwszym zadaniem było wybranie i wyrysowanie pięciu przykładowych ramek, po jednej
dla każdego fonemu.

Na początek zadeklarowałem zerowe macierze dla każdej ramki

ramka_s=zeros(1,256);

ramka_e1=zeros(1,256);

ramka_d=zeros(1,256);

ramka_2e=zeros(1,256);

ramka_m=zeros(1,256);


Następnie przepisuję wybrane zakresy sygnału z(i) do uprzednio
zadeklarowanych macierzy

ramka_s(1,1:256)=z(2560:2815);

ramka_e1(1,1:256)=z(4608:4863);

ramka_d(1,1:256)=z(7936:8191);

ramka_2e(1,1:256)=z(8960:9215);

ramka_m(1,1:256)=z(11008:11263);






background image

15

2550

2600

2650

2700

2750

2800

2850

-0.2

-0.15

-0.1

-0.05

0

0.05

0.1

0.15

0.2

Ramka dla fonemu ś

Nr próbki

W

ar

to

ść

p

bk

i

4600

4650

4700

4750

4800

4850

4900

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

Ramka dla fonemu e1

Nr próbki

W

ar

to

ść

p

bk

i

background image

16

7900

7950

8000

8050

8100

8150

8200

-0.06

-0.04

-0.02

0

0.02

0.04

0.06

0.08

Ramka dla fonemu d

Nr próbki

W

ar

to

ść

p

bk

i

8950

9000

9050

9100

9150

9200

9250

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

Ramka dla fonemu e2

Nr próbki

W

ar

to

ść

p

bk

i

background image

17

1.1

1.105

1.11

1.115

1.12

1.125

1.13

x 10

4

-0.2

-0.15

-0.1

-0.05

0

0.05

0.1

0.15

Ramka dla fonemu m

Nr próbki

W

ar

to

ść

p

bk

i

Kolejnym do wykonania zadaniem było wykonanie analizy autokorelacyjnej
[xcorr(sig)].

2600

2650

2700

2750

2800

-0.5

0

0.5

1

Autokorelacja dla ramki fonemu ś

Czestotliwosc

x

c

o

rr

background image

18

4650

4700

4750

4800

4850

-5

0

5

10

Autokorelacja dla ramki fonemu e1

Czestotliwosc

x

c

o

rr

7950

8000

8050

8100

8150

-0.2

-0.15

-0.1

-0.05

0

0.05

0.1

0.15

0.2

Autokorelacja dla ramki fonemu d

Czestotliwosc

x

c

o

rr

background image

19

9000

9050

9100

9150

9200

-20

-15

-10

-5

0

5

10

15

20

Autokorelacja dla ramki fonemu e2

Czestotliwosc

x

c

o

rr

1.105

1.11

1.115

1.12

1.125

x 10

4

-1

-0.5

0

0.5

1

1.5

2

Autokorelacja dla ramki fonemu m

Czestotliwosc

x

c

o

rr





background image

20

Na powyższych wykresach możemy zaobserwować że maksima znajdują się w tych samych
położeniach fonemów. Dodatkowo warto zwrócić uwagę na różnicę pomiędzy wartościami
osiąganymi dla fonemów e1 i e2 a fonemami ś, d oraz m. Jak widać na wykresie najmniejszą
wartość osiągnął fonem d. Jako że druga połowa sygnału jest odbiciem lustrzanym lewej
części wykresu zamieściłem tylko jedną połówkę wykresu.


Następnym punktem do wykonania było wyznaczenie 256-punktowego FFT z oknem
Hamminga.
Zostało to wykonane za pomocą następującego kodu:

ramka=abs(fft(Hamming(256).*ramka_s'));

ramka1=abs(fft(Hamming(256).*ramka_e1'));

ramka2=abs(fft(Hamming(256).*ramka_d'));

ramka3=abs(fft(Hamming(256).*ramka_2e'));

ramka4=abs(fft(Hamming(256).*ramka_m'));

2560

2580

2600

2620

2640

2660

2680

0

0.5

1

1.5

2

2.5

3

3.5

4

Widmo amplitudowe dla fonemu ś w zakresie [0,fs/2]

Czestotliwosc

|U

n

|

background image

21

4620

4640

4660

4680

4700

4720

0

2

4

6

8

10

12

14

16

18

20

Widmo amplitudowe dla fonemu e1 w zakresie [0,fs/2]

Czestotliwosc

|U

n

|

7940

7960

7980

8000

8020

8040

8060

0

0.5

1

1.5

2

2.5

3

3.5

4

Widmo amplitudowe dla fonemu d w zakresie [0,fs/2]

Czestotliwosc

|U

n

|

background image

22

8960

8980

9000

9020

9040

9060

9080

0

2

4

6

8

10

12

14

16

18

20

Widmo amplitudowe dla fonemu e2 w zakresie [0,fs/2]

Czestotliwosc

|U

n

|

1.102

1.104

1.106

1.108

1.11

1.112

x 10

4

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

Widmo amplitudowe dla fonemu m w zakresie [0,fs/2]

Czestotliwosc

|U

n

|




background image

23

Kolejnym krokiem do wykonania było narysowanie widma amplitudowego za pomocą wzoru
[abs(fft(sig)];

2560

2580

2600

2620

2640

2660

2680

0

0.5

1

1.5

2

2.5

3

3.5

4

Widmo amplitudowe dla ramki fonemu ś

Czestotliwosc

|U

n

|

4620

4640

4660

4680

4700

4720

0

2

4

6

8

10

12

14

16

18

20

Widmo amplitudowe dla ramki fonemu e1

Czestotliwosc

|U

n

|

background image

24

7940

7960

7980

8000

8020

8040

8060

0

0.5

1

1.5

2

2.5

3

3.5

4

Widmo amplitudowe dla ramki fonemu d

Czestotliwosc

|U

n

|

8960

8980

9000

9020

9040

9060

9080

0

5

10

15

20

25

30

35

40

Widmo amplitudowe dla ramki fonemu e2

Czestotliwosc

|U

n

|

background image

25

2560

2580

2600

2620

2640

2660

2680

-40

-35

-30

-25

-20

-15

-10

-5

0

5

Widmo mocy dla ramki fonemu ś

Czestotliwosc

P

(f

s

)

1.102

1.104

1.106

1.108

1.11

1.112

x 10

4

0

1

2

3

4

5

6

7

8

9

10

Widmo amplitudowe dla ramki fonemu m

Czestotliwosc

|U

n

|

Następnie wyznaczam widmo mocy ze wzoru [10 log10(abs(fft(hamming(256) .* sig)))];

background image

26

4620

4640

4660

4680

4700

4720

-30

-25

-20

-15

-10

-5

0

5

10

15

Widmo mocy dla ramki fonemu e1

Czestotliwosc

P

(f

s

)

7940

7960

7980

8000

8020

8040

8060

-35

-30

-25

-20

-15

-10

-5

0

5

Widmo mocy dla ramki fonemu d

Czestotliwosc

P

(f

s

)

background image

27

8960

8980

9000

9020

9040

9060

9080

-20

-15

-10

-5

0

5

10

15

Widmo mocy dla ramki fonemu e2

Czestotliwosc

P

(f

s

)

1.102

1.104

1.106

1.108

1.11

1.112

x 10

4

-35

-30

-25

-20

-15

-10

-5

0

5

10

Widmo mocy dla ramki fonemu m

Czestotliwosc

P

(f

s

)




background image

28

2560

2580

2600

2620

2640

2660

2680

0

2

4

6

8

10

12

14

16

18

20

Widmo predykcji liniowej dla ramki fonemu ś

Czestotliwosc

H

(f

s

)

Drugą metodą analizy formantów dla fonemów jest widmo predykacji liniowej, wykonane
przy zastosowaniu poniższych wzorów

a=lpc(hamming(256) .* sig, 16);
h=abs(1 ./ fft([a zeros(1,256-17)]));





Kod odpowiadający za wykonanie tego podpunktu:

a1=lpc(hamming(256) .* ramka_s', 16);

a2=lpc(hamming(256) .* ramka_e1', 16);

a3=lpc(hamming(256) .* ramka_d', 16);

a4=lpc(hamming(256) .* ramka_2e', 16);

a5=lpc(hamming(256) .* ramka_m', 16);

h1=abs(1 ./ fft([a1 zeros(1,256-17)]));

h2=abs(1 ./ fft([a2 zeros(1,256-17)]));

h3=abs(1 ./ fft([a3 zeros(1,256-17)]));

h4=abs(1 ./ fft([a4 zeros(1,256-17)]));

h5=abs(1 ./ fft([a5 zeros(1,256-17)]));

background image

29

4620

4640

4660

4680

4700

4720

0

10

20

30

40

50

60

70

80

90

100

Widmo predykcji liniowej dla ramki fonemu e1

Czestotliwosc

H

(f

s

)

7940

7960

7980

8000

8020

8040

8060

0

10

20

30

40

50

60

70

80

90

100

Widmo predykcji liniowej dla ramki fonemu d

Czestotliwosc

H

(f

s

)

background image

30

1.102

1.104

1.106

1.108

1.11

1.112

x 10

4

0

20

40

60

80

100

120

140

160

180

200

Widmo predykcji liniowej dla ramki fonemu m

Czestotliwosc

H

(f

s

)


Analizując otrzymane wykresy zarówno jak w metodzie 1 jak i 2 możemy zaobserwować że
ilość maksymalnych wartości lokalnych dla fonemów e1 i e2 jest znacząco większa od
pozostałych. Co za tym idzie dla samogłosek uzyskamy o więcej maksymalnych wartości
lokalnych.
Jak można zauważyć wyniki są zbliżone pod względem wielkości częstotliwości
formantowych, w szczególności na początkach i końcach widm, za to różnicą którą możemy
zauważyć w metodzie 1 w stosunku do metody drugiej to to że w 1 metodzie na środku widm
uzyskaliśmy częstotliwości formantowe.


Ostatnim podpunktem do wykonania było rozszerzenie ramek o 256 zerowych próbek i dla
takiej ramki wyznaczyć widmo 512-punktowe („nowa” ramka powinna składać się z 256
próbek „starej” ramki w otoczeniu 128 próbek zerowych z przodu i z tyłu analizowanego
sygnału mowy; zastosować 512-punktowe okno Hamminga). Oraz narysować wykres widma
amplitudowego.


Wykonałem to za pomocą poniższego kodu:

ramka_s1=zeros(1,512);

ramka_e11=zeros(1,512);

ramka_d1=zeros(1,512);

ramka_2e1=zeros(1,512);

ramka_m1=zeros(1,512);



background image

31

2560

2580

2600

2620

2640

2660

2680

0

0.5

1

1.5

2

2.5

3

3.5

4

Okna Hamminga[512] dla fonemu ś dla f = [0,fs/2]

Czestotliwosc

|U

n

|

ramka_s1(128:383)=ramka_s(1:256);

ramka_e11(128:383)=ramka_e1(1:256);

ramka_d1(128:383)=ramka_d(1:256);

ramka_2e1(128:383)=ramka_2e(1:256);

ramka_m1(128:383)=ramka_m(1:256);

ramka_s1=abs(fft(Hamming(512).*ramka_s1'));

ramka_e11=abs(fft(Hamming(512).*ramka_e11'));

ramka_d1=abs(fft(Hamming(512).*ramka_d1'));

ramka_2e1=abs(fft(Hamming(512).*ramka_2e1'));

ramka_m1=abs(fft(Hamming(512).*ramka_m1'));

background image

32

4620

4640

4660

4680

4700

4720

0

2

4

6

8

10

12

14

16

18

20

Okna Hamminga[512] dla fonemu e1 dla f = [0,fs/2]

Czestotliwosc

|U

n

|

7940

7960

7980

8000

8020

8040

8060

0

0.5

1

1.5

2

2.5

3

3.5

4

Okna Hamminga[512] dla fonemu d dla f = [0,fs/2]

Czestotliwosc

|U

n

|

background image

33

8960

8980

9000

9020

9040

9060

9080

0

5

10

15

20

25

30

35

40

Okna Hamminga[512] dla fonemu e2 dla f = [0,fs/2]

Czestotliwosc

|U

n

|

1.102

1.104

1.106

1.108

1.11

1.112

x 10

4

0

1

2

3

4

5

6

7

8

9

10

Okna Hamminga[512] dla fonemu m dla f = [0,fs/2]

Czestotliwosc

|U

n

|




background image

34

Porównanie widma amplitudowego 512-punktowego z widmem amplitudowych 256-
punktowym dla częstotliwości z zakresu [0,fs/2].

W obu przypadkach zmiany na widmach zachodzą w pierwszej części wykresów. Za to
możemy zauważyć różnicę pomiędzy osiąganymi wartościami maksymalnymi w widmie 512-
punktowym i 256-punktowym. Od drugiej połowy oba typy wykresów zachowują się tak
samo, ich wartości oscylują w okolicy zera.


Wyszukiwarka

Podobne podstrony:
I9M1S1 Fruba lab2
I9M1S1 Fruba id 208791 Nieznany
I9M1S1 Fruba lab2
Akustuka stosowana 3 L1 Projekt 2 Konopka Bartłomiej Justyna Dobrowolska Maciej Bańka Konopka Mateus
Aluminum i miedź Mateusz Bednarski
I9M1S1 Nawrot Gudanowicz lab2
2LAB, 1 STUDIA - Informatyka Politechnika Koszalińska, Labki, Fizyka, sprawka od Mateusza, Fizyka -
L1-1a, Ratownictwo Medyczne, Materiały ze studiów, Medycyna Ratunkowa
Mateuszek na zaczarowanej wyspie, Mateuszek na zaczarowanej wyspie(1)
C7, 1 STUDIA - Informatyka Politechnika Koszalińska, Labki, Fizyka, sprawka od Mateusza, Fizyka - la
L1 wzmacniacz opera(1)
ASK 11 PiotrGębala MateuszMacięga
Ewangelia wg św Mateusza (Do Ksiąg Poematu Boga Człowieka Marii Valtorty)
cw l1
K4 L1
lakiernik 714[03] l1 04 n

więcej podobnych podstron