D6 instrukcja rn

background image

Ćwiczenie D6:

A

LGORYTMY

OBLICZANIA

MODUŁU

WEKTORA

,

PIERWIASTKA

KWADRATOWEGO

I

FUNKCJI

TRYGONOMETRYCZNYCH

PRZY

ZASTOSOWANIU

PROCESORÓW

SYGNAŁOWYCH

TMS320

opracował:

mgr inż. Roman Niestrój

Roman.Niestroj@polsl.pl

Cele ćwiczenia:

poznanie wybranych algorytmów obliczeniowych

wykorzystanie sprzętowych możliwości obliczeniowych
procesora sygnałowego

doskonalenie umiejętności programowania w asemblerze

Algorytm szybkiego obliczania modułu wektora

Algorytmy stosowane w systemach przetwarzania sygnałów i cyfrowych systemach sterowania często
wymagają obliczenia modułu wektora zespolonego danego w postaci jego części rzeczywistej i
urojonej w następujący sposób:

W =W

x

jW

y

Obliczenie modułu wektora W wymaga pierwiastkowania, ponieważ moduł W jest określony jako:

W∣=

W

x

2

W

y

2

Zakładając, że suma kwadratów składowych wektora W

x

2

+W

y

2

jest dostępna, problem sprowadza się

do sprawnego przeprowadzenia operacji pierwiastkowania. Założenie to jest prawdziwe, ponieważ
operacja mnożenia (w tym podnoszenia do kwadratu) i dodawania jest bardzo efektywnie
wykonywana przez procesory sygnałowe. Operacja pierwiastkowania nie jest w nich realizowana
sprzętowo, więc konieczne jest zastosowanie dla niej jakiejś metody aproksymacji. Istnieje kilka
sposobów otrzymania wartości pierwiastka kwadratowego, ale optymalna technika zależy od
możliwości dostępnego sprzętu i oprogramowania. Na przykład, jeżeli przeprowadza się
pierwiastkowanie korzystając z języka programowania wysokiego poziomu, stosuje się jakąkolwiek
dostępną funkcję biblioteczną dla pierwiastka kwadratowego. Procedury programowe, chociaż
dokładne, mogą być bardzo wolne. Jedną z możliwości aproksymacji pierwiastka jest metoda
wykorzystująca wielomian piątego rzędu [1]. Wymaga ona jednak wielu operacji mnożenia i
skalowania sumy kwadratów składowych wektora do przedziału, w którym aproksymacja jest
wystarczająco dokładna. Jeżeli w systemie cyfrowym wymagana jest bardzo szybka (ale nie
koniecznie bardzo dokładna) aproksymacja modułu wektora, trwająca nie dłużej niż np. kilkadziesiąt
lub kilkaset ns, konieczne jest wykorzystanie algorytmów charakteryzujących się większą
wydajnością.

Istnieje technika nazywana algorytmem

α

Max+

β

Min [2]. Jest to aproksymacja liniowa,

zastosowana do wyznaczenia modułu wektora bez pierwiastkowania, wymagająca określenia, która z
ortogonalnych składowych wektora W ma większą wartość bezwzględną. Jeżeli maksymalna wartość
bezwzględna W

x

lub W

y

jest oznaczona jako Max, a minimalna wartość bezwzględna W

x

lub W

y

jest

oznaczona jako Min, to aproksymacja modułu wektora W przy zastosowaniu algorytmu

α

Max+

β

Min,

jest wyrażona jako:

W∣= Max Min

Algorytmy

α

Max+

β

Min sprawnie wyznaczają moduł wektora W, przy dowolnej szybkości systemu,

background image

potrzebując do tego zaledwie dwóch operacji wyznaczenia wartości bezwzględnej, jednej operacji
porównania (np. za pomocą odejmowania i skoku warunkowego uzależnionego od wyniku
odejmowania), dwóch operacji mnożenia i jednej operacji dodawania. Wszystkie te operacje są
sprzętowo wykonywane przez procesory sygnałowe. Dokładność wyznaczenia modułu wektora przez
algorytm

α

Max+

β

Min zależy od wyboru wartości współczynników

α

i

β

. Istnieje kilka par takich

wartości, które zapewniają stosunkowo dobrą dokładność, jednak muszą one być reprezentowane w
pamięci procesora za pomocą słowa bitowego o długości przynajmniej szesnastu bitów. Ograniczając
wybór wartości

α

i

β

do całkowitych potęg liczby dwa, można uprościć wykonanie operacji mnożenia

w algorytmie, zastępując je przesunięciem słowa bitowego w lewo lub w prawo o odpowiednią ilość
bitów.

Dokładność algorytmu estymatora modułu wektora można określić przez wykreślenie jego błędu jako
funkcji kąta fazowego. Na rysunku zamieszczonym poniżej przedstawiono wyniki działania takiego
estymatora, dla różnych wartości współczynników

α

i

β

, realizującego algorytm

α

Max+

β

Min dla

wektora o module równym jeden, którego kąt fazowy zmienia się w przedziale od 0

o

do 90

o

.

Wybór wartości współczynników

α

=15/16 i

β

=15/32 zapewnia średni błąd wyznaczenia modułu

wektora równy 1,79% i odchylenie standardowe tego błędu równe 0,030. Wtedy moduł wektora W
jest obliczany w następujący sposób:

W∣=

15
16

Max

Min

2

Zakres kątów fazowych na rysunku ograniczono do przedziału od 0

o

do 90

o

, ponieważ przedstawione

krzywe powtarzają się co 90

o

.

Zadanie.

Opracować program w języku asembler dla procesora sygnałowego TMS320C50, realizujący

algorytm szybkiej aproksymacji modułu wektora.

Opracowany program będzie składał się z dwóch plików. Pierwszy z nich to program główny,
zawierający wszystkie niezbędne procedury inicjalizacyjne dla procesora sygnałowego i jego
otoczenia, oraz zawierający podprogramy obsługi przerwań. Program główny jest w całości napisany
i dostarczany przez prowadzącego zajęcia. Drugi z plików zawierać będzie tylko właściwą procedurę
obliczeniową, realizującą algorytm

α

Max+

β

Min. Zadaniem uczestników ćwiczenia jest opracowanie

i uruchomienie za pomocą debugger-a, na podstawie podanych przez prowadzącego wskazówek,
programu procedury obliczeniowej.

Do wykonania ćwiczenia potrzebny jest komputer wyposażony w odpowiednio skonfigurowane
środowisko programistyczne i zestaw uruchomieniowy z procesorem sygnałowym TMS320C50.

Wskazówki do wykonania zadania:

Założenia:
- składowa Wx przechowywana jest w komórce pamięci danych o adresie symbolicznym Xcmpt w
formacie Q15;
- składowa Wy przechowywana jest w komórce pamięci danych o adresie symbolicznym Ycmpt w
formacie Q15;
- wynik obliczeń (moduł wektora) zapisywany jest w komórce pamięci danych o adresie
symbolicznym modul w formacie (2.14);

- współczynnik

α

=15/16 zapisany jest w komórce pamięci danych o adresie symbolicznym alfa

w formacie Q15;

background image

Algorytm procedury obliczeniowej:
1) pobierz Xcmpt z pamięci danych
2} oblicz wartość bezwzględną z Xcmpt
3) pobierz Ycmpt z pamięci danych
4) oblicz wartość bezwzględną z Ycmpt
5) sprawdź czy |Xcmpt| >= |Ycmpt|

a) jeśli |Xcmpt| >= |Ycmpt|, to MAX=|Xcmpt|, MIN=|Ycmpt|
b) jeśli |Xcmpt| < |Ycmpt|, to MAX=|Ycmpt|, MIN=|Xcmpt|

6) oblicz MIN/2
7) oblicz MAX+MIN/2
8) oblicz alfa*(MAX+MIN/2)
9) zapisz wynik w pamięci danych

Potrzebne instrukcje asemblera:
- służące do ładowania akumulatora:

LACC, LACL

- służące do ładowania rejestrów odwzorowanych w pamięci:

SAMM

- służące do zapisu do pamięci danych:

SACH, SPH

- służące do przenoszenia danych pomiedzy ACC i ACCB:

EXAR

- służące do skoków:

B, BCND, RET

- służące do obliczeń:

ABS, SUB, SFR, ADDB, MPY

Uwagi:
1) Dodawanie dwóch liczb w formacie (Q15) czyli 16-bitowych może dać w wyniku liczbę
w formacie (2.15) czyli 17-bitową.
2) Mnożenie dwóch liczb w formacie (Q15) czyli 16-bitowych może dać w wyniku liczbę
w formacie (2.30) czyli 32-bitową.

3) Zapis formatu (Q15) jest równoważny z (1.15), czyli 1 bit na część całkowitą (w tym
przypadku jest to tylko bit znaku) i 15 bitów na część ułamkową.

W czasie wykonywania ćwiczenia uczestnicy mogą korzystać z literatury dostarczanej przez
prowadzącego, dotyczącej wykorzystywanego procesora sygnałowego i środowiska
programistycznego (między innymi z opisu instrukcji i dyrektyw asemblera w języku polskim).
Pozostałe wskazówki, komentarze i dodatkowe polecenia znajdują się we wstępnej wersji pliku
procedury obliczeniowej, dostarczanej przez prowadzącego ćwiczenie. Sprawdzenie działania
opracowanego programu następuje za pomocą debugger-a w pracy krokowej. Polega ono na zadaniu
wartości składowych wektora W w komórkach pamięci danych „Xcmpt” i „Ycmpt”, wykonaniu
programu i odczytaniu wyniku jego działania z komórki pamięci danych „modul”. Sprawdzenie to
należy przeprowadzić dla różnych wartości składowych wektora W.

Sprawozdanie z ćwiczenia

Sprawozdanie z ćwiczenia powinno zawierać kody napisanych w trakcie ćwiczenia programów
wraz z komentarzami opisującymi ich działanie.

Źródła literaturowe:
[1]. Fixed Point Math Library. Texas Instruments

[2]. R. G. Lyons: Wprowadzenie do cyfrowego przetwarzania sygnałów. WKŁ, Warszawa 2000

opracowano dnia 07-03-2007, (v1.0)


Wyszukiwarka

Podobne podstrony:
D6 instrukcja tb
wykład 6 instrukcje i informacje zwrotne
Instrumenty rynku kapitałowego VIII
05 Instrukcje warunkoweid 5533 ppt
Instrukcja Konwojowa
2 Instrumenty marketingu mix
Promocja jako instrument marketingowy 1
Promocja jako instrument marketingowy
Instrukcja do zad proj 13 Uklad sterowania schodow ruchom
Instrukca 6 2
instrukcja bhp przy magazynowaniu i stosowaniu chloru w oczyszczalni sciekow i stacji uzdatniania wo

więcej podobnych podstron