Kilka uwag na tle egzaminu-z2016, Studia, Semestr 5, Procesy sygnałów - DSP

[ Pobierz całość w formacie PDF ]
//-->Na tle poprawy egzaminu DSP, kurs ETEK00043WKU LEPSZEJ INTERPRETACJI KONWERSJI;WTO/ŚRORozpatrzmy pytanie, o konwersję na HEX U2, liczby – 4,486881 na 8-miu bitach i3q5, będącejwynikiem mnożenia dwóch liczb WA*WB, analogicznie kodowanych [WA=−2,751i WB= 1.631].Nawiązują do stylu pytań w egzaminie kodowanie ma być wykonane najpierw dla obu liczb na 8-miubitach krótkiego rejestru, a potem wynik miał być podany w formie, w jakiej wystąpi w 16-bitowymakumulatorze procesora po operacji mnożenia. (trochę wymyślony ten procesor, ale za toodpowiedzi mają szansę mieścić się w małej tabelce.)Tymczasem spróbujmy „rozebrać” problem;1. Zacznijmy od liczby WA=−2,751.Tutaj rzeczywiście jest drobny „kłopot”, bo wartość trafiamiędzy punkty bitów na osi liczb, czyli trzeba wybrać któryś zaokrąglając lub obcinającwartość.2. U2, i3q5 pozwala kodować liczby z zakresu <−4, +3,96875>. Czy może być zatem podejrzenieo „przekroczeniu zakresu” ?. Przecież ta wartość jest z pobliża -3, zatem z wnętrzareprezentowanego przedziału wartości liczb. (patrz ilustracja w p.4b.)3. A teraz bliżej do kodowania.−2,751* 2^5 =−88,032i używając np. kalkulatora konwersjana HEX po obcięciu części ułamkowej => 0xA8, czyli 1010 1000b. I tutaj warto skomentowaćpytania „ciąć czy zaokrąglać”? Jeśli patrzeć na temat z punktu widzenia wartości tozaokrąglanie do kolejnej wartości -89 nie ma tutaj uzasadnienia. Ale temat jest szerszy. Niemożna wskazać, co jest ogólnie bardziej prawidłowe, obcinanie czy zaokrąglanie. Ważna jestświadomość tego wyboru i wynikających z tego konieczności testowania skutków wyboru.4. I parę słów bliższego objaśnienia by nie zarzucono skrótów i ogólnikówa. LSB dla tego kodowania wynosi 2^-5 = 1/32 = 0,03125b. Zatem mamy układ „na pionowo ustawionej osi liczbowej”(bo tak wygodniej przygotować ilustrację)DEC+3,968..……+0,03125−0,03125−2,75…−2,78125…−4K2BIN0111 1111……00 000100 000011 1111…1010 1000<--------1010 0111…1000 0000HEX0x7FUwagi+MAX0x010x3F0xA8?−2,7510xA70x80+1 LSB-1 LSBTo wartość pomiędzy, bliżej -2,75-MAX2016-02-01 09:20113/Na tle poprawy egzaminu DSP, kurs ETEK00043WWTO/ŚROc. Nasza kodowana wartość trafia między bitami, zatem każda uwaga o „kłopocie zrozdzielczością” jest zasadna, ale wynik przecież istniejed. Nie są zaś umotywowane uwagi o „niemożliwości reprezentacji”, bo przecież wrzeczywistości problemów technicznych, choćby przetwarzania analogowocyfrowego (A/C) do rzadkości należy „trafienie idealnie w bit”. To typowa sytuacjakwantyzacji, kiedy trzeba podjąć decyzję, któremu bitowi przypisać poziom. Tymrazem nie ma specjalnego kłopotu. Ale gdyby wartość wypadła w środek przedziałumiędzy bitami równoprawne były by odpowiedzi z wartością każdego z sąsiednichpoziomów.e. I jeszcze ostatnia uwaga odnośnie wątpliwości wyrażanych czasami w rodzaju„przekroczenie zakresu…” czy „nie mieści się w reprezentacji…” albo „nie da sięprzedstawić bez przybliżenia”. Warto starannie przemyśleć problem i brakuzasadnienia dla tych stwierdzeń5. W przypadku kodowania samej liczby−4,486881w U2 na 8-miu bitach i3q5 z uwagami oprzekroczeniu zakresu trzeba się zgodzić - zakres reprezentacji dla i3q5 to przecież (−4; ~4)].Ale i tym razem można przecież podać zawartość tego za krótkiego rejestru (0111 0001b), zistotną uwagą o pominięciu najstarszych bitów, które się nie zmieściły się, bo liczba jest pozazakresem reprezentacji (mówiąc z lekka na wesoło – wylała się poza rejestr (1) (01110001b)).Nieprawidłowość widać zresztą natychmiast, bo z najstarszego bitu (tej zielonej części)wynika jak gdyby była to liczba dodatnia a przecież jest ujemna.6. No i wreszcie problem „jak ten wynik mnożenia będzie wyglądał w „długim” akumulatorze”?.a. Oczywiście tutaj nie ma już problemu z „przekroczeniem zakresu”, bo skąd?b. Akumulator ma więcej bitów, więc również powinien zmniejszyć się (a może nawetzniknąć) problem małej rozdzielczości. (To jest zresztą jednym z podstawowychargumentów za wykorzystaniem tak wydłużonych akumulatorów w DSP)c. Liczba jest wynikiem mnożenia przez siebie liczby q5 * q5, zatem wynik będzie q10(niedowiarkom proponuję przypomnienie sobie sposobu wyznaczania położeniaprzecinka przy mnożeniu „pisemnym” dziesiętnych liczb ułamkowych)d. Zatem−4,486881* 2^10 =−4594,45661…(problemrozdzielczości nie znika, jesteśmyprawie w połowie między bitami!) nie trafiamy idealnie w bit, co daje w efekcie dwieprawie równoważne odpowiedzi 0xEE0E (dla−4594)i 0xEE0D (dla−4595),czyliodpowiednio 1110 1110 0000 1110B i 1110 1110 0000 1101B. Trzeba zaznaczyć, żetaka postać wyniku będzie dla wyłączonego mechanizmu korekcyjnego przesunięcia(FRCT=0).K22016-02-01 09:20223/Na tle poprawy egzaminu DSP, kurs ETEK00043WWTO/ŚROe. Pozostaje jeszcze pytanie gdzie w tym wyniku jest efekt kodowania na 8-bitach (zpunktu 5)? Zaznaczyłem go żółtym tłem odpowiednio1110 1110 0000 1110B i 1110 1110 0000 1101B.Proszę dostrzec przesunięcie o 5 bitów w lewo od LSB w akumulatorze (mnożyliśmyprze liczbę kodowaną q5!). Przy okazji widać wyraźnie potrzebę tak dużego(długiego) akumulatora. Przy wielokrotnym sumowaniu (MAC) te końcówki wartościzaczynają ważyć w wynikach.f.I jeszcze ostatnia uwaga. Włączenie bitu FRCT=1 spowoduje korekcyjne przesunięciewyniku o jeden bit w lewo całości akumulatora i uzupełnienie zerem na LSB.Czyli 1101 1100 0001 1100B i 1101 1100 0001 1010B.Mam nadzieję, że nieco wyjaśniłem te w sumie niezbyt trudne drobiazgi.K22016-02-01 09:20333/ [ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • klobuckfatima.xlx.pl