Naukowiec i inżynier Przewodnik po cyfrowym przetwarzaniu sygnału Autor: Steven W. Smith, Ph. D. Rozdział 24: Liniowe przetwarzanie obrazu Mimo że transformata Fouriera jest wolna, wciąż jest najszybszym sposobem na połączenie obrazu z dużym jądrem filtra. Na przykład, zawijanie obrazu 512 na 512 przy 50 PSX50 PSF jest około 20 razy szybsze przy użyciu FFT w porównaniu z konwencjonalnym splotem. Rozdział 18 omawia działanie splotu FFT dla sygnałów jednowymiarowych. Dwuwymiarowa wersja jest prostym rozszerzeniem. Pokazujemy splot FFT z przykładem, algorytmem do zlokalizowania z góry określonego wzoru na obrazie. Załóżmy, że tworzymy system do sprawdzania banknotów jednodolarowych, który może być użyty do drukowania kontroli jakości, wykrywania podrabiania lub weryfikacji płatności w automatach. Jak pokazano na rys. 24-11, 100-bitowy obraz o rozdzielczości 100 pikseli jest pozyskiwany z rachunku, skupionego na portrecie George'a Washingtona. Celem jest przeszukanie tego obrazu pod kątem znanego wzoru, w tym przykładzie, 29-sekundowego 29-pikselowego obrazu twarzy. Problem polega na tym, że biorąc pod uwagę uzyskany obraz i znany wzorzec, jaki jest najskuteczniejszy sposób zlokalizowania miejsca (lub jeśli) wzoru pojawia się na obrazie Jeśli zwróciłeś uwagę w rozdziale 6, wiesz, że rozwiązaniem tego problemu jest korelacja (dopasowany filtr) i że można ją zrealizować za pomocą splotu. Przed wykonaniem rzeczywistego splotu należy wykonać dwie modyfikacje, aby zmienić docelowy obraz w PSF. Zostały one zilustrowane na rys. 24-12. Rysunek (a) pokazuje sygnał docelowy, wzór, który próbujemy wykryć. W (b) obraz został obrócony o 180 stopni, tak samo jak jest obrócony w prawo, a następnie odwrócony do góry. Jak omówiono w rozdziale 7, podczas wykonywania korelacji za pomocą splotu. Sygnał docelowy musi zostać odwrócony, aby przeciwdziałać odwróceniu, które występuje podczas splotu. Wkrótce wrócimy do tego wydania. Druga modyfikacja jest sztuczką poprawiającą efektywność algorytmu. Zamiast próbować wykryć twarz na oryginalnym obrazie, skuteczniej jest wykrywać krawędzie twarzy na krawędziach oryginalnego obrazu. Dzieje się tak dlatego, że krawędzie są ostrzejsze niż oryginalne, co powoduje, że korelacja ma ostry pik. Ten krok nie jest wymagany, ale znacznie poprawia wyniki. W najprostszej postaci filtr detekcji 3times3 krawędzi jest stosowany zarówno do oryginalnego obrazu, jak i sygnału docelowego przed wykonaniem korelacji. Z asocjacyjnej właściwości splotu jest to takie samo, jak dwukrotne zastosowanie filtra wykrywania krawędzi do sygnału celu. i pozostawiając oryginalny obraz sam. W praktyce, stosowanie tylko 3-krotnego wykrywania jądra 3 razy3 jest zwykle wystarczające. W ten sposób (b) zmienia się na (c) na Rys. 24-12. To powoduje, że (c) PSF do użycia w splotach. Rysunek 24-13 ilustruje szczegóły splotu FFT. W tym przykładzie będziemy konwergować obraz (a) z obrazem (b) w celu uzyskania obrazu (c). Fakt, że te obrazy zostały wybrane i przetworzone w celu implementacji korelacji, jest nieistotny, jest to schemat przepływu splotu. Pierwszym krokiem jest poddanie obu sygnałów sprzężeniu z dostatecznymi zera, aby uzyskać moc o dwóch rozmiarach i wystarczająco duże, aby pomieścić ostateczny obraz. Oznacza to, że gdy obrazy o długości 100 x 100 i 29 x 29 pikseli są spięte, wynikowy obraz będzie miał 128 x 128 pikseli. Dlatego należy dodać do zera (a) i (b) tyle zera, aby uzyskać rozmiar 128 x 128 pikseli. Jeśli tak się nie stanie, dochodzi do splotu kołowego, a ostateczny obraz zostanie zniekształcony. Jeśli masz problemy ze zrozumieniem tych pojęć, wróć i przejrzyj Rozdział 18, w którym przypadek jednowymiarowy został omówiony bardziej szczegółowo. Algorytm FFT służy do transformacji (a) i (b) w domenie częstotliwości. W rezultacie powstają cztery tablice 12812812, prawdziwe i urojone części obu obrazów są spętane. Mnożenie rzeczywistych i urojonych części (a) z rzeczywistymi i urojonymi częściami (b) generuje rzeczywiste i urojone części (c). (Jeśli chcesz przypomnieć sobie, jak to się robi, zobacz Równanie 9-1). Wykonanie odwróconego FFT kończy algorytm, tworząc ostateczny obraz zwojowy. Wartość każdego piksela na obrazie korelacji jest miarą tego, jak dobrze obraz docelowy pasuje do szukanego obrazu w tym punkcie. W tym konkretnym przykładzie obraz korelacji w (c) składa się z szumu plus pojedynczego jasnego piku, co wskazuje na dobre dopasowanie do sygnału celu. Po prostu znalezienie najjaśniejszego piksela na tym obrazie określałoby wykryte współrzędne twarzy. Gdybyśmy nie używali modyfikacji wykrywania krawędzi na sygnale docelowym, pik nadal byłby obecny, ale znacznie mniej wyraźny. Podczas gdy korelacja jest potężnym narzędziem w przetwarzaniu obrazu, ma ono znaczące ograniczenia: obraz docelowy musi mieć dokładnie taki sam rozmiar i orientację obrotową, jak odpowiadający obszar w przeszukiwanym obrazie. Hałas i inne zmiany amplitudy każdego piksela są względnie nieistotne, ale dokładne dopasowanie przestrzenne jest krytyczne. Na przykład metoda ta czyni niemal bezużytecznym znalezienie wrogich czołgów na zdjęciach wojskowego rozpoznania, nowotworach obrazów medycznych i pistoletach w skanach bagażu na lotnisku. Jednym z podejść jest korelowanie obrazu wielokrotnie z różnymi kształtami i obrotami obrazu docelowego. To działa w zasadzie, ale czas wykonania sprawi, że stracisz zainteresowanie w pośpiechu. Naukowiec i inżynier Przewodnik po cyfrowym przetwarzaniu sygnału przez Stevena W. Smitha, Ph. D. Rozdział 12: Szybka transformata Fouriera Jak działa FFT FFT jest skomplikowanym algorytmem, a jego szczegóły są zwykle pozostawione tym, którzy specjalizują się w takich rzeczach. W tej sekcji opisano ogólne działanie FFT, ale spódnica jest kluczową kwestią: użycie liczb zespolonych. Jeśli masz doświadczenie w złożonej matematyce, możesz czytać między wierszami, aby zrozumieć prawdziwą naturę algorytmu. Nie martw się, jeśli szczegóły nie będą ci wystarczały, a kilku naukowców i inżynierów, którzy używają FFT, może napisać program od zera. W złożonym zapisie, domeny czasowe i częstotliwościowe zawierają jeden sygnał złożony z N punktów kompleksowych. Każdy z tych złożonych punktów składa się z dwóch liczb, części rzeczywistej i części urojonej. Na przykład, gdy mówimy o złożonej próbce X 42, odnosi się ona do kombinacji ReX 42 i ImX 42. Innymi słowy, każda zmienna złożona zawiera dwie liczby. Gdy pomnożone są dwie złożone zmienne, cztery poszczególne składniki muszą zostać połączone w celu utworzenia dwóch składników produktu (np. W równaniu 9-1). Poniższa dyskusja na temat działania FFT wykorzystuje ten żargon złożonej notacji. To znaczy, pojedyncze terminy: sygnał, punkt, próbka. i wartość. odnoszą się do kombinacji części rzeczywistej i części urojonej. FFT działa poprzez dekompozycję sygnału w dziedzinie czasu w punkcie N na sygnały czasu w domenie czasu N, z których każda składa się z pojedynczego punktu. Drugim krokiem jest obliczenie widm częstotliwości N odpowiadających tym N sygnałów w dziedzinie czasu. Wreszcie, widma N są syntezowane w jednym spektrum częstotliwości. Rysunek 12-2 pokazuje przykład dekompozycji w dziedzinie czasu zastosowanej w FFT. W tym przykładzie 16-punktowy sygnał jest dekomponowany w czterech oddzielnych etapach. Pierwszy etap dzieli sygnał 16-punktowy na dwa sygnały, z których każdy składa się z 8 punktów. Drugi etap rozkłada dane na cztery sygnały o 4 punktach. Ten wzorzec trwa, dopóki nie będzie N sygnałów złożonych z pojedynczego punktu. Dekompozycja z przeplotem jest używana za każdym razem, gdy sygnał jest dzielony na dwie części, czyli sygnał jest rozdzielany na próbki parzyste i nieparzyste. Najlepszym sposobem na zrozumienie tego jest sprawdzenie Rys. 12-2, aż do uchwycenia wzoru. W tym rozkładzie wymagane są etapy Log 2 N, tj. Sygnał 16-punktowy (2 4) wymaga 4 etapów, sygnał 512 punktów (2 7) wymaga 7 etapów, sygnał 4096 punktów (2 12) wymaga 12 etapów itd. Zapamiętaj tę wartość, Log 2 N, będzie ona wielokrotnie przywoływana w tym rozdziale. Teraz, gdy zrozumiesz strukturę rozkładu, możesz go znacznie uprościć. Dekompozycja to nic innego jak zmiana kolejności próbek w sygnale. Rysunek 12-3 pokazuje wymagany schemat przegrupowania. Po lewej stronie podano numery próbek oryginalnego sygnału wraz z ich binarnymi odpowiednikami. Po prawej stronie znajdują się rearanżowane numery próbek wraz z ich binarnymi odpowiednikami. Ważną ideą jest to, że liczby binarne są odwrotnością nawzajem. Na przykład próbka 3 (0011) jest wymieniana na próbkę numer 12 (1100). Podobnie próbka numer 14 (1110) jest zamieniana na próbkę numer 7 (0111) i tak dalej. Dekompozycja w dziedzinie czasu FFT jest zwykle przeprowadzana za pomocą algorytmu sortowania bitowego. Obejmuje to zmianę kolejności próbek w domenie czasu N poprzez zliczanie w trybie binarnym z bitami odwróconymi w lewo i prawo (tak jak w skrajnie prawej kolumnie na rysunku 12-3). Następnym krokiem w algorytmie FFT jest znalezienie widm częstotliwości sygnałów z 1-punktowej domeny czasu. Nic nie może być łatwiejsze, widmo częstotliwości sygnału 1 punktowego jest równe sobie. Oznacza to, że nic nie jest wymagane do wykonania tego kroku. Chociaż nie ma żadnej pracy, nie zapominaj, że każdy z sygnałów 1-punktowych jest teraz widmem częstotliwości, a nie sygnałem w dziedzinie czasu. Ostatnim krokiem w FFT jest połączenie widm częstotliwości N w dokładnej kolejności odwrotnej, w której nastąpił rozkład w dziedzinie czasu. Tutaj algorytm staje się niechlujny. Niestety skrót skrótu bitowego nie ma zastosowania i musimy cofać się o jeden etap na raz. W pierwszym etapie 16 widm częstotliwości (1 punkt każdy) jest syntetyzowanych w 8 widmach częstotliwościowych (po 2 punkty). W drugim etapie 8 widm częstotliwości (po 2 punkty) syntetyzuje się w 4 widma częstotliwości (po 4 punkty) i tak dalej. Ostatni etap daje na wyjściu FFT, 16-punktowe spektrum częstotliwości. Rysunek 12-4 pokazuje, jak dwa widma częstotliwościowe, z których każda składa się z 4 punktów, są połączone w jedno widmo częstotliwościowe o 8 punktach. Ta synteza musi cofnąć dekompozycję przeplotu wykonaną w dziedzinie czasu. Innymi słowy, działanie w domenie częstotliwości musi odpowiadać procedurze w dziedzinie czasu, polegającej na połączeniu dwóch 4-punktowych sygnałów przez przeplot. Rozważ dwa sygnały w dziedzinie czasu, abcd i efgh. 8-punktowy sygnał w dziedzinie czasu można utworzyć w dwóch krokach: rozcieńcz 4-punktowy sygnał zerami, aby uzyskać 8-punktowy sygnał, a następnie dodaj sygnały razem. Oznacza to, że abcd staje się a0b0c0d0. a efgh staje się 0e0f0g0h. Dodanie tych dwóch 8-punktowych sygnałów daje aebfcgdh. Jak pokazano na rys. 12-4, rozcieńczenie domeny czasu zerami odpowiada duplikacji spektrum częstotliwości. W związku z tym widma częstotliwości są łączone w FFT poprzez ich duplikowanie, a następnie dodawanie powielonych widm. Aby dopasować się po dodaniu, dwa sygnały w dziedzinie czasu są rozcieńczane zerami w nieco inny sposób. W jednym sygnale punkty nieparzyste są równe zero, podczas gdy w drugim sygnale punkty parzyste wynoszą zero. Innymi słowy, jeden z sygnałów w dziedzinie czasu (0e0f0g0h na Fig. 12-4) jest przesunięty w prawo o jedną próbkę. To przesunięcie w dziedzinie czasu odpowiada przemnożeniu widma sinusoidą. Aby to zobaczyć, przypomnijmy, że przesunięcie w dziedzinie czasu jest równoważne z zawijaniem sygnału przy przesuniętej funkcji delta. Powoduje to zwielokrotnienie spektrum sygnałów widmem przesuniętej funkcji delta. Widmo przesuniętej funkcji delta jest sinusoidą (patrz ryc. 11-2). Rysunek 12-5 przedstawia schemat blokowy do łączenia dwóch 4-punktowych widm w jedno 8-punktowe widmo. Aby jeszcze bardziej zmniejszyć tę sytuację, zwróć uwagę, że ryc. 12-5 jest utworzona z podstawowego wzoru na ryc. 12-6 powtarzanego w kółko. Ten prosty schemat przepływu nazywa się motylem ze względu na jego uskrzydlony wygląd. Motyl jest podstawowym elementem obliczeniowym FFT, przekształcając dwa złożone punkty w dwa inne złożone punkty. Rysunek 12-7 pokazuje strukturę całej FFT. Dekompozycja w dziedzinie czasu jest realizowana za pomocą algorytmu sortowania bitów. Przekształcanie rozłożonych danych w domenie częstotliwości nie ma nic wspólnego i dlatego nie pojawia się na rysunku. Synteza w dziedzinie częstotliwości wymaga trzech pętli. Zewnętrzna pętla przechodzi przez stopnie Log 2 N (to jest każdy poziom na Fig. 12-2, zaczynając od dołu i przesuwając się do góry). Środkowa pętla przechodzi przez każde z indywidualnych widm częstotliwości na etapie, nad którym pracowano (tj. Każde pole na dowolnym poziomie na Fig. 12-2). Najbardziej wewnętrzna pętla wykorzystuje motyl do obliczania punktów w każdym widmie częstotliwości (tj. Przepuszczanie próbek wewnątrz dowolnego pola na Fig. 12-2). Skrzynki narzutowe na rys. 12-7 określają początkowe i końcowe indeksy dla pętli, a także obliczają sinusoidy potrzebne w motylach. Teraz dochodzimy do sedna tego rozdziału, rzeczywistych programów FFT. Mam trzydziesty drugi sygnał mowy, który był próbkowany z częstotliwością 44,1 kHz. Teraz chciałbym pokazać, jakie częstotliwości ma mowa. Jednak nie jestem pewien, jaki byłby najlepszy sposób na zrobienie tego. Wydaje się, że czasami oblicza się bezwzględną wartość transformaty Fouriera, a czasami gęstość widmową mocy. Jeśli dobrze rozumiem, ta ostatnia działa tak, że dzielę mój sygnał na części, wykonuję FFT part-by-part i jakoś je sumuję. Funkcje okien są w jakiś sposób zaangażowane. Czy możesz to dla mnie trochę wyjaśnić? Jestem nowy w DSP. pytanie Jul 25 13 o 16:30 Chciałbym teraz pokazać, jakie częstotliwości ma przemówienie. Jednak nie jestem pewien, jaki byłby najlepszy sposób na zrobienie tego. Wydaje się, że czasami oblicza się bezwzględną wartość transformaty Fouriera, a czasami gęstość widmową mocy. Jeśli chcesz dołączyć fizyczne znaczenie do analizy, przejdź do gęstości widmowej mocy (PSD). To dlatego, że po prostu da ci moc twojego sygnału, w każdym paśmie częstotliwości. Z drugiej strony, jeśli nie chcesz dbać o fizyczne znaczenie, ale chcesz wiedzieć, w jaki sposób amplitudy Fouriera każdego pasma różnią się względem siebie, możesz trzymać się absolutnej magnitudo. W praktyce można obliczyć PSD jako bezwzględną wielkość kwadratowej transformaty Fouriera. Na przykład, jeśli twój sygnał to xn, a jego DFT to X (f), wówczas bezwzględna wielkość DFT wynosi X (f), podczas gdy PSD to X (f) 2. Jeśli dobrze rozumiem, ta ostatnia działa tak, że dzielę mój sygnał na części, wykonuję FFT part-by-part i jakoś je sumuję. Funkcje okien są w jakiś sposób zaangażowane. Czy możesz to dla mnie trochę wyjaśnić? Jestem nowy w DSP. Nie, to nie jest prawda. To, o czym tu mówisz, odnosi się do transformaty Fouriera o krótkim czasie. (STFT). To po prostu kroi sygnał domeny czasu, wdycha go, a następnie przyjmuje czteroprzebiegowy ciąg. Jednak pod koniec dnia nadal będziesz miał skomplikowaną matrycę. Jeśli zdecydujesz się przyjąć jego bezwzględną wielkość, otrzymasz macierz transformacji o absolutnej jasności. Jeśli weźmiesz jego bezwzględną wielkość do kwadratu, będziesz miał matrycę gęstości widmowej mocy. odebrane 25 lipca 13 o 17:28
Comments
Post a Comment