• Nie Znaleziono Wyników

SYNTEZA ALGORYTMÓW DYSKRETNEGO SPLOTU CYKLICZNEGO Z WYKORZYSTANIEM MACIERZY DIADNEJ

N/A
N/A
Protected

Academic year: 2021

Share "SYNTEZA ALGORYTMÓW DYSKRETNEGO SPLOTU CYKLICZNEGO Z WYKORZYSTANIEM MACIERZY DIADNEJ "

Copied!
4
0
0

Pełen tekst

(1)

2004

Poznańskie Warsztaty Telekomunikacyjne Poznań 9 - 10 grudnia 2004 Marcin Adamski

Aleksander Ţariov Wydział Informatyki Politechnika Szczecińska Ul. Żołnierska 49 71 – 210 Szczecin madamski@wi.ps.pl aleksander.carev@wi.ps.pl

SYNTEZA ALGORYTMÓW DYSKRETNEGO SPLOTU CYKLICZNEGO Z WYKORZYSTANIEM MACIERZY DIADNEJ

Streszczenie: W artykule przedstawiono rozwinięcie metody [1] pozwalającej na syntezowanie algorytmów realizujących operację dyskretnego splotu cyklicznego. Omówiona metoda wykorzystuje macierz specjalną zwaną diadną.

Po przedstawieniu właściwości macierzy specjalnej i specyfiki metody, jej wyniki zostały porównane z wynikami uzyskiwanymi dzięki istniejącym i współcześnie wykorzystywanym algorytmom.

1. WSTĘP

Operacja splotu dyskretnego jest użytecznym narzędziem jakościowej analizy sygnałów i systemów dyskretnych. Początkowo splot był narzędziem analizy w odniesieniu tylko do sygnałów ciągłych, ale obecnie oddziaływuje na każdy aspekt przetwarzania sygnałów cyfrowych. Istota operacji sprowadza się do przetworzenia dwóch ciągów wejściowych dającego w wyniku pojedynczy ciąg wyjściowy[2].

=

=

1

0 N

k

k j k

j

x h

y (1)

⎥ ⎥

⎥ ⎥

⎢ ⎢

⎢ ⎢

⎥ ⎥

⎥ ⎥

⎢ ⎢

⎢ ⎢

=

⎥ ⎥

⎥ ⎥

⎢ ⎢

⎢ ⎢

− 1

1 2

0 3 2 1

2 1 0 1

1 2 1 0

1 1 2

. ...

. . . . .

...

...

.

N N

N N

N N N

N

x

x x

h h

h h

h h

h h

h h

h h

y y y

(2)

Powyższy zapis sprowadza nas do zwykłego rachunku macierzowo – wektorowego. Z racji faktu, że istnieje prosty stosunek pomiędzy cyrkulantem a macierzą Transformaty Fouriera w bazie zespolonych funkcji wykładniczych, bardzo często sploty cykliczne wylicza się za pomocą Przekształcenia Fouriera. Na tym fakcie opiera się twierdzenie o splocie, które jest podstawowym prawem w dziedzinie przetwarzania sygnałów[3].

Poprzez zastosowanie Dyskretnej Transformaty Fouriera operację splotu w dziedzinie czasu możemy zastąpić mnożeniem w dziedzinie częstotliwości.

Proponowana metoda oferuje prostsze podejście do operacji splotu niż to ma miejsce w przypadku stosowanie DFT oraz IDFT. Metoda skupia się na

minimalizacji liczby mnożeń w operacji splotu w dziedzinie czasu. Drogą do realizacji tejże minimalizacji jest zastosowanie macierzy specjalnej zwanej macierzą diadną.

2. MACIERZ DIADNA

Macierz specjalna zwana macierzą diadną [1]

stanowi podstawowy element proponowanej metody obliczania splotu cyklicznego. Najprostszą jej postacią jest macierz o wymiarach 2x2:

⎥ ⎦

⎢ ⎤

= ⎡ a b

b

D

2

a (3)

Możliwe jest tworzenie macierzy o wymiarach będących potęgą dwójki. Macierz diadną wyższych rzędów uzyskuje się poprzez blokowe składanie macierzy rzędu niższego, np. macierz stopnia 2

3

tworzymy z macierzy 2

2

, a każdą macierz stopnia 2

2

– z macierzy rzędu 2

1

, czyli o wymiarach 2x2:

⎥ ⎥

⎥ ⎥

⎥ ⎥

⎥ ⎥

⎥ ⎥

⎢ ⎢

⎢ ⎢

⎢ ⎢

⎢ ⎢

⎢ ⎢

=

⎥ ⎥

⎥ ⎥

⎢ ⎢

⎢ ⎢

⎥ =

⎢ ⎤

= ⎡

a b c d e f g h

b a d c f e h g

c d a b g h e f

d c b a h g f e

e f g h a b c d

f e h g b a d c

g h e f c d a b

h g f e d c b a

A B C D

B A D C

C D A B

D C B A

A B

B D A

2 2 2 2

2 2 2 2

2 2 2 2

2 2 2 2

4 4

4 4 8

(4)

Macierz diadną tworzymy w oparciu o macierz zwaną cyrkulantem. Pierwsze wiersze obu macierzy muszą być identyczne. Pozostałe elementy tworzymy w taki sposób aby powstała macierz miała budowę blokowo - diadną.

Macierz diadną wyższych rzędów należy w celu uproszczenia zapisu i liczenia przekształcić do postaci blokowo – diagonalnej[1]. Zapis w tej postaci dla powyższej macierzy D

8

przedstawia (5):

⎥ ⎦

⎢ ⎤

⋅ −

⎥ ⎦

⎢ ⎤

⋅ +

⎥ ⎦

⎢ ⎤

⋅ −

= 1 1

1 1 0

0 1

1 1 1 2 1

4 4 4 4

8

A B

B

D A (5)

www.pwt.et.put.poznan.pl

PWT 2004, Poznań 9 - 10 grudnia 2004 1

(2)

Ze względu na swoją specyficzną budowę bardzo łatwe jest wyliczenie iloczynu macierzowo – wektorowego macierzy diadnej. Analizując grafy tych iloczynów można zauważyć ich przejrzystość i symetrie. Poniżej został przedstawiony graf odzwierciedlający mnożenie macierzy diadnej przez wektor (macierz diadna ośmioelementowa). Występują w nim charakterystyczne łączenia dwóch elementów przypominające literę X, zwane często „motylkami”.

Są to operacje dodawania i odejmowanie wykonane jednocześnie na tych samych dwóch elementach wektora X. W okręgach z wartościami b

i

kryją się mnożenia przez stałą, których wartość jest wyliczana na podstawie wartości elementów macierzy diadnej.

Podczas mnożenia macierzy diadnej o wymiarach NxN przez n – elementowy wektor danych potrzebujemy dokładnie n mnożeń i n przesunięć bitowych oraz 3n·log

2

n dodawań.

Rys1. Graf mnożenia macierzy diadnej przez wektor.

3. ALGORYTM METODY

Głównym celem metody jest redukcja mnożeń w iloczynie macierzowo – wektorowym splotu (2).

Wynika on z założenia, iż operacja mnożenia ma największy koszt. Proponowane podejście polega na zastąpieniu mnożenia cyrkulantu przez wektor dwoma iloczynami, prostszymi do wyliczenia algebraicznego.

Schemat proponowanej metody został przedstawiony na rysunku 2. Pierwszymi krokami są: utworzenie cyrkulantu i na jego podstawie macierzy diadnej.

Kolejnym ważnym elementem algorytmu jest macierz pośrednia P będąca różnicą cyrkulantu i macierzy diadnej (wszystkie o wymiarach NxN).

D D ⎯ ⎯→ Η = Ρ +

− Η

=

Ρ (6)

Po podstawieniu pod cyrkulant H powyższej sumy , otrzymujemy następujący wzór splotu [1]:

) Nx1 ( ) D(N ) Nx1 ( ) (N )

(Nx1 = Ρ ⋅ Χ + ⋅ Χ

Υ (7)

W porównaniu z mnożeniem macierzy diadnej przez wektor sprawa mnożenia macierzy pośredniej jest bardziej skomplikowana.

Rys 2. Schemat metody tworzenia algorytmów obliczania dyskretnego splotu cyklicznego z wykorzystaniem macierzy diadnej.

Macierz pośrednia P posiada również strukturę diadną i w pierwszym kroku można doprowadzić ją do postaci blokowo diagonalnej. Kolejne przekształcania do www.pwt.et.put.poznan.pl

PWT 2004, Poznań 9 - 10 grudnia 2004 2

(3)

postaci blokowo diagonalnej dotyczyć będą jedynie elementów podmacierzy A

i

+ B

i

, ponieważ podmacierz A

i

– B

i

nie posiada budowy blokowo – diadnej. W tej części jedyną metodą redukcji mnożeń jest wyszukiwanie identycznych fragmentów obliczeniowych, które faktycznie istnieją i pozwalają na pewną minimalizację. Właśnie ta podmacierz w zasadniczym stopniu zwiększa liczbę mnożeń począwszy od splotu rzędu 16.

4. PORÓWNANIE Z INNYMI ALGORYTMAMI Porównanie proponowanej metody z innymi metodami obliczania splotu cyklicznego przedstawione zostanie w dwojaki sposób. Po pierwsze, porównane zostaną liczba operacji mnożeń, dodawań oraz przesunięć bitowych dla splotu o konkretnej liczbie wejść. Po wtóre, analizie poddane zostaną grafy sygnałowe przedstawiające operacje splotu przeprowadzane metodami: Winograda i proponowaną, wykorzystującą macierz diadną.

* mnożenie macierzy (cyrkulantu) przez wektor bez żadnych mechanizmów upraszczających

Tabela 1. Liczba mnożeń algorytmów realizujących

dyskretny splot cykliczny

Zamieszczone wyniki wskazują, że proponowana metoda posiada równą liczbę iloczynów z konkurencyjnymi algorytmami: Winograda i Nussbaumera. Dla splotu o liczbie elementów równych 16, algorytmy konkurencyjne dla proponowanego, uzyskują wyniki gorsze od klasycznego iloczynu macierzowo – wektorowego.

Redukcja mnożeń jest założeniem docelowym, dlatego też liczba dodawań nie jest w proponowanej metodzie rewelacyjna. Poniższa tabela przedstawia liczbę sumowań i przesunięć bitowych potrzebnych w realizacji operacji splotu.

Algorytm Winograda

Omawiana metoda

Klasyczne mnożenie n =

dod. p.b. dod. p.b. dod.

2 4 2 4 2 2

4 15 5 19 4 12 8 46 14 63 14 56

16 - - 195 38 240

dod. – liczba dodawań p.b. – liczba przesunięć bitowych

Tabela 2. Liczba dodawań i przesunięć bitowych algorytmów realizujących dyskretny splot cykliczny Dla splotu dwuelementowego wyniki jak i grafy są identyczne: 2 mnożenia, 4 dodawania oraz 2 przesunięcia bitowe.

Rys 3. Graf realizacji dwuelementowego splotu cyklicznego

Natomiast dla splotu czteroelementowego możemy zaobserwować pewne różnice. Nie dotyczą one głównego kryterium – liczby mnożeń, która jest identyczna.

Rys 4. Graf realizacji operacji splot cyklicznego według algorytmu Winograda

n = Algorytm Winograda

Algotytm Nussbaumera

Omawiana metoda

Klasyczne mnożenie

*

2 2 2 2 4

4 5 5 5 16

8 14 14 14 64

16 - - 51 256

Rys 5. Graf realizacji operacji splot cyklicznego według algorytmu z wykorzystaniem macierzy diadnej.

Analizując powyższe grafy widzimy wyraźnie, że splot czteroelementowy realizowany syntezowanym algorytmem, charakteryzuje większa liczba dodawań niż ma to miejsce przy algorytmie Winograda. Oba grafy są w miarę symetryczne i na poziomie splotu o 4 wejściach nie można wykazać wyższości jednego nad drugim, mimo minimalnych różnic w liczbie złożeń i przesunięć bitowych.

Splot cykliczny o liczbie wejść równych osiem realizowany proponowaną metodą oraz algorytmem Winograda i Nussbaumera posiada jednakową liczbę mnożeń – 14. Dużo gorzej niż w przypadku poprzedniego przykładu wygląda liczba sumowań.

W przypadku syntezowanego algorytmu jest ich więcej o ponad ¼ od liczby dodawań w realizacji dyskretnego splotu metodą Winograda. Na poniższych grafach można zaobserwować że częścią składową grafów wyższych rzędów są grafy rzędu niższego. Widoczne jest również to, iż graf metody wykorzystującej macierz diadną jest bardziej symetryczny ze względu na tę właśnie macierz. Odzwierciedlenie mnożenia macierzy diadanej przez wektor stanowi większą część tego grafu.

W grafie szesnastoelementowym należy zwrócić uwagę na fakt, iż liczba mnożeń jest zdecydowanie mniejsza niż ma to miejsce w klasycznym iloczynie macierzowo – wektorowym. Metody Winograda nie www.pwt.et.put.poznan.pl

PWT 2004, Poznań 9 - 10 grudnia 2004 3

(4)

stosuje się dla takich wielkości ze względu na fakt, iż wyniki wychodzą gorsze niż ma to miejsce w zwykłym

mnożeniu macierzy przez wektor.

Rys 6. Graf realizacji operacji splot cyklicznego według algorytmu Winograda

Rys 5. Graf realizacji operacji splot cyklicznego według algorytmu z wykorzystaniem macierzy diadnej.

5. PODSUMOWANIE

Omówiona metoda jak już wspomniano jest rozwinięciem pomysłu [1], którego nie poddano dalszemu rozwojowi. Istniejące metody obliczania dyskretnego splotu cyklicznego oparte na wielomianach są skuteczne tylko dla małej liczby elementów. Syntezowane według metody algorytmy pozwalają na realizację splotu o dowolnej liczbie elementów będących potęgą dwójki.

SPIS LITERATURY

[1] A.H. Obotnin, Metody konstruowania algorytmów obliczania widma, Politechnika Uralska 1984

[2] W. Kwiatkowski, Wstęp do cyfrowego przetwarzania sygnałów, WAT, Warszawa 2003

[3] J. Szabatin, Podstawy teorii sygnałów, WKŁ 2000 [4] J. Izydorczyk, G. Płonka, G. Tyma, Teoria sygnałów, Helion 1999

www.pwt.et.put.poznan.pl

PWT 2004, Poznań 9 - 10 grudnia 2004 4

Cytaty

Powiązane dokumenty

BIN-1: Zapis ciągu liczb z klawiatury do pliku binarnego ( fwrite ) BIN-2: Odczyt i wyświetlenie całej zawartości pliku binarnego ( fread ) BIN-3: Odczyt wskazanej liczby

„hybrydowego” (algorytm symulowanego wyżarzania SW + algorytm genetyczny AG) do optymalizacji elektroenergetycznych struktur sieci promieniowych w celu określenia

Do modelu numerycznego można wprowadzać zmiany i modyfikacje w celu minimalizacji tych rozbieżności, dopasowanie modelu numerycznego do modelu fizycznego można

Można zastanawiać się, dlaczego dwie księgi jednego autora, należące do kanonu Pisma Świętego Nowego Testamentu, przez tak długi okres traktowane były jako

Tejchm an przejął redagowanie czasopisma, natom iast zniknęły wszystkie inne nazwiska.. Od num eru 5 tegoż roku ponownie wymieniono nazwiska członków redakcji,

Zaproponowany w  pracy model macierzowych gier refleksyjnych jest połącze- niem teorii gier, teorii sterowania refleksyjnego, refleksji informacyjnej oraz strategicz- nej. Pozwala

Przeprowadzone przy pomocy algorytmu roju czstek (Particle Swarm Optimization) procesy optymalizacji, zmierzajce do wyznaczenia punktów kontrolnych szeciennej krzywej C-Bezier

--- Twierdzenie 1. Największa liczba liniowo niezależnych wierszy , jak również największa liczba liniowo niezależnych kolumn macierzy równa się rzędowi tej macierzy.