Robotyka

Obróbka dźwięku - Splot

Laboratorium problemowe, IV rok AGH



1. Wprowadzenie.

Poprzez obróbkę dźwięku rozumiemy wszelkiego rodzaju filtrowanie sygnału fonii za pomocą określonych filtrów w celu uzyskania żądanych efektów dźwiękowych. Celem ćwiczenia było poznanie jednego z podstawowych sposobów obróbki sygnału dźwiękowego. Polega on na zastosowaniu splotu sygnału fonii z funkcją filtrującą zwaną dalej maską.

Definicja splotu funkcji:



2. Zadanie.

Rozpatrzmy cyfrowy sygnał dźwiękowy A o długości n=8 bitów (a1, a2, ..., a8) i masce B również w postaci cyfrowej o długości m=3 bity (b1, b2, b3).

ai a1 a2 a3 a4 a5 a6 a7 a8
 
bi b1 b2 b3


W jaki sposób wykorzystać funkcję splotu do przepuszczenia sygnału A przez maskę B i jaka będzie postać sygnału wyjściowego C ?



3. Algorytm.

Algorytm polega na przesuwaniu maski B wydłuż sygnału wejściowego A co jeden bit i obliczaniu wartości kolejnego bitu sygnału wyjściowego Ci za pomocą funkcji splotu zdefiniowanej dla sygnałów cyfrowych.

Krok 1
Należy odwrócić maskę (zgodnie z definicją) aby otrzymać możliwość wygodnego mnożenia kolejnych bitów sygnału przez bity maski podczas przesuwania maski.

ai a1 a2 a3 a4 a5 a6 a7 a8  
 
bi b3 b2 b1




Krok 2
Ustawić maskę w stosunku do sygnału wejściowego w ten sposób aby bit b1 pokrywał się z bitem a1. Oznacza to, że sygnał wejściowy A należy uzupełnić o dwa bity początkowe o wartości równej zeru.

k 1 2 3 4 5 6 7 8 9 10
ak a1 a2 a3 a4 a5 a6 a7 a8
| | |
bk b3 b2 b1
 
ck     c1




Krok 3
Do obliczenia pierwszego bitu sygnału wyjściowego C zastosować wzór:   

gdzie p=1, q=0 czyli
.
Następnie przesunąć, maskę o jeden bit w prawo, w stosunku do sygnału wejściowego A.

k 1 2 3 4 5 6 7 8 9 10
ak a1 a2 a3 a4 a5 a6 a7 a8
  | | |
bk   b3 b2 b1 >
   
ck     c1 c2


i obliczyć wartość drugiego bitu sygnału wyjściowego C stosując analogiczny wzór (należy uwzględnić przesunięcie maski o 1 bit: p=p+1, q=q+1), tzn.
.


Krok 4
Przesunąć maskę o kolejny bit i obliczyć wartość kolejnego bitu sygnału wyjściowego. Filtrowanie sygnałów cyfrowych polega na tym, aby każdy bit sygnału wejściowego "przepuścić" przez każdy bit maski. Stąd można łatwo zauważyć, że w celu prawidłowego splotu sygnału A z maską B należy sygnał wejściowy uzupełnić również o 2 ostatnie bity - równe zeru.

k 1 2 3 4 5 6 7 8 9 10 11 12
ak   a1 a2 a3 a4 a5 a6 a7 a8
                  | | |
bk                  > b3 b2 b1
   
ck     c1 c2 c3 c4 c5 c6 c7 c8 c9 c10


Analogicznie ostatni bit sygnału wyjściowego będzie miał wartość:
.
Długość sygnału wyjściowego C także zwiększy się o 2 bity. Ogólnie można stwierdzić, że sygnał cyfrowy o długości n bitów, po "przepuszczeniu" przez maskę o długości m bitów zwiększa swoją długość do n+m-1 bitów.