Podobnie jak w przypadku przetwarzania sygnału 1-D Digital w przypadku przetwarzania sygnału wielowymiarowego mamy Wydajne algorytmy. Wydajność algorytmu można ocenić na podstawie ilości zasobów obliczeniowych potrzebnych do obliczenia wyniku lub ilości będącej przedmiotem zainteresowania. Na tej stronie wyjaśniono dwa bardzo wydajne algorytmy dla sygnałów wielowymiarowych. Dla uproszczenia i opisu wyjaśniono to dla sygnałów 2-D. Jednak ta sama teoria dotyczy sygnałów MD. Wspomniano również o dokładnych oszczędnościach obliczeniowych dla każdego algorytmu.
W przypadku systemów cyfrowych do opisu relacji wejście-wyjście można użyć wyrażeń matematycznych, a do realizacji tej zależności można użyć algorytmu. Podobnie można opracować algorytmy do implementacji różnych transformacji, takich jak filtr cyfrowy , transformata Fouriera , histogram , ulepszenia obrazu itp. Bezpośrednia implementacja tych relacji wejście-wyjście i transformacji niekoniecznie jest najskuteczniejszym sposobem ich implementacji.
Kiedy ludzie zaczęli obliczać takie wyniki na podstawie danych wejściowych poprzez bezpośrednią implementację, zaczęli szukać bardziej wydajnych sposobów. Ta strona wiki ma na celu zaprezentowanie takich wydajnych i szybkich algorytmów dla wielowymiarowych sygnałów i systemów. Sygnał wielowymiarowy (MD) można modelować jako funkcję M zmiennych niezależnych, gdzie M jest większe lub równe 2. Sygnały te można podzielić na ciągłe, dyskretne lub mieszane. Ciągły sygnał można modelować jako funkcję zmiennych niezależnych, które wahają się w kontinuum wartości, na przykład – fala dźwiękowa podróżująca w przestrzeni, trójwymiarowe fale przestrzenne mierzone w różnym czasie. Z drugiej strony sygnał dyskretny można modelować jako funkcję zdefiniowaną tylko na zbiorze punktów, takim jak zbiór liczb całkowitych. Obraz jest najprostszym przykładem dwuwymiarowego sygnału domeny dyskretnej, który ma charakter przestrzenny.
W kontekście szybkich algorytmów rozważ poniższy przykład:
Musimy obliczyć A, które jest podane przez
A = αγ + αδ + βγ + βδ gdzie α,β,γ i δ są zmiennymi zespolonymi.
Aby obliczyć A, potrzebujemy 4 zespolonych mnożeń i 3 zespolonych dodań. Powyższe równanie można zapisać w uproszczonej postaci jako
ZA = (α + β) (γ + δ)
Ta forma wymaga tylko 1 złożonego mnożenia i 2 złożonych dodań.
Zatem drugi sposób obliczania A jest znacznie wydajniejszy i szybszy w porównaniu z pierwszym sposobem obliczania A. To jest motywacja do ewolucji szybkich algorytmów w dziedzinie cyfrowego przetwarzania sygnałów. W rezultacie wiele rzeczywistych aplikacji wykorzystuje te wydajne algorytmy do szybkich obliczeń.
Opis problemu i podstawy
Najprostszą formą reprezentacji systemu Linear Shift Invariant (LSI) jest jego odpowiedź impulsowa. Wyjście takiego systemu domeny dyskretnej LSI jest określone przez splot jego sygnału wejściowego i odpowiedzi impulsowej systemu. Jest to matematycznie przedstawione w następujący sposób:
gdzie jest odpowiedzią impulsową systemu.
Zgodnie z powyższym równaniem, aby uzyskać wartość wyjściową w określonym punkcie ( powiedzmy ) musimy pomnożyć kilka wartości wejściowych i odpowiedź impulsowa . Oczywiście zależy to od regionu wsparcia wejścia, jak również odpowiedzi impulsowej. Kluczową kwestią, na którą należy zwrócić uwagę, jest to, że musimy wykonać tak wiele złożonych mnożeń i dodawań, aby uzyskać 1 wartość wyjściową.
Zakładając, że dwuwymiarowy sygnał wejściowy ma długość, a odpowiedź impulsowa systemu ma długość, musimy wykonać liczba mnożeń, aby uzyskać wszystkie wartości wyjściowe. Dane wyjściowe można obliczyć wydajnie, jeśli można wykorzystać niektóre cechy systemu.
Z podobnym scenariuszem mamy do czynienia, gdy musimy obliczyć dyskretne transformaty Fouriera interesującego nas sygnału.
Bezpośrednie obliczenie 2-D DFT jest po prostu obliczeniem podwójnej sumy
Całkowita liczba zespolonych mnożeń i zespolonych dodań potrzebnych do oszacowania tego 2-D DFT przez bezpośrednie obliczenie wynosi . Jest to naiwne podejście, jednak wiemy już, że N-punktową 1-D DFT można obliczyć przy użyciu znacznie mniejszej liczby mnożeń niż algorytmu szybkiej transformaty Fouriera (FFT) Jak opisano w następnej sekcji, możemy również opracować szybkie transformaty Fouriera do obliczania dwuwymiarowych lub wielowymiarowych DFT
Szybkie algorytmy dla sygnałów wielowymiarowych
Podejście do dekompozycji wierszy i kolumn do oceny DFT
Sumę DFT w poprzednim równaniu można również zapisać w następującej postaci:
Niech oznacza ilość w nawiasach i jest dana przez:
Stosując tę metodę, DFT jako wiele 1-D DFT. Oznacza to że każdą kolumnę uznać za 1-D DFT odpowiedniej kolumny = stała A wiersz -DFT odpowiedniego wiersza stała Dlatego obliczamy 2-D DFT, rozkładając go na wierszowe i kolumnowe DFT.
Ta sama zasada jest stosowana do oceny MD DFT sygnału M-wymiarowego.
Porozmawiajmy teraz o oszczędnościach obliczeniowych, jakie uzyskujemy stosując to podejście. Zaobserwowano _ Ponadto, jeśli każdy z tych 1-D DFT jest obliczany przy użyciu 1-D FFT, liczbę złożonych mnożeń można dalej zmniejszyć do
Wektorowa podstawowa szybka transformata Fouriera
Podobnie jak w przypadku 1-D FFT, dziesiątkowanie w czasie można osiągnąć w przypadku sygnałów 2-D. 1-D DFT sygnału, którego długość jest potęgą 2, można wyrazić za pomocą dwóch DFT o połowie długości, z których każdy można ponownie wyrazić jako kombinację DFT o długości ćwiartki i tak dalej.
W przypadku sygnałów 2-D możemy wyrazić DFT za pomocą czterech DFT (zakładając są ). Dla uproszczenia załóżmy, że . Podwójną sumę DFT można rozłożyć na cztery oddzielne sumowania, jedno na tych próbkach, dla których zarówno jak i jeden, dla którego jest parzysty i dla którego i { \ są nieparzyste.
Jest to napisane jako:
Gdzie
tablice i w z poziomymi i pionowymi kropkami . Wykorzystując ten fakt, a także fakt, że możemy uzyskać następujące tożsamości:
Powyższe równanie mówi nam, jak obliczyć cztery punkty DFT dla określonej wartości z czterech punktów . można uzyskać oceniając za -punkt DFT (podobnie można uzyskać inne
Widzimy więc, że można wyrazić za pomocą czterech DFT.
Analogicznie do przypadku 1-D, obliczenia przedstawione na poniższym rysunku nazywane są motylem lub dokładniej .
Każdy motyl wymaga trzech zespolonych mnożeń i ośmiu zespolonych dodatków do obliczenia wyników z danych wejściowych. próbki z wymaga obliczeń motyle.
Ta procedura dziesiątkowania jest wykonywana razy, gdy jest potęgą 2. Każdy etap dziesiątkowania składa się z liczbę złożonych mnożeń, które należy wykonać podczas -podstawa punktu FFT jest dana przez