Wykład 1: Technika DSP Wstęp

Slides:



Advertisements
Podobne prezentacje
Wykład 9: Usuwanie echa w sieci telefonicznej (echo cancelation)
Advertisements

Wykład 6: Filtry Cyfrowe – próbkowanie sygnałów, typy i struktury f.c.
Wykład 5: Dyskretna Transformata Fouriera, FFT i Algorytm Goertzela
Wykład 6: Dyskretna Transformata Fouriera, FFT i Algorytm Goertzela
ZASTOSOWANIE PROCESORÓW SYGNAŁOWYCH
Programowanie w PMC.
Wykład no 14.
Wykonał : Marcin Sparniuk
Imperatywne modele obliczeń Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Katedra Telekomunikacji Morskiej
Idea, podstawowe parametry, cechy, charakterystyka
Filtracja obrazów cd. Filtracja obrazów w dziedzinie częstotliwości
Liczby pierwsze.
1 mgr inż. Sylwester Laskowski Opiekun Naukowy: prof. dr hab. inż. Andrzej P. Wierzbicki.
Skalowalny algorytm estymacji ruchu dla systemów rozproszonych
1 RISC – nasze założenia Podstawowe cechy: Wszystkie operacje są realizowane na rejestrach, Tylko operacje typu load i store wymagają dostępu do pamięci,
T.Bartkowiak, M.Januszewski, P.Kryszkiewicz, P.Wójt
Procesor DSP Sharc ADSP21161 firmy Analog Devices
Wykład 5: Mikroprocesory sygnałowe -wstęp: zastosowania i rodziny
DIELEKTRYKI TADEUSZ HILCZER.
Podstawowe składniki funkcjonalne procesora i ich rola.
Informatyka Stosowana
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Wykład 3: Adresowanie i jednostki obliczeniowe w ADSP 21161N
Wykład 5: Program Sequencer i struktura pamięci
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Systemy operacyjne.
Proces analizy i rozpoznawania
Komputer, procesor, rozkaz.
Podstawowe pojęcia akustyki
Zasilacze.
Praca Inżynierska „Analiza i projekt aplikacji informatycznej do wspomagania wybranych zadań ośrodków sportowych” Dyplomant: Marcin Iwanicki Promotor:
UKŁADY SZEREGOWO-RÓWNOLEGŁE
Dyskretny szereg Fouriera
Transformacja Z (13.6).
1 Projektowanie systemów komputerowych System informatyczny (SI) System oprogramowania (software) Program1 Program2 ProgramN... Platforma sprzętowa (hardware)
1 Projektowanie systemów komputerowych System informatyczny (SI) System oprogramowania (software) Program1 Program2 ProgramN... Platforma sprzętowa (hardware)
Wykonawcy:Magdalena Bęczkowska Łukasz Maliszewski Piotr Kwiatek Piotr Litwiniuk Paweł Głębocki.
T.Bartkowiak, M.Januszewski, P.Kryszkiewicz, P.Wójt
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
Technika Mikroprocesorowa 1
Technika Mikroprocesorowa 1
Wyrażenia algebraiczne
Cele i rodzaje modulacji
ARCHTEKTURA KOMPUTERA
Obserwatory zredukowane
Zasada działania komputera
GŁOSOWA ŁĄCZNOŚĆ Z KOMPUTEREM
Modele obliczeń i granice obliczalności Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
Architektura komputerów
Podstawy działania wybranych usług sieciowych
Budowa i rodzaje procesorów.
Mikroprocesory.
Mikroprocesory mgr inż. Sylwia Glińska.
Sterowanie – metody alokacji biegunów II
  Prof.. dr hab.. Janusz A. Dobrowolski Instytut Systemów Elektronicznych, Politechnika Warszawska.
Procesor – charakterystyka elementów systemu. Parametry procesora.
Metody odszumiania sygnałów
KARTY DŹWIĘKOWE.
WYKŁAD 3 Temat: Arytmetyka binarna 1. Arytmetyka binarna 1.1. Nadmiar
Komputer w naszym życiu
Procesor, pamięć, przerwania, WE/WY, …
Elementy geometryczne i relacje
Struktura wewnętrzna mikrokontrolera zamkniętego
Architektury procesorów rdzeniowych mikrokontrolerów.
ZAAWANSOWANA ANALIZA SYGNAŁÓW
Tryby adresowania i formaty rozkazów mikroprocesora
PTS Przykład Dany jest sygnał: Korzystając z twierdzenia o przesunięciu częstotliwościowym:
Podział mikroprocesorów
Zapis prezentacji:

Wykład 1: Technika DSP Wstęp PG – Katedra Systemów Mikroelektronicznych ZASTOSOWANIE PROCESORÓW SYGNAŁOWYCH Dr inż.. Marek Wroński Tel. 347 20 19 email; wrona@eti.pg.gda.pl Materiały: www.ue.eti.pg.gda.pl/~wrona/ Wykład 1: Technika DSP Wstęp

Cel, rozkład zajęć, treść przedmiotu Cel: Zapoznanie się z zastosowaniami procesorów sygnałowych we współczesnych systemach elektronicznych (praktyczne programowanie PS ADSP 21161N). Godziny zajęć tygodniowo (W C L P): 1 – 1 1 Sposób zaliczenia: lab., wykonanie projektu (*1/2) i zdanie egzaminu (*1/2). Treść: Porównanie technik analogowych i cyfrowych, architektura ADSP 21161N Stosowane arytmetyki, MAC, potokowe przetwarzanie danych. Skoki z opóźnieniem, operacje równoległe, specjalne metody adresacji. Organizacja pamięci i układów we/wy. Środowisko uruchomieniowe i programowe Visual DSP++ v.4.0. Język asemblera. Zastosowanie PS w adaptacyjnych systemach cyfrowych wykorzystywanych do rozwiązywania praktycznych problemów: predykcji, eliminacji zakłóceń, korekcji i identyfikacji parametrów. Systemy multimedialne: metody kompresji i przetwarzania sygnałów mowy, redukcja szumów i zakłóceń. Przetwarzanie obrazów (parametry ruchu). Aplikacje PS w układach sterowania i w systemach pomiarowych. Algorytmy i wybrane aplikacje PS w telekomunikacji przewodowej i bezprzewodowej: budowa modemów i faksów, systemy transmisji szerokopasmowej, modulacje i demodulacje, kodowanie i korekcja błędów. Architektura i struktura sieci GSM. Efektywne gospodarowanie zasobami widmowymi: hopping, sterowanie mocą, kodowanie mowy, przeplot, modulacja. GPRS, EDGE i UMTS: architektura, usługi, zabezpieczenia, realizacje. Laboratoria: FIRy stało- i zmiennoprzecinkowe i wykorzystujące SIMD, DFT, DTMF itp.. na 1-sze przeczytać: Wprowadzenie do Visual DSP++, Pierwsze kroki, Instrukcja ADSP-21161

Zalety i ograniczenia techniki DSP Zalety przetwarzania sygnałów w sposób cyfrowy:       precyzja i przewidywalność    stabilność (brak zjawiska dryftu temperaturowego i starzenia się elementów)      reprogramowalność       prostsza konstrukcja sprzętowa projektu       koszt projektu w niewielkim stopniu zależy od złożoności algorytmu przetwarzania   skrócenie czasu „od projektu do gotowego wyrobu” (prostsza procedura testowania)       kontrola nad poziomem szumu wprowadzanym w trakcie przetwarzania sygnału Ograniczenia:       ograniczone pasmo (szybkość próbkowania)       ograniczony zakres dynamiczny       szum kwantyzacji       błędy zaokrągleń 

Różnice pomiędzy DSP a standardowym procesorem Równoległe mnożenie z akumulacją wykonywane w jednym cyklu, Generatory adresu ze specjalnymi trybami, Wydajny zestaw instrukcji z jedno-cyklowymi równoległymi operacjami matematycznymi i przestrzenią w pamięci oraz sprawną realizacją pętli, Zintegrowany wewnętrzny koprocesor DMA i RAM dla jednoczesnych operacji wykonywanych przez CPU i układy we/wy Podział procesorów DSP Stałoprzecinkowe (szybsze ,tańsze i pobierają mniej mocy) Zmiennoprzecinkowe (większa dynamika i stosunek sygnał/szum) 16,32,64 bitowe (wg wymaganej precyzji obliczeń) Różne formaty liczb

DSP - Zastosowania Telekomunikacja: kompresja dźwięku i obrazu, redukcja pogłosu, komutacja,filtrowanie (telefonia komórkowa – generacje 2.5G, 3G – UMTS, CDMA2000, 4G) Wojsko: radary i sonary, szyfrowanie, nawigacja, GPS – Global Positioning Satellite Medycyna: analiza i przetwarzanie obrazów EKG, rezonansu jądrowego MRI i tomografii PET..,składanie danych medycznych – kompresja Przemysł kosmiczny: wyostrzanie zdjęć, kompresja danych, analiza sygnałów z czujników Przemysł: poszukiwania złóż ropy i minerałów, monitoring i sterowanie procesami, przeprowadzanie testów, projektowanie – CAD Zastosowania komercyjne: multimedia, wizualne efekty specjalne, wideo konferencje, GPS Nauka: nagrywanie i analiza wstrząsów ziemi, gromadzenie danych, analiza spekteralna, symulacje i modelowanie, sterowanie w czasie rzeczywistym

Przykład zastosowania DSP w układach przetwarzania sygnałów mowy w trybie on-line (pasmo 300-3200 Hz, częstotliwość próbkowania 8 kHz, kwantyzacja 8-bit tj. modulacja PCM (64 kbit/s) W tym czasie możliwe są implementacje na DSP bardzo skomplikowanych i złożonych obliczeniowo algorytmów kompresji mowy (np. LPC-10), filtracji adaptacyjnej (np. LMS, RLS) albo w przypadku wysyłania sygnału w kanał telekomunikacyjny – wyszukanych algorytmów modulacji cyfrowej czy kompensacji zniekształceń nieliniow.

Koncepcja nowej architektury Architektura vin Neumanna. (optym dla prostych operacji z danymi) Architektura harwardzka (możliwy jednoczesny dostęp do obu pamięci) Architektura superharwardzka (poza podwójną pamięcią Cache instrukcji dla danych typu instrukcja-adres i DMA z pominięciem rejestrów )

Konfiguracja DSP Oprócz wersji „okrojonych”, wersje procesorów z dodatkowymi elementy dla różnorodnych zastosowań, a także niezbędne narzędzia

Superskalarność Podobnie jak RISC (ang. Reduced Instruction Set Computers) procesory DSP korzystają z instrukcji o stałej długości (zazwyczaj jednego słowa). W takiej koncepcji możliwe jest przetwarzanie potokowe, a także minimalizacja odwołań do pamięci w celu poboru instrukcji (każda instrukcja może być pobrana tylko w jednym cyklu). Superskalarność procesora oznacza, że dzięki specjalnie zaprojektowanemu zbiorowi instrukcji - jakimi on operuje, może wiele z nich wykonywać w jednym cyklu zegara równocześnie w sposób równoległy (np. osiem w jednym cyklu zegara). Oznacza to, że zegar procesora może być taktowany z prędkością 200MHz, a dysponować prędkością obliczeń 1600MIPS. Przykładem takiej instrukcji jest instrukcja mac, wykonująca równolegle operacje mnożenia i dodawania, a także dodatkowo jeszcze cztery inne operacje indeksujące.

Typowe operacje CPS - filtracja FIR - filtracja IIR   - filtracja IIR - transformacja Fouriera - funkcja korelacji wzajemnej Charakterystyczne jest to, że wszystkie te obliczenia posiadają postać: Składają się z mnożeń połączonych z akumulacją (MAC – Multiply and ACcumulate), które w procesorach sygnałowych dokonywane są w jednym cyklu jego pracy.

Bufory cyrkularne Zasada działania operacji MAC opiera się na sprzętowych rozwiązaniach gwarantujących optymalizację wykonywanych przez nie zadań (tzn. mnożenia i jednoczesnej akumulacji) poprzez specjalnie zaprojektowane układy adresujące pamięć DAGs (ang. Data Address Generatorors) oraz odpowiednie towarzyszące im zbiory rejestrów indeksujących. Wykorzystują one tryb pracy polegający na organizowaniu pamięci w bufory adresowanie w sposób cykliczny. „Przesunięcie” dokonywane jest tylko poprzez modyfikację stosownych rejestrów wskazujących ich odpowiednią kolejność. Dodatkowo układy DAGs posiadają możliwość adresowania polegającą na bitowym odwracaniu adresów (ang. Bit Reverse Addressing). Własność ta jest szczególnie przydatna w przypadku obliczeń korzystających z algorytmów szybkiej transformacji Fouriera (FFT).

Instrukcja MAC Algorytm demonstrujący zasadę działania instrukcji MAC (po pobraniu próbek z ADC i przesunięciu do bufora kołowego). Zademonstrowany jest również sprzętowo działający licznik programu (operacje w pętli wykonywane w 1 cyklu). Schemat blokowy układu DSP, który dzięki odpowiednio zaprojektowanej i zarządzanej architekturze umożliwia sprawne wykonywanie operacji MAC

Przetwarzanie potokowe (pipelining) Polega ono na wykorzystaniu cykli pracy procesora podobnie do cykli pracy linii montażowej w fabryce (górny rys. bez tego mechanizmu) Kolejność wykonywania instrukcji w potoku. Instrukcje 4 i 5 występują za instrukcją 3 i z tego powodu zostaną uwzględnione w przetwarzaniu potokowym. Dodatkowo, w przypadku gdyby programista nie uwzględnił mechanizmu przetwarzania potokowego, a instrukcje 4 i 5 zawierałyby odwołania konfliktowe względem głównego nurtu programu – to ich niekontrolowane wykonanie mogłoby prowadzić do nieokreślonych błędnych konsekwencji W jednym cyklu pracy procesor pobiera instrukcję, dekoduje instrukcje pobraną w poprzednim cyklu oraz wykonuje instrukcje pobrana dwa cykle wcześniej. Proces taki trwa w sposób ciągły

Implementacja FIRa (rzędu 4) Współczynniki są pobierane jednocześnie z danymi wejściowymi (najpierw najstarsza dana i ostatni współczynnik zapisany w pamięci w odwrotnej kolejności jeśli DAG jest dekrementowany)

Charakterystyka FIRów

Projektowanie górno- i pasmowo-przepustowych oraz pasmowo-zaporowych FIRów

Charakterystyka IIRów

Zmiana szybkości próbkowania poprzez decymację i interpolację (Multirate Filters)

Algorytm adaptacyjnej filtracji LMS/RLS Filtracja adaptacyjna polega na nieustannym dostrajaniu się układu filtrującego do zmiennych warunków pracy, to jest zmiennego w czasie charakteru zakłócenia, które dany układ ma za zadanie eliminować. Najpopularniejszym algorytmem wykorzystywanym w filtracji adaptacyjnej jest algorytm LMS (Least Mean Square). W algorytmie LMS strukturą dokonującą zasadniczej filtracji jest filtr o skończonej odpowiedzi impulsowej FIR). Zasada jego działania polega na przechowywaniu w rejestrze przesuwnym odpowiedniego wektora zarejestrowanych w danym odcinku czasu próbek, które następnie wymnażane są przez stosowne współczynniki „h” i sumowane. Współczynniki filtru FIR nie są stałe, są one zmienne w czasie i dostrajają się tak, aby sygnał y(n) dążył do osiągnięcia stanu, w którym byłby on odpowiednikiem zakłócenia znajdującego się w sygnale d(n). Po operacji odjęcia go od tego sygnału w sygnale błędu e(n) powinna znaleźć się w miarę „czysta” mowa kierowcy. Z każdą mowo zarejestrowaną próbką do aktualnych wartości wektora „h” dodawana jest pewna korekta wyliczona przez algorytm LMS. np.DH=b Sign[e(n)] x(n-k)

Kodowanie mowy – Linear Predictive Coding

Praktyczna implementacja dla SHARK’a 21161 // Inicjalizacja DAC’ów wskazujących lokalizację buforów cyrkularnych kolejnych próbek i współczynników 1. RZAD_FILTRU 2. wej_linia[RZAD_FILTRU] 3. wspolczynniki[RZAD_FILTRU] 4. inicjalizacja_DAG: 5. b0=wej_linia; //adres bazowy 6. l0=@wej_linia; //długość linii 7. m0=1; //modyfikator 8. b8=wspolczynniki; 9. l8=@wspolczynniki; 10. m8=1; //praca procesora w nieskończonej pętli, oczekując na przerwanie z AD1836 11. wait: 12. idle; 13. jump wait; 14. nop; 15. nop; //właściwa procedura obsługi przerwania 16. probka_gotowa_FIR: 17. jump algorytm_LMS; 18. nop; 19. nop; 20. procedura_filtracji: 21. r0=dm(Mikrofon kierowcy); //pobieranie próbek 22. r0=lshift r0 by 16; 23. r1=-31; 24. f0=float r0 by r1;//konwersja na l.zmiennoprzecinkową 25. dm(i0,m0)=f0; 26. f12=0;//właściwa filtracja FIR.zerowanie akumulatora 27. f2=dm(i0,m0), f4=pm(i8,m8);//indeks i0; post-modify 28. f8=f2*f4, f2=dm(i0,m0), f4=pm(i8,m8); //ustawienie licznika pętli: 29. lcntr=RZAD_FILTRU –2, do (pc,1) until lce; 30. f8=f2*f4, f12=f8+f12, f2=dm(i0,m0), f4=pm(i8,m8); 31. f8=f2*f4, f12=f8+f12; 32. f12=f8+f12; 33. r1=31; 34. r8=fix f12 by r1; //konwersja na stały przecinek 35. r8=lshift r8 by –16; 36. rti(db); //powrót z przerwania – Delayed branch 37. dm(Lewy_Kanal)=r8; 38. dm(Prawy_Kanal)=r8; 39. algorytm_LMS: pobiernie próbek z mikrofonu 40. …odniesienia, przekształcenie na zmienny przecinek i umieszczenie w buforze cyrkularnym 41. jump procedura_filtracji; 42. nop; 43. nop;

Idea operacji SIMD Operacje SIMD (Single-Instruction Multiple-Data) poprawiają wydajność procesora przy przetwarzaniu danych poprzez “rozbicie” dużych danych (zajmujących cały rejestr) znajdujących się w specjalnych rejestrach, na ich mniejsze odpowiedniki (zajmujące dwie połówki rejestru). Dzięki temu możliwe jest zwielokrotnienie działania tej samej operacji na równoległe przetwarzanie dwóch danych znajdujących się w tym samym rejestrze. Szczególną zaletą tej techniki jest możliwość zwielokrotnienia działania tych samych algorytmów na dwa równoległe kanały przetwarzania danych.

Zasada działania operacji SIMD

FIR (równolegle 2 kanały) wykorzystujący SIMD #define FILTER_TAPS 67 // ilość współczynników filtru #define DOUBLE_FILTER_TAPS 132 // podwójna ilość współczynników filtru dla operacji SIMD .segment /dm seg_dmda; .ALIGN 2; .VAR dline [DOUBLE_FILTER_TAPS]; // wejściowa linia opóźniająca o podwójnej długości w stosunku .endseg; // do ilości współczynników filtra FIR, wymagana w operacjach SIMD segment /pm seg_pmda; .VAR coef_bp_800Hz[FILTER_TAPS] = "Filter_BP_2000_67.dat"; // definicja współczynników filtru FIR .endseg;   init_fir_filter: // inicjalizacja rejestrów procesora b0 = dline; // inicjalizacja DAGS l0 = @dline; // wskaźnik do wejściowej linii opóźniającej m1 = 2; // co ile będzie się zmieniał wskaźnik b8 = coef_bp_800Hz; // inicjalizacja DAGS l8 = @coef_bp_800Hz; // wskaźnik do współczynników filtra FIR m8 = 1; // co ile będzie się zmieniał wskaźnik i3=dline; // inicjalizacja DAGS (w celu wyzerowania linii opóxniającej) l3=@dline; // wskaźnik do wejściowej linii opóźniającej r12=r12 xor r12; // zerowanie rejestrów r12 oraz niejawnie ich odpowiednika f12 lcntr=FILTER_TAPS, do clear until lce; // czyszczenie wejściowej linii opóźniającej clear: dm(i3,2)=f12; rts; // powrót z procedury filtracji init_fir_filter init_fir_filter.end:

fir: // procedura filtracji FIR r0 = DM(_Left_Channel_In); // pobranie próbek z lewego i prawego kanału układu AD1881 r1 = DM(_Right_Channel_In); f0 = float r0 by r2 ; // konwersja próbek z formatu stałoprzecinkowego na zmiennoprzecinkowy f1 = float r1 by r2 ;   do_filtering: dm(i0,m1)=f0 (LW); r12=r12 xor r12; // zerowanie rejestrów r12 (niejawnie f12) f8=pass f12, f0=dm(i0,m1), f4=pm(i8,m8); // czyszczenie f8, pobieranie danych i współczynników lcntr=FILTER_TAPS-1, do macloop until lce; // właściwa pętla dokonująca filtracji macloop: f12=f0*f4, f8=f8+f12, f0=dm(i0,m1), f4=pm(i8,m8); f12=f0*f4, f8=f8+f12; // dokonanie ostatniego mnożenia oraz akumulacji wyniku f8=f8+f12; r9 = s8; r1 = 31; // konwersja próbek z formatu zmiennoprzecinkowego na stałoprzecinkowy r8 = fix f8 by r1; r9 = fix f9 by r1; DM(_Left_Channel_Out) = r8; // przesłanie wyników filtracji do AD1881 DM(_Right_Channel_Out) = r9; rts; // powrót z procedury filtracji fir fir.end: