PRACA DYPLOMOWA MAGISTERSKA

Wielkość: px
Rozpocząć pokaz od strony:

Download "PRACA DYPLOMOWA MAGISTERSKA"

Transkrypt

1 POLITECHNIKA WROCŁAWSKA WYDZIAŁ ELEKTRONIKI KIERUNEK: Elektronika i Telekomunikacja (EiT) SPECJALNOŚĆ: Aparatura Elektroniczna (EAE) PRACA DYPLOMOWA MAGISTERSKA Filtracja cyfrowa z wykorzystaniem procesorów sygnałowych TMS320 Digital filtering with the use of TMS320 Signal Processors AUTOR: Mariusz Woźniak PROWADZĄCY PRACĘ: Dr inŝ. Józef Borkowski, KMEiF OCENA PRACY: WROCŁAW 2008

2 Spis treści: Cel i zakres pracy...4 Wstęp Wprowadzenie do cyfrowego przetwarzania sygnałów Pojęcie sygnału Podstawowe pojęcia z zakresu teorii sygnałów Próbkowanie Kwantyzacja Kodowanie Tor cyfrowego przetwarzania sygnałów Przetworniki typu delta-sigma Przetwornik analogowo-cyfrowy typu delta-sigma Przetwornik cyfrowo-analogowy typu delta-sigma Cyfrowa filtracja sygnałów Stabilność filtrów cyfrowych Parametry filtrów cyfrowych Filtry FIR Filtry IIR Struktury filtrów cyfrowych Struktura bezpośrednia Struktura kratowa (lattice) Struktura zmiennych stanu Łączenie filtrów Połączenie kaskadowe filtrów Połączenie równoległe filtrów Skutki realizacji filtrów cyfrowych w arytmetyce skończonej precyzji Wpływ kwantyzacji współczynników na struktury FIR i IIR Praktyczne aspekty realizacji filtrów FIR w arytmetyce stałoprzecinkowej Praktyczne aspekty realizacji filtrów IIR w arytmetyce stałoprzecinkowej Odporność struktury bikwadratowej na kwantyzację współczynników Warstwa sprzętowa stanowiska pomiarowego Budowa stanowiska pomiarowego Moduł DSK z procesorem TMS320C Procesor TMS320C Rodzina procesorów TMS320 firmy Texas Instruments Podstawowe dane techniczne procesora TMS320C Programowe zrównoleglenie pętli w procesorze TMS320C Audio Daughter Card TMDX326040A Karta akwizycji danych National Instruments PCIe Interfejs stanowiska pomiarowego

3 5.1. Biblioteka Filtrów Cyfrowych dla DSK TMS320C Badanie Filtrów Cyfrowych Moduł Biblioteka Filtrów Cyfrowych warstwa programowa Katalog COM Katalog GUI Katalog LOAD Katalog OBJ Projekty filtrów cyfrowych Katalog PROG Moduł Badanie Filtrów Cyfrowych Struktura programowa modułu Katalog GUIM Katalog INIT Katalog MEAS Algorytmy pomiarowe Pomiary z wykorzystaniem próbek z procesora Pomiar charakterystyki amplitudowej Pomiar charakterystyki amplitudowej za pomocą sygnału sin(x)/x Pomiar przesunięcia fazowego Pomiar stabilności Ocena dynamiki pomiarów Pomiary własności filtrów cyfrowych Wpływ struktury na charakterystykę filtra Wpływ struktury na charakterystykę filtrów zmiennoprzecinkowych Wpływ struktury na charakterystykę filtrów stałoprzecinkowych Odporność róŝnych struktur filtra na kwantyzację współczynników Struktura bezpośrednia filtra Struktura kratowa (lattice) filtra Struktura bikwadratowa filtra Struktura bikwadratowa filtra w zapisie zmiennych stanu Kwantyzacja współczynników a zafalowania w paśmie przepustowym filtra Zafalowania w paśmie przepustowym filtrów FIR Zafalowania w paśmie przepustowym filtrów IIR Realizacja filtrów pasmowoprzepustowych w róŝnych strukturach Realizacja filtrów pasmowozaporowych w strukturze bezpośredniej Realizacja filtrów pasmowozaporowych w strukturze kratowej Realizacja filtrów pasmowozaporowych w strukturze bikwadratowej Realizacja filtrów pasmowozaporowych w strukturze bikwadratowej w zapisie zmiennych stanu Podsumowanie Literatura Dodatek A: Instrukcja ćwiczenia laboratoryjnego

4 Cel i zakres pracy Cel pracy Celem pracy było wykonanie oprogramowania w środowisku Matlab umoŝliwiającego implementację filtrów cyfrowych o róŝnych strukturach z wykorzystaniem procesora sygnałowego TMS320C6713 oraz pomiar podstawowych charakterystyk filtrów za pomocą sprzętu laboratoryjnego. Na wykonanym stanowisku przeprowadzono przykładowe pomiary zaprojektowanych filtrów oraz weryfikację charakterystyk teoretycznych z uzyskiwanymi doświadczalnie po implementacji w procesorze sygnałowym. Teza pracy: Wykorzystanie środowiska pomiarowego Matlab we współpracy z modułem DSK i procesorem sygnałowym TMS320C6713 oraz laboratoryjnymi przyrządami pomiarowymi umoŝliwia efektywną implementację róŝnych struktur filtrów cyfrowych oraz zapewnia pomiar i analizę uzyskiwanych charakterystyk. Zakres pracy: Analiza toru przetwarzania sygnałów z wykorzystaniem procesora DSP. Ocena potencjalnych źródeł błędów i zniekształceń powstających podczas cyfrowego przetwarzania sygnałów. Określenie wpływu zapisu stało- i zmiennoprzecinkowego na dokładność obliczeń realizowanych w procesorze sygnałowym. Analiza wybranych struktur filtrów cyfrowych ze szczególnym uwzględnieniem ich realizowalności przy zapisie stałoprzecinkowym. Implementacja wybranych struktur filtrów cyfrowych w procesorze DSP. Omówienie sposobów komunikacji z procesorem sygnałowym z poziomu środowiska Matlab. Wykonanie aplikacji umoŝliwiającej implementację filtrów cyfrowych w procesorze sygnałowym TMS320C6713. Analiza funkcjonalności karty akwizycji danych PCIe-6251 firmy National Instruments. Wykonanie aplikacji w środowisku Matlab umoŝliwiającej pomiar charakterystyk filtrów cyfrowych z wykorzystaniem karty akwizycji danych. Wykonanie pomiarów wybranych filtrów cyfrowych zrealizowanych w róŝnych strukturach i róŝnej dokładności zapisu współczynników. Analiza i prezentacja uzyskanych wyników. 4

5 Wstęp Cyfrowe przetwarzanie sygnałów (Digital Signal Processing) stanowi obecnie jedną z najwaŝniejszych dziedzin współczesnej elektroniki. Z uwagi na niemalŝe całkowitą digitalizację urządzeń multimedialnych nie sposób wyobrazić sobie większości z nich bez wydajnych bloków DSP. Sygnały cyfrowe są uŝywane w celu badania stanu i zachowanie się układów i systemów (w szczególności urządzeń elektronicznych). Wykorzystuje się je równieŝ do badania organizmów Ŝywych, pomiaru wielkości fizycznych, przesyłania i magazynowania informacji oraz sterowania zjawiskami i systemami. Pomimo szerokiej gamy sygnałów elektrycznych bardzo często zachodzi potrzeba pomiaru wielkości nieelektrycznych. Dzięki wykorzystaniu róŝnego rodzaju przetworników i czujników dokonuje się konwersji tych wielkości na sygnały elektryczne, a w szczególności sygnały cyfrowe, co umoŝliwia ich dalszą obróbkę i przetwarzanie. Poza samym zagadnieniem właściwego zaprojektowania i przeprowadzenia pomiarów niezwykle istotne miejsce zajmuje interpretacja uzyskanych wyników oraz umiejętność oszacowania i minimalizacji występujących w trakcie pomiarów błędów. NiezaleŜnie jednak od pochodzenia przetwarzanego sygnału wyekstrahowanie z niego interesujących nas informacji wymaga bardzo starannych i często pracochłonnych zabiegów, u których podstawy leŝy złoŝony aparat matematyczny. Z chwilą pojawiania się pierwszych komputerów praktyczna realizacja większości algorytmów przetwarzania sygnałów była niezwykle ograniczona ze względu na zbyt małe moce obliczeniowe dostępnych procesorów, a ich implementacja w urządzeniach przenośnych praktycznie niemoŝliwa. Nieosiągalnym celem było równieŝ przetwarzanie sygnałów w czasie rzeczywistym. Ogromne wyzwanie dla konstruktorów stanowiły przede wszystkim sygnały audio, których obróbka zdominowana przez technologię analogową długo opierała się pełnej digitalizacji. Dynamiczny rozwój techniki DSP szybko jednak pozwolił na pokonanie barier technologicznych. Przełomem było pojawienie się pierwszego procesora sygnałowego Intel 2920 w 1978 roku oraz układu TMS32010 w roku Obecnie wydajne platformy DSP otwierają nowe, nieosiągalne do tej pory obszary zastosowań, pozwalając na wydajne przetwarzanie zarówno sygnałów audio jak i znacznie bardziej złoŝone operacje związane z przetwarzaniem obrazu wideo. Szczególnie interesująca jest w tej dziedzinie rodzina procesorów firmy Texas Instruments z serii DaVinci, której kolejne modele dzięki specjalizowanym układom sprzętowym optymalizowane są pod kątem zastosowań multimedialnych takich jak: wideotelefonia, dekodery cyfrowej telewizji 3-ciej generacji (HDTV High Definition Television), czy inne urządzenia wykorzystywane w cyfrowym przetwarzaniu obrazu wideo. Procesory z tej serii powstały na skutek integracji rdzenia procesora z serii ARM9 z procesorem sygnałowym C64+ oraz specjalizowanymi układami sprzętowymi jak np. koprocesor HDTV czy MPEG-4. Jednym z najwaŝniejszych elementów składowych większości torów cyfrowego przetwarzania sygnałów stanowi filtracja. Dzięki wykorzystaniu techniki cyfrowej moŝliwa jest realizacja filtrów o liniowej fazie praktycznie nieosiągalnych w przypadku filtrów analogowych. Podstawowe zalety cyfrowej filtracji sygnałów to przede wszystkim niezmienność czasowa związana z brakiem wpływu starzenia się elementów elektronicznych na uzyskiwane wyniki oraz stuprocentowa powtarzalność wynikająca z zerowego wpływu rozrzutu parametrów podzespołów na dane cyfrowe. Niezwykle wygodne, a przez to bardzo stymulujące do dalszego rozwoju stały się duŝe moŝliwości rekonfiguracji gotowych torów DSP. Nawet całkowita zmiana przeznaczenia wykorzystywanego układu wymaga czasami jedynie zmian w stosowanym oprogramowaniu bez ingerencji w rozwiązania sprzętowe. 5

6 Wymienione cechy wraz z dynamicznym rozwojem procesorów oraz układów peryferyjnych, a w szczególności przetworników analogowo-cyfrowych oraz cyfrowo-analogowych sprawiły, Ŝe cyfrowa obróbka sygnałów zdominowała współczesną elektronikę. Celem niniejszej pracy była analiza metod filtracji cyfrowej z zastosowaniem filtrów o skończonej odpowiedzi impulsowej (filtry FIR Finitive Impulse Response) oraz o nieskończonej odpowiedzi impulsowej (filtry IIR Infinitive Impulse Response). Wiele miejsca poświęcono na określenie rozbieŝności pomiędzy teoretycznymi charakterystykami filtrów na etapie ich projektowania w środowisku Matlab oraz rzeczywistymi charakterystykami uzyskiwanymi po implementacji w procesorze sygnałowym. Ogromny wpływ na osiągane wyniki ma tutaj precyzja obliczeń zaleŝna od sposobu kodowania zmiennych oraz współczynników filtra. Stosuje się formaty zmiennoprzecinkowe float lub double, oraz stałoprzecinkowe kody IQ dla liczb w formacie int i short. Często w praktycznych realizacjach filtrów z powodu ograniczeń sprzętowych nie jesteśmy bowiem w stanie operować na liczbach o duŝej precyzji. Weryfikacja wyników pomiarów uzyskiwanych dla róŝnych przypadków była równieŝ celem niniejszej pracy. W zebranym materiale wiele uwagi poświęcono równieŝ na analizę struktur realizowanych filtrów, które obok dokładności wykorzystywanych zmiennych mają istotne znaczenie w powstawaniu rozbieŝności względem teoretycznych załoŝeń. Ta sama charakterystyka filtra moŝe zostać zrealizowana w oparciu o róŝną strukturę, charakteryzującą się innymi właściwościami w zaleŝności od specyficznych warunków sprzętowych. Proces konstrukcji filtra cyfrowego oprócz określenia wymagań, doboru właściwej struktury i wyznaczeniu jego współczynników polega równieŝ na implementacji projektu w procesorze sygnałowym oraz weryfikacji na drodze pomiarów uzyskiwanych wyników z wcześniej określonymi załoŝeniami. Stosowanie powyŝszej metodologii postępowania prowadzi niejednokrotnie do konieczności ponownego wyznaczenia współczynników, oraz ponownej weryfikacji struktury, a czasem nawet zmiany wcześniejszych załoŝeń. Iteracyjne uzyskanie wyniku daje nam jednak pewność, Ŝe ukończony projekt jest rozwiązaniem optymalnym spełniającym stawiane wymagania. Przeprowadzona analiza i pomiary róŝnych filtrów pozwoliły opracować załoŝenia, a następnie zrealizować stanowisko do implementacji filtrów cyfrowych w procesorze sygnałowym oraz pomiaru ich właściwości. Układ pomiarowy składa się z aplikacji zrealizowanej w środowisku Matlab wykorzystującej elementy skompilowane w programie Code Composer Studio, która współpracuje z modułem DSK z procesorem sygnałowym TMS320C6713 oraz kartą akwizycji danych National Instruments PCIe Stworzone oprogramowanie umoŝliwia wgrywanie do procesora filtrów cyfrowych z wbudowanej biblioteki z wykorzystaniem własnych współczynników zaprojektowanych w programie SPTool bądź importowanych do środowiska Matlab i zapisanych w postaci zmiennych ze współczynnikami. Podstawowe zalety stworzonego środowiska to brak konieczności ingerowania w kod programu w celu zmiany struktury, ilości współczynników czy rodzaju charakterystyki implementowanego filtru. UŜytkownik korzysta z przejrzystego panelu kontrolnego w programie Matlab, który umoŝliwia mu łatwą realizację projektów kolejnych filtrów oraz współpracę z procesorem sygnałowym i kartą akwizycji danych. Pomiary przeprowadza się za pomocą specjalnego interfejsu pozwalającego na zmianę niezbędnych parametrów oraz zapewniającego wizualizację uzyskiwanych wyników. W programie istnieje moŝliwość pomiaru najwaŝniejszych charakterystyk filtrów: charakterystyki amplitudowej, fazowej oraz stabilności. Niespotykanym rozwiązaniem w stosunku do podobnych systemów pomiarowych ([9], [11]) jest funkcjonalność pozwalająca na pobieranie próbek sygnału bezpośrednio z procesora: próbek wejściowych po przeprowadzeniu konwersji na postać cyfrową w przetworniku analogowo-cyfrowym modułu DSK oraz próbek wyjściowych przed 6

7 przeprowadzeniem konwersji na postać analogową w wyjściowym przetworniku analogowocyfrowym. Cyfrowe próbki transmitowane są za pomocą interfejsu RTDX przez łącze USB, a następnie odpowiednio przetwarzane w zrealizowanej aplikacji. UmoŜliwia to porównanie charakterystyk zmierzonych za pomocą karty akwizycji danych na wyjściu modułu DSK z charakterystykami uzyskiwanymi bezpośrednio na wyjściu procesora DSP. Tym samym funkcjonalność ta pozwala ocenić dowolny algorytm filtracji zaimplementowany w układzie oraz oszacować wpływ błędów przetwornika analogowo-cyfrowego oraz cyfrowoanalogowego w module DSK na uzyskiwane wyniki. NaleŜy pamiętać, Ŝe otrzymywane na komputerze dane oprócz obciąŝenia błędem wspomnianych przetworników dodatkowo naraŝone są na błędy konwersji cyfrowo-analogowej w stosowanej karcie pomiarowej. W celu usystematyzowania wiedzy dotyczącej filtracji cyfrowej oraz prezentacji moŝliwości zrealizowanego w ramach niniejszej pracy stanowiska laboratoryjnego stworzono instrukcję ćwiczenia, które moŝe być wykonywane przez studentów podczas zajęć w laboratorium Procesorów Sygnałowych. Oprócz przykładowych zadań, które mogą być wykonywane w celu nauki zagadnienia filtracji cyfrowej dokument ten zawiera rozbudowaną część poświęconą zapoznaniu się z moŝliwościami stanowiska. Liczne zrzuty ekranów pozwalają z łatwością zaznajomić się ze środowiskiem pomiarowym oraz przystąpić do realizacji bardziej złoŝonych zadań. W rozdziale 1 niniejszej pracy zamieszczono krótkie wprowadzenie do zagadnienia cyfrowego przetwarzania sygnałów. Omówiono pojęcie sygnału, proces próbkowania, kwantyzacji oraz kodowanie liczb w systemach procesorowych. Przedstawiono równieŝ typowy tor cyfrowego przetwarzania sygnałów wraz z omówieniem najwaŝniejszych jego elementów oraz ukazaniem źródeł błędów i sposobów ich minimalizacji. W rozdziale 2 niniejszej pracy przedstawiono bliŝej zagadnienie filtracji cyfrowej. Zwrócono w nim szczególną uwagę na najwaŝniejsze parametry filtrów FIR i IIR, oraz warunki ich stabilności. Omówiono równieŝ charakterystyczne własności filtrów oraz ich zachowanie przy zmiennej precyzji zapisu współczynników. Sporo uwagi poświęcono równieŝ realizacji filtrów w róŝnych strukturach. Przedstawiono najwaŝniejsze przesłanki, którymi naleŝy kierować się przy wyborze struktury i sposobu realizacji filtra. W rozdziale tym przedstawiono równieŝ sposoby łączenia filtrów cyfrowych. Rozdział 3 porusza zagadnienie realizacji filtrów cyfrowych w arytmetyce skończonej precyzji. Traktuje on o numerycznych aspektach związanych z zapisem liczb w formacie stałoprzecinkowym podczas obliczeń oraz potencjalnym zagroŝeniu występowania przepełnień. Zamieszczono w nim równieŝ praktyczne wskazówki na temat sposobów realizacji i implementacji algorytmów DSP w arytmetyce stałoprzecinkowej. W tej części pracy przedstawiono równieŝ zalety struktury bikwadratowej ujawniające się podczas realizacji filtracji stałoprzecinkowej. Rozdział 4 zawiera podstawowe informacje na temat platformy sprzętowej, na której implementuje się filtry cyfrowe na stworzonym stanowisku: modułu DSK z procesorem sygnałowym TMS320C6713 oraz karty akwizycji danych National Instruments PCIe-6251, za pomocą której przeprowadzane są pomiary. UwaŜnie przestudiowano cechy i właściwości procesora czyniące go szczególnie wydajnym i efektywnym w operacjach DSP. Omówiono równieŝ rozszerzenie modułu DSK w postaci płytki Audio Board oraz charakterystykę sprzętową karty pomiarowej. Rozdział 5 stanowi opis interfejsu zrealizowanego oprogramowania. Omawia on kolejne elementy programu oraz przedstawia sposób uŝytkowania stworzonego stanowiska pomiarowego. W rozdziale 6 i 7 niniejszej pracy przedstawiono ogólny schemat i zasadę działania programu Bibliotek Filtrów Cyfrowych oraz modułu Badanie Filtrów Cyfrowych. Omówiono strukturę katalogową, przedstawiono waŝniejsze funkcje i własności kolejnych elementów oprogramowania. W rozdziale 7 opisano równieŝ szczegółowo zasadę działania procedur 7

8 filtrujących uŝywanych w programie oraz sposób komunikacji z nimi z poziomu środowiska Matlab. Rozdział ten zawiera ponadto najwaŝniejsze informacje dotyczące sposobu pomiarów charakterystyk filtrów na zrealizowanym stanowisku oraz omawia stosowane algorytmy pomiarowe. Rozdział 8 przedstawia wyniki pomiarów przeprowadzonych z wykorzystaniem zrealizowanego stanowiska. Szczególną uwagę zwrócono w nich na wpływ kwantyzacji oraz własności róŝnych struktur stosowanych podczas filtracji. Przedstawiono równieŝ liczne wykresy będące efektem przeprowadzonych badań. W rozdziale 9 dokonano podsumowania niniejszej pracy. Odniesiono się w nim do praktycznych aspektów zagadnienia filtracji oraz edukacyjnych walorów wykonanego oprogramowania. W rozdziale tym zwrócono równieŝ uwagę na zagadnienia sprawiające najwięcej trudności podczas realizacji pracy oraz wskazano moŝliwe kierunki dalszego rozwoju. 8

9 1. Wprowadzenie do cyfrowego przetwarzania sygnałów 1.1. Pojęcie sygnału Sygnałem nazywamy abstrakcyjny model dowolnej wielkości fizycznej zmieniającej się w funkcji określonej zmiennej ([1], [8]). W praktyce mamy zwykle do czynienia z sygnałami jedno- bądź wielowymiarowymi w funkcji połoŝenia lub czasu. Nauką zajmującą się tworzeniem i rozwijaniem matematycznego aparatu do opisu, analizy oraz przetwarzania sygnałów jest teoria sygnałów. Traktuje ona sygnały jako funkcje matematyczne o określonych właściwościach, które mogą być w określony sposób przekształcane. Celem analizy sygnałów jest wydobycie i interpretacja informacji w nich zawartej ( treści sygnału). Klasyczna klasyfikacja sygnałów wyróŝnia podział przedstawiony na rysunku 1.1. Deterministyczne Sygnały Losowe.okresowe Niestacjonarne.prawie okresowe.zmodulowane Ergodyczne.impulsowe o ograniczonej energii.okresowe.o nieskończonym czasie.prawie okresowe trwania i ograniczonej energii.zmodulowane Stacjonarne Nieergodyczne Rys Podstawowa klasyfikacja sygnałów [8] Podstawowe pojęcia z zakresu teorii sygnałów Aby umoŝliwić przetwarzanie i analizę sygnałów fizycznych w urządzeniach cyfrowych konieczna jest zamiana ich analogowej (ciągłej) reprezentacji na reprezentację cyfrową. W tym celu kaŝdy sygnał naleŝy poddać kolejno trzem operacjom: próbkowaniu, kwantyzacji i kodowaniu Próbkowanie Pierwszym etapem przetwarzania sygnałów jest proces próbkowania ([2], [8]). Polega on na pobraniu z sygnału x ( t) próbek w wybranych odstępach czasowych równoodległych (próbkowanie równomierne) bądź nierównoległych (próbkowanie nierównomierne) i utworzeniu ciągu próbek x( n T ) reprezentujących ten sygnał (gdzie T jest okresem próbkowania). Matematycznym zapisem operacji próbkowania jest wymnoŝenie sygnału analogowego z sumą impulsów Diraca: 9

10 Ponadto: ( t) = x( t) δ ( t kt ) k = x (1.1) δ 1 f s = (1.2) T gdzie f s jest częstotliwością, a T okresem próbkowania. Aby sygnał dyskretny wiernie reprezentował sygnał analogowy i aby moŝliwe było jego jednoznaczne odtworzenie musi zostać spełnione twierdzenie Kotielnikowa-Shannona: sygnał ciągły moŝe być odtworzony z sygnału dyskretnego, jeśli był próbkowany z częstotliwością co najmniej dwa razy większą od granicznej częstotliwości swego widma. Częstotliwość f równą połowie częstotliwości próbkowania f s nazywa się częstotliwością Nyquista. N f s 2 f max (1.3) Graniczna częstotliwość widma sygnału f max to częstotliwość najwyŝszej harmonicznej występującej w danym sygnale. Zwykle widmo próbkowanych sygnałów jest bardzo szerokie co czyniłoby operację próbkowania niezwykle wymagającą a w większości rzeczywistych przypadków niemoŝliwą. W praktyce, aby spełnić twierdzenie Kotielnikowa-Shannona stosuje się antyaliasingowe filtry dolnoprzepustowe, których zadaniem jest wyeliminowanie składowych harmonicznych sygnału powyŝej f max. Pozwala to ograniczyć sygnał do interesującego nas zakresu widma i wyeliminować zjawisko aliasingu Kwantyzacja Kwantyzacja polega na przekształceniu nieskończonego zbioru wartości, które moŝe przyjmować sygnał x ( t) do jego skończonego podzbioru [2]. Potrzeba kwantyzacji wiąŝe się z ograniczeniami wynikającymi z moŝliwości zapisania jedynie ściśle określonych wartości liczb w urządzeniach cyfrowych przetwarzających sygnały. W praktyce proces kwantyzacji polega na przypisaniu wartości analogowych do najbliŝszych poziomów reprezentacji ustalonych w zaleŝności od sposobu kodowania liczb w uŝywanym systemie. Proces kwantyzacji juŝ z samej definicji wiąŝe się z nieodwracalną utratą części informacji niesionej przez sygnał. Błędem kwantyzacji nazywamy róŝnicę pomiędzy rzeczywistą wartością sygnału a jego wartością po kwantyzacji. Błąd ten jest w przybliŝeniu sygnałem losowym o równomiernym rozkładzie prawdopodobieństwa i gęstości prawdopodobieństwa ρ = 1, gdzie jest wielkością przedziału kwantowania. W praktycznej realizacji kwantowania w przetwornikach analogowo-cyfrowych parametrem określającym jakość kwantyzacji jest współczynnik SNR (signal-to-noise-ratio), który moŝe być wyznaczony w oparciu o następujący wzór: gdzie b jest ilością bitów stosowanego przetwornika A/C. SNR = 6,02 b + 1,76[ db] (1.4) 10

11 Kodowanie Kodowaniem nazywamy proces przekształcenia wartości (próbek sygnału, wartości współczynników itp.) do reprezentacji, która moŝe słuŝyć do przetwarzania i przechowywania informacji w procesorze ([2], [15], [17]). Dwa podstawowe zapisy danych to: Kodowanie zmiennoprzecinkowe. Kodowanie stałoprzecinkowe. W filtrach cyfrowych zrealizowanych w niniejszej pracy wykorzystano kodowanie zmiennoprzecinkowe na liczbach typu float i double, oraz kodowanie stałoprzecinkowe w arytmetyce IQ na liczbach typu integer. Kodowanie zmiennoprzecinkowe Liczby zmiennoprzecinkowe zapisywane są w pamięci procesorów z serii TMS320C67 za pomocą standardu IEEE-754. Definiuje on 32-bitowy format pojedynczej precyzji float oraz 64-bitowy format podwójnej precyzji double. Według standardu liczba zapisywana jest za pomocą rozłoŝonych w kolejności od najstarszych do najmłodszych następujących bitów: bitu znaku, 8-bitowego wykładnika (11-bitowego w przypadku liczb podwójnej precyzji), 23-bitowej (52-bitowej w podwójnej precyzji) mantysy. Rysunki 1.2 i 1.3 prezentują zapis zmiennoprzecinkowy w formacie IEEE-754 odpowiednio dla zmiennych typu float i double S e f Rys Zapis zmiennoprzecinkowy pojedynczej precyzji (float) S e f Rys Zapis zmiennoprzecinkowy podwójnej precyzji (double). Wartość liczbowa jest dla liczb typu float zapisywana jako: gdzie 0 < e < 255 oraz 0 s f 2 2. ( e ) Wartość liczbowa dla liczb typu double zapisywana jest jako: gdzie 0 < e < 2047 oraz 0 s f (1.5) ( e ) f f (1.6) 11

12 Kodowanie zmiennoprzecinkowe charakteryzuje się bardzo duŝą dynamiką zapisu (moŝliwością równoczesnego reprezentowania bardzo duŝych i bardzo małych wartości) oraz znacznie większą ilością liczb moŝliwych do reprezentacji niŝ w przypadku kodowania stałoprzecinkowego. Ponadto algorytmy DSP realizowane z uŝyciem liczb w formacie zmiennoprzecinkowym są znacznie łatwiejsze do realizacji. Podstawowe wady tego zapisu to nierównomierna precyzja (bardzo duŝa w okolicach zera, maleje w kierunku oddalania się na osi wartości w kierunku nieskończoności) oraz znacznie większe wymagania co do mocy obliczeniowej procesora. Kodowanie stałoprzecinkowe Stosowana w kodowaniu stałoprzecinkowym arytmetyka IQ bazuje na ułamkowym kodzie uzupełnienia do dwóch (kod U2). Kod ten opiera się na załoŝeniu, Ŝe dla wszystkich wartości w układzie przecinek występuje w stałym miejscu w zapisie. Liczby zapisywane w ten sposób na b-bitach reprezentują 2 b róŝnych wartości. Bity po lewej stronie od umownie przyjętego punktu oznaczającego przecinek odpowiadają części całkowitej liczby, a bity po prawej stronie części ułamkowej. Kod ten często oznacza się jako ImQn, gdzie m i n są odpowiednio liczbami bitów po lewej i prawej stronie przecinka. Rozdzielczość zapisu liczb za pomocą omawianego kodu jest równa 2 -n, największa wartością dodatnia to 2 m-1-2 -n, a najmniejsza wartość ujemna to -2 m-1. Przykładowo wartość zapisana w systemie dziesiętnym jako 1,625, w kodzie I2Q6 reprezentowana jest przez liczbę: 01, (1,625 = ). Niewielka rozdzielczość przedstawionego kodu sprawia jednak, Ŝe tą samą wartość w kodzie I2Q6 będą miały równieŝ liczby z przedziału < , ). Podstawowe zalety kodu IQ to równomierne rozmieszczenie reprezentowanych wartości co daje jednakową precyzję niezaleŝnie od przeprowadzanych obliczeń oraz niewielkie wymagania co do mocy obliczeniowej uŝywanego procesora. Wadami tego zapisu są natomiast słaba dynamika i znacznie mniejsza pojemność kodu w stosunku do formatu zmiennoprzecinkowego, jak równieŝ duŝo większa złoŝoność algorytmów realizowanych z jego uŝyciem Tor cyfrowego przetwarzania sygnałów W celu przetwarzania sygnałów w danym systemie niezbędna jest konstrukcja toru przetwarzania według przyjętych zasad ([2], [8]). Postępowanie takie zapewnia nam zminimalizowanie błędów oraz zoptymalizowanie procesu uzyskiwania wyników. Rysunek 1.4 przedstawia schemat typowego toru przetwarzania sygnałów. x(t) Filtr antyaliasingowy x p(t) x(n) y(n) y p(t) Filtr Sample ADC DSP DCA Hold dolnoprzepustowy & Hold y(t) Sygnał analogowy Sygnał cyfrowy Sygnał analogowy Rys Schemat typowego toru przetwarzania sygnałów [2]. 12

13 Elementy toru przetwarzania sygnałów są następujące: Dolnoprzepustowy filtr antyalisingowy analogowy filtr dolnoprzepustowy, którego zadaniem jest wyeliminowanie składowych harmonicznych przetwarzanego sygnału o częstotliwości większej niŝ załoŝona dla danego układu górna częstotliwość przetwarzania f max taka, Ŝe f s 2 f max ( f s - częstotliwością próbkowania). Układ Sample & Hold stanowiący zwykle integralną część przetwornika analogowocyfrowego układ mający na celu próbkowanie sygnału analogowego z zadaną częstotliwością oraz podtrzymanie określonego poziomu napięciowego do czasu nadejścia następnej próbki z wartością bieŝącą sygnału. Przetwornik analogowo-cyfrowy (ADC) układ zamieniający dyskretne próbki o wartościach rzeczywistych na próbki skwantowane z rozdzielczością równą ziarnu przetwornika. Procesor DSP układ realizujący cyfrowe przetwarzanie sygnału. UmoŜliwia zaprogramowanie i realizację wymaganych przez uŝytkownika algorytmów. Przetwornik cyfrowo-analogowy (DAC) układ dokonujący konwersji sygnału cyfrowego na skwantowany sygnał rzeczywisty. Układ Hold układ mający na celu podtrzymanie wartości chwilowej sygnału do czasu nadejścia kolejnej próbki z przetwornika ADC. Sygnał na jego wyjściu jest sygnałem schodkowym. Układ moŝe zawierać równieŝ interpolator (np. interpolator liniowy 1-szego rzędu), który kosztem opóźnienia sygnału o jedną próbkę interpoluje wartość pomiędzy kolejnymi próbkami wartościami pośrednimi (zamiast zatrzymywać je na niezmienionym poziomie). Najczęściej stosuje się jednak układy Hold zerowego rzędu. Zasadę działania tego typu układów (zerowego i 1-szego rzędu) przedstawia rysunek 1.5. Filtr dolnoprzepustowy jego zadanie to wygładzenie sygnału schodkowego powstającego na wyjściu układu Hold. x(t) T x(t) T x(t) T t t a). b). c). t Rys Zasada działania interpolatora próbek: a) sygnał oryginalny, b) interpolator zerowego rzędu, c) interpolator 1-szego rzędu [2]. Stosowany powszechnie interpolator zerowego rzędu jest układem o charakterystyce widmowej danej wzorem [2]: H ( jω) gdzie T jest okresem próbkowania sygnału. ( ωt / 2) ( ωt / 2) jωt / 2 sin = Te (1.7) 13

14 Nieidealna charakterystyka widmowa interpolatora powoduje tłumienie sygnału na wyjściu zgodnie z kształtem charakterystyki sin(x)/x w przedziale od 0 do f s / 2 o wartość z zakresu od 0 do -3,88 db. Sytuację to przedstawia rysunek 1.6. H(f) T 0,64T Charakterystyka idealnego filtra dolnoprzepustowego Charakterystyka rzeczywistego filtra dolnoprzepustowego -f /2 S 0 f S/2 f S 2f S Rys Charakterystyka układu Hold. W celu wyeliminowania niekorzystnego zniekształcenia spowodowanego nieidealną charakterystyką interpolatora w torze przetwarzania stosuje się dodatkowy filtr korekcyjny sin(x)/x o charakterystyce odwrotnej do charakterystyki interpolatora. Filtr ten moŝe być zrealizowany po stronie cyfrowej, czyli przed przetwornikiem cyfrowo-analogowym (rys. 1.7) lub po stronie analogowej, czyli za przetwornikiem (rys. 1.8). x(n) Filtr cyfrowy sin(x)/x DAC Hold Przetwornik C/A Filtr dolnoprzepustowy x(t) Rys Cyfrowa realizacja filtra korekcyjnego sin ( x )/ x. x(n) DAC Hold Filtr dolnoprzepustowy Filtr analogowy sin(x)/x x(t) Przetwornik C/A Rys Analogowa realizacja filtra korekcyjnego sin ( x )/ x. Wykonane w pracy oprogramowanie umoŝliwia analizę wpływu przetwornika analogowo-cyfrowego na wejściu układu oraz przetwornika cyfrowo-analogowego na wyjściu układu na kształt uzyskiwanych charakterystyk filtrów cyfrowych. W tym celu w aplikacji zrealizowano funkcjonalność pozwalającą na pobieranie próbek bezpośrednio z procesora za pośrednictwem łącza USB. Rozwiązanie takie daje moŝliwość porównania charakterystyk na 14

15 wyjściu układu cyfrowego z charakterystykami uzyskiwanymi na wyjściu modułu DSK, czyli po konwersji próbek cyfrowych przez przetwornik cyfrowo-analogowy. Więcej informacji na temat stworzonego rozwiązania moŝna znaleźć w rozdziale Przetworniki typu delta-sigma W module DSK znajdującym się na stanowisku pomiarowym do konwersji analogowocyfrowej oraz cyfrowo-analogowej przetwarzanych sygnałów wykorzystywane są przetworniki typu delta-sigma ([3], [8]) Przetwornik analogowo-cyfrowy typu delta-sigma V in Układ całkujący Komparator (1-bit ADC) Filtr dolnoprzepustowy Decymator Out 1-bit DAC Modulator delta-sigma V ref Rys Schemat ideowy przetwornika analogowo-cyfrowego typu delta-sigma. Zasada działania przetwornika analogowo-cyfrowego typu delta-sigma polega na próbkowaniu jednobitowym z bardzo duŝą częstotliwością, a następnie uśrednianiu (całkowaniu) i decymacji co M-tej próbki prowadzącej do zwiększenia się liczby bitów przypadającej na jedną próbkę i zmniejszeniu częstotliwości próbkowania. Schemat ideowy przetwornika A/C typu delta-sigma przedstawiono na rysunku 1.9. Składa się on z modulatora delta-sigma, cyfrowego filtra dolnoprzepustowego oraz filtra decymującego. Zasada działania jest następująca: od analogowego sygnału wejściowego przetwornika V in odejmowany jest sygnał z 1-bitowego przetwornika cyfrowo-analogowego sterowanego sygnałem wyjściowym modulatora. Układ całkujący na który podawane jest napięcie wynikowe dokonuje uśredniania z wartością napięcia, które było na jego wyjściu w poprzednim stanie. Sygnał podawany jest następnie na komparator, na wyjściu którego pojawia się logiczna 1 dla sygnału większego od zera oraz 0 dla sygnału mniejszego od zera. 1-bitowy przetwornik C/A w pętli sprzęŝenia zwrotnego dostarcza na wejściowy sumator układu napięcie +V ref (napięcie odniesienia) jeŝeli na wejściu układu występuje logiczna 1 oraz -V ref, jeŝeli występuje 0. Ciąg bitów z komparatora jest filtrowany przez dolnoprzepustowy filtr cyfrowy, aby wyeliminować niepoŝądane składowe oraz decymowany w układzie wyjściowym w celu uzyskania wielobitowej reprezentacji sygnału. Na wyjściu przetwornika uzyskuje się sygnał cyfrowy zmodulowany za pomocą modulacji gęstości impulsów (PDM Pulse Density Modulation). 15

16 Przetwornik cyfrowo-analogowy typu delta-sigma Schemat ideowy przetwornika cyfrowo-analogowego typu delta-sigma jest analogiczny do przetwornika analogowo-cyfrowego (rys. 1.9). Układ składa się z modulatora delta-sigma zrealizowanego w przeciwieństwie do przetwornika A/C po stronie cyfrowej oraz analogowego filtra dolnoprzepustowego. Komparator podobnie jak w poprzednim przypadku decyduje kiedy napięcie wejściowe jest wyŝsze lub niŝsze od ustalonego poziomu i generuje w zaleŝności od tego strumień bitów. Następnie jest on decymowany oraz wygładzany w analogowym filtrze dolnoprzepustowym na wyjściu modulatora powstaje sygnał analogowy. W torze przetwarzania sygnałów, w którym wykorzystuje się przetwornik cyfrowoanalogowy delta-sigma nie jest potrzebny filtr korekcyjny sin(x)/x. Wynika to z faktu, Ŝe przetworniki delta-sigma pracują zazwyczaj z nadpróbkowaniem (oversamplingiem), czyli przy częstotliwości próbkowania wielokrotnie wyŝszej niŝ wymagana w układzie. W takim wypadku omawiane wcześniej tłumienie spowodowane rzeczywistą charakterystyką interpolatora próbek rozkłada się na całe pasmo próbkowania. Po ograniczeniu szerokości pasma do interesującego nas obszaru uzyskuje się jedynie niewielki fragment próbkowanego zakresu, przez co zniekształcenia są znacznie mniejsze. Przykład widma przy 8-krotnym overamplingu zaznaczono na rysunku 1.6 zakreskowanym obszarem. Dodatkowo podczas overamplingu charakterystyka szumowa przetwornika rozkłada się w k-krotnie szerszym paśmie (gdzie k jest współczynnikiem nadpróbkowania) co powoduje poprawę parametru SNR (signal-to-noise ratio) sygnału o 10log( k ) db. Integrator w układzie przetwornika deltasigma działa dla szumu jak filtr górnoprzepustowy powodując kształtowanie się charakterystyki szumowej co równieŝ zmniejsza poziom szumów w zakresie od 0 Hz do częstotliwości f S /2. 16

17 2. Cyfrowa filtracja sygnałów Filtrem cyfrowym nazywamy układ, który dokonuje selekcji składowych sygnału podanych na jego wejście ([2], [8]). Zgodnie z przyjętymi podczas projektowania załoŝeniami jego zadaniem jest wytłumienie wybranych składowych częstotliwościowych oraz pozostawienie innych w nienaruszonym stanie. Charakterystyka idealnego filtra dolnoprzepustowego (mającego nieskończone tłumienie w paśmie zaporowym oraz zerowe w paśmie przejściowym) ma zgodnie z tymi załoŝeniami następującą postać: H jω ( e ) 1, = 0, ω < ω ω c < c ω π (2.1) Funkcja ta jest okresowa, o okresie 2 π. Odpowiedź impulsowa idealnego filtra dolnoprzepustowego dana jest wzorem: h [ n] ( ω n) sin c =, < ω π (2.2) c πn Idealny filtr dolnoprzepustowy jest układem nieprzyczynowym, poniewaŝ jego odpowiedź impulsowa rozciąga się w przedziale od do +. Fakt ten wyklucza praktyczną realizację takiego układu. W celu realizacji filtrów cyfrowych naleŝy zatem wykorzystać klasę systemów, która moŝe być zaimplementowana jako aproksymacja systemów idealnych LTI (Linear Time Invariant). Warunek ten spełniają układy liniowe o stałych współczynnikach opisujące systemy o czasie dyskretnym. Ich działanie zapisuje się za pomocą równania róŝnicowego: N a y M [ n k] = bk x[ n k] k k= 0 k = 0 (2.3) Wykorzystując transformatę Z oraz własności układów liniowych moŝemy transmitancję filtrów cyfrowych zapisać w następujący sposób: H ( z) Y X ( z) ( z) M k= = = N k= 0 k bk z 0 (2.4) a k z k Równanie 2.4 moŝna przedstawić w formie parametrycznej: H ( z) b 0 k= 1 = N a0 M 1 ( 1 ck z ) 1 ( 1 d k z ) k= 1 (2.5) w której wartości z = ck są zerami funkcji transmitancji, a wartości d k z = jej biegunami. 17

18 2.1. Stabilność filtrów cyfrowych Bardzo waŝnym aspektem w konstrukcji filtrów cyfrowych jest ich stabilność ([1], [8]). Układ LTI opisany transmitancją H ( z) jest stabilny jeŝeli jego odpowiedź impulsowa jest ograniczona: n= [ n] h < (2.6) Zgodnie z załoŝeniem 2.6 warunkiem koniecznym i wystarczającym stabilności filtrów cyfrowych jest połoŝenie biegunów transmitancji wewnątrz okręgu jednostkowego na płaszczyźnie zespolonej Z. Przykład rozkładu zer i biegunów stabilnego filtru IIR przedstawiono na rysunku bieguny transmitancji - zera transmitancji Im Re Okrąg jednostkowy Rys Rozkład zer i biegunów za płaszczyźnie zespolonej Z dla układu stabilnego. Wraz ze zbliŝaniem się z połoŝeniem bieguna do okręgu jednostkowego układ charakteryzuje się mniejszym zapasem stabilności w okolicy określonych częstotliwości reprezentowanych przez wartości na okręgu. Otwartym problemem pozostaje fakt, Ŝe aby uzyskać filtr charakteryzujący się duŝą stromością pasma przejściowego jego bieguny powinny być połoŝone blisko okręgu jednostkowego, co zarazem wiąŝe się z ryzykiem niestabilności. Podczas realizacji takiego filtra w arytmetyce stałoprzecinkowej kwantyzacja współczynników oraz zaokrąglenia podczas obliczeń mogą spowodować przemieszczenie któregoś z biegunów transmitancji poza okrąg jednostkowy, a w konsekwencji niestabilność układu. Podczas projektowania filtra naleŝy zatem wywaŝyć korzyści płynące z duŝej stromości pasm oraz ewentualne problemy podczas realizacji, w szczególności w przypadku kodowania stałoprzecinkowego. Więcej informacji na temat wpływu arytmetyki stałoprzecinkowej na charakterystyki filtrów podano w rozdziale 3. 18

19 2.2. Parametry filtrów cyfrowych Podczas konstrukcji filtrów cyfrowych stawia się im określone wymagania ([1], [8]). Specyfikacja przebiega zwykle dla charakterystyki amplitudowej poprzez ustalenie granicznych parametrów filtra, które w prawidłowym projekcie powinny zostać spełnione. Przykład charakterystyki amplitudowo-częstotliwościowej filtru z oznaczonymi parametrami granicznymi w funkcji częstotliwości unormowanej Ω = 2πf / f s ( f s - częstotliwość próbkowania) przedstawia rysunek δ pass 1 1-δ pass k δ stop Ω Ω pass Ω stop Parametry filtrów: Rys Charakterystyka amplitudowo-częstotliwościowa filtru i jej parametry graniczne. δ stop minimalne tłumienie w paśmie zaporowym filtra. δ pass maksymalne zafalowania w paśmie zaporowym filtra. Pasmo przepustowe zakres częstotliwości, dla których tłumienie filtra jest nie mniejsze niŝ 1 δ pass, gdzie δ pass określa dopuszczalne zafalowania w tym paśmie. Pasmo zaporowe zakres częstotliwości, dla których tłumienie filtra jest nie większe niŝ δ stop. Pasmo przejściowe zakres częstotliwości, w obrębie których charakterystyka przechodzi z pasma przepustowego do zaporowego. Jego granice określają częstotliwości Ω i Ω stop. Ω pass dolna częstotliwość pasma zaporowego. Ω stop górna częstotliwość pasma przepustowego. pass Ze względu na pasmo wydziela się cztery główne grupy filtrów: Filtry dolnoprzepustowe LP (Low Pass) Filtry górnoprzepustowe HP (High Pass) Filtry pasmowoprzepustowe BP (Band Pass) Filtry pasmowozaporowe BS (Band Stop) 19

20 2.3. Filtry FIR Filtry FIR (Finitive Impulse Response), czyli filtry o skończonej odpowiedzi impulsowej charakteryzują się tym, Ŝe ich odpowiedź impulsowa ma ograniczoną długość równą ilości współczynników filtra ([1], [8]). W transmitancji tych filtrów występują jedynie zera (wszystkie bieguny są równe zero), a do wyznaczania wartości wyjściowych próbek wykorzystywane są oprócz bieŝącej jedynie wcześniejsze próbki wejściowe; brak jest pętli sprzęŝenia na wyjściu filtra. Transmitancję filtru FIR opisuje równanie: H M ( z) = k = 0 b k z k (2.7) Filtrację za pomocą filtru FIR moŝemy zapisać zatem jako splot sygnału wejściowego z h m filtra: odpowiedzią impulsową ( ) y M ( n) = b x( n m) = h( m) x( n m) m= 0 m M m= 0 (2.8) Podstawowe cechy filtrów typu FIR są następujące: Prostota projektowania filtrów FIR z dokładnie liniową charakterystyką fazową. Filtry takie są szczególnie istotne w zastosowaniach, w których zniekształcenia spowodowane nieliniowością fazy mogą być szczególnie szkodliwe. Przykładami takich zastosowań są systemy przetwarzania mowy oraz transmisji sygnałów. Filtry FIR zrealizowane w strukturach nierekursywnych są zawsze stabilne. Efektywna realizacja zarówno w strukturach bezpośrednich jak i bardziej złoŝonych. Niewielka wraŝliwość na kwantyzację współczynników oraz zaokrąglenia podczas obliczeń wewnątrz struktury filtra. Prostsze niŝ w przypadku filtrów IIR metody projektowania. DuŜa liczba współczynników potrzebna do realizacji odpowiednio stromych charakterystyk. Większa złoŝoność obliczeniowa filtrów (większa ilość operacji matematycznych potrzebna w ich realizacji) Filtry IIR Filtry IIR (Infinitive Impulse Response), czyli filtry o nieskończonej odpowiedzi impulsowej charakteryzują się nieograniczoną długością odpowiedzi impulsowej, która w przypadku filtra stabilnego musi zawsze dąŝyć do zera ([1], [8]). W transmitancji tych filtrów występują zarówno zera jak i bieguny, a do wyznaczania wartości wyjściowych próbek wykorzystywane są oprócz próbek wejściowych próbki wyjściowe filtra występuje pętla sprzęŝenia na wyjściu układu. Transmitancję filtru IIR opisuje równanie 2.4 oraz jego parametryczna forma 2.5. Równanie filtracji za pomocą filtru IIR ma postać: y M ( n) = h( m) x( n m) g( k ) y( n k ) m= 0 N k = 1 (2.9) 20

21 Podstawowe cechy filtrów IIR są następujące: MoŜliwość realizowania filtrów o bardzo stromych charakterystykach amplitudowych przy niewielkiej (w porównaniu do filtrów FIR) ilości współczynników. Niska złoŝoność obliczeniowa spowodowana niewielką ilością wykonywanych w trakcie filtracji operacji matematycznych. Nieliniowość charakterystyki fazowej (stabilny, realizowalny filtr IIR nie moŝe mieć liniowej fazy). W praktyce filtry konstruuje się tak, aby charakterystyka fazowa była maksymalnie zbliŝona do liniowej w paśmie przepustowym filtra. Problem potencjalnej niestabilności filtrów spowodowanej niewłaściwym rozłoŝeniem biegunów transmitancji. DuŜa wraŝliwość na kwantyzację współczynników oraz błędy zaokrągleń podczas obliczeń mogąca być przyczyną niestabilności filtra. Więcej informacji na temat realizacji filtrów w skończonej precyzji przedstawiono w rozdziale 3 niniejszej pracy Struktury filtrów cyfrowych Algorytmy filtracji cyfrowej zapisuje się za pomocą grafów przepływowych, w których informacja przepływa z jednego węzła do następnego i jest pomiędzy nimi przetwarzana ([1], [8]). Poprzez pojęcie przetwarzania rozumie się mnoŝenie przez współczynniki skalujące, dodawanie współczynników oraz opóźnianie w dziedzinie czasu. Teoretycznie ta sama charakterystyka filtra moŝe zostać uzyskana za pomocą róŝnych struktur (reprezentowanych przez róŝne grafy). Wydawać by się zatem mogło, Ŝe wystarczy przyjąć jedną uniwersalną i stosować ją w kaŝdym moŝliwym przypadku. Rozwiązanie takie nie prowadzi jednak do uzyskiwania optymalnych wyników dla danego zastosowania. Podczas projektowania filtru naleŝy bowiem wziąć pod uwagę równieŝ własności środowiska, w którym będzie on uruchamiany. W szczególności waŝne są parametry stosowanego procesora. Stosowanie róŝnorodnych struktur filtrów cyfrowych jest podyktowane następującymi czynnikami: zmienną odpornością na kwantyzację współczynników filtra (zaokrąglenie wag filtra) w zaleŝności od struktury, zmienną złoŝonością obliczeniową dla róŝnych realizacji, róŝnymi wymaganiami co do potrzebnej mocy obliczeniowej procesora, róŝną ilością pamięci niezbędną do realizacji filtra. Biorąc pod uwagę wymienione czynniki opracowano zatem wiele struktur, z który część znalazła szerokie zastosowanie praktyczne, a część stanowi tylko zagadnienie czysto akademickie. RóŜnią się one między sobą ilością wykonywanych operacji (mnoŝeń i sumowań), ilością wykorzystywanych buforów, zmiennych oraz pętli. Znaczna część z nich (np. struktura kratowa czy bikwadratowa) wymaga ponadto przeliczenia współczynników filtra do odpowiadających mu wartości w danej strukturze. 21

22 Struktura bezpośrednia Struktura bezpośrednia filtrów ([1], [8]) wynika z bezpośredniej realizacji równania róŝnicowego opisującego układ LTI (Linear Time-Invariant) danego wzorem: y M ( n) = b x( n m) a y( n k) m= 0 m N k= 1 w którym y ( n) jest sygnałem wyjściowym, ( n) x stanowi sygnał wejściowy, a b m i współczynnikami filtra (współczynnikami wagowymi układu). k (2.10) a m są Struktura bezpośrednia w większości przypadków charakteryzuje się prostotą implementacji, jednak zwykle nie jest rozwiązaniem optymalnym. Wykazuje się ona słabą odpornością na kwantyzację współczynników oraz realizację stałoprzecinkową. W strukturze bezpośredniej najczęściej pojawiają się problemy z niestabilnością objawiające się wzbudzaniem układu dla określonych częstotliwości. Podstawowe struktury bezpośrednie filtrów cyfrowych: a) Struktura Tylko FIR Struktura ta posiada linię opóźniającą tylko na wejściu układu (rys. 2.3). Realizuje ona funkcję transmitancji filtru FIR (posiadającą jedynie zera transmitancji) daną wzorem: H ( z ) A N ( z ) a a z 1 a z 2 a z = = N (2.11) Struktura zwana jest równieŝ strukturą ruchomej średniej (MA Moving Average). Przykład praktycznej realizacji tej struktury przedstawiony został w rozdziale 6.4.x(n) b 0.y(n).x(n-1).x(n-2),z -1,z -1 b 1 b 2,b N-1.x(n-N),z -1 b N Rys Struktura bezpośrednia filtru FIR. 22

23 b) Struktura Tylko IIR Struktura posiadająca linię opóźniającą tylko na wyjściu filtra (rys. 2.4). Realizuje ona filtr IIR o funkcji transmitancji posiadającej jedynie bieguny opisaną wzorem: ( z) ( z) ( a a z + a z N + + a z ) 1 N 1 = H = (2.12) A Struktura Tylko IIR zwana jest równieŝ strukturą autoregresji (AR - Autoregressive)..x(n).y(n) I-α 1 I-α 2,z -1,z -1.y(n-1).y(n-2) I-α M-1 I-α M,z -1.y(n-M) Rys Struktura bezpośrednia filtru typu Tylko IIR. c) Struktura bezpośrednia typu I ( Pełny IIR ) Struktura ta posiada linię opóźniająca na wejściu jak i na wyjściu (rys. 2.5). Stanowi ona kaskadowe połączenie struktury tylko FIR i tylko IIR ; realizuje pełną funkcję transmitancji (zera i bieguny) daną wzorem: H ( z) = B A 1 2 ( z) b0 + b1 z + b2 z bm z = 1 2 N ( z) 1+ a z + a z a z 1 2 N M (2.13) Struktura ta jest równieŝ zwana strukturą ARMA (Autoregressive Moving Average). Przykład praktycznej realizacji tej struktury przedstawiony został w rozdziale

24 .x(n) b 0.y(n),z -1 b 1 I-α 1,z -1,z -1 b 2 I-α 2,z -1 b M-1 I-α N-1,z -1 b M I-α N,z -1 Rys Filtr IIR struktura bezpośrednia typu I. d) Struktura bezpośrednia typu II ( Pełny IIR ) Struktura ta posiada linię opóźniająca na wejściu jak i na wyjściu. stanowi ona kaskadowe połączenie struktury tylko IIR i tylko FIR (rys. 2.6). Podobnie jak struktura bezpośrednia typu I realizuje pełną funkcję transmitancji opisana wzorem 2.13; róŝni się jedynie sposobem realizacji obliczeń. Zwana jest równieŝ strukturą ARMA (Autoregressive Moving Average). Przykład praktycznej realizacji omawianej struktury przedstawiony został w rozdziale 6.4.x(n) b 0.y(n) I-α 1,z -1 b 1 I-α 2,z -1 b 2 I-α N-1 b M-1 I-α N,z -1 b M Rys Filtr IIR struktura bezpośrednia typu II. 24

25 Struktura kratowa (lattice) Struktura kratowa (lattice) charakteryzuje się trudniejszą implementacją oraz koniecznością przeliczenia współczynników filtra ze struktury bezpośredniej ([1], [2], [8]). Posiada jednak równieŝ wiele zalet dających jej przewagę w niektórych zastosowaniach. Podstawowe zalety struktury lattice to: mniejsza wraŝliwość na kwantowanie współczynników charakterystyki filtra podczas realizacji z uŝyciem współczynników o skończonej precyzji ulegają mniejszym zniekształceniom niŝ w analogicznej sytuacji podczas realizacji w strukturze bezpośredniej. łatwość zmiany rzędu filtra w celu zwiększenia rzędu filtra wystarczy wyliczyć kolejne współczynniki i dodać do struktury odpowiadające im kolejne sekcje; w celu zmniejszenia rzędu wystarcza usunięcie współczynników (sekcji filtra) o wyŝszych indeksach; nie jest konieczne przeliczanie wszystkich współczynników, jak ma to miejsce w strukturze bezpośredniej. moŝliwość stosowania w filtracji adaptacyjnej, gdzie rząd filtra moŝe być dynamicznie zmieniany z zachowaniem ciągłości pracy układu w zaleŝności od potrzeb i dynamicznie zmieniających się wartości filtrowanych danych. a) Struktura kratowa (lattice) filtru FIR Struktura ta realizuje funkcję transmitancji filtru FIR (posiadającą jedynie zera transmitancji) daną wzorem Składa się z połączonych kaskadowo sekcji (rys. 2.7), z których kaŝda moŝe zostać wyraŝona za pomocą równań: e ~ ei ( ) = ( ) ~ i n ei 1 n γ iei 1( n 1) ( n) = γ e ( n) + ~ e ( n 1) i i 1 i 1 (2.14) w których i oznacza indeks kolejnej sekcji, a zwanymi współczynnikami odbicia. γ i są współczynnikami filtra kratowego e (n) 0 e (n) 1 e (n) 2 e (n) M.y(n). γ 1.γ 2.γ M.x(n) e (n) 0,z -1.γ 1.γ 2.γ M e (n) 1,z -1,z -1 e 2(n) e M(n) Rys Struktura kratowa filtru FIR. Przykład praktycznej realizacji przedstawionej struktury zaprezentowany został w rozdziale

26 b) Struktura kratowa (lattice) filtru tylko IIR Struktura ta realizuje filtr IIR o funkcji transmitancji posiadającej jedynie bieguny opisaną wzorem Uzyskuje się ją na drodze przekształcenia struktury kratowej (lattice) filtru nierekursywnego (filtru FIR) poprzez zamianę wejścia z wyjściem układu (rys. 2.8). Struktura ta składa się z połączonych kaskadowo sekcji, z których kaŝda moŝe zostać wyraŝona za pomocą równania: e ~ ei ( ) = ( ) ~ i 1 n ei n γ iei 1( n 1) ( n) = γ e ( n) + ~ e ( n 1) i i 1 i 1 (2.15).x(n) e (n) M.-γ M e 2(n) e 1(n) e 0(n).-γ 2.-γ 1.y(n) e (n) M.γ M.γ e (n) 2,z -1 2 e (n). γ 1,z -1 1 e (n),z -1 0 Rys Struktura lattice filtru tylko IIR. Przykładem zastosowania struktury lattice tyko IIR jest algorytm kompresji sygnału mowy LPC-10, w którym wykorzystuje się bank filtrów tego typu. c) Struktura kratowa (lattice) filtru typu pełny IIR Struktura kratowa (lattice) filtru typu pełny IIR realizuje filtr IIR o funkcji transmitancji posiadającej zarówno zera jak i bieguny opisaną wzorem Uzyskuje się ją na drodze rozbudowy struktury lattice filtra tylko IIR o część odpowiadającą za kombinację liniową opóźnionych wyjść układu. Podejście takie stanowi bezpośrednią realizację poniŝszej zaleŝności (załoŝenie N M ): N ( ) = a w( n k) + x( n) w n y M k = 1 ( n) = b w( n k) k = 0 k k (2.16) (2.17) Równanie 2.16 opisuje strukturę kratową filtru typu tylko IIR, a równanie 2.17 stanowi liniową kombinację opóźnionych wyjść układu z rysunku 2.8. W celu realizacji filtru typu pełny IIR wystarczy zatem rozbudowa struktury tylko IIR o część odpowiedzialną za kombinację liniową wyliczonych uprzednio elementów. Strukturę kratową typu pełny IIR przedstawia rysunek

27 .x(n) e (n) M e (n) M.-γ M.γ M e 2(n) e 1(n) e 0(n).-γ 2.γ e (n) 2,z -1 2 e (n). γ 1,z -1 1 e (n),z γ 1.c M.c 2.c 1.c 0.y(n) Rys Struktura kratowa filtru pełny IIR. Przykład praktycznej implementacji filtra kratowego pełny IIR zaprezentowany został w rozdziale Struktura zmiennych stanu Inną metodą zapisu struktury filtru cyfrowego są równania stanu, w których tzw. stan wewnętrzny układu reprezentuje całkowity wpływ na układ minionych wartości wejść układu ([1], [8]). Przykład struktury filtra zrealizowanego w zapisie zmiennych stanu przedstawia rysunek Równanie układu dynamicznego w zapisie zmiennych stanu ma postać: s 1 ( n + 1) = a1s1 ( n) a2s2 ( n) + x( n) s2 ( n + 1) = s1( n) y( n) = c s ( n) + c s ( n) + dx( n) (2.18) W równaniu tym sygnały s 1 ( n) i ( n) wyjściowy y ( n), same będąc zaleŝnymi od sygnału wejściowego układu ( n) poprzednich wartości. s 2 nazywamy zmiennymi stanu. Determinują one sygnał x oraz jego d.x(n) s (n+1) 1.y(n) I-α 1,z -1 s (n) 1 c 1 I-α 2,z -1 s (n) 2 c 2 Rys Struktura bikwadratowa filtra (drugiego rzędu) w zapisie zmiennych stanu. 27

28 Struktura zmiennych stanu pozwala na optymalizację filtra dzięki analizie zachowania się wnętrza układu. Charakteryzuje się ona równieŝ duŝą odpornością na kwantyzację współczynników. Wadą tej struktury jest duŝa złoŝoność obliczeniowa, która wynosi N 2 + 2N + 1 (gdzie N określa rząd filtra). Dlatego teŝ stosuje się ją głównie w przypadku struktur drugiego rzędu. Praktyczna implementacja filtra składającego się z kilku sekcji (zobacz rozdział 2.6) zrealizowanych w strukturze zmiennych stanu przedstawiona została w rozdziale Łączenie filtrów Zgodnie z załoŝeniem liniowości układów dyskretnych LTI jakimi są filtry cyfrowe ich transmitancja moŝe być zrealizowana jako suma lub iloczyn dwóch lub kilku transmitancji niŝszego rzędu ([2], [4], [8]). Pozwala to realizować bardziej złoŝone struktury za pomocą połączonych ze sobą struktur prostszych. Powodem dla którego często wykorzystuje się tą właściwość jest większa stabilność i odporność na kwantyzację współczynników uzyskiwana w filtrach niŝszego rzędu Połączenie kaskadowe filtrów Odpowiedź impulsowa filtru utworzonego jako połączenie kaskadowe N-filtrów równa jest splotowi N-odpowiedzi impulsowych tych filtrów [2]: H ( z) H ( z) H ( z)... H ( z) = (2.19) 1 2 Bardzo popularnym i chętnie stosowanym w praktyce rozwiązaniem jest łączenie kaskadowe filtrów drugiego rzędu (bikwadratowych). Przykłady implementacji takiego połączenia przedstawiono w rozdziale 6.4 gdzie zaprezentowano filtry zrealizowane jako połączenie kaskadowe sekcji bikwadratowych oraz połączenie kaskadowe sekcji bikwadratowych w zapisie zmiennych stanu. Realizacja obu filtrów polega na przeliczeniu współczynników filtra wyŝszego rzędu w strukturze bezpośredniej na N sekcji bikwadratowych (lub bikwadratowych w zapisie zmiennych stanu), a następnie przeprowadzenie filtracji sygnału za pomocą powstałych w ten sposób kolejnych filtrów drugiego rzędu w taki sposób, Ŝe sygnał wyjściowy z poprzedzającej sekcji jest sygnałem wejściowym sekcji następnej. Ogromną zaletą takiego rozwiązania jest znaczne zwiększenie stabilności stworzonego filtru oraz jego odporności na kwantyzację współczynników i błędy zaokrągleń. Więcej informacji na temat własności sekcji bikwadratowej moŝna znaleźć w rozdziale 3.4 niniejszej pracy. O popularności realizacji filtrów poprzez kaskadowe łączenie sekcji niŝszego rzędu świadczy równieŝ zamieszczenie w bibliotece filtrów cyfrowych Texas Instruments procedury odpowiedzialnej za filtrację pojedynczej sekcji filtru bikwadratowego. Procedura ta została takŝe wykorzystana i jest dostępna w stworzonej bibliotece filtrów (filtry DSPF_sp_biquad oraz DSPF_dp_biquad). N 28

29 Połączenie równoległe filtrów Odpowiedź impulsowa filtru zrealizowanego jako połączenie równoległe N-filtrów równa jest sumie N-odpowiedzi impulsowych tych filtrów [2]: H ( z) = H ( z) + H ( z) H ( z) (2.20) 1 2 N Połączenie równoległe filtrów cyfrowych stosowane jest powszechnie w tworzeniu zespołów filtrów cyfrowych. Przykładem wykorzystania takiego zespołu filtrów są algorytmy kompresji multimedialnej (standardy MPEG-1, MPEG-2 z poziomami mp1, mp2 i mp3 oraz standard MPEG-4) czy kompresji obrazów (JPEG 2000). Istotą tego rozwiązania jest podział sygnału wejściowego przez zespół równolegle połączonych pasmowo-przepustowych filtrów cyfrowych pokrywających cały zakres widmowy sygnału. Sygnały pasmowe są następnie decymowane oraz poddawane obróbce i kompresji. Analogicznie w celu odtworzenia sygnału dokonuje się dekompresji próbek, interpolacji i filtracji przez dualne filtry pasmowoprzepustowe. Schemat zespołu filtrów prezentuje rysunek analiza H (z) 0.u (m.) 0.reduktory N.y (m) 0.x(n) H (z) 1.u (m.) 1 N.y (m) 1 H M-1 (z).u (m) M-1 N.y (m) M-1 Rys M-kanałowy zespół filtrów jako przykład równoległego łączenia filtrów cyfrowych. 29

30 3. Skutki realizacji filtrów cyfrowych w arytmetyce skończonej precyzji Zazwyczaj współczynniki filtrów cyfrowych wyznaczone są w oparciu o przyjętą metodę projektowania, która a priori zakłada ich nieskończoną precyzję. W praktycznej realizacji współczynniki muszą być jednak zapisane za pomocą słowa o określonej długości. Powoduje to powstawanie róŝnic pomiędzy teoretyczną charakterystyką filtra, a tą uzyskaną w rzeczywistości, co w konsekwencji sprawia, Ŝe filtr moŝe przestać spełniać załoŝenia projektowe lub stać się niestabilny. Bardzo często w przypadku realizacji filtrów za pomocą liczb w formatach zmiennoprzecinkowych typu float bądź double rozbieŝności te są praktycznie niezauwaŝalne. Zaczynają one być natomiast niezwykle istotne w przypadku stosowania platformy stałoprzecinkowej. Wpływ na realizację ma zarówno kwantyzacja współczynników filtra jak i zaokrąglenia występujące podczas obliczeń. Na ogólną charakterystykę filtra oprócz rodzaju stosowanej arytmetyki mają równieŝ wpływ czynniki takie jak wspomniane juŝ w rozdziale 4 przy okazji omawiania przetworników AC szumy konwersji analogowo-cyfrowej oraz zjawisko występowania cykli granicznych [2]. Cykle graniczne związane są z nieliniowością procesu kwantowania w pętli sprzęŝenia zwrotnego. Objawiają się pojawianiem na wyjściu układu oscylacji lub sygnału stałego o niewielkiej amplitudzie dodającego się do właściwego sygnału wyjściowego Wpływ kwantyzacji współczynników na struktury FIR i IIR Kwantyzacja współczynników filtra powoduje przesunięcie się zer i biegunów funkcji transmitancji na nowe pozycje odpowiadające skwantowanym wielkościom na płaszczyźnie zespolonej Z ([2], [4]). Odpowiednio do tego przesunięcia odpowiedź impulsowa układu ulega zniekształceniu w stosunku do pierwotnie załoŝonej. Równanie transmitancji filtru cyfrowego IIR H ( z) M 1 b k k = 0 = N k = 1 a z k k z k (3.1) przyjmuje dla przypadku uŝycia skwantowanych współczynników następującą postać [4]: gdzie ) a k = a k + a k oraz ) b k = b M k bˆ k z k = Hˆ 0 ( z) = (3.2) N k 1 aˆ z k + b k k = 1 k są skwantowanymi współczynnikami transmitancji róŝniącymi się od oryginalnych współczynników o odpowiednio o błąd ak i bk. 30

31 Analizując wpływ skwantowanych współczynników na mianownik funkcji transmitancji i zakładając, Ŝe wszystkie bieguny są pierwszego rzędu oraz filtr jest zrealizowany w strukturze bezpośredniej dochodzimy do równania: A N ( z) = (1 z j z 1 ) (3.3) j= 1 gdzie zˆ = z + z. i i i Błąd połoŝenia i-tego bieguna transmitancji wyraŝa zaleŝność: z i = N k= 1 z i a k a k i = 1,2,..., N (3.4) Całkowita zmiana w połoŝeniu bieguna z i spowodowana zmianami w połoŝeniu wszystkich współczynników a k mianownika transmitancji H ( z) ma postać [4]: δz δa i k = N z ( zi z j ) j= 1, j 1 N k i i = 1,2,..., N ; k = 1,2,..., N (3.5) Równanie to określa zarazem czułość i-tego bieguna na błąd kwantyzacji k-tego współczynnika w mianowniku transmitancji H ( z). Analogiczne rozumowanie moŝe zostać przeprowadzone dla licznika transmitancji filtru H ( z) w celu określenia czułości zer transmitancji na kwantyzację współczynników. Równanie 3.5 pokazuje, Ŝe połoŝenie danego bieguna transmitancji zaleŝy nie tylko od samej kwantyzacji, ale równieŝ od połoŝenia pozostałych biegunów, a w szczególności od odległości pomiędzy nimi. JeŜeli bieguny są ciasno zgrupowane niewielki błąd kwantyzacji mianownika (lub licznika) moŝe spowodować znaczne przemieszczenia się biegunów (lub zer) w strukturze bezpośredniej filtru. Z bliskim sąsiedztwem biegunów i zer transmitancji mamy do czynienia w filtrach o stromych, wąskich pasmach przejściowych lub zaporowych. Charakterystyki takie są wysoce poŝądane w wielu zastosowaniach co wymusza staranne projektowanie filtrów, szczególnie jeśli mają być implementowane w arytmetyce stałoprzecinkowej. Przykładowe połoŝenie zer i biegunów filtra pasmowoprzepustowego z szerokim i wąskim pasmem przepustowym przedstawia rysunek 3.1. Szeroko stosowanym rozwiązaniem w celu zmniejszenia efektów kwantyzacji jest rozbijanie struktur bezpośrednich filtrów na połączenia kaskadowe struktur niŝszego rzędu, w szczególności struktur bikwadratowych. Filtracja za pomocą tak przekształconego filtra przeprowadzana jest przez kolejne sekcje drugiego rzędu w ten sposób, Ŝe sygnał wyjściowy z sekcji poprzedzającej jest sygnałem wejściowym sekcji następnej. Zrealizowana w ramach tej pracy Biblioteka Filtrów Cyfrowych umoŝliwia implementację tego typu filtrów o strukturze bikwadratowej oraz bikwadratowej w zapisie zmiennych stanu. 31

32 - bieguny transmitancji - zera transmitancji Im Im Re Re A B Rys Rozkład zer i biegunów filtra IIR pasmowoprzepustowego. A: wąskie pasmo przepustowe bieguny transmitancji połoŝone blisko siebie. B: szerokie pasmo przepustowe bieguny transmitancji połoŝone daleko od siebie Praktyczne aspekty realizacji filtrów FIR w arytmetyce stałoprzecinkowej Podstawowy problem pojawiający się w filtracji stałoprzecinkowej [7] polega na zabezpieczeniu układu przed przepełnieniem (overflow) czyli sytuacją, w której chwilowa wartość podczas obliczeń przekracza maksymalną moŝliwą do zapisania wartość w danym kodzie stałoprzecinkowym lub moŝliwości stosowanego formatu liczb (np. integer). Jednocześnie waŝnym jest aby unikanie przepełnienia nie odbywało się kosztem precyzji obliczeń załoŝonej dla danego zapisu współczynników. Realizację postawionych załoŝeń bez uprzedniej znajomości współczynników filtra oraz próbek filtrowanego sygnału moŝna uzyskać wykorzystując odpowiednią ilości dodatkowych bitów w zapisie liczb, które podczas obliczeń mogą zostać w razie potrzeby zapełnione. Bity ochronne (guard bits), bo o nich mowa są sprzętowym elementem akumulatorów we wszystkich nowszych procesorach DSP. Przykładowo procesory z serii TMS320C60 posiadają układ mnoŝący dwie wartości 16-bitowe, który na wyjściu daje wartości 32-bitowe z moŝliwością zapisu do 40-bitowego akumulatora. 8-bitów nadmiaru w rozmiarze akumulatora w stosunku do długości wyjściowego słowa to właśnie wspomniane bity ochronne. Gwarantują one, Ŝe nawet w najgorszym przypadku sumowania pewnej ilości iloczynów nie nastąpi przepełnienie przechowywanej wartości. ZaleŜność pomiędzy ilością bitów ochronnych, ilością operacji sumowania, a liczbą określającą długość stosowanych współczynników podaje następująca nierówność [7]: 2M + log 2 N 2M + G (3.6) w której M określa ilość bitów w zapisie współczynników, N ilość wykonywanych operacji sumowania, a G jest ilością stosowanych bitów ochronnych. Z nierówności 3.6 jednoznacznie wynika, Ŝe niezbędna długość słowa do uzyskania poprawnych wyników rośnie wraz ze wzrostem ilości współczynników filtra. Zrealizowane w tej pracy filtry cyfrowe stałoprzecinkowe zapewniają bezbłędne funkcjonowanie przy ilości nie przekraczającej 512 współczynników, stąd przyjęte zostało odgórne ograniczenie 32

33 w postaci tej wartości. Niemniej jednak naleŝy pamiętać, Ŝe załoŝony najgorszy przypadek jest mało prawdopodobny, a przy stosowaniu duŝej części z dostępnych algorytmów wyznaczających współczynniki filtra niemoŝliwy do zaistnienia z powodu rozrzutu wartości które przyjmują współczynniki filtra. W celu uniknięcia potencjalnych problemów w zrealizowanym oprogramowanie zastosowano jednak wspomniane ograniczenie. Kolejny problem pojawiający się podczas konstrukcji filtrów cyfrowych typu FIR G w arytmetyce stałoprzecinkowej to realizacja filtrów dłuŝszych niŝ 2, gdzie G oznacza ilość bitów ochronnych w akumulatorze dostępnego procesora. Rozwiązanie tego problemu moŝe być zrealizowane na dwa sposoby. Pierwszy z nich to rozbicie długiego filtra na 2 lub większą ilość filtrów niŝszego rzędu. Podejście to wraz z jego zaletami zostało szerzej omówione w rozdziale 2 niniejszej pracy. Przedstawiono tam najczęściej stosowaną strukturę bikwadratową oraz bikwadratową w zapisie zmiennych stanu jak równieŝ zasady podziału filtrów na układy niŝszego rzędu. Drugim rozwiązaniem jest ponowne wyznaczenie współczynników filtra z uwzględnieniem ich ilości. MoŜe być ono zrealizowane przez proste skalowanie współczynników (dzielenie K przez wartość 2, gdzie K N ) lub ponowną kwantyzację współczynników zmiennoprzecinkowych do poŝądanej dokładności. Skalowanie współczynników okazuje się w tym wypadku bardzo nieefektywne z powodu zmniejszania się stosunku sygnału do szumu o 6dB na kaŝdy uzyskany bit. Tak znaczące pogorszenie parametrów filtra jest w wielu przypadkach niedopuszczalne. Podczas ponownego kwantowania współczynników do określenia dokładność zapisu przydatny okazuje się zatem wzór [7]: ( M, a L log N ) M ' min 2 = (3.7) w którym M jest wyznaczaną długością słowa, M wstępnie przyjętą ilością bitów, L ilością bitów akumulatora, a N oznacza ilość operacji sumowania w układzie. Stosowanie wzoru 3.7 jest efektywne jeŝeli poza parametrami stosowanego układu z góry znana jest ilość współczynników filtra. W przypadku braku tej wiedzy musimy dostosować realizowany filtr do maksymalnych wartości parametrów moŝliwych do wystąpienia. Podczas konstrukcji układów często znamy współczynniki filtra a priori, a ponadto wiemy, Ŝe nie ulegają one zmianie podczas pracy filtra. W takiej sytuacji moŝemy dostosować kwantyzację do występujących w danym przypadku wartości współczynników. Z uwagi na potrzebę uniwersalności struktur filtrów cyfrowych zrealizowanych w tej pracy i stworzoną moŝliwość implementacji dowolnych współczynników przez uŝytkownika podejście to nie mogło zostać zastosowane. Jest ono jednak niezwykle przydatne i pozwala znacząco zwiększyć moŝliwości wykonawcze wielu układów Praktyczne aspekty realizacji filtrów IIR w arytmetyce stałoprzecinkowej Analiza wpływu kwantyzacji współczynników na filtry IIR jest znacznie bardziej skomplikowana od analogicznej analizy dla filtrów FIR. Stosowane podejście naleŝy uzaleŝnić od rodzaju implementowanej struktury oraz ilości współczynników uŝywanych do filtracji, jak równieŝ wartości przez nie reprezentowanych. Sprawia to, Ŝe znacznie trudniej jest opracować jednoznaczne wytyczne dotyczące warunków bezbłędnej realizowalności. W przypadku filtrów stworzonych na potrzeby tej pracy wartości współczynników nie były 33

34 znane a priori co dodatkowo utrudniało ich wykonanie. Dzięki uniwersalności struktur moŝliwe jest wgrywanie zupełnie dowolnych wartości współczynników filtrów zaprojektowanych wybraną metodą. Najprostsze podejście do oszacowania wymaganej do zapisu współczynników ilości bitów oraz unikania przepełnień wartości cząstkowych to oddzielna analiza pętli realizującej sumowanie wartości w przód oraz pętli sumującej wartości w pętli sprzęŝenia zwrotnego. Obie pętle naleŝy zrealizować zgodnie z wytycznymi z rozdziału 3.2 mając na uwadze, Ŝe dane wyjściowe jednej z nich (a co za tym idzie liczby o określonej długości) są danymi wejściowymi drugiej. Rozwiązanie to zastosowane zostało w projekcie struktury bezpośredniej filtra IIR typu I stworzonej na potrzeby niniejszej pracy. W notacji stałoprzecinkowej nie udało się natomiast skonstruować filtra IIR bezpośredniego typu II. Spowodowane to zostało brakiem moŝliwości oceny zakresu wartości cząstkowych podczas realizacji pętli sprzęŝenia zwrotnego, które naleŝy sumować z próbkami wejściowymi z przetwornika (zobacz rys. 2.6). DuŜa dynamika przechowywanych w buforze liczb sprawia, Ŝe nie moŝna przyjąć uniwersalnej wartości, o którą mogą być one przesuwane przed operacją sumowania. W przypadku pozostałych struktur bardzo efektywne okazuje się właściwe przesuwanie (skalowanie) sum cząstkowych podczas realizacji pętli (w kaŝdej iteracji). Minimalizuje to ryzyko przepełnień jednak moŝe negatywnie odbić się na dokładności filtracji. Rozwiązanie to zastosowane zostało w algorytmie filtracji kratowej, bikwadratowej i bikwadratowej w zapisie zmiennych stanu Odporność struktury bikwadratowej na kwantyzację współczynników W celu osiągania optymalnych rezultatów w projektowaniu filtrów bikwadratowych w strukturze kaskadowej potrzebna okazuje się bliŝsza analiza zaleŝności występujących w strukturze bezpośredniej drugiego rzędu ([2], [4]). Wpływ kwantyzacji ujawnia się bowiem nierównomiernie na obszarze okręgu jednostkowego płaszczyzny Z. Przykładem moŝe być implementacja pary biegunów zespolonych w strukturze bezpośredniej (rys. 3.2)..x(n).y(n) 2rcosθ,z -1 -r 2,z -1 Rys Implementacja dwóch biegunów zespolonych w strukturze bezpośredniej. 2 Po kwantyzacji współczynników transmitancji 2r cos Θ oraz r zera nie zajmują juŝ dowolnych punktów płaszczyzny Z, lecz leŝą jedynie na siatce utworzonej z 34

35 2 koncentrycznych okręgów odpowiadających kwantyzacji współczynnika r oraz pionowych linii odpowiadających kwantyzacji współczynnika 2r cos Θ. Sytuację tą przedstawia rysunek Im Re Rys MoŜliwe połoŝenie biegunów filtru IIR drugiego rzędu w strukturze bezpośredniej przy 7-bitowej kwantyzacji współczynników [2]. W celu wyeliminowania tego zjawiska w sekcjach bikwadratowych filtrów stosuje się inne struktury zamiast bezpośredniej. W filtrze bikwadratowym zaimplementowanym w oprogramowaniu Biblioteka Filtrów Cyfrowych wykorzystano strukturę transponowaną DF2 sekcji bikwadratowej. Struktura ta została zaprezentowana na rysunku 3.4..x(n) rcosθ,z -1 -rsinθ rsinθ rcosθ,z -1.y(n) Rys Struktura transponowana DF2 sekcji bikwadratowej filtru typu IIR. Kosztem większej złoŝoności obliczeniowej struktura transponowana DF2 sekcji bikwadratowej zapewnia rozłoŝenie biegunów opisanych skwantowanymi wielkościami na równomiernej siatce (rys. 3.5). Pozwala to łatwiej oszacować błędy realizacji 35

36 stałoprzecinkowej oraz sprawia, Ŝe są one jednakowe niezaleŝnie od połoŝenia bieguna na płaszczyźnie zespolonej Z. 1.0 Im Re Rys MoŜliwe połoŝenie biegunów sprzęŝonych filtru IIR drugiego rzędu w strukturze transponowanej DF2 przy 7-bitowej kwantyzacji współczynników [2]. W celu ułatwienia konstrukcji filtrów implementowanych z zastosowaniem zmiennych o skończonej długości tworzy się narzędzia optymalizujące proces projektowania pod kątem stosowanej arytmetyki. Przykładem takiego narzędzia jest dostępny w środowisku Matlab toolbox Filter Design & Analysis Tool. Poza duŝymi moŝliwościami w projektowaniu filtrów zmiennoprzecinkowych pozwala on dostosować wartości współczynników pod kątem konkretnych wartości w kodzie IQ. Rozwiązanie to pozwala osiągać znacznie lepsze efekty niŝ w przypadku stosowania kwantyzacji współczynników zaprojektowanych wcześniej jako zmienne typu float czy double. 36

37 4. Warstwa sprzętowa stanowiska pomiarowego 4.1. Budowa stanowiska pomiarowego Zrealizowane stanowisko pomiarowe składa się z modułu DSK z procesorem sygnałowym TMS320C6713 oraz karty akwizycji danych PCIe-6251 firmy National Instruments. Oba urządzenia sterowane i programowane są z komputera PC za pomocą stworzonej w środowisku Matlab aplikacji. Schemat stanowiska pomiarowego przedstawia rysunek 4.1. Karta akwizycji danych wykorzystywana jest do generowania sygnałów podawanych na wejście modułu DSK oraz pomiaru sygnałów wyjściowych z modułu. Procesor programowany jest przez łącze USB za pomocą interfejsu RTDX. MoŜliwe jest wgrywanie projektów filtrów cyfrowych oraz wartości współczynników i zmiennych oraz sterowanie pracą procesora. Ponadto zrealizowana została funkcjonalność pozwalająca na pobieranie próbek wyjściowych bezpośrednio z procesora za pomocą interfejsu RTDX. UmoŜliwia to porównanie charakterystyk zmierzonych za pomocą karty akwizycji danych na wyjściu całego układu z charakterystykami będącymi wynikiem pracy samego algorytmu filtrującego. Dzięki temu moŝna ocenić zaprojektowany algorytm oraz oszacować wpływ przetwornika analogowo-cyfrowego na wejściu modułu DSK oraz przetwornika cyfrowo-analogowego na wyjściu układu na uzyskiwane wyniki. NaleŜy pamiętać, Ŝe oprócz wspomnianych przetworników AC i CA w module uzyskiwane na komputerze dane są dodatkowo obciąŝone błędem przetwornika cyfrowo-analogowego w karcie pomiarowej. Rys Schemat stanowiska pomiarowego. 37

38 Podczas łączenia elementów stanowiska pomiarowego naleŝy wykorzystać terminal karty pomiarowej oraz złącza modułu DSK. Wyjście analogowe karty AO0 (analog output 0) uŝywane do generacji sygnału naleŝy połączyć z prawym kanałem wejściowym modułu DSK oraz z wejściem analogowym karty akwizycji AI0 (analog input 0). Wyjście prawego kanału z modułu DSK naleŝy połączyć z wejściem analogowym karty AI2. W celu wizualizacji sygnałów moŝna dodatkowo wejścia AI0 oraz AI2 połączyć odpowiednio z prawym i lewym kanałem oscyloskopu. Wejścia analogowe karty skonfigurowano na pomiar napięcia róŝnicowego: sygnał na kanale AI0 mierzony jest względem masy podłączonej do AI9, a na kanale AI2 względem kanału AI11 równieŝ zwartego do masy. Kanały AI9 oraz AI11 naleŝy w tym celu wewnątrz terminala karty połączyć z kanałem AI GND. Zastosowany pomiar róŝnicowy zapewnia większą precyzję. Ponadto sygnał wejściowy AI0 jest równieŝ kanałem z którego zwalnia się trigger. Zastosowanie do pomiaru sygnału wejściowego i wyjściowego filtrów kanałów AI0 oraz AI2 w karcie pomiarowej zostało wymuszone specyfiką jej działania. Podczas pomiaru wielokanałowego odbywa się on bowiem na kolejnych kanałach począwszy od zerowego. W budowie wykorzystywanego we wnętrzu karty multipleksera znajdują się kondensatory, które w przypadku duŝej róŝnicy pomiędzy wartością napięcia na kolejnych kanałach pomiarowych nie ulegają całkowitemu rozładowaniu powodując przesłuchy i zakłócając zmierzone wartości. Podczas pomiarów charakterystyk filtrów bardzo często występuje sytuacja, w której sygnał na wejściu ma stosunkowo duŝą amplitudę (np. 1V) a sygnał wyjściowy bardzo małą (np. 1mV). Aby zniwelować niekorzystne zjawisko przesłuchów zgodnie z zaleceniami producenta [13] pomiary wykonywane są na kanałach AI0 oraz AI2, a znajdujący się pomiędzy nimi kanał AI1 został zwarty do masy w celu rozładowywania kondensatorów w układzie multipleksera Moduł DSK z procesorem TMS320C6713 Podstawowym elementem zrealizowanego w niniejszej pracy stanowiska pomiarowego jest moduł DSK z procesorem sygnałowym TMS320C6713 wyprodukowany przez firmę Texas Instruments. Urządzenie to dodatkowo rozszerzone zostało o płytkę Audio Daughter Card TMDX326040A z dwoma 20-bitowymi kodekami audio PCM3003 wyposaŝonymi w przetworniki analogowo-cyfrowe i cyfrowo-analogowe. Moduł DSK moŝe być uŝywany zarówno w celach dydaktycznych, badawczych jak i komercyjnych na etapie rozwoju i testowania oprogramowania dla procesorów sygnałowych. Sprzęt dostarczany jest przez producenta wraz ze środowiskiem programistycznym Code Composer Studio posiadającym wysokiej klasy kompilator, program linkujący i debugger zoptymalizowane pod kątem tworzenia aplikacji w językach ANSI C oraz C Procesor TMS320C Rodzina procesorów TMS320 firmy Texas Instruments Procesor sygnałowy (Digital Signal Processor) to układ elektroniczny specjalizowany pod kątem przetwarzania i cyfrowej obróbki sygnałów. Charakterystyczną cechą większości procesorów sygnałowych jest pamięć zrealizowana w zmodyfikowanej architekturze 38

39 harwardzkiej: rozdzielona wewnętrzna pamięć programu i danych oraz obszerny blok pamięci wspólnej dający się mapować do dowolnej przestrzeni. Konstrukcja taka łączy zalety architektury harwardzkiej (rozdzielone bloki pamięci) z zaletami architektury Von Neumana (wspólny obszar pamięci danych i programu). Daje to moŝliwość równoczesnego dostępu do danych oraz odczytu instrukcji wykonywanych przez procesor. Szyna adresowa danych i adresowa dla pamięci zewnętrznych jest natomiast wspólna (multipleksowana). Ponadto lista instrukcji procesora zoptymalizowana została pod kątem operacji przetwarzania sygnałów, w szczególności operacji najczęściej występujących podczas filtracji FIR i IIR oraz przy realizacji transformat Fouriera i kosinusowej. Wszystkie instrukcje procesorów z tej rodziny są instrukcjami warunkowymi co dodatkowo zwiększa ich moŝliwości oraz redukuje liczbę dodatkowych rozkazów. WaŜną cechą znacznie zwiększającą prędkość działania procesora jest przetwarzanie potokowe. Przetwarzanie potokowe polega na rozbiciu kaŝdej instrukcji na kilka części logicznych związanych z róŝnymi operacjami wykonywanymi przez procesor. KaŜda z tych części wykonywana jest w innej jednostce logicznej procesora co umoŝliwia rozpoczęcie wykonywania kolejnej instrukcji juŝ po wykonaniu pierwszego etapu instrukcji poprzedzającej, a nie dopiero po zakończeniu całej rozkazu jak to ma miejsce w przypadku przetwarzania szeregowego. Dla przypadku przetwarzania potokowego 6-cio poziomowego wyróŝniamy następujące etapy wykonywania instrukcji: PREFETCH pobranie adresu rozkazu FETCH pobranie rozkazu z pamięci DECODE analiza treści rozkazu ACCESS przygotowanie adresu operandów rozkazu READ pobranie operandów i przygotowanie adresu odesłania wyników EXECUTE/WRITE wykonanie rozkazu i odesłanie wyniku Procesory sygnałowe bardzo często wykorzystywane są do przetwarzana sygnałów w czasie rzeczywistym (Real-time processing). Stwarza to szczególne warunki pracy charakterystyczne dla wszystkich tego typu układów. Prędkość wykonywania przez procesor operacji powinna bowiem zostać zsynchronizowana z tempem odbierania i przesyłania danych (rys. 4.2). Częstotliwość ta jest zwykle ustalona odgórnie dla danej realizacji i związana z przyjętą częstotliwością próbkowania w układzie. W zastosowaniach audio jest to zwykle 44,1 khz. Procesor musi zatem przetworzyć odebraną próbkę (próbki) w czasie krótszym niŝ czas do nadejścia następnych. W okresie od zakończenia pracy do odebrania następnych danych wejściowych układ pozostaje bezczynny. Rys Idea przetwarzania sygnałów w czasie rzeczywistym (Real-time processing). 39

40 Podstawowe dane techniczne procesora TMS320C6713 Podstawowe dane procesora TMS320C6713 są następujące: Moc obliczeniowa: 1800 MIPs (million instructions per second), 1350 MFLOPS (million floating-point instructions per second). Częstotliwość taktowania zegara 225 MHz. Przetwarzanie potokowe danych wykonywanie do ośmiu 32-bitowych instrukcji w jednym cyklu zegarowym. Architektura zmiennoprzecinkowa 32-bitowa. Adresowanie 8-, 16 i 32-bitowe. 8 niezaleŝnych jednostek funkcjonalnych: 2 jednostki ALU (arytmetyczno-logiczne) stałoprzecinkowe, 4 jednostki ALU stało- i zmiennoprzecinkowe, 2 mnoŝniki stało- i zmienno przecinkowe. 64 rejestry 32-bitowe ogólnego przeznaczenia. MoŜliwość operowania 32- lub 64-bitowym słowem. Architektura jądra VLIM (Very Long Instruction Word). Wszystkie instrukcje są instrukcjami warunkowymi. Architektura pamięci L1/L2: 4 KB pamięci Cache danych L1D, 4 KB pamięci Cache programu L1P (bezpośrednio mapowanej), 256 KB pamięci L2, w tym: 64 KB jednolitej pamięci Cache programu lub danych (moŝe być mapowana jako pamięć RAM) oraz 192 KB dodatkowej pamięci L2 mapowanej jako pamięć RAM. MoŜliwość pracy w trybie zapisu pamięci Little Endian lub Big Endian. 32-bitowy interfejs EMIF (External Memory Interface) moŝliwość adresowania do 512KB pamięci zewnętrznej (SRAM, EEPROM, Flash, SDRAM). Kontroler EDMA (Enhanced Direct-Memory-Access) z 16 niezaleŝnymi kanałami. 2 wielokanałowe porty szeregowe audio McASP (Multichannel Audio Serial Ports). 2 interfejsy I2C (Inter-Integrated Circuit Bus I2C Bus). 2 wielokanałowe porty szeregowe (mogą pracować jako interfejsy SPI, High-Speed TDM oraz AC97). Dwa 32-bitowe timery. Wbudowany interfejs JTAG zapewniający wgrywanie oraz debugowanie tworzonego oprogramowania. Interfejs RTDX (Real Time Data Exchange) umoŝliwiający dynamiczną komunikację z procesorem (sterowanie oraz wymianę danych). Zestaw instrukcji zoptymalizowany pod kątem długości instrukcji. MoŜliwość uŝywania liczb zmiennoprzecinkowych pojedynczej i podwójnej precyzji. 8-bitowe zabezpieczenie przed przepełnieniem (guard bits). Schemat funkcjonalny procesora TMS320C6713 został przedstawiony na rysunku

41 Rys Schemat funkcjonalny procesora TMS320C6713 [16] Programowe zrównoleglenie pętli w procesorze TMS320C6713 Funkcjonalnością pozwalającą bardzo efektywnie wykorzystać przetwarzanie potokowe realizowane w procesorze TMS320C6713 jest programowe zrównoleglenie pętli [14]. Elementem większości algorytmów przetwarzania sygnałów są bowiem pętle o duŝej liczbie iteracji, które stanowią najbardziej wymagający pod względem potrzebnej mocy obliczeniowej, a co za tym idzie najbardziej czasochłonny element programów. Szczególnie często występują one w filtrach cyfrowych, algorytmach FFT czy DCT. Aby przyspieszyć wykonywanie algorytmów i optymalnie wykorzystać moŝliwości procesora kompilator wbudowany w środowisko Code Composer Studio posiada moŝliwość programowego zrównoleglenia pętli optymalizującą wynikowy kod maszynowy pod względem wykorzystania sprzętowych własności układu. Bardzo wydajne narzędzie jakim jest procesor TMS320C6713 wyposaŝony w 2 niezaleŝne ścieŝki przepływu danych z 4 jednostkami funkcjonalnymi i 16 rejestrami ogólnego przeznaczenia dla kaŝdej z nich, a ponadto moŝliwość wykonywania do 8 instrukcji równocześnie stwarza duŝe moŝliwości, lecz zarazem wymaga umiejętnego programowania w celu właściwego ich wykorzystania. 41

42 Do określenia zaleŝności pomiędzy danymi występującymi w programie wykorzystać moŝna grafy zaleŝności. Wraz ze znajomością asemblera procesora pozwalają one określić najmniejszą moŝliwą ilość sekwencji maszynowych potrzebnych do wykonania ciągu instrukcji oraz optymalizować kod w celu skracania czasu jego wykonania. Podczas pisania programów w języku C kompilator wbudowany w środowisko Code Composer Studio moŝe wykonać za nas potrzebne operacje optymalizacyjne pod warunkiem zamieszczenia w kodzie dodatkowych informacji o charakterze wykorzystywanych danych i znanych zaleŝnościach pomiędzy nimi. W celu oceny efektów pracy kompilatora naleŝy włączyć generowanie pliku wynikowego w asemblerze oraz informacji na temat programowego zrównoleglania pętli przeprowadzanego przez kompilator (pole mw w zakładce Feedback ustawień kompilatora). Analiza informacji zwrotnej zawartej w generowanym pliku umoŝliwia optymalizację tworzonego oprogramowania poprzez dopisywanie odpowiednich instrukcji w treści programu. Przykład informacji zawartej w pliku wynikowym w formacie *.asm po przeprowadzeniu przez kompilator programowego zrównoleglania pętli zawiera tabela 4.1. Analizowana funkcja przyjmuje jako parametry 4 wskaźniki do tablic z danymi typu short oraz zmienną typu int określającą ilość iteracji. W jednej pętli wykonywane jest mnoŝenie dwóch tablic, przez stałe pobrane z trzeciej z nich a następnie ich sumowanie oraz zapisanie wyniku w czwartej tablicy. Tab Informacja zwrotna kompilatora o efektach programowego zrównoleglania pętli przypadek 1. ;* * ;* SOFTWARE PIPELINE INFORMATION ;* ;* Known Minimum Trip Count : 1 ;* Known Max Trip Count Factor : 1 ;* Loop Carried Dependency Bound(^) : 10 ;* Unpartitioned Resource Bound : 2 ;* Partitioned Resource Bound(*) : 2 ;* Resource Partition: ;* A-side B-side ;*.L units 0 0 ;*.S units 1 1 ;*.D units 2* 1 ;*.M units 1 1 ;*.X cross paths 1 0 ;*.T address paths 2* 1 ;* Logical ops (.LS) 1 0 (.L or.s unit) ;* Addition ops (.LSD) 0 1 (.L or.s or.d unit) ;* ;* Searching for software pipeline schedule at... ;* ii = 10 Schedule found with 1 iterations in parallel ;* * Kluczowa informacja w analizie fragmentu wygenerowanego pliku zawarta jest w jego dwóch ostatnich linijkach. Jest to fakt, Ŝe po kompilacji kaŝda iteracja zrealizowanej pętli wykonuje się w 10 cyklach procesora ( ii = 10 ) oraz, Ŝe pętla nie jest wykonywana równolegle ( 1 iterations in parallel ). W odniesieniu do wcześniejszej informacji na temat maksymalnej odległości instrukcji, czyli ilości cykli procesora potrzebnych do wykonania się ich sekwencji ( Loop Carried Dependency Bound(^) : 10 ) widać, Ŝe w analizowanym przypadku nie nastąpiło zrównoleglenie pętli. 42

43 Powodem dla którego kompilator nie dokonał Ŝadnej optymalizacji w prezentowanym przypadku jest potencjalna zaleŝność pomiędzy tablicami, wykorzystywanymi w funkcji. Nie posiadając informacji na temat charakteru wykorzystywanych zmiennych kompilator zakłada najgorszy przypadek, w którym po przeprowadzeniu optymalizacji częściowe lub całkowite pokrywanie się tablic doprowadziłoby do błędnych wyników. Wiedząc więcej na temat uŝywanych przez nas tablic moŝemy za pomocą słowa kluczowego restrict umieszczanego przed nazwą zmiennej poinformować kompilator o tym, Ŝe zmienne te nie nakładają się. Tym samym uzyskany wynik optymalizacji kodu jest znacznie lepszy (tab. 4.2). Tab Informacja zwrotna kompilatora o efektach programowego zrównoleglania pętli przypadek 2. ;* * ;* SOFTWARE PIPELINE INFORMATION ;* ;* Known Minimum Trip Count : 1 ;* Known Max Trip Count Factor : 1 ;* Loop Carried Dependency Bound(^) : 0 ;* Unpartitioned Resource Bound : 2 ;* Partitioned Resource Bound(*) : 2 ;* Resource Partition: ;* A-side B-side ;*.L units 0 0 ;*.S units 1 1 ;*.D units 2* 1 ;*.M units 1 1 ;*.X cross paths 1 0 ;*.T address paths 2* 1 ;* Logical ops (.LS) 1 0 (.L or.s unit) ;* Addition ops (.LSD) 0 1 (.L or.s or.d unit) ;* ;* Searching for software pipeline schedule at... ;* ii = 2 Schedule found with 5 iterations in parallel ;* * Po zastosowaniu słowa kluczowego restrict skrócono czas wykonywania instrukcji podczas jednej iteracji pętli do 2 cykli maszynowych procesora oraz uzyskano równoległe wykonywanie się 5 iteracji. Dalszą poprawę efektów zrównoleglania pętli moŝemy uzyskać odczytując informacje o jednostkach funkcjonalnych wykorzystywanych podczas obliczeń. Symbol * przy liczbie 2 dla jednostki.d obliczającej adres w pamięci oraz magistrali.t oznacza, Ŝe elementy te stanowią najwolniejszą część programu i one determinują prędkość wykonywania się całej pętli. Asymetria ścieŝek danych A i B widoczna dla jednostek.d i.t pozwala na dalszą optymalizację. W tym wypadku jest ona moŝliwa jeŝeli a priori wiemy, Ŝe pętla wykorzystywana w funkcji wykonywana będzie parzystą ilość razy. Wykorzystując poniŝszą dyrektywę informujemy kompilator o minimalnej i maksymalnej liczbie wykonywanych iteracji oraz ich parzystej wielokrotności (dowolna z liczb min i max moŝe zostać pominięta): #pragma MUST_ITERATE(min, max, 2); PowyŜsza dyrektywa powoduje rozwinięcie pętli, które prowadzi do symetrycznego wykorzystania obu ścieŝek przepływu danych w procesorze (tab. 4.3). 43

44 Tab Informacja zwrotna kompilatora o efektach programowego zrównoleglania pętli przypadek 3. ;* * ;* SOFTWARE PIPELINE INFORMATION ;* ;* Loop Unroll Multiple : 2x ;* Known Minimum Trip Count : 10 ;* Known Max Trip Count Factor : 1 ;* Loop Carried Dependency Bound(^) : 0 ;* Unpartitioned Resource Bound : 3 ;* Partitioned Resource Bound(*) : 3 ;* Resource Partition: ;* A-side B-side ;*.L units 0 0 ;*.S units 2 1 ;*.D units 3* 3* ;*.M units 2 2 ;*.X cross paths 1 1 ;*.T address paths 3* 3* ;* Logical ops (.LS) 1 1 (.L or.s unit) ;* Addition ops (.LSD) 0 1 (.L or.s or.d unit) ;* ;* Searching for software pipeline schedule at... ;* ii = 3 Schedule found with 5 iterations in parallel ;* * Analiza fragmentu pliku wynikowego z tabeli 4.3 pokazuje, Ŝe rozwinięcie pętli umoŝliwiło symetryczne wykorzystanie zasobów procesora, a co za tym idzie skróciło czas wykonania pętli do 3 cykli maszynowych dla 2 iteracji pętli czyli 1,5 cyklu maszynowego dla jednej iteracji. Dalsza analiza informacji zawartych w pliku wynikowym kompilatora moŝe nasunąć kolejne rozwiązania przyspieszające wykonanie pętli w programie. W szczególności istotny jest typ uŝywanych danych oraz sposób ich pobierania z pamięci. W przypadku zmiennych w formacie short skuteczne okazuje się zastosowanie w stosunku do tablic dyrektywy #WORD_ALIGNED(table), która umieści ich początki pod parzystymi adresami w pamięci, co w przypadku parzystej długości pozwoli kompilatorowi na zastosowanie instrukcji asemblera LDW do pobierania kolejnych wartości. Instrukcja ta jednorazowo pobiera dwie 16-bitowe wartości co spowoduje dalsze skrócenie wykonywania się analizowanego fragmentu do jednej iteracji w ciągu jednego cyklu maszynowego oraz umoŝliwi wykonywanie 6 iteracjach pętli równolegle. Podsumowując zagadnienie optymalizacji kodu naleŝy zwrócić uwagę na potrzebę dostarczania w procesie kompilacji dodatkowych informacji na temat charakteru uŝywanych danych. Właściwe operowanie dostępnymi dyrektywami umoŝliwia jednak wielokrotne poprawienie wydajności realizowanych programów. W prezentowanym przykładzie uzyskano 10-cio krotne skrócenie realizacji jednej iteracji pętli oraz 6-cio krotne jej zrównoleglenie, co zwiększyło całkowitą wydajność programu 60-cio krotnie. 44

45 4.4. Audio Daughter Card TMDX326040A Płytka Audio Daughter Card TMDX326040A (rys. 4.4) jest dodatkowym rozszerzeniem dla modułu DSK znacznie zwiększającym jego moŝliwości w przetwarzaniu sygnałów audio. WyposaŜona jest ona w dwa kodeki PCM Są to układy 20-bitowych przetworników analogowo-cyfrowych i cyfrowo-analogowych typu delta-sigma z nadpróbkowaniem (oversamplingiem): przetwornik AC z 64-krotnym nadpróbkowaniem oraz przetwornik CA z 8-krotnym. Układ posiada ponadto filtr antyalisingowy na wejściu oraz analogowy filtr dolnoprzepustowy na wyjściu. Przetwornik AC wyposaŝony został w cyfrowy filtr decymujący. Pozostałe własności przetwornika analogowo-cyfrowego są następujące: Całkowite zniekształcenia harmoniczne (THD) na poziomie -86dB. Stosunek mocy sygnału uŝytecznego do mocy szumu SNR (signal-to-noise ratio) 90dB. Zakres dynamiczny przetwarzania 90dB. Cechy przetwornika cyfrowo-analogowego z układu PCM3003 są następujące: Całkowite zniekształcenia harmoniczne (THD) na poziomie -86dB. Stosunek mocy sygnału uŝytecznego do mocy szumu SNR (signal-to-noise ratio) 94dB. Zakres dynamiczny przetwarzania 94dB. Przetwarzane próbki sygnału przesyłane są pomiędzy modułem DSK a płytką Audio Board za pomocą szeregowego portu audio McBSP. Rozwiązanie to umoŝliwia wykorzystanie systemu przerwań do synchronizacji wykonywanego przez procesor programu z czasem dostarczania kolejnych próbek przez przetworniki. Rys Audio Daughter Card TMDX326040A z kodekami PCM

46 4.5. Karta akwizycji danych National Instruments PCIe Karta PCIe-6251 firmy National Instruments (rys. 4.5) jest wielofunkcyjnym urządzeniem akwizycji danych. Karta zaprojektowana została aby umoŝliwić wielokanałowe przetwarzanie sygnałów z duŝą częstotliwością próbkowania. Charakteryzuje się ona równieŝ bardzo duŝą dokładnością i odpornością na zakłócenia. Ponadto dzięki zastosowaniu złącza PCI Express zlikwidowano problemy związane z ograniczoną prędkością wymiany danych pomiędzy kartą i komputerem poprzez zwiększenie prędkości transmisji do 250 MB/s. Parametry karty PCIe-6251 są następujące: 16 analogowych wejść o 16-bitowej rozdzielczości przetwarzania. częstotliwość próbkowania sygnałów wejściowych: 1,25 MS/s przy pracy jednokanałowej, 1 MS/s przy pracy wielokanałowej (częstotliwość ta jest dzielona na ilość uŝywanych kanałów pomiarowych). 7 programowalnych zakresów sygnałów wejściowych. 2 analogowe wyjścia. częstotliwość próbkowania sygnałów wyjściowych: 2,8 MS/s przy pracy jednokanałowej, 2 MS/s przy pracy dwukanałowej. 2-letnia stałość kalibracji. Rys Karta akwizycji danych National Instruments PCIe

47 5. Interfejs stanowiska pomiarowego Program Biblioteka Filtrów Cyfrowych składa się z dwóch funkcjonalnie róŝnych modułów realizujących zadania w oddzielnych oknach programu Matlab. Całe oprogramowanie jest kontynuacją prac [9] i [11] w części implementującej filtry cyfrowe oraz pracy [10] w części pomiarowej. Po wywołaniu komendy start z linii poleceń środowiska Matlab w katalogu głównym programu uruchomiony zostaje pierwszy moduł programu Biblioteka Filtrów Cyfrowych dla DSK TMS320C6713. Z jego poziomu za pomocą przycisku Pomiary uruchomić moŝna moduł pomiarowy Badanie Filtrów Cyfrowych. Zadanie tej części aplikacji to przeprowadzanie pomiarów zrealizowanych i załadowanych do modułu DSK filtrów za pomocą karty akwizycji danych firmy National Instruments PCIe-6251 bądź bezpośrednio w oparciu o próbki pochodzące z procesora. Do prawidłowego funkcjonowania zrealizowana aplikacja wymaga instalacji środowiska Matlab oraz programu Code Composer Studio. WaŜna jest równieŝ zgodność wersji zainstalowanego oprogramowania. Stanowisko pomiarowe stworzone i przetestowane zostało w programach Matlab 2006b (wersja 7.3) oraz Code Composer Studio 3.0. Więcej informacji na temat zgodności róŝnych wersji programu Matlab i Code Composer Studio znaleźć moŝna w dokumentacji technicznej obu środowisk. Zadania realizowane przez moduł programu zarządzającego stanowiskiem pomiarowym pogrupowane zostały według obszaru funkcjonalności. Oba moduły są odpowiedzialne za następujące elementy programu: a) Biblioteka Filtrów Cyfrowych dla DSK TMS320C6713: Pobieranie współczynników filtrów z programu SPTool lub zapisanych w pliku. Konwersja współczynników do wymaganego kodu stałoprzecinkowego IQ. Wybór struktury filtra i źródła współczynników. Wizualizacja podstawowych charakterystyk filtrów (amplitudowej, fazowej, odpowiedzi impulsowej, opóźnienia grupowego oraz rozkładu zer i biegunów) z uwzględnieniem wybranego kodowania współczynników; w celu lepszej wizualizacji projektu moŝna wykorzystać dodatkowe okno Wykres Biblioteka Filtrów otwierane z panelu głównego za pomocą przycisku Odłącz. Łączenie z modułem DSK i sterowanie jego pracą. Wgrywanie projektów filtrów do modułu DSK. Wgrywanie współczynników filtrów oraz wartości zmiennych sterujących i kontrolnych do modułu DSK. b) Badanie Filtrów Cyfrowych: Pomiar następujących charakterystyk filtrów za pomocą karty akwizycji danych PCIe-6251 firmy National Instruments: charakterystyki amplitudowej metodą punkt po punkcie, charakterystyki amplitudowej za pomocą sygnału sin(x)/x, charakterystyki fazowej, stabilności filtru. Wszystkie charakterystyki mogą być ponadto mierzone z uwzględnieniem badania dynamiki układu. 47

48 Pomiar następujących charakterystyk filtrów z uŝyciem próbek pobieranych bezpośrednio z procesora za pomocą interfejsu RTDX przez łącze USB modułu DSK: charakterystyki amplitudowej metodą punkt po punkcie, charakterystyki amplitudowej za pomocą sygnału sin(x)/x, charakterystyki fazowej, stabilności filtru. Wizualizacja i zapis wyników pomiarów (zarówno danych pomiarowych jak i zmierzonych wartości). Podczas pomiaru wszystkich charakterystyk zarówno za pomocą karty akwizycji danych jak i bezpośrednio z procesora moŝna dowolnie konfigurować parametry pomiarów: amplitudę sygnału filtrowanego oraz zakres częstotliwości w których przeprowadzany jest pomiar. Ponadto moŝna dokonywać pomiaru w podanej liczbie punktów bądź skorzystać z pomiaru w określonym przedziale czasowym (program sam dobierze ilość próbek do pobrania) Biblioteka Filtrów Cyfrowych dla DSK TMS320C6713 Oprogramowanie Biblioteka Filtrów Cyfrowych dla DSK TMS320C6713 zrealizowane zostało jako kontynuacja i rozwinięcie prac [9] i [11]. Zachowano podobny wygląd interfejsu uŝytkownika. Większość procedur i funkcji została jednak stworzona od podstaw i dostosowana do uŝywanego sprzętu. Rys Główne okno programu Biblioteka Filtrów Cyfrowych. 48

49 Górne menu programu (rys. 5.1) umoŝliwia wybór interesującej nas struktury filtru cyfrowego z pośród następujących grup: Fixed Point filtry FIR i IIR kodowane stałoprzecinkowo. Float Point filtry FIR i IIR w kodowaniu zmiennoprzecinkowym. DSP Lib filtry zmiennoprzecinkowe FIR i IIR z biblioteki filtrów cyfrowych DSP Lib ver. 2.0 firmy Texas Instruments. Szczegółowy opis dostępnych procedur filtracji wraz z algorytmem przedstawiającym sposób działania programu ładującego zamieszczono w rozdziale 6 niniejszej pracy. W menu górnym moŝna ponadto dokonać wyboru źródła współczynników: programu Signal Processing Toolbox lub zmiennych coefa i coefb zdefiniowanych w środowisku Matlab. Po dokonaniu wybory struktury filtru i źródła współczynników naleŝy pobrać ich wartości za pomocą przycisku Pobierz współczynniki. JeŜeli struktura filtru nie odpowiada pobranym współczynnikom (np. pobrano współczynniki typu FIR, a wybrano strukturę typu IIR) wyświetlony zostanie komunikat o błędzie. MoŜliwa będzie dalsza praca z pobranymi współczynnikami, lecz ich wgranie do procesora będzie zablokowane do czasu korekty w wyborze struktury filtru. W przypadku struktur z zapisem zmiennych w formacie stałoprzecinkowym naleŝy następnie dokonać wyboru parametrów kodu IQ za pomocą dostępnych przełączników typu pop-up (rys. 5.2.). Rys Menu wyboru kodu stałoprzecinkowego. Przed wgraniem współczynników filtru oraz programu filtrującego do procesora (przycisk Załaduj filtr do DSP ) naleŝy połączyć się z modułem DSK. Po naciśnięciu przycisku Połącz z TMS320C6713 otwierane jest okno komunikatu o nawiązywaniu połączenia z modułem. Po zakończeniu procedury w programie głównym nad przyciskiem pojawia się informacja Połączono z modułem. W przypadku problemów z komunikacją wyświetlany jest komunikat o błędzie. 49

50 Ostatnim elementem jest uŝycie przycisku Załaduj filtr do DSP w celu wgrania wybranego projektu wraz z wyliczonymi współczynnikami filtra. Program filtrujący zostaje uruchomiony automatycznie. W przypadku wyboru struktury filtra niezgodnej z wybranymi współczynnikami wyświetlona zostaje informacja o błędzie. W przypadku dokonania korekty za pomocą menu górnego naleŝy ponownie pobrać współczynniki filtra. Odpowiedni komunikat poinformuje uŝytkownika o zaistniałej potrzebie. Do zarządzania pracą programu filtrującego moŝna wykorzystać przyciski Start, Stop, Restart. Pod nimi znajduje się pole z informacją o aktualnym stanie procesora. Oddzielnym aspektem głównego okna programu są 2 wykresy przedstawiające domyślnie charakterystykę amplitudową oraz fazową zaprojektowanego filtra. Za pomocą przełączników z symbolami strzałek w górę i w dół moŝna przełączać się pomiędzy następującymi charakterystykami: Charakterystyka amplitudowa. Charakterystyka fazowa. Odpowiedź impulsowa. Opóźnienie grupowe. Rozkład zer i biegunów filtra. Przycisk Org. przy kaŝdym z wykresów umoŝliwia powrót do domyślnej charakterystyki. Pole Zoom umoŝliwia powiększanie dowolnych obszarów na wykresach. Zaznaczenie pola Hold stwarza moŝliwość wyświetlenia wielu charakterystyk równocześnie celem ich porównania. Celem lepszej wizualizacji wybranej charakterystyki moŝna za pomocą przycisku Odłącz uruchomić oddzielne okno z wykresem (rys. 5.3). Podobnie jak na panelach wbudowanych w program główny moŝliwa jest tu selekcja wyświetlanej aktualnie charakterystyki, jej powiększanie czy powrót do oryginalnej (uwaga: oryginalną charakterystykę dla tego okna stanowi zawsze aktualna charakterystyka w dolnym oknie programu głównego). Okno to jest równieŝ sprzęŝone z polem Hold panelu głównego. Oznacza to, Ŝe zaznaczenie pola powoduje wyświetlanie wielu charakterystyk równocześnie równieŝ w odłączonym panelu. JeŜeli zmieniono ustawienia współczynników bądź struktury filtru w programie głównym to celem wizualizacji kolejnych charakterystyk w omawianym oknie naleŝy uŝyć przycisku Pobierz dane. WaŜnym elementem zrealizowanego panelu jest moŝliwość zapisu charakterystyki do pliku graficznego za pomocą przycisku Zapisz w otwartym oknie dodatkowym. 50

51 Rys Oddzielne okno prezentujące wybrane charakterystyki filtra Badanie Filtrów Cyfrowych Moduł oprogramowania Badanie Filtrów Cyfrowych słuŝy do pomiaru podstawowych charakterystyk załadowanych do modułu DSK filtrów. Celem przeprowadzenia pomiarów naleŝy po odpowiednim połączeniu modułu z interfejsem karty pomiarowej (zobacz rozdział 4.1) dokonać wyboru opcji, a następnie uruchomić pomiar. Wygląd interfejsu modułu pomiarowego przedstawia rysunek 5.4. Dostępne są następujące opcje pomiarowe: Typ pomiaru wybór pomiędzy charakterystyką amplitudową, charakterystyką amplitudową mierzoną sygnałem sin(x)/x, charakterystyką fazową i wykresem stabilności. Zaznaczenie opcji charakterystyka amplitudowa sinc powoduje, Ŝe pola dalszej konfiguracji niepotrzebne w tym pomiarze stają się nieaktywne. Sposób pomiaru wybór pomiędzy pomiarem określonej ilości punktów, a pomiarem czasowym. Dla pomiaru określonej ilości punktów w czasie jego trwania w oknie czas pozostały wyświetlany jest szacunkowy czas potrzebny do zakończenia pomiarów. W przypadku pomiaru czasowego uŝytkownik definiuje czas pomiarów, a program sam określa ilość punktów pomiarowych w zaleŝności od czasu trwania jednego pomiaru. Parametry pomiarów ustawianie amplitudy sygnału wejściowego oraz zakresu minimalnego i maksymalnego częstotliwości pomiarowych. Źródło danych wybór pomiędzy pomiarem za pomocą karty akwizycji danych, a pobieraniem próbek bezpośrednio z procesora za pomocą łącza USB. 51

52 Dynamika pomiarów ustawienia badania dynamiki mierzonych charakterystyk. Pomiar grupa przycisków umoŝliwiająca uruchamianie i zatrzymywanie pomiarów oraz zapis rezultatów pomiarów do pliku. RozłoŜenie punktów ustawianie liniowego bądź logarytmicznego wyznaczanie punktów pomiarowych. Opcje wykresu pola umoŝliwiające konfigurację sposobu wyświetlania mierzonych charakterystyk: wyświetlanie/ukrywanie siatki, zmiana siatki na liniową bądź logarytmiczną, wyświetlanie/ukrywanie punktów pomiarowych, opcja zoom. Aktualne wyniki pola wyświetlające aktualne wyniki pomiarów. Tabela wszystkich punktów pomiarowych Hold pole umoŝliwiające wizualizację większej ilości charakterystyk na jednym wykresie. Rys Okno główne modułu Badanie Filtrów Cyfrowych. 52

53 6. Moduł Biblioteka Filtrów Cyfrowych warstwa programowa W rozdziale tym przedstawiono strukturę programową obu modułów zrealizowanego oprogramowania. Dokonano teŝ krótkiej charakterystyki najwaŝniejszych z funkcji wykorzystywanych w aplikacji. Pogrupowane zostały one w oddzielnych katalogach. Struktura programu Biblioteka Filtrów Cyfrowych słuŝącego do wgrywania filtrów składa się składa z 5 katalogów zawierających elementy pogrupowane według realizowanych w programie zadań: Katalog COM zawiera funkcje odpowiedzialne za sterowanie modułem DSK: łączenie z modułem, uruchamianie, zatrzymywanie oraz resetowanie procesora. Katalog GUI elementy odpowiedzialne za interfejs graficzny programu, w tym wyświetlanie charakterystyk filtrów. Katalog LOAD funkcje słuŝące do wgrywania filtrów, ich współczynników oraz pozostałych danych do procesora. Katalog OBJ zawiera skompilowane w środowisku Code Composer Studio projekty filtrów cyfrowych. Katalog PROG zawiera pozostałe elementy programu, w tym funkcje odpowiedzialne za pobieranie współczynników z programu SPTool i przeliczanie ich do odpowiednich struktur. W głównym katalogu programu znajdują się pliki start.m oraz start.fig realizujące główne okno aplikacji. Ponadto zamieszczono tam plik addpath.m, który dołącza ścieŝki dostępu do wszystkich katalogów roboczych programu do aktualnej ścieŝki roboczej środowiska Matlab Katalog COM W folderze tym znajdują się funkcje wykorzystywane do sterowania pracą procesora sygnałowego TMS320C6713 w module DSK. W celu komunikacji z procesorem wykorzystano interfejs Real Time Data Exchange. RTDX jest interfejsem stworzonym przez firmę Texas Instruments w celu umoŝliwienia dwukierunkowej transmisji pomiędzy procesorem sygnałowym, a komputerem PC bądź innym urządzeniem wykorzystywanym jako host (urządzenie nadrzędne kierujące pracą procesora DSP). Zarówno zapisywane jak i odczytywane dane są buforowane co umoŝliwia transmisję większej ich ilości. Do komunikacji z procesorem TMS320C6713 wykorzystano funkcje biblioteczne programu Matlab dostępne w toolboxie Link For Code Composer Studio (CCSLink). Zebrane w bibliotece procedury umoŝliwiają komunikację z procesorem DSP z wykorzystaniem środowiska Code Composer Studio, które uruchamiane jest automatycznie w tle. Pliki wchodzące w skład katalogu COM : connect.m procedura nawiązuje komunikację z procesorem sygnałowym oraz zapisuje uchwyt do otwartej sesji w pliku bibldata.mat. UmoŜliwia to dostęp do procesora instrukcjom sterującym oraz wgrywającym i czytającym dane. 53

54 Procedura connect powoduje uruchomienie w tle aplikacji głównej programu Code Composer Studio Monitor, który odpowiedzialny jest za wymianę danych pomiędzy środowiskiem Matlab i bezpośrednią komunikację z procesorem TMS320C6713 za pomocą bibliotek programu Code Composer Studio. W przypadku wystąpienia problemów z nawiązaniem komunikacji z procesorem lub z uruchomieniem Code Composer Studio Monitor (np. wskutek niezgodności obsługiwanych wersji) wyświetlany jest komunikat o błędzie. startb.m, stopb.m procedury odpowiedzialne za zatrzymywanie i uruchamianie procesora. WyposaŜone zostały równieŝ w kontrolę otwarcia sesji oraz załadowania programu do procesora. JeŜeli sesja z procesorem nie została otwarta lub nie wgrano programu do modułu DSK wyświetlana jest informacja o błędzie. resetb.m procedura przeprowadzająca zamknięcie sesji pracy z procesorem Katalog GUI W folderze GUI zebrane zostały wszystkie procedury odpowiedzialne za stronę graficzną stworzonego programu. NajwaŜniejsze z nich to kolejno: about.fig, about.m okno z informacją o programie. changegraph.m funkcja pomocnicza przy zmianie wyświetlanych charakterystyk. choosefilter.m procedura obsługująca wybieranie struktur filtrów z poziomu menu programu głównego. detplot.fig, detplot.m oddzielne okno do lepszego obrazowania charakterystyk. graphzoom.m funkcja odpowiedzialna za moŝliwość powiększana wykresu. orggraph.m procedura przywracająca domyślne ustawienia wykresów. plotgraph.m funkcja odpowiedzialna za wyświetlanie danych na wykresach w panelu głównym programu. setopen.m plik z inicjalizacją niezbędnych zmiennych na początku programu. schowinfowindow.m okno komunikacji o błędach Katalog LOAD W folderze tym zamieszczono procedury wgrywające programy filtrujące do procesora (ich nazwy odpowiadają nazwom kolejnych filtrów) oraz procedury nadrzędne zarządzające wyborem i kontrolą wgrywania danych. Są to kolejno: LoadDSP.m uruchamiana z panelu uŝytkownika procedura kontrolująca otwarcie sesji z procesorem, sprawdzająca czy pobrano współczynniki filtru oraz w oparciu o preferencje uŝytkownika dokonująca wyboru pomiędzy filtrami z grupy zmiennoprzecinkowej, stałoprzecinkowej oraz biblioteki DSP Lib. loadtms320c6713f.m wybór funkcji ładującej jeden z filtrów zmiennoprzecinkowych. loadtms320c6713f.m wybór funkcji ładującej jeden z filtrów stałoprzecinkowych. loadtms320c6713lib.m wybór funkcji ładującej filtry z biblioteki DSP Lib. Wszystkie funkcje słuŝące do ładowania filtrów do procesora zbudowane są w oparciu o ten sam schemat. Przedstawiony on został na rysunku 6.1. RóŜnice występujące w procedurach to nazwy i ilości zmiennych oraz wykorzystanie róŝnych plików *.out skompilowanych w Code Composer Studio wgrywanych dla kaŝdego filtru. 54

55 Rys Algorytm ładowania programu filtrującego do procesora Katalog OBJ Projekty filtrów cyfrowych W katalogu tym umieszczono pliki z rozszerzeniem out zawierające procedury filtrujące skompilowane w Code Composer Studio. Z poziomu środowiska Matlab wgrywane są one do pamięci procesora i uruchamiane. MoŜliwy jest dostęp do zmiennych wykorzystywanych w programie oraz tablic zawierających współczynniki. 55

56 Zrealizowany w ramach tej pracy program Biblioteka Filtrów Cyfrowych zawiera następujące filtry: a). Filtry ze współczynnikami kodowanymi stałoprzecinkowo: Filtry FIR (Finitive Impulse Response): Bezpośredni, Kratowy (Lattice). Filtry IIR (Infinitive Impulse Response): Bezpośredni, Kratowy (Lattice ARMA), Bikwadratowy, Bikwadratowy w zapisie zmiennych stanu (w przestrzeni stanów). c). Filtry ze współczynnikami kodowanymi zmiennoprzecinkowo: Filtry FIR: Bezpośredni, Kratowy (Lattice). Filtry IIR: Bezpośredni, Bezpośredni typu 2, Kratowy (Lattice ARMA), Bikwadratowy, Bikwadratowy w zapisie zmiennych stanu (w przestrzeni stanów). c). Filtry z biblioteki filtrów cyfrowych DSP_Lib firmy Texas Instruments (ver 2.0): Filtry FIR: DSPF_sp_fir_gen, DSPF_sp_fircirc, DSPF_sp_fir_cplx, DSPF_sp_fir_r2, DSPF_dp_fir_gen, DSPF_dp_fircirc, DSPF_dp_fir_cplx, DSPF_dp_fir_r2, Filtry IIR: DSPF_sp_biquad, DSPF_dp_biquad, Wszystkie pliki realizujące kolejne struktury filtrów zbudowane są według następującego schematu: Dołączenie pliku konfigurującego DSP Bios. Deklaracje zmiennych i tablic uŝywanych w programie. W pierwszej kolejności umieszczone są zmienne, do których wpisywane będą wartości w trakcie działania programu z poziomu środowiska Matlab. Następnie deklarowane są pozostałe zmienne. Definicje i deklaracje funkcji występujących w pliku: funkcja main zawiera jedynie instrukcje konfigurujące peryferia procesora oraz odblokowujące przerwania, 56

57 funkcja serialreceive() wykonująca procedurę obsługi przerwania od przetwornika A/C, funkcja zawierająca algorytm filtrujący (w przypadku filtrów z biblioteki Texas Instruments występuje jedynie deklaracja funkcji bibliotecznej), funkcja odpowiedzialna za zapisywanie próbek wejściowych i wyjściowych do odpowiednich buforów (res[256], xvals[256]), które mogą być odczytane z poziomu środowiska Matlab. Z uwagi na powtarzające się elementy w kaŝdym z projektów realizujących róŝne struktury filtrów w niniejszym rozdziale przedstawiony i dokładnie omówiony zostanie tylko jeden z nich. W dalszej części pracy zaprezentowane zostaną jedynie funkcje zawierające algorytmy filtrowania. Zaprezentowane zostaną równieŝ jedynie najbardziej istotne ze zrealizowanych algorytmów. a) Filtr IIR bezpośredni, kodowanie stałoprzecinkowe (plik IIR_Direct_Int.out) W pierwszej części pliku znajduje się instrukcja dołączająca plik zawierający ustawienia konfigurujące DSP Bios, oraz pliki biblioteczne (jeśli występują w danym filtrze), np. plik math.h : #include "project1cfg.h" #include <math.h> Następnie występują definicje stałych wykorzystywanych w programie: #define NX ((int)256) #define EX ((int)8) /* NX = 2^(EX) */ Następnie zamieszczone są deklaracje niezbędnych funkcji: iircirc_own zawiera procedurę (algorytm) filtrującą, savedata odpowiedzialna jest za zapis próbek wejściowych i wyjściowych do tablic xvals[256] i res[256], które mogą być odczytane z poziomu środowiska Matlab. short iircirc_own (volatile int *x, volatile int *b, volatile int *a,... volatile int nb, volatile int na, int ex ); void savedata(short result); Następnym elementem są deklaracje zmiennych (równieŝ tablic zmiennych), których wartości będą zmieniane lub odczytywane z poziomu środowiska Matlab. Są to w pierwszej kolejności zmienne kontrolujące pracę programu (np. uruchamiające zapis próbek do buforów) oraz tablice do których zapisywane będą próbki wejściowe i wyjściowe: volatile int meas = 0; /* start/stop collecting samples */ volatile int measorg = 0; volatile short res[256]; /* table with result samples */ volatile short xvals[256]; /* table with input samples */ Następnie zdeklarowane są tablice ze współczynnikami filtra, zmienne określające ich ilość oraz w przypadku filtrów operujących na liczbach stałoprzecinkowych wartość valq określająca część ułamkową kodu IQ stosowanego do zapisu zmiennych filtra. Wartość ta niezbędna jest przy dokonywaniu przesunięć podczas operacji mnoŝenia i sumowania. 57

58 volatile int valq; /* q value in ImQn code */ volatile int b[128]; /* filter coefficients */ volatile int a[128]; /* filter coefficients */ volatile int nb; /* quantity of filter coefficients */ volatile int na; /* quantity of filter coefficients */ Dalsze definicje to zmienne uŝywane w programie, do których aplikacja nie będzie odwoływać się z zewnątrz. const int nx = NX; /* number of elements in x buffer */ const int ex = EX; /* nx = 2^(ex) - ex value is needed in provided filtering routine */ int x[nx]; /* circular buffer incoming samples */ int y[nx]; /* circular buffer output samples */ int meascount; /* counter of incoming/output samples */ short sright, sleft, result; /* left and right channel */ int i; unsigned char *wsk; int index = 0; Następnym elementem jest funkcja main(). Zawiera ona procedurę konfigurującą multiplekser MUX, tak aby umoŝliwić komunikację poprzez port McBSP1 (Multi-channel Buffered Serial Port) z przetwornikami AC i CA płytki Audio Daughter Card. W dalszych instrukcjach następuje uruchomienie przerwań zgłaszanych przez przetwornik AC i CA oraz uruchomienie portu McBSP. void main(void) { wsk=(unsigned char *)0x ; *wsk=3; /* connected McBSP1 to the daughter board connector */ IER = 0x2000; /* Enable AD interrupts */ } MCBSP_enableRcv(hMcbsp1); /* enable samples receiving */ MCBSP_enableXmt(hMcbsp1); /* enable samples receiving */ Procedura obsługi przerwania od portu szeregowego McBSP zawiera kolejno instrukcje odpowiedzialne za odczytanie odebranej próbki, zapis do bufora x oraz wywołanie funkcji zawierającej algorytm filtracji. Dalsze instrukcje związane są z obsługą bufora kołowego wykorzystanego w programie. Istotnym elementem funkcji zawierającej procedurę obsługi przerwania jest instrukcja warunkowa if(meas>0) uruchamiająca funkcję savedata() odpowiedzialną za zapis bieŝących próbek wejściowych i wyjściowych do buforów xvals[256] (próbki wejściowe z przetwornika CA) i res[256] (wyznaczone w algorytmie filtracji próbki wyjściowe; kopia danych wysyłanych do przetwornika CA). Ostatnim elementem przerwania jest zapis próbki wyjściowej do rejestru portu McBSP wysłanie jej na wyjście przetwornika. void serialreceive(void) { int sample; sample = MCBSP_read(hMcbsp1); /* receive sample from ADC */ 58

59 sright = sample; sleft = sample >> 16; sleft = 0; /* use only right Chanel */ x[index] = sright; /* write sample to circular buffet */ result = iircirc_own (x, b, a, nb, na, ex); /* filtering routine */ index += 1; index &= nx-1; if(meas>0) /* write sample to round buffet */ { savedata(result); /* write sample to buffer */ } } sample = ((sleft)<<16) (result&0x0000ffff); MCBSP_write(hMcbsp1, sample); /* write sample to DAC */ Algorytm filtracji zawarty w funkcji nazwa_funkcji () jest elementem zmiennym w zaleŝności od struktury filtra. Realizuje on graf przepływowy filtru, a jego wartością zwracaną jest próbka, która zostaje wysłana do przetwornika CA. short iircirc_own (volatile int *x, volatile int *b, volatile int *a,... volatile int nb, volatile int na, int ex ) { int result=0; int mod = (1 << ex) - 1; /* modulo value */ for (i = 0; i < nb; i++) /* filtration algorithm */ { result += x[(index-i) & mod ] * b[i]; } for (i = 1; i < na; i++) { result -= y[(index-i) & mod ] * a[i]; } result = result >> valq; /* scale value */ y[index] = result; /* save output sample in y buffer */ } return result; /* return calculated sample */ Funkcja savedata() odpowiedzialna jest za zapis bieŝących próbek wejściowych i wyjściowych do buforów xvals[256] i res[256]. Mogą one zostać z nich odczytane z poziomu środowiska Matlab w celach pomiarowych. void savedata(short result) { if(meas==1) { if(meascount<256) { res[meascount] = result; /* save output sample */ xvals[meascount] = sright; /* save input sample */ 59

60 } meascount++; meas = measorg; } else { meas=0; meascount=0; } } else { meas--; } /* measorg value - used to collect sample in selected interrupt */ b) Filtr FIR bezpośredni, kodowanie zmiennoprzecinkowe (FIR_Direct_Float.out) Algorytm filtracji dla filtra FIR w strukturze bezpośredniej jest jednym z najprostszych do realizacji. W przypadku zapisu stałoprzecinkowego naleŝy zwrócić uwagę na moŝliwość występowania przepełnienia podczas operacji sumowania. UwaŜne przestudiowanie i zastosowanie informacji zamieszczonych w rozdziale 3 gwarantuje bezbłędne działanie algorytmu. (...) - elementy analogiczne do poprzedniego projektu filtru volatile float h[nh]; volatile int nh; (...) - elementy analogiczne do poprzedniego projektu filtru Funkcja obsługi przerwania od portu McBSP: void serialreceive(void) { int sample; sample = MCBSP_read(hMcbsp1); /* receive sample from ADC */ sright = sample; sleft = sample >> 16; /* use only right Chanel */ x[index] = sright; /* write sample to circular buffet */ result = fircirc_own (x, h, nh, exp); /* filtering routine */ if(meas>0) /* write sample to round buffet */ { savedata(result); /* write sample to buffer */ } } sample = ((sleft)<<16) (result&0x0000ffff); MCBSP_write(hMcbsp1, sample); /* write sample to DAC */ 60

61 Algorytm filtracji: short fircirc_own ( volatile float* x, volatile float* h,... volatile int nh, int exp ) { int i; float result=0; int mod = (1 << exp) - 1; /* modulo value */ } for (i = 0; i < nh; i++) { result += x[(index-i) & mod ] * h[i]; } return result; c) Filtr FIR o strukturze kratowej, zmiennoprzecinkowy (FIR_Lattice_Float.out) Struktura kratowa filtru IIR jest bardzo efektywna podczas filtracji, co szczególnie objawia się jej duŝą odpornością na kwantyzację współczynników. Realizacja algorytmu jest jednak znacznie trudniejsza i mniej intuicyjna niŝ w przypadku struktur bezpośrednich. Podczas realizacji stałoprzecinkowej podobnie jak w strukturze bezpośredniej naleŝy zwrócić szczególną uwagę na potencjalne przepełnienia. W stworzonym algorytmie dodano mnoŝenie przez współczynnik skalujący na wyjściu filtra w celu uzyskania wzmocnienia równego 1 w paśmie przepustowym realizowanych filtrów. (...) - elementy analogiczne do poprzedniego projektu filtru volatile int ng; volatile float scale; volatile float g[512]; float e0[512]; /* delay buffer */ float e1n[512]; /* delay buffer */ float e1[512-1]; /* delay buffer */ Algorytm filtracji: short filtr(short schannel) { int k; e0[0] = schannel; for (k=0; k<ng; k++) { e0[k+1] = e0[k]+g[k]*e1[k]; /* lattice buffers */ e1n[k+1] = g[k]*e0[k]+e1[k]; } e1[0] = schannel; for(k=1; k<ng; k++) { e1[k] = e1n[k]; /* multiple by scale coefficients */ } } return e0[ng]*scale; 61

62 d) Filtr IIR o strukturze kratowej, stałoprzecinkowy (IIR_Lattice_Int.out) Struktura kratowa filtru typu IIR jest obok struktury bikwadratowej najtrudniejszą w implementacji. Szczególnie duŝy problem stanowią duŝe wartości sum cząstkowych powstających podczas filtracji powstające w buforach przechowujących wartości tymczasowe. W zrealizowanym algorytmie w celu uniknięcia przepełnień oraz zapewnienia poŝądanej dokładności filtracji wynikającej z dokładności współczynników zastosowano dodatkowe przesunięcia wartości sum cząstkowych o wartość shift zaleŝną od stopnia kwantyzacji współczynników. volatile int k[p]; volatile int v[n]; volatile int n; volatile int valq; float e1[n]; float e0[n]; short filtr(short schannel) { int i; int sum=0; e0[n-1]=schannel; for (i=n-1; i>0; i--) { e0[i-1] = e0[i] + ( k[i-1] >> shift ) * ( e1[i-1] >> (valq-shift) ); e1[i] = ( -k[i-1] >> shift ) * ( e0[i-1] >> (valq-shift) ) + e1[i-1]; } e1[0] = e0[0]; for(i=0; i<n; i++) { sum += v[i]*e1[i]; } } return sum >> valq; e) Filtru IIR o strukturze bikwadratowej, zmiennoprzecinkowy (IIR_Biqad_Float.out) Struktura bikwadratowa stanowi jedną z najczęściej uŝywanych struktur podczas filtracji. Szczególnie uŝyteczna jest ona w przypadku podziału filtrów wyŝszego rzędu na bardziej stabilne połączenia kaskadowe filtrów rzędu niŝszego. volatile int secno; volatile float b[768]; volatile float a[512]; float delay[512]; short filter_biquad (float x, volatile float* b, volatile float* a, float* delay) { float a1, a2, b0, b1, b2, d0, d1, x_i; 62

63 a1 = a[0]; a2 = a[1]; b0 = b[0]; b1 = b[1]; b2 = b[2]; d0 = delay[0]; d1 = delay[1]; x_i = x; r = b0 * x_i + d0; d0 = b1 * x_i - a1 * r + d1; d1 = b2 * x_i - a2 * r; } delay[0] = d0; delay[1] = d1; return r; f) Filtru IIR stałoprzecinkowy w strukturze bikwadratowej z zapisie zmiennych stanu (IIR_BiquadSs_Int.out) Struktura zmiennych stanu jest najbardziej złoŝoną z zaimplementowanych struktur. Rozpisanie sum cząstkowych w algorytmie filtracji umoŝliwiło jednak łatwą weryfikację jej poprawności i osiągnięcie optymalnych parametrów. volatile int wsp[1024]; volatile unsigned int secno; volatile unsigned int valq; short filter (short sample_float) { int sample; int x1,x2,we; i=0; j=0; we = sample_float; /* Update most recent sample */ for (sample=0; sample<secno; sample++) { x1 = ( wsp[i++] * we ) >> valq; x1 += ( wsp[i++] * d[j++] ) >> valq; x1 += ( wsp[i++] * d[j--] ) >> valq; x1 = x1_new; x2 = ( wsp[i++] * we ) >> valq; x2 += ( wsp[i++] * d[j++] ) >> valq; x2 += ( wsp[i++] * d[j--] ) >> valq; x2 =x2_new; } we = ( wsp[i++] * we ) >> valq; we += ( wsp[i++] * d[j] ) >> valq; d[j++] = x2; we += ( wsp[i++] * d[j] ) >> valq; d[j++] = x1; } return (short)we; 63

64 6.5. Katalog PROG W katalogu tym zawarte są pozostałe funkcje programu. Odpowiedzialne są one za operacje na współczynnikach filtrów (pobieranie i przeliczanie), obsługę funkcjonalności dostępnych z menu, kwantyzację współczynników oraz ich skalowanie. NajwaŜniejsze z funkcji w tym katalogu to: chooseoption.m procedura pomocnicza przy pobieraniu danych zapisanych na dysku. copycoef.m procedura kopiująca współczynniki z programu SPTool do uruchomionej aplikacji. copytf.m funkcja pomocnicza przy kopiowaniu współczynników. currentsettings.m procedura pomocnicza pobierająca aktualne ustawienia. datasource.m funkcja wyboru źródła współczynników (SPTool lub tablice w przestrzeni roboczej programu Matlab). loadc6713f.m, loadc6713i.m, loadc6713dsplib.m procedury przeliczające współczynniki filtrów dla odpowiednich struktur filtrów. loadcoef.m funkcja nadrzędna wywoływana z interfejsu uŝytkownika wybierająca procedury pobierające współczynniki zgodnie z ustawieniami uŝytkownika. loadcoef1.m, loadcoef2.m procedury pobierające współczynniki odpowiednio z przestrzeni roboczej Matlaba i programu SPTool. quantization.m funkcja wykonująca kwantyzację współczynników filtra. readcoef.m procedura wyboru i weryfikacji funkcji ładujących. savedata.m funkcja zapisująca dane programu do pliku. scaletab.m funkcja kwantyzacji tablicy współczynników. 64

65 7. Moduł Badanie Filtrów Cyfrowych 7.1. Struktura programowa modułu Struktura modułu Badanie Filtrów Cyfrowych słuŝącego do wgrywania filtrów do procesora składa się składa z 3 katalogów zawierających elementy pogrupowane według realizowanych w programie zadań: Katalog GUIM katalog zawierający procedury odpowiedzialne za stronę graficzną programu. Katalog INIT zawiera procedury inicjalizujące zmienne globalne i domyślne ustawienia w programie. Katalog MEAS zawiera większość procedur wykorzystywanych w programie; funkcje pomiaru charakterystyk, analizy i przygotowywania danych wyjściowych Katalog GUIM W katalogu GUIM zamieszczono procedury obsługi elementów graficznych programu. NajwaŜniejsze z nich to: chsiatkax.m, chsiatkay.m funkcje zmieniające opcje wykresu. chxlog.m, chylog.m funkcje zmieniające parametry wyświetlania na wykresach. chzoom.m funkcja umoŝliwiająca powiększanie wykresu. dataedit.m procedura sprawdzania i edycji danych wejściowych wprowadzanych przez panel uŝytkownika. fstart.m plik zawierający główną pętle programu; inicjalizacje odpowiednich elementów panelu uŝytkownika, uruchamianie procedur odpowiadających kolejnym pomiarom, zarządzanie kontrolkami panelu uŝytkownika. gui.m, guifig.m funkcje związane z oknem głównym programu. pfdsp.m funkcja pomocnicza panelu głównego. sprawdz_ampl.m funkcja kontrolująca dane wejściowe. zapisz.m procedura zapisująca dane do pliku Katalog INIT W katalogu tym zamieszczono procedurę globalsini.m. Jej zadaniem jest inicjalizacja zmiennych globalnych wykorzystywanych w programie. Ponadto definiuje ona uchwyty do elementów GUI, które są uŝywane przez pozostałe funkcje programu Katalog MEAS W katalogu MEAS zamieszczono wszystkie funkcje pomiaru i akwizycji danych. Zawarte w nim procedury odpowiadają za wszystkie funkcjonalności modułu pomiarowego. NajwaŜniejsze z nich to: 65

66 acq_ni.m, acq_ni_ampl.m procedury pobierające próbki z karty akwizycji danych i określające amplitudę sygnału; procedura acq_ni_ampl.m wykorzystuje w tym celu algorytm Goertzla. champlitudowa.m plik zawiera procedurę pomiaru charakterystyki amplitudowej; wywołuje w tym celu inne niezbędne funkcje. champlitudowasinc.m procedura pomiaru charakterystyki amplitudowej z wykorzystaniem sygnału sin(x)/x. chfazowa pomiar charakterystyki fazowej. chstabilnosci.m procedura pomiaru stabilności filtrów. clearni.m funkcja pomocnicza zarządzająca obsługą kanałów pomiarowych. create_channels.m funkcja tworząca kanały pomiarowe; wykorzystywana w innych procedurach. dobor_czest.m procedura doboru częstotliwości pomiarowych w przypadku pomiaru określonej ilości punktów oraz dla pomiaru czasowego. draw.m funkcja zarządzająca wykresami. dsppomfazani.m funkcja pomiaru fazy sygnału z próbek pobieranych bezpośrednio z procesora. dspreadampl.m funkcja mierząca amplitudę sygnału na wyjściu procesora. dspreadsample.m procedura pobierająca próbki z procesora; wykorzystywana w innych funkcjach programu. faz_apro.m funkcja uśredniająca pomiary przy włączonym trybie uśredniania. gen_sinc.m procedura generacji sygnału sin(x)/x. interpret.m funkcja przepisująca pobrane wartości string na wartości numeryczne. opt_podzakres_ni.m, opt_podzakres_ni2.m, opt_podzakres_ni_sinc.m procedury dobierające optymalne podzakresy dla zadanych warunków pomiarowych. pom_faza.m funkcja pomocnicza przy pomiarze fazy. pom_fft_ni.m, pom_fft_sinc.m, roll.m, sinc_dobor_f.m procedury wykorzystywane przy pomiarze charakterystyki amplitudowej sygnałem sin(x)/x Algorytmy pomiarowe Pomiary z wykorzystaniem próbek z procesora Pomiary wszystkich charakterystyk na stworzonym stanowisku mogą być przeprowadzane na dwa sposoby (rys. 7.1): Tylko za pomocą karty akwizycji danych. Sygnał pobudzający filtr generowany jest z karty akwizycji danych National Instruments PCIe Pomiary dokonywane są równieŝ za pomocą karty i przekazywane poprzez interfejs PCI Express do środowiska Matlab. Mierzone w ten sposób są charakterystyki wyjściowe układu DSK. Są one efektem realizacji algorytmu DSP zaimplementowanego w procesorze sygnałowym oraz dodatkowo obciąŝone zostają błędami wniesionymi przez przetwornik analogowo-cyfrowy na wejściu modułu DSK oraz wyjściowy przetwornik cyfrowo-analogowy. Więcej informacji na temat tych układów w cyfrowych torach przetwarzania sygnałów zamieszczono w rozdziałach niniejszej pracy. Uzyskiwane wyniki pomiarowe są ponadto obarczone błędami układu pomiarowego zastosowanego w karcie akwizycji, które z uwagi na bardzo dobre parametry karty (zobacz rozdział 4.5) są jednak niewielkie. 66

67 Za pomocą karty akwizycji danych i próbek pobieranych z procesora. Sygnał pobudzający generowany jest za pomocą karty. Pomiary dokonywane są z uŝyciem specjalnej funkcjonalności zrealizowanej w programach filtrujących oraz odpowiedniej analizy pobieranych danych w środowisku Matlab. Uzyskiwane w ten sposób wyniki są efektem realizacji algorytmu filtracji cyfrowej w układzie procesora. Nie są one obciąŝone błędami wprowadzanymi przez wyjściowy przetwornik cyfrowoanalogowy modułu DSK, poniewaŝ w postaci cyfrowej zostają bezpośrednio przesłane do środowiska pomiarowego. Moduł DSK Karta akwizycji x(t) x(n) y(n) y(t) ADC DSP DAC Sygnał analogowy ADC Sygnał cyfrowy Sygnał cyfrowy Interfejs RTDX Interfejs PCI Express Rys Schemat ideowy dwóch sposobów przeprowadzania pomiarów. Zrealizowana w programach filtracji funkcjonalność pozwala na zbieranie próbek wejściowych i wyjściowych filtra do specjalnych buforów. Próbki te mogą zostać na Ŝądanie środowiska pomiarowego pobrane przez łącze USB za pomocą interfejsu RTDX do komputera i tam analizowane. Cyfrowy transport próbek nie wnosi błędów pomiarowych. Odpowiednie przetworzenie uzyskanych danych daje obraz wszystkich charakterystyk sygnału wyjściowego z procesora. W ten sposób stosując oba typy pomiaru moŝna z łatwością za pomocą zrealizowanego stanowiska ocenić sam algorytm filtracji zaimplementowany w procesorze bez obciąŝenia błędami przetworników analogowo-cyfrowego i cyfrowo-analogowego jak równieŝ oszacować wpływ tych przetworników oraz pozostałych elementów wyjściowych modułu na uzyskiwane wyniki. Rozwiązanie takie ma zarówno walory edukacyjne, jak i ułatwia projektowanie torów DSP Pomiar charakterystyki amplitudowej Pomiar charakterystyki amplitudowej realizowany jest metodą punkt po punkcie : dla zadanej amplitudy sygnału przy określonej częstotliwości mierzone jest napięcie na wyjściu układu. W celu wyznaczenia amplitudy sygnału określona zostaje wartość międzyszczytowa ciągu próbek pobranych za pomocą karty akwizycji danych NI lub bezpośrednio z procesora z wykorzystaniem łącza USB i interfejsu RTDX. 67

68 a) Pomiary charakterystyki amplitudowej z wykorzystaniem karty NI Podczas kaŝdego pomiaru sygnał pobudzający filtr generowany jest równieŝ za pomocą karty zatem jego częstotliwość jest znana. Pozwala to dobrać ilość pobieranych próbek w stosunku do częstotliwości próbkowania w taki sposób, aby odpowiadała ona (z dokładnością do jednej próbki) całkowitej wielokrotności długości okresu sygnału i nie przekraczała przyjętej maksymalnej wartości próbek (dla częstotliwości poniŝej 100 Hz jest to próbek). W celu uzyskiwania dokładniejszych wyników zastosowano algorytm doboru optymalnego zakresu pomiarowego przez kartę akwizycji danych. Schemat algorytmu przedstawia rysunek 7.2. Rys Algorytm doboru zakresu pomiarowego. Wyznaczanie amplitudy sygnału jako róŝnicy pomiędzy największą i najmniejszą wartością z pobranych próbek charakteryzuje się zmienną dokładnością pomiaru. Wraz ze wzrostem częstotliwości mierzonego sygnału przy ustalonej maksymalnej częstotliwości próbkowania karty ilość próbek przypadających na jeden okres sygnału zmniejsza się co sprawia, Ŝe wartość maksymalna z pobranych próbek moŝe róŝnić się od rzeczywistej wartości międzyszczytowej sygnału. W początkowej fazie realizacji oprogramowania przyjęto, Ŝe za kaŝdym razem pobierana będzie z góry ustalona, stała dla kaŝdej częstotliwości ilość 3 okresów sygnału. Na podstawie symulacji przeprowadzonych w Matlabie stwierdzono jednak, Ŝe rozwiązanie to nie jest optymalne ze względu na gwałtowne zwiększanie się błędu pomiarowego dla duŝych częstotliwości. Wyniki symulacji przedstawiono na rysunku

69 2.5 Maksymalny blad pomiaru amplitudy [%] Czestotliwosc [Hz] Rys Maksymalny błąd pomiaru amplitudy z wykorzystaniem 3 okresów sygnału przy pomiarach za pomocą karty NI. Z powodu duŝych błędów pomiarowych z wykorzystaniem 3 okresów sygnału przyjęto przedstawione wcześniej rozwiązanie, w którym kaŝdorazowo niezaleŝnie od częstotliwości mierzonego sygnału pobieranych jest próbek (dla częstotliwości mniejszych niŝ 100 Hz jest to próbek, aby pobrać przynajmniej jeden okres sygnału). W przypadku duŝych częstotliwości sygnału pobieranych jest nawet kilkadziesiąt okresów co zapewnia moŝliwość poprawnej oceny wartości maksymalnej i minimalnej przebiegu. Na rysunku 7.4 przedstawiono wyniki symulacji maksymalnego błędu pomiarowego tej metody Maksymalny blad pomiaru amplitudy [%] Czestotliwosc [Hz] Rys Maksymalny błąd pomiaru amplitudy z wykorzystaniem próbek sygnału przy pomiarach za pomocą karty NI. 69

70 W celu dalszego zwiększenia dokładności pomiarów ostatecznie zastosowano algorytm Goertzla. Algorytm ten umoŝliwia wyznaczenie transformaty Fouriera sygnału dla prąŝka o dowolnej częstotliwości. Wykorzystując fakt, Ŝe częstotliwość sygnału jest znana moŝna za pomocą algorytmu Goertzla określić jego amplitudę. Pobrane próbki są mnoŝone przez okno Hamminga, a następnie z wykorzystaniem algorytmu obliczana jest amplituda prąŝka odpowiadającego częstotliwości mierzonego sygnału. Zastosowana metoda pozwoliła zmniejszyć błąd metody pomiarowej do poziomu błędu wynikającego z dyskretyzacji próbek 5 w karcie akwizycji danych, który dla zakresu pomiarowego 1V wynosi ok. 1,5 10 V. Symulację błędu pomiarowego w funkcji częstotliwości przedstawiono na rysunku x 10-3 Maksymalny blad pomiaru amplitudy [%] Czestotliwosc [Hz] Rys Maksymalny błąd pomiaru amplitudy z wykorzystaniem próbek sygnału oraz z zastosowaniem algorytmu Goertzla przy pomiarach za pomocą karty NI. b) Pomiary charakterystyki amplitudowej z wykorzystaniem próbek z procesora W przypadku pomiaru z wykorzystaniem próbek bezpośrednio z procesora róŝnica w stosunku do pomiaru z wykorzystaniem karty polega na sposobie wyznaczania wzmocnienia filtra. Jest ono bowiem określane z wykorzystaniem próbek wejściowych oraz wyjściowych, jako stosunek amplitud obu sygnałów, bez wykorzystywania sygnału zmierzonego za pomocą karty NI na wejściu lub wyjściu modułu. W pomiarze tym kaŝdorazowo niezaleŝnie od częstotliwości pobieranych jest 256 próbek. Wynika to z rozmiaru tablic wykorzystywanych w procedurach filtrujących do przechowywania pobieranych próbek. Ich rozmiar jest kompromisem pomiędzy czasem przekazywania próbek, a dokładnością pomiarów. Zwiększenie długości bufora wydłuŝa bowiem czas przekazywania próbek, lecz jednocześnie umoŝliwia zmniejszenie błędów pomiarowych. Próbki pobierane są w procedurze filtrującej w kaŝdym przerwaniu od przetwornika analogowo-cyfrowego modułu DSK co odpowiada częstotliwości próbkowania równej 48 khz. Do określenia amplitudy sygnału wykorzystywana jest następnie ilość próbek odpowiadająca całkowitej wielokrotności (z dokładnością do jednej próbki) okresu sygnału mniejsza bądź równa 256 próbek. 70

71 Niewielka częstotliwość próbkowania sygnału (48 khz) w stosunku do maksymalnej moŝliwej wartości mierzonej (24 khz) oraz niewielka ilość zebranych próbek (256) stwarzają duŝe problemy w poprawnym określeniu jego amplitudy. Symulacje przeprowadzone w Matlabie (rys. 7.6) pokazują, Ŝe błąd metody pomiarowej bazującej jedynie na róŝnicy maksymalnej i minimalnej próbki jest zbyt duŝy, a jego wartość rozkłada się nierównomiernie w całej szerokości widma (nagłe zwiększanie się błędu dla niektórych częstotliwości). Dlatego teŝ opisany sposób uzyskiwania wyniku nie moŝe być wykorzystany w dokładnym narzędziu pomiarowym Maksymalby blad pomiaru amplitudy [%] Czestotliwosc [Hz] Rys Maksymalny błąd pomiaru amplitudy z wykorzystaniem próbek sygnału pobranych z procesora. W celu zwiększenia dokładności pomiarów podobnie jak w przypadku pomiarów za pomocą karty akwizycji danych skorzystano z algorytmu Goertzla. Wykorzystując fakt, Ŝe częstotliwość mierzonego sygnału jest znana określono jego amplitudę jako amplitudę prąŝka odpowiadającego mierzonej częstotliwości. Przeprowadzone w Matlabie symulacje (rys. 7.7) pokazują, Ŝe równieŝ w tym przypadku uzyskano bardzo mały błąd metody pomiarowej. 71

72 Maksymalny blad pomiaru amplitudy [%] Czestotliwosc [Hz] x 10 4 Rys Maksymalny błąd pomiaru amplitudy z wykorzystaniem próbek sygnału pobranych z procesora oraz z zastosowaniem algorytmu Goertzla Pomiar charakterystyki amplitudowej za pomocą sygnału sin(x)/x Do pomiaru charakterystyki amplitudowej filtru zamiast metody punkt po punkcie wykorzystać moŝna sygnał szerokopasmowy będący sumą wielu składowych sinusoidalnych o róŝnych częstotliwościach. Rozwiązanie takie daje na wyjściu sygnał będący odpowiedzią układu na pobudzenie wieloma częstotliwościami równocześnie. UmoŜliwia to uzyskanie całej charakterystyki amplitudowej układu w jednym pomiarze. Przykładem sygnału szerokopasmowego spełniającego dane warunki jest sygnał sin ( x )/ x zwany często w literaturze sinc. Transformata Fouriera tego sygnału dla przypadku idealnego (nieskończonej ilości oscylacji) ma rozkład równomierny amplituda dla wszystkich częstotliwości jest stała. Przykład przebiegu czasowego jednego okresu sygnału sin ( x )/ x prezentuje rysunek 7.8. Na zrealizowanym stanowisku do pomiarów tego typu wykorzystano wygenerowany za pomocą karty pomiarowej sygnał sin ( x )/ x składający się z 40 oscylacji, reprezentowany przez skończoną ilości próbek. Uzyskana charakterystyka filtru jest przez to zniekształcona i moŝe słuŝyć jedynie w celach poglądowych. Zastosowanie 40 oscylacji odpowiada 40 składowym sinusoidalnym wchodzącym w skład pobudzenia. W przypadku pomiaru dobiera się je tak, aby pokrywały w równomiernych odstępach cały zakres częstotliwości do maksymalnej częstotliwości pomiarowej. Są one oddalone od siebie o f = f max / 40 [ Hz]. Próbki zebrane z wyjścia filtru po przeprowadzeniu transformaty Fouriera reprezentują dyskretną odpowiedź układu. 72

73 Rys Przebieg czasowy jednego okresu sygnału x 10 4 sin ( x )/ x. W celu oceny zniekształceń wnoszonych przez pomiar za pomocą nieidealnego sygnału sin(x)/x wyznaczono transformatę Fouriera uŝywanego na stanowisku pomiarowym sygnału okresowego składającego się z 40 oscylacji. Wyniki przedstawiono na rysunku 7.9. Z jego analizy wynika, Ŝe wnoszony w trakcie pomiarów tą metodą błąd jest zmienny w zaleŝności od numeru prąŝka (reprezentującego daną częstotliwość) i waha się w zakresie od 0,5 do 9 % wartości mierzonej powodując zafalowania o amplitudzie do od 1 do 14 % Amplituda pprazka FFT Numer prazka FFT Rys prąŝków transformaty Fouriera dla 40 oscylacji sygnału sin(x)/x. 73

74 Na zrealizowanym stanowisku pomiar charakterystyki amplitudowej za pomocą sygnału sin(x)/x przeprowadzić moŝna zbierając próbki wyjściowe zarówno za pomocą karty pomiarowej jak i bezpośrednio z procesora z wykorzystaniem interfejsu RTDX poprzez łącze USB. W obu przypadkach sygnał pobudzający generowany jest z częstotliwością 192 khz. Dla pomiarów za pomocą karty częstotliwość próbkowana sygnału wyjściowego jest taka sama, zmienia się jedynie ilość zbieranych próbek tak aby reprezentowały one jeden okres. W przypadku pobieraniu próbek z procesora wykorzystano bufory próbek wyjściowych w stworzonych projektach filtrów cyfrowych. Z chwilą rozpoczęcia generacji sygnału sinc przez kartę pomiarową z poziomu środowiska Matlab zmieniana jest wartość zmiennej meas w programie filtrującym z 0 na n (gdzie n = 1, 2, 3 lub 4). Powoduje to rozpoczęcie zapisywania próbek wejściowych do tablicy xvals[256] oraz próbek wyjściowych do tablicy res[256] za kaŝdym razem kiedy są one odbierane z przetwornika A/C lub wysyłane do przetwornika C/A Po odczekaniu czasu niezbędnego do zebrania 256 próbek odczytywane są one z poziomu środowiska Matlab. Liczba próbek niezbędna do właściwego zobrazowania charakterystyki amplitudowej za pomocą sygnału sin(x)/x powinna odpowiadać jednemu okresowi. W tym celu zebrane 256 próbek jest skracanych do odpowiedniej ilości zaleŝnej od maksymalnej częstotliwości pomiarowej. JeŜeli liczba próbek odpowiadających jednemu okresowi generowanego sygnału sinc przekracza dla częstotliwości próbkowania 48 khz rozmiar bufora (sytuacja taka ma miejsce dla niewielkich częstotliwości mierzonego sygnału) zamiast wartości 1 do zmiennej meas przypisywana jest wartość 2. Powoduje to akwizycję próbek co drugie wejście do przerwania, czyli realizuje próbkowanie z częstotliwością 24 khz. Dodatkową operacją przeprowadzoną na zebranych danych jest ich obrócenie kołowe w taki sposób, aby maksymalna zmierzona wartość znajdowała się w próbce z indeksem równym połowie długości bufora. Rozwiązanie to umoŝliwia właściwą interpretację uzyskanego ciągu próbek oraz odtworzenie charakterystyki amplitudowej Pomiar przesunięcia fazowego Zadaniem pomiaru przesunięcia fazowego jest określenie róŝnicy w fazie pomiędzy sygnałem na wejściu i wyjściu modułu DSK (lub w przypadku pomiarów próbek z procesora na wejściu i wyjściu układu). W zrealizowanym oprogramowaniu wykorzystano algorytm według źródła [5]. Oparty jest on na metodzie najmniejszych kwadratów (LMS), który na podstawie dwóch ciągów próbek (z wejścia i z wyjścia układu) pozwala wyznaczyć kąt przesunięcia fazowego pomiędzy reprezentowanymi przez te próbki sygnałami. Podczas pomiarów przesunięcia fazowego sygnałów za pomocą karty NI próbki pobierane są analogicznie jak w pomiarze charakterystyki amplitudowej: za kaŝdym razem częstotliwość próbkowania ustawiana jest na maksymalną dla pracy trójkanałowej (333,333 khz), a ilość próbek do pobrania na ( dla częstotliwości mniejszej niŝ 100 Hz). Następnie pobrane tablice próbek wejściowych i wyjściowych z modułu DSK skracane są do długości równej (z dokładnością do jednej próbki) całkowitej wielokrotności okresu mierzonego sygnału. W dalszej części algorytmu metodą LMS obliczany jest kąt przesunięcia fazowego pomiędzy badanymi sygnałami. W pomiarze przesunięcia fazowego za pomocą próbek z procesora filtr pobudzany jest sygnałem z karty NI. Zarówno jednak próbki wejściowe jak i wyjściowe pochodzą z buforów w algorytmie filtrującym. Przyjęta częstotliwość próbkowania zaleŝy zatem od częstotliwości 74

75 próbkowania przetworników AC i CA w module pomiarowym i wynosi 48 khz. W tym przypadku pobierane jest kaŝdorazowo 256 próbek (zarówno wejściowych jak i wyjściowych) niezaleŝnie od ilości okresów sygnału, które one reprezentują. Analizowane 256 próbek odpowiada 3 okresom sygnału przy jego częstotliwości wynoszącej 750 Hz. Dla mniejszej częstotliwości sygnału próbki poddawane analizie nie obejmują zatem 3 okresów co zgodnie z zaleceniami autora pozycji [5] mogłoby wprowadzać błędy pomiarowe. W celu uniknięcie tej niekorzystnej sytuacji dla częstotliwości sygnału poniŝej 750 Hz próbki zapisywane są do buforów pomiarowych co drugie przerwanie od przetwornika, a to odpowiada częstotliwości próbkowania 24 khz. Dla częstotliwości sygnału poniŝej 375 Hz wartość ta ustawiana jest na co czwarte przerwanie czyli odpowiada częstotliwości próbkowania 12 khz. W dalszej części algorytmu niezaleŝnie od częstotliwości próbkowania, wykorzystywane są wszystkie pobrane próbki. Rozwiązanie takie pozwala zoptymalizować pomiar przesunięcia kąta fazowego układu i zminimalizować występujące błędy Pomiar stabilności Zastosowany algorytm pomiaru stabilności filtrów polega na wykorzystaniu analizy widma sygnału wyjściowego. W niniejszej pracy wykorzystane zostało rozwiązanie z pracy [10]. Polega ono na wyznaczaniu współczynnika zawartości harmonicznych h w sygnale wyjściowym układu i stworzeniu wykresu jego wartości w funkcji częstotliwości. Zgodnie z załoŝeniami zastosowanej metody wartości współczynnika h będą kilku- bądź kilkunastokrotnie większe dla częstotliwości, w których filtr zachowuje się niestabilnie. W przypadku niestabilności układu w całym widmie częstotliwości współczynnik h będzie przyjmował bardzo duŝe wartości dla wszystkich mierzonych częstotliwości. Analiza stworzonego wykresu pozwala znaleźć obszary potencjalnej niestabilności filtru i wyeliminować je poprzez ponowne rozpatrzenie załoŝeń projektowych. Wyznaczenie współczynnika zawartości harmonicznych odbywa się w oparciu o następującą zaleŝność [6]: 2 h k k = 2 h =, Fk hk = (7.1) F 1 w którym F 1 - amplituda prąŝka 1-szej harmonicznej F - amplituda prąŝka k-tej harmonicznej k W algorytmie tym w przypadku pomiaru za pomocą karty NI podobnie jak w przypadku pomiaru charakterystyki amplitudowej pobierane jest kaŝdorazowo próbek ( próbek dla częstotliwości poniŝej 100 Hz), a następnie ich ilość jest ograniczana do ilości równej (z dokładnością do jednej próbki) całkowitej wielokrotności okresu mierzonego sygnału. Dla pomiarów z procesora próbki pobierane są natomiast analogicznie do pomiarów przesunięcia fazowego (zobacz rozdział ) czyli z częstotliwością 48, 24 lub 12 khz. Podobnie jak w przypadku pomiarów z karty NI ilość próbek równieŝ jest ograniczana do długości równej (z dokładnością do jednej próbki) całkowitej wielokrotności okresu sygnału. 75

76 Wartości próbek pobranych z karty odpowiadają bezpośrednio wartościom napięcia wyraŝonym w woltach, natomiast wartości pobrane z procesora reprezentują poziomy kwantyzacji. W przypadku algorytmu pomiaru przesunięcia fazowego sygnału jego amplituda nie odgrywa jednak znaczenia. Algorytm wyznaczania zawartości harmonicznych wykorzystuje transformatę Fouriera, dlatego w celu minimalizacji efektów związanych z przeciekiem widma bardzo waŝne jest przedstawione powyŝej optymalne dobranie długości buforów Ocena dynamiki pomiarów Zastosowany w karcie akwizycji danych 16-bitowy przetwornik analogowo-cyfrowy charakteryzuje się teoretycznie zgodnie ze wzorem 1.4 dynamiką pomiarową ok. 97,5 db. Dane techniczne karty pomiarowej [13] określają jednak ten zakres na 94 db. W praktyce minimalne napięcie, które moŝna zmierzyć za pomocą karty dla zakresu od -1 V do +1 V zgodnie z notą aplikacyjną [13] wynosi 32 µv. Przy maksymalnym napięciu wejściowym modułu DSK równym 1,7 V daje to dynamikę pomiarów: 1,7 20log 94,5dB 5 3,2 10 (7.2) Podczas testowania aplikacji i pomiarów róŝnych filtrów cyfrowych z uwagi na zakłócenia pomiarowe i szumy własne modułu DSK udało się zmierzyć na jego wyjściu minimalne napięcie o wartości 100 µv. W pomiarach stosowano ponadto sygnał pobudzający o napięciu 1 V. Uzyskana dynamika ma zatem wartość: 1 20log 80dB = (7.3) Dynamikę pomiarową z wykorzystaniem próbek pobieranych z procesora zweryfikowano 5 doświadczalnie. Największe wartości tłumienia uzyskane podczas pomiarów wynosiły 1 10 co odpowiada dynamice: 1 20log 100dB = (7.4) Przeprowadzone pomiary pozwalają wnioskować, Ŝe za pomocą karty akwizycji danych moŝliwy jest pomiar charakterystyk amplitudowych filtrów o maksymalnym tłumieniu nie przekraczającym 80 db. Analogiczne pomiary z wykorzystaniem próbek z procesora moŝliwe są gdy maksymalne tłumienie jest na poziomie ok. 100 db. ZauwaŜyć naleŝy, Ŝe maksymalny zakres dynamiczny przetwornika cyfrowoanalogowego w module DSK wynosi 94 db (zobacz rozdział 4.4). Uzyskanie dynamiki pomiarowej na większym poziomie (100 db) w przypadku pomiaru z wykorzystaniem próbek z procesora nie jest jednak błędem. W pomiarach tych ocenie ulega bowiem sam algorytm filtrujący, który w przypadku realizacji zmiennoprzecinkowej moŝe charakteryzować się znacznie większymi wartościami tłumienia niŝ 100 db. 76

77 8. Pomiary własności filtrów cyfrowych W ramach niniejszej pracy przeprowadzono badania charakterystyk filtrów cyfrowych zaprojektowanych za pomocą róŝnych algorytmów oraz zrealizowanych w róŝnych strukturach. Zbadano równieŝ zaleŝności pomiędzy projektami realizowanymi w formacie zmiennoprzecinkowym oraz w formatach stałoprzecinkowych przy róŝnym poziomie kwantyzacji współczynników filtra. Podczas pomiarów filtry wgrywane były do modułu DSK za pomocą wykonanego oprogramowania Biblioteka Filtrów Cyfrowych. Do akwizycji charakterystyk wykorzystano drugi moduł zrealizowanego programu Badanie Filtrów Cyfrowych. Pomiary wszystkich filtrów przeprowadzono metodą punkt po punkcie (opcja pomiar krokowy w programie). Ilość punktów pomiarowych była rozłoŝona równomiernie w całym zakresie badanych częstotliwości pomiędzy minimalną i maksymalną częstotliwością pomiarową z krokiem 100 Hz. Do pobudzania filtrów wykorzystano sygnał o amplitudzie 1 V Wpływ struktury na charakterystykę filtra W celu sprawdzenia zaleŝności pomiędzy charakterystyką filtra a strukturą, w której jest on zrealizowany przeprowadzono pomiary wybranych projektów filtrów kolejno w kaŝdej ze struktur. Porównaniu poddano zarówno filtry w zapisie zmienno- jak i stałoprzecinkowym dla róŝnych poziomów kwantyzacji współczynników Wpływ struktury na charakterystykę filtrów zmiennoprzecinkowych Przykładowe wyniki pomiarów dolnoprzepustowego filtra IIR zaprojektowanego z zastosowaniem prototypu analogowego filtru Chebysheva typu 2 (opcja Chebyshev Type 2 w programie SPTool) podczas realizacji w kodzie zmiennoprzecinkowym w róŝnych strukturach przedstawiają rysunki 8.1 oraz 8.2. Filtr IIR dolnoprzepustowy: Metoda projektowania: Chebyshev Type 2 Rząd filtra: 6 F P : 3 khz F S : 5 khz R P : 1 db R S : 40 db 77

78 Filtr IIR dolnoprzepustowy, Chebyshev Type 2 direct lattice 0.7 Wzmocnienie [V/V] Czestotliwosc [Hz] Rys Charakterystyki filtra dolnoprzepustowego typu IIR w zapisie zmiennoprzecinkowym w strukturze bezpośredniej i kratowej Filtr IIR dolnoprzepustowy, Chebeshev Type 2 biquadratic biquadratic in state space 0.7 Wzmocnienie [V/V] Czestotliwosc [Hz] Rys Charakterystyki filtra dolnoprzepustowego typu IIR w zapisie zmiennoprzecinkowym w strukturze bikwadratowej oraz bikwadratowej w zapisie zmiennych stanu. Na podstawie wyników pomiarów stwierdzono, Ŝe w realizacji zmiennoprzecinkowej wszystkie struktury pozwalają uzyskać charakterystyki niemal identyczne z tymi w strukturze bezpośredniej. Szczególnie waŝne jest uzyskiwanie takich samych wartości tłumienia w pasmach zaporowych oraz poziomu zafalowań w pasmach przejściowych, jak równieŝ spełnianie przez filtry załoŝeń projektowych oraz zgodność charakterystyk z kształtem charakterystyki teoretycznej. 78

79 Charakterystyki przedstawione na rysunkach 8.1 i 8.2 zobrazowano równieŝ w skali logarytmicznej odpowiednio na rysunkach 8.3 i Filtr IIR dolnoprzepustowy, Chebyshev Type 2 direct lattice -10 Wzmocnienie [db] Czestotliwosc [Hz] Rys Charakterystyki filtra dolnoprzepustowego typu IIR w zapisie zmiennoprzecinkowym w strukturze bezpośredniej i kratowej (skala logarytmiczna) Filtr IIR dolnoprzepustowy, Chebyshev Type 2 biquadratic biquadratic in state space -10 Wzmocnienie [db] Czestotliwosc [Hz] Rys Charakterystyki filtra dolnoprzepustowego typu IIR w zapisie zmiennoprzecinkowym w strukturze bikwadratowej oraz bikwadratowej w zapisie zmiennych stanu (skala logarytmiczna). 79

80 Wpływ struktury na charakterystykę filtrów stałoprzecinkowych W celu zweryfikowania zaleŝności w kształcie charakterystyk filtrów od struktury realizacji w zapisie stałoprzecinkowym porównano projekt filtra dolnoprzepustowego wykonanego w róŝnych strukturach w zapisie stałoprzecinkowym. Porównanie charakterystyk przykładowego filtra dolnoprzepustowego typu IIR zrealizowanego w róŝnych strukturach prezentuje rysunek 8.5 oraz w skali logarytmicznej rysunek 8.6. Przedstawione charakterystyki uzyskano w zapisie części ułamkowej współczynników z dokładnością 15-bitów. Kolejne struktury przedstawione na rysunku zrealizowane były w następujących kodach stałoprzecinkowych: Struktura bezpośrednia kod I4Q15, Struktura kratowa (lattice) kod I1Q15, Struktura bikwadratowa kod I2Q15, Struktura bikwadratowa w zapisie zmiennych stanu kod I2Q15. Filtr IIR dolnoprzepustowy, Chebyshev Type 2 Wzmocnienie [V/V] direct I4Q15 lattice I1Q15 biquadratic I2Q15 biquadratic in state space I2Q Czestotliwosc [Hz] Rys Charakterystyki filtra dolnoprzepustowego typu IIR w zapisie stałoprzecinkowym z 15-bitową dokładnością części ułamkowej współczynników dla róŝnych struktur realizacji algorytmu filtrującego. Na podstawie wyników pomiarów stwierdzono, Ŝe dla kodów charakteryzujących się duŝą dokładnością zapisu wartości ułamkowej współczynników uzyskiwane zaleŝności są podobne do tych obserwowanych dla filtrów zmiennoprzecinkowych, a kształty charakterystyk nie odbiegają od załoŝeń teoretycznych. W przypadku zwiększania się stopnia kwantyzacji na przebieg funkcji transmitancji coraz większy wpływ ma odporności danej struktury na niedokładności realizacji stałoprzecinkowej. Pomiary wpływu kwantyzacji na charakterystyki realizowane w róŝnych strukturach przedstawiono w dalszej części niniejszego rozdziału. 80

81 Filtr IIR dolnoprzepustowy, Chebyshev Type 2 direct I4Q15 lattice I1Q15 biquadratic I2Q15 biquadratic in state space I2Q15 Wzmocnienie [V/V] Czestotliwosc [Hz] Rys Charakterystyki filtra dolnoprzepustowego typu IIR w zapisie stałoprzecinkowym z 15-bitową dokładnością części ułamkowej współczynników dla róŝnych struktur realizacji algorytmu filtrującego (skala logarytmiczna) Odporność róŝnych struktur filtra na kwantyzację współczynników Celem przeprowadzonych w tej części pracy pomiarów było zbadanie odporności róŝnych struktur filtrów cyfrowych na kwantyzację współczynników. Wyniki uzyskano analizując projekty tych samych kilku filtrów w kolejnych strukturach podczas realizacji z coraz większym poziomem kwantyzacji współczynników Struktura bezpośrednia filtra Wyniki pomiarów wpływu kwantyzacji współczynników na charakterystyki filtra IIR podczas realizacji w strukturze bezpośredniej przedstawiono w oparciu o przykładowy filtr pasmowoprzepustowy o charakterystyce Chebysheva typu 2 oraz zaprojektowany tą samą metodą filtr dolnoprzepustowy. Filtr IIR pasmowoprzepustowy: Metoda projektowania: Chebyshev Type 2 Rząd filtra: 8 F stop1 = 3 khz F pass1 = 5 khz F pass2 = 7 khz F stop2 = 10 khz R p = 1 db R s = 40 db 81

82 Filtr IIR bezposredni, Chebyshev Type float I6Q15 I6Q14 I6Q13 Wzmocnienie [V/V] Czestotliwosc [Hz] Rys Charakterystyka filtra pasmowoprzepustowego typu IIR w strukturze bezpośredniej w zapisie zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ Filtr IIR bezposredni, Chebyshev Type2 float I6Q15 I5Q14 I6Q13 Wzmocnienie [db] Czestotliwosc [Hz] Rys Charakterystyki filtra pasmowoprzepustowego typu IIR w strukturze bezpośredniej w zapisie zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ (skala log.). Z analizy charakterystyk filtrów IIR w strukturze bezpośredniej zrealizowanych w zapisie zmiennoprzecinkowym oraz stałoprzecinkowym dla róŝnych wartości kodu IQ wynika, Ŝe realizacja filtrów w kodach stałoprzecinkowych jest znacznie utrudniona. JuŜ dla kodu I6Q15 w przypadku przedstawionego na rysunkach 8.7 i 8.8 (w skali logarytmicznej) filtra pasmowoprzepustowego widoczne jest zniekształcenie charakterystyki w środkowej 82

83 części pasma przepustowego, które wraz ze spadkiem dokładności zapisu współczynników staje się coraz większe. Jedynie filtr zrealizowany w kodzie zmiennoprzecinkowym oraz filtr w kodzie stałoprzecinkowym I6Q15 spełniają stawiane im wymagania projektowe co do wartości dopuszczalnych zafalowań w paśmie przepustowym na poziomie 1dB oraz minimalnego tłumienia w paśmie zaporowym 40 db. Zniekształcenia charakterystyki filtra podczas kwantyzacji współczynników spowodowane są zmianami połoŝenia jego biegunów wraz ze wzrostem stopnia kwantyzacji. Przy realizacji w kodzie I6Q10 jeden z biegunów znajduje się poza okręgiem jednostkowym powodując wzbudzenie układu. Rozkład zer i biegunów badanego filtra podczas realizacji w kodzie I6Q10 przedstawia rysunek 8.9. Zaznaczono na nim połoŝenie bieguna funkcji transmitancji będące bezpośrednią przyczyną wzbudzania się układu. Rys Rozkład zer i biegunów na płaszczyźnie zespolonej niestabilnego filtra IIR w kodzie I6Q10. Analogiczne pomiary zaleŝności kształtu charakterystyki filtra od przyjętego kodowania współczynników podczas realizacji w strukturze bezpośredniej dla dolnoprzepustowego filtra IIR Chebysheva typu 2 przedstawiają rysunki 8.10 oraz 8.11 (w skali logarytmicznej). Filtr IIR dolnoprzepustowy: Metoda projektowania: Chebyshev Type 2 Rząd filtra: 6 F P : 3 khz F S : 5 khz R P : 1 db R S : 40 db 83

84 Filtr IIR bezposredni, Chebyshev Type 2 1 float I4Q15 I4Q14 I4Q13 Wzmocnienie [V/V] Czestotliwosc [Hz] Rys Charakterystyki filtra dolnoprzepustowego typu IIR w strukturze bezpośredniej w zapisie zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ Filtr IIR bezposredni, Chebyshev Type 2 float I4Q15 I4Q14 I4Q13 Wzmocnienie [db] Czestotliwosc [Hz] Rys Charakterystyki filtra dolnoprzepustowego typu IIR w strukturze bezpośredniej w zapisie zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ (skala log.). Analiza charakterystyk filtra przedstawionego na rysunkach 8.10 oraz 8.11 pozwala podobnie jak w przypadku filtrów pasmowoprzepustowych stwierdzić słabą odporność struktury bezpośredniej na kwantyzację współczynników oraz brak moŝliwości realizacji stromych pasm przejściowych w kodach stałoprzecinkowych. JuŜ dla kodu I4Q14 omawiany filtr dolnoprzepustowy nie spełnia wymagań projektowych (tłumienie większe niŝ 1 db dla częstotliwości mniejszej od 3 khz). Podczas realizacji w kodzie I4Q13 charakterystyka filtra 84

85 ulega równieŝ zniekształceniu dla nieduŝych częstotliwości (poniŝej 1 khz) wykraczając poza przyjęte ograniczenia. Zmiany charakterystyki w paśmie zaporowym filtru wraz ze wzrostem kwantyzacji są nieznaczne i objawiają się niewielkim spadkiem tłumienia dopiero dla kodów o mniejszej dokładności Struktura kratowa (lattice) filtra Wyniki pomiarów wpływu kwantyzacji współczynników na charakterystyki filtra IIR podczas realizacji w strukturze kratowej (lattice) przedstawiono w oparciu o filtr pasmowoprzepustowy o charakterystyce Chebysheva typu 2 oraz zaprojektowany tą samą metodą filtr dolnoprzepustowy. Filtr IIR pasmowoprzepustowy: Metoda projektowania: Chebyshev Type 2 Rząd filtra: 8 F stop1 = 3 khz F pass1 = 5 khz F pass2 = 7 khz F stop2 = 10 khz R p = 1 db R s = 40 db Filtr IIR kratowy, Chebyshev Type 2 Wzmocnienie [V/V] float I1Q15 I1Q12 I1Q11 I1Q Czestotliwosc [Hz] Rys Charakterystyki filtra pasmowoprzepustowego typu IIR w strukturze kratowej w zapisie zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ. Z analizy charakterystyk filtrów IIR w strukturze kratowej (lattice) zrealizowanych w zapisie zmiennoprzecinkowym oraz stałoprzecinkowym dla róŝnych wartości kodu IQ wynika, Ŝe struktura ta jest bardziej odporna na kwantyzację współczynników niŝ struktura bezpośrednia. Podobnie jak w przypadku struktury bezpośredniej wraz ze wzrostem stopnia 85

86 kwantyzacji współczynników w przypadku przedstawionego na rysunku 8.12 (w skali liniowej) oraz na 8.13 (w skali logarytmicznej) filtra pasmowoprzepustowego następuje stopniowe zniekształcenie charakterystyki w obszarze pasma przepustowego (pomiędzy 5 i 7 khz). ZałoŜenia projektowe spełnia jednak jeszcze filtr z 14-bitową dokładnością zapisu współczynników (I1Q13), podczas gdy w realizacji w strukturze bezpośredniej umoŝliwiała to jedynie 21-bitowa dokładność (kod I6Q15). Dalsze zwiększanie stopnia kwantyzacji współczynników objawia się spadkiem tłumienia w paśmie zaporowym oraz zwiększaniem zafalowań w paśmie przepustowym filtra. W przeciwieństwie do realizacji w strukturze bezpośredniej minimalny poziom zafalowań w paśmie przepustowym przestaje być spełniony dopiero dla 12-bitowej dokładności współczynników (kod I1Q11) Filtr IIR kratowy, Chebyshev Type 2 float I1Q15 I1Q12 I1Q11 I1Q9 Wzmocnienie [db] Czestotliwosc [Hz] Rys Charakterystyki filtra pasmowoprzepustowego typu IIR w strukturze kratowej w zapisie zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ (skala log.). Analogiczne pomiary zaleŝności kształtu charakterystyki filtra od przyjętego kodowania współczynników podczas realizacji w strukturze kratowej dla dolnoprzepustowego filtra IIR Chebysheva typu 2 przedstawiają rysunki 8.14 oraz 8.15 (w skali logarytmicznej). Filtr IIR dolnoprzepustowy: Metoda projektowania: Chebyshev Type 2 Rząd filtra: 6 F P : 3 khz F S : 5 khz R P : 1 db R S : 40 db 86

87 Filtr IIR kratowy, Chebyshev Type 2 1 float I1Q15 I1Q12 I1Q10 Wzmocnienie [V/V] Czestotliwosc [Hz] Rys Charakterystyki filtra dolnoprzepustowego typu IIR w strukturze kratowej w zapisie zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ Filtr IIR kratowy, Chebyshev Type 2 float I1Q15 I1Q12 I1Q10 Filtr Wzmocnienie [db] Czestotliwosc [Hz] Rys Charakterystyki filtra dolnoprzepustowego typu IIR w strukturze kratowej w zapisie zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ (skala log.). Analiza filtra przedstawionego na rysunkach 8.14 oraz 8.15 pozwala podobnie jak w przypadku filtrów pasmowoprzepustowych stwierdzić większą odporność struktury kratowej na kwantyzację współczynników. Filtr spełnia załoŝenia projektowe dla kodów z zakresu I1Q15 I1Q11, gdzie ten sam filtr zrealizowany w strukturze bezpośredniej przestał je spełniać juŝ dla kodu I4Q14 (rys i 8.11). Podobnie jak w przypadku filtra 87

88 pasmowoprzepustowego wraz ze wzrostem poziomu kwantyzacji współczynników obserwuje się zwiększanie zniekształceń charakterystyki w paśmie przepustowym, poziom tłumienia w paśmie zaporowym maleje, a nachylenie pasma przejściowego pozostaje stałe Struktura bikwadratowa filtra Wyniki pomiarów wpływu kwantyzacji współczynników na charakterystyki filtra IIR podczas realizacji w strukturze bikwadratowej przedstawiono w oparciu o filtr pasmowoprzepustowy o charakterystyce Chebysheva typu 2 oraz zaprojektowany tą samą metodą filtr dolnoprzepustowy. Filtr IIR pasmowoprzepustowy: Metoda projektowania: Chebyshev Type 2 Rząd filtra: 8 F stop1 = 3 khz F pass1 = 5 khz F pass2 = 7 khz F stop2 = 10 khz R p = 1 db R s = 40 db Filtr IIR bikwadratowy, Chebyshev Type 2 1 float I2Q15 I2Q7 I2Q5 Wzmocnienie [V/V] Czestotliwosc [Hz] Rys Charakterystyki filtra pasmowoprzepustowego typu IIR w strukturze bikwadratowej w zapisie zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ. 88

89 Filtr IIR bikwadratowy, Chebyshev Type 2 float I2Q15 I2Q7 I2Q5 Wzmocnienie [db] Czestotliwosc [Hz] Rys Charakterystyki filtra pasmowoprzepustowego typu IIR w strukturze bikwadratowej w zapisie zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ (skala log.). Z analizy zaleŝności kolejnych charakterystyk filtra IIR pasmowoprzepustowego zrealizowanego w strukturze bikwadratowej w zapisie zmiennoprzecinkowym oraz stałoprzecinkowym dla róŝnych wartości kodu IQ (rys i 8.17) wynika, Ŝe struktura ta jest bardziej odporna na kwantyzację współczynników niŝ struktura bezpośrednia i kratowa. Wraz ze zwiększaniem stopnia kwantyzacji współczynników zniekształcenia powstające w funkcji transmitancji filtra są znacznie mniejsze niŝ zniekształcenia powstające w analogicznych przypadkach w strukturze kratowej czy bezpośredniej. Filtr przestaje spełniać załoŝenia projektowe dopiero dla kodu I2Q8. Objawia się to zmniejszaniem tłumienia w paśmie zaporowym. Zniekształcenia w paśmie przepustowym są znacznie mniejsze niŝ w analogicznym przypadku dla struktury bezpośredniej i kratowej. Analogiczne pomiary zaleŝności kształtu charakterystyki filtra od przyjętego kodowania współczynników podczas realizacji w strukturze bikwadratowej dla dolnoprzepustowego filtra IIR Chebysheva typu 2 przedstawiają rysunki 8.18 oraz 8.19 (w skali logarytmicznej). Filtr IIR dolnoprzepustowy: Metoda projektowania: Chebyshev Type 2 Rząd filtra: 6 F P : 3 khz F S : 5 khz R P : 1 db R S : 40 db 89

90 Filtr IIR bikwadratowy, Chebyshev Type 2 Wzmocnienie [V/V] float I2Q15 I2Q10 I2Q8 I2Q Czestotliwosc [Hz] Rys Charakterystyki filtra dolnoprzepustowego typu IIR w strukturze bikwadratowej w zapisie zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ Filtr IIR bikwadratowy, Chebyshev Type 2 float I2Q15 I2Q10 I2Q8 I2Q7 Wzmocnienie [db] Czestotliwosc [Hz] Rys Charakterystyki filtra dolnoprzepustowego typu IIR w strukturze bikwadratowej w zapisie zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ. Analiza filtra przedstawionego na rysunkach 8.18 i 8.19 pozwala podobnie jak w przypadku filtrów pasmowoprzepustowych stwierdzić bardzo duŝą odporność struktury bikwadratowej na kwantyzację współczynników. Filtr spełnia załoŝenia projektowe dla kodów z zakresu I2Q15 I2Q9 i praktycznie w tym zakresie jego charakterystyka nie ulega zmianom. Analogiczny filtr w strukturze kratowej przestał spełniać załoŝenia przy 90

91 dokładności kodowania o 1 bit, a w strukturze bezpośredniej o 7 bitów większej. Zniekształcenia w charakterystykach bezpośrednich i kratowych pojawiały się znacznie wcześniej Struktura bikwadratowa filtra w zapisie zmiennych stanu Wyniki pomiarów wpływu kwantyzacji współczynników na charakterystyki filtra IIR podczas realizacji w strukturze bikwadratowej w zapisie zmiennych stanu przedstawiono w oparciu o filtr pasmowoprzepustowy o charakterystyce Chebysheva typu 2 oraz zaprojektowany tą samą metodą filtr dolnoprzepustowy. Filtr IIR pasmowoprzepustowy: Metoda projektowania: Chebyshev Type 2 Rząd filtra: 8 F stop1 = 3 khz F pass1 = 5 khz F pass2 = 7 khz F stop2 = 10 khz R p = 1 db R s = 40 db Filtr IIR bikwadratowy w przestrzeni stanow, Chebyshev type 2 Wzmocnienie [V/V] float I2Q15 I2Q9 I2Q8 I2Q Czestotliwosc [Hz] Rys Charakterystyki filtra pasmowoprzepustowego typu IIR w strukturze bikwadratowej w zapisie zmiennych stanu w kodzie zmiennoi stałoprzecinkowym dla róŝnych wartości kodu IQ. Analiza zaleŝności kolejnych charakterystyk filtra IIR pasmowoprzepustowego zrealizowanego w strukturze bikwadratowej w zapisie zmiennych stanu pozwala ocenić, Ŝe struktura ta jest tak samo odporna na kwantyzację współczynników jak struktura bikwadratowa w zapisie klasycznym. Podobnie jak w poprzednim przypadku filtr 91

92 pasmowoprzepustowy o charakterystykach przedstawionych na rysunkach 8.20 i 8.21 (w skali logarytmicznej) przestał spełniać załoŝenia projektowe dopiero dla 10-bitowej dokładności zapisu współczynników (kod I2Q8). Dalsze zwiększanie stopnia kwantyzacji powoduje podobnie jak w poprzednim przypadku powstawanie zniekształceń w paśmie przepustowym oraz zmniejszanie tłumienia w paśmie zaporowym filtra Filtr IIR bikwadratowy w przestrzeni stanow, Chebyshev type 2 float I2Q15 I2Q9 I2Q8 I2Q7 Wzmocnienie [db] Czestotliwosc [Hz] Rys Charakterystyki filtra pasmowoprzepustowego typu IIR w strukturze bikwadratowej w zapisie zmiennych stanu w kodzie zmiennoi stałoprzecinkowym dla róŝnych wartości kodu IQ (skala log.). Analogiczne pomiary zaleŝności kształtu charakterystyki filtra od przyjętego kodowania współczynników podczas realizacji w strukturze bikwadratowej w zapisie zmiennych stanu dla dolnoprzepustowego filtra IIR Chebysheva typu 2 przedstawiają rysunki 8.22 oraz 8.23 (w skali logarytmicznej). Filtr IIR dolnoprzepustowy: Metoda projektowania: Chebyshev Type 2 Rząd filtra: 6 F P : 3 khz F S : 5 khz R P : 1 db R S : 40 db 92

93 Filtr IIR bikwadratowy w przestrzeni stanow, Chebyshev Type 2 Wzmocnienie [V/V] float I2Q15 I2Q9 I2Q7 I2Q Czestotliwosc [Hz] Rys Charakterystyki filtra dolnoprzepustowego typu IIR w strukturze bikwadratowej w zapisie zmiennych stanu w kodowaniu zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ. Wzmocnienie [db] Filtr IIR bikwadratowy w przestrzeni stanow, Chebyshev Type 2 float I2Q15 I2Q9 I2Q7 I2Q Czestotliwosc [Hz] Rys Charakterystyki filtra dolnoprzepustowego typu IIR w strukturze bikwadratowej w zapisie zmiennych stanu w kodowaniu zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ (skala log.). Analiza filtra dolnoprzepustowego zrealizowanego w strukturze bikwadratowej zapisie zmiennych stanu dla róŝnego kodowania stałoprzecinkowego pozwala podobnie jak w przypadku filtra pasmowoprzepustowego stwierdzić podobną odporność struktury na 93

94 kwantyzację jak w przypadku klasycznej struktury bikwadratowej. Filtr przestał spełniać załoŝenia projektowe dopiero dla kodu I2Q6, gdzie klasyczna struktura bikwadratowa nie spełniała ich dla kodowania I2Q8. Dalsze zwiększanie stopnia kwantyzacji współczynników objawiało się jednak niekorzystnym nagłym spadkiem tłumienia w paśmie zaporowym filtra Kwantyzacja współczynników a zafalowania w paśmie przepustowym filtra Celem tej części pomiarów była ocena zafalowań w paśmie przepustowym filtrów FIR oraz IIR o róŝnej strukturze w zaleŝności od przyjętego kodowania współczynników. Pomiary zrealizowano dla filtrów o szerokim paśmie przepustowym, aby moŝliwa była właściwa ocena zafalowań i ich zmian w zaleŝności od przyjętych załoŝeń. Pomiary powtarzano następnie zmniejszając dokładność zapisu współczynników i obserwując spowodowane tym zmiany w paśmie przepustowym. Nie brano pod uwagę zmniejszania się tłumienia w paśmie zaporowym, które występowało w tym czasie. W pracy przedstawiono przykładowe wyniki dla filtrów dolnoprzepustowych typu FIR i IIR o szerokości pasma przepustowego 7 khz Zafalowania w paśmie przepustowym filtrów FIR Filtr FIR dolnoprzepustowy: Metoda projektowania: Equirpple FIR Rząd filtra: 34 F P : 7 khz F S : 9 khz R P : 1 db R S : 40 db Filtr FIR bezposredni, Equirple Wzmocnienie [V/V] I1Q15 I1Q I1Q7 I1Q6 I1Q Czestotliwosc [Hz] Rys Zafalowania w paśmie przepustowym filtra FIR dla róŝnych wartości kodu IQ. 94

95 Rysunek 8.24 przedstawia porównanie pasma przejściowego dolnoprzepustowego filtra FIR zaprojektowanego za pomocą algorytmu Remeza (metoda Equiripple w SPTool) zrealizowanego w strukturze bezpośredniej dla róŝnego stopnia kwantyzacji współczynników. W oparciu o uzyskane wyniki pomiarów stworzono równieŝ wykres zaleŝności wielkości zafalowań w paśmie przepustowym filtra FIR od stopnia kwantyzacji współczynników przedstawiony na rysunku Filtr FIR dolnoprzepustowy, Elliptic Amplituda zafalowan w pasmie przepustowym [db] I1Q15 I1Q14 I1Q13 I1Q12 I1Q11 I1Q10 I1Q9 I1Q8 I1Q7 I1Q6 I1Q5 Kodowanie wspolczynnikow Rys Maksymalna amplituda zafalowań w paśmie przepustowym filtra FIR w zaleŝności od sposobu kodowania współczynników. Analiza wykresu 8.25 pozwala określić maksymalny poziom kwantyzacji współczynników (minimalną wartość parametru Q w stosowanym kodzie) umoŝliwiający osiągnięcie poziomu zafalowań w paśmie przepustowym nie większego niŝ przyjęty w załoŝeniach projektowych. Z uzyskanej zaleŝności wynika, Ŝe poziom zafalowań praktycznie nie zmienia się dla kodów z zakresu I1Q15 I1Q7 i utrzymuje się na poziomie ok. 1.6 db. W tym czasie dla kodów z zakresu I1Q15 1Q12 wartość tłumienia filtra spełnia załoŝenia projektowe utrzymując się na poziomie poniŝej 40 db. Zmiany amplitudy zafalowań w paśmie przepustowym spowodowane są zmniejszaniem się dokładności współczynników filtra oraz całkowitym zerowaniem się mniejszych ich wartości przy zwiększającym się stopniu kwantyzacji. Zerowanie współczynników powoduje zmianę stopnia wielomianu opisującego funkcję transmitancji filtra, co bezpośrednio skutkuje zmianą kształtu mierzonej charakterystyki. Dla większego współczynnika kwantyzacji liczba zafalowań w paśmie przepustowym maleje, jednak amplituda tych zafalowań staje się większa. 95

96 Zafalowania w paśmie przepustowym filtrów IIR Rysunek 8.26 przedstawia porównanie pasm przejściowych dolnoprzepustowych filtrów IIR zrealizowanych w strukturze bezpośredniej. W oparciu o uzyskane wyniki analogicznie do pomiarów filtrów typu FIR stworzono równieŝ wykres zaleŝności wielkości zafalowań w paśmie przepustowym filtra IIR zaprojektowanego z zastosowaniem prototypu analogowego (metoda Elliptic) przedstawiony na rysunku Filtr IIR dolnoprzepustowy: Metoda projektowania: Elliptic Rząd filtra: 5 F P : 7 khz F S : 9 khz R P : 1 db R S : 40 db Filtr IIR dolnoprzepustowy, Elliptic Wzmocnienie [V/V] I4Q I4Q12 I4Q10 I4Q Czestotliwosc [Hz] Rys Zafalowania w paśmie przepustowym filtra IIR dla róŝnych wartości kodu IQ. Analiza wykresu 8.27 pozwala analogicznie jak w przypadku filtrów FIR określić maksymalny poziom kwantyzacji współczynników umoŝliwiający osiągnięcie poziomu zafalowań w paśmie przepustowym badanego filtra IIR nie większego niŝ ujęty w załoŝeniach projektowych. Podobnie jak w poprzednim przypadku poziom zafalowań praktycznie nie zmienia się dla kodów z określonego zakresu (w tym przypadku I4Q15 I4Q11) i utrzymuje się na poziomie poniŝej 2 db (rys. 8.27). Ponadto tłumienie filtra nie było większe od załoŝonych 40 db dla kodów I4Q15 I4Q10, co pozwala stwierdzić Ŝe realizacja badanego filtra w kodzie I4Q10 daje praktycznie takie same rezultaty jak w kodzie I4Q15. 96

97 9 Filtr IIR dolnoprzepustowy, Elliptic 8 7 Amplituda zafalowan [db] I4Q15 I4Q14 I4Q13 I4Q12 I4Q11 I4Q10 I4Q9 I4Q8 Kodowanie wspolczynnikow Rys Maksymalna amplituda zafalowań w paśmie przepustowym filtra FIR w zaleŝności od sposobu kodowania współczynników Realizacja filtrów pasmowoprzepustowych w róŝnych strukturach Celem tej części pomiarów była ocena realizowalności filtrów IIR pasmowozaporowych w róŝnych strukturach. W niniejszej pracy przedstawiono przykładowe pomiary zrealizowane dla filtra z pasmem zaporowym o szerokości 2 khz. Stosując kodowanie zmiennoprzecinkowe oraz róŝnej dokładności kody stałoprzecinkowe obserwowano zmiany w części przepustowej filtrów, nachyleniu pasm przejściowych oraz tłumieniu pasm zaporowych. Sporządzono wykresy charakterystyk w skali liniowej i logarytmicznej Realizacja filtrów pasmowozaporowych w strukturze bezpośredniej Wyniki pomiarów wpływu kwantyzacji współczynników na charakterystyki pasmowozaporowego filtra IIR podczas realizacji w strukturze bezpośredniej przedstawiają rysunki 8.28 oraz 8.29 (w skali logarytmicznej). Filtr IIR pasmowozaporowy: Metoda projektowania: Elliptic Rząd filtra: 6 F P1 = 3 khz F P2 = 9 khz F S1 = 4,5 khz F S2 = 6,5 khz R P = 1 R S = 40 97

98 Filtr IIR bezposredni, Elliptic 1 Wzmocnienie [V/V] float 0.2 I4Q15 I4Q13 I4Q Czestotliwosc [Hz] Rys Charakterystyki filtra pasmowozaporowego typu IIR w strukturze bezpośredniej w zapisie zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ. 10 Filtr IIR bezposredni, Elliptic 0-10 Wzmocnienie [db] float -50 I2Q15 I2Q13 I2Q Czestotliwosc [Hz] Rys Charakterystyki filtra pasmowozaporowego typu IIR w strukturze bezpośredniej w zapisie zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ (skala log.). Rysunki 8.28 i 8.29 przedstawiają charakterystyki analizowanego filtra. Podobnie jak w przypadku innych typów równieŝ dla filtrów pasmowozaporowych struktura bezpośrednia jest bardzo wraŝliwa na kwantyzację współczynników. Analiza przedstawionych charakterystyk pozwala stwierdzić, Ŝe nawet przy 15-bitowej dokładności części ułamkowej współczynników (kod I2Q15) nie udaje się uzyskać wymaganego tłumienia na poziomie 98

99 40 db w paśmie zaporowym filtra. Dalszy spadek dokładności współczynników powoduje stopniowe zmniejszanie się tłumienia w paśmie zaporowym oraz wzrost zafalowań w jednym z pasm przejściowych filtra Realizacja filtrów pasmowozaporowych w strukturze kratowej Wyniki pomiarów wpływu kwantyzacji współczynników na charakterystyki pasmowozaporowego filtra typu IIR podczas realizacji w strukturze kratowej przedstawiają rysunki 8.30 oraz 8.31 (w skali logarytmicznej). Filtr IIR pasmowozaporowy: Metoda projektowania: Elliptic Rząd filtra: 6 F P1 = 3 khz F P2 = 9 khz F S1 = 4,5 khz F S2 = 6,5 khz R P = 1 R S = 40 Filtr IIR kratowy, Elliptic 1 Wzmocnienie [V/V] float 0.2 I1Q15 I1Q11 I1Q Czestotliwosc [Hz] Rys Charakterystyki filtra pasmowozaporowego typu IIR w strukturze kratowej w zapisie zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ. 99

100 10 Filtr IIR kratowy, Elliptic 0-10 Wzmocnienie [db] float -50 I1Q15 I1Q11 I1Q Czestotliwosc [Hz] Rys Charakterystyki filtra pasmowozaporowego typu IIR w strukturze kratowej w zapisie zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ (skala logarytmiczna). Podobnie jak we wcześniej omawianych przypadkach równieŝ podczas realizacji filtrów pasmowozaporowych struktura kratowa jest znacznie bardziej odporna na skutki kwantyzacji współczynników (rys i 8.31) niŝ struktura bezpośrednia. Odtworzenie zadanych warunków projektowych w badanym przypadku uzyskano dla kodów stałoprzecinkowych z zakresu I1Q15 I1Q12. Dalsze zwiększaniem stopnia kwantyzacji powodowało jednak istotne zmiany w charakterystyce obserwowanych filtrów. Zaobserwowano duŝe zniekształcenia w paśmie zaporowym oraz znaczny spadek tłumienia. Kształt pasma przepustowego natomiast tylko nieznacznie wykraczał poza załoŝone warunki projektowe Realizacja filtrów pasmowozaporowych w strukturze bikwadratowej Wyniki pomiarów wpływu kwantyzacji współczynników na charakterystyki pasmowozaporowego filtra typu IIR podczas realizacji w strukturze bikwadratowej przedstawiają rysunki 8.32 oraz 8.33 (w skali logarytmicznej). Filtr IIR pasmowozaporowy: Metoda projektowania: Elliptic Rząd filtra: 6 F P1 = 3 khz F P2 = 9 khz F S1 = 4,5 khz F S2 = 6,5 khz R P = 1 R S =

101 Filtr IIR bikwadratowy, Elliptic 1 Wzmocnienie [V/V] float 0.2 I2Q15 I2Q12 I2Q Czestotliwosc [Hz] Rys Charakterystyki filtra pasmowozaporowego typu IIR w strukturze bikwadratowej w zapisie zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ. 10 Filtr IIR bikwadratowy, Elliptic 0-10 Wzmocnienie [db] float -50 I2Q15 I2Q12 I2Q Czestotliwosc [Hz] Rys Charakterystyki filtra pasmowozaporowego typu IIR w strukturze bikwadratowej w zapisie zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ (skala log.). Z analizy kształtu charakterystyk filtra pasmowozaporowego (rys i 8.33) podobnie jak w przypadku filtra pasmowoprzepustowego i dolnoprzepustowego widać, Ŝe struktura bikwadratowa jest bardziej odporna na kwantyzację współczynników niŝ struktura bezpośrednia i kratowa. Filtr spełnia wymagania projektowe dla kodów z zakresu I2Q15 I2Q10. Interesujący jest fakt, Ŝe dalsze zwiększanie stopnia kwantyzacji współczynników nie 101

102 powoduje duŝego spadku tłumienia w paśmie zaporowym, a jedynie wzrost amplitudy zafalowań w paśmie przepustowym filtra Realizacja filtrów pasmowozaporowych w strukturze bikwadratowej w zapisie zmiennych stanu Wyniki pomiarów wpływu kwantyzacji współczynników na charakterystyki pasmowozaporowego filtra typu IIR podczas realizacji w strukturze bikwadratowej w zapisie zmiennych stanu przedstawiają rysunki 8.34 oraz 8.35 (w skali logarytmicznej). Filtr IIR pasmowozaporowy: Metoda projektowania: Elliptic Rząd filtra: 6 F P1 = 3 khz F P2 = 9 khz F S1 = 4,5 khz F S2 = 6,5 khz R P = 1 R S = 40 Filtr IIR bikwadratowy w przestrzeni stanow, Elliptic 1 Wzmocnienie[V/V] float 0.2 I2Q15 I2Q9 I2Q Czestotliwosc [Hz] Rys Charakterystyki filtra pasmowozaporowego typu IIR w strukturze bikwadratowej w zapisie zmiennych stanu w kodach zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ. Podobnie jak w przypadku wcześniej analizowanych filtrów pasmowoprzepustowego i dolnoprzepustowego równieŝ dla filtra IIR pasmowozaporowego struktura bikwadratowa w zapisie zmiennych stanu objawia się podobną odpornością na kwantyzację współczynników do klasycznej struktury bikwadratowej. Z analizy omawianych charakterystyk (rys i 8.35) wynika, Ŝe filtr spełnia załoŝenia projektowe dla kodów 102

103 stałoprzecinkowych z zakresu I2Q15 I2Q9 (dla klasycznego filtra bikwadratowego były to kody I2Q15 I2Q10), lecz dalsze zwiększanie kwantyzacji współczynników powoduje nagłe zmiany w obserwowanych charakterystykach. Podobnie jak w przypadku filtra pasmowoprzepustowego pojawiają się duŝe zniekształcenia w obszarze pasm przepustowych. Dodatkowo widoczny staje się równieŝ spadek tłumienia w paśmie zaporowym filtra. 10 Filtr IIR bikwadratowy w przestrzeni stanow, Elliptic 0-10 Wzmocnienie [db] float -50 I2Q15 I2Q9 I2Q Czestotliwosc [Hz] Rys Charakterystyki filtra pasmowozaporowego typu IIR w strukturze bikwadratowej w zapisie zmiennych stanu w kodach zmienno- i stałoprzecinkowym dla róŝnych wartości kodu IQ (skala log.). 103

104 9. Podsumowanie Poruszone w tej pracy zagadnienie filtracji stanowi niewielką, ale zarazem bardzo istotną część ogółu problematyki związanej z cyfrowym przetwarzaniem sygnałów. Filtracja cyfrowa jest bowiem dziedziną bez znajomości której nie sposób wyobrazić sobie efektywną pracę konstrukcyjną w obszarze DSP. Bardzo rzadko stanowi ona główny cel przetwarzania, lecz jako element składowy występuje w prawie kaŝdym torze DSP. Znajomość zagadnienia filtracji oraz świadomość źródeł i sposobu minimalizacji błędów pozwala projektować układy elektroniczne w sposób optymalny i efektywny. Filtry cyfrowe występują w torach DSP w mniej lub bardziej rozbudowanej postaci: od prostych, pojedynczych układów aŝ do rozbudowanych i skomplikowanych zespołów realizujących złoŝone zadania (np. banki filtrów wykorzystywane podczas kodowania w standardach MPEG-1, MPEG-2, MPEG-4 czy kompresji obrazów w formacie JPEG 2000). W ramach niniejszej pracy zrealizowane zostało stanowisko laboratoryjne do implementacji filtrów cyfrowych w procesorze sygnałowym TMS320C6713 oraz pomiaru uzyskiwanych charakterystyk. Stanowi ona kontynuację pracy [9] i [11] w module wgrywającym filtry oraz pracy [10] w części pomiarowej. Całkowicie od nowa zaprojektowana została większość funkcji programu oraz wszystkie pliki zawierające procedury filtrujące. Wśród nich znalazło się dodatkowo 10 filtrów z biblioteki DSP Lib ver. 2.0 firmy Texas Instruments. W zrealizowanym oprogramowaniu wprowadzono równieŝ nowy sposób komunikacji z makietą DSK poprzez interfejs RTDX, co daje moŝliwość współpracy z modułem DSK z procesorem TMS320C6713 wyposaŝonym w łącze USB. Niespotykaną w podobnych systemach pomiarowych funkcjonalnością jest szeroko omawiana w pracy moŝliwość pomiaru charakterystyk filtrów w oparciu o próbki pochodzące z procesora. Rozwiązanie to posiada duŝe walory edukacyjne. W początkowych rozdziałach niniejszej pracy przedstawiono podstawy teoretyczne filtracji cyfrowej. Szczególny nacisk połoŝono na realizację filtrów cyfrowych w róŝnych strukturach oraz konsekwencje z tym związane, jak równieŝ omówiono skutki realizacji filtrów w arytmetyce skończonej precyzji. W dalszej części pracy zamieszczono opis sprzętowy stanowiska pomiarowego. Poruszono w nim jedynie aspekty bezpośrednio dotyczące funkcjonalności układów wykorzystywanych podczas pracy. Kolejnym elementem jest opis interfejsu oraz budowy programowej aplikacji. Podczas realizacji oprogramowania napotkano szereg problemów omówionych w niniejszej pracy, które musiały zostać rozwiązane. Przykładem jest pomiar amplitudy sygnału na wyjściu modułu DSK. Stosowana na poprzednim stanowisku [10] metoda jest obarczona znacznym błędem, który udało się zminimalizować stosując algorytm Goertzla. Wykresy przedstawiające wielkości błędów pomiarowych występujące dla róŝnych przypadków analizowanych podczas poszukiwania najlepszego z nich przedstawiono w rozdziale 7.2. W rozdziale tym oszacowano takŝe dokładność pomiaru charakterystyki amplitudowej filtra za pomocą sygnału sin(x)/x. Zastosowanie dodatkowych procedur programowych umoŝliwiło znaczne zwiększenie dokładności pomiaru w stosunku do pracy [10]. Wprowadzony sposób akwizycji próbek miał równieŝ wpływ na pomiary pozostałych charakterystyk filtra. W przypadku dalszego rozwijania niniejszej aplikacji zauwaŝone zmniejszenie błędów podczas akwizycji charakterystyki fazowej wymaga dokładniejszej analizy ilościowej. Pozwoli to na optymalizacją stosowanego rozwiązania, jak równieŝ moŝe okazać się podstawą do znalezienie innego, jeszcze bardziej efektywnego. Warto zauwaŝyć, Ŝe oprócz wykorzystanego w programie algorytmu LMS istnieje szereg innych, które mogą posłuŝyć w celu estymacji przesunięcie fazowego dwóch sygnałów. 104

105 Z uwagi na ograniczoną dynamikę stosowanych przyrządów oraz specyfikę stanowiska za pomocą zrealizowanego oprogramowania moŝliwe są efektywne pomiary filtrów o tłumieniu nie przekraczającym 80 db podczas pomiarów za pomocą karty NI oraz 100 db podczas pomiarów z wykorzystaniem próbek z procesora. Dokładniejsza analiza dynamiki pomiarowej była przedmiotem rozwaŝań w rozdziale 7.3. Rozwiązaniem, które warto zastosować w przypadku rozwijania niniejszej pracy jest równieŝ inny sposób generacji sygnałów za pomocą karty NI. W zrealizowanym oprogramowaniu wykorzystano tablicę z próbkami reprezentującymi jeden okres sygnału sinusoidalnego wysyłaną cyklicznie na wyjście układu. Bardzo prawdopodobne jest uzyskanie większej dokładność podczas generowania sygnału pobudzającego filtry wprost z równania róŝnicowego. Przeprowadzone pomiary charakterystyk filtrów cyfrowych zaprezentowane w rozdziale 8 niniejszej pracy miały na celu przetestowanie stworzonego oprogramowania Biblioteka Filtrów Cyfrowych z modułem Badanie Filtrów Cyfrowych jak równieŝ uzyskanie informacji ilościowych i jakościowych na temat zrealizowanych struktur. W pomiarach opisanych w rozdziale 8 skupiono się na wpływie struktury realizacji filtra na kształt jego charakterystyk zarówno w notacji stało- jak i zmiennoprzecinkowej, odporności kolejnych struktur na kwantyzację współczynników oraz wpływ dokładności na zafalowania w pasmach przepustowych filtrów. Przedstawiono równieŝ realizowalność charakterystyki filtra pasmowoprzepustowego w róŝnych strukturach. W celu dalszego rozwijania zagadnienia poruszonego w tej pracy warto wykonać pomiary dla większej ilości filtrów z pełnym wykorzystaniem zaprojektowanego stanowiska. Analiza ilościowa i jakościowa powinna równieŝ dotyczyć zaimplementowanych filtrów z biblioteki DSP Lib ver. 2.0 firmy Texas Instruments. Ciekawe wydaje się równieŝ przeprowadzenie pomiarów obciąŝenia procesora podczas filtracji z wykorzystaniem zrealizowanych algorytmów, w szczególności optymalizowanych przez producenta w asemblerze filtrów bibliotecznych. Istotne informacje przyniesie równieŝ porównanie charakterystyk zbieranych z procesora z charakterystykami uzyskiwanymi przy pomiarach za pomocą karty akwizycji danych. Przedstawiona w niniejszej pracy tematyka jest klasycznym podejściem do zagadnienia filtracji cyfrowej. Równie szybko, a moŝe nawet bardziej dynamicznie rozwijającą się obecnie dziedziną jest cyfrowa filtracja ortogonalna sygnałów losowych. Stanowi ona odmienne podejście do zagadnień optymalnej estymacji sygnałów losowych znajdując coraz szersze zastosowanie obok rozwiązań klasycznych. Szczególnie chętnie cyfrowa filtracja ortogonalna wykorzystywana jest w systemach uŝytkowych transmisji sygnałów cyfrowych, a w szczególności w cyfrowej syntezie mowy oraz parametryzacji, kompresji i transmisji sygnałów z wykorzystaniem metody LPC (Linear Predictive Coding). Chcąc jednak mówić o filtracji ortogonalnej nie sposób nie znać podejścia klasycznego, które stanowi punkt wyjścia do dalszej analizy sygnałów. 105

106 Literatura [1] Lyons R.G., Wprowadzenie do cyfrowego przetwarzania sygnałów, WKŁ, Warszawa [2] Oppenheim A.V., Schafer R.W., Discrete-time signal processing, Prentice-Hall, Englewood Cliffs, New Jersey, [3] Park Sangil, Principles of Delta-Sigma Modulation for Analog-to-Digital Converters, Motorola [4] Rabiner L.R., Gold B., Theory and application of digital signal processing, Prentice- Hall, Englewood Cliffs, New Jersey, [5] Sroka R., Gajda J., Pomiary kąta fazowego, Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Akademii Górniczo-Hutniczej, Kraków [6] Szabatin J., Podstawy teorii sygnałów, WKŁ, Warszawa [7] Yates R., Practical Considerations in Fixed-Point FIR Filter Implementations, Digital Signal Labs, March [8] Zieliński T.P., Cyfrowe przetwarzanie sygnałów. Od teorii do zastosowań, WKŁ, Warszawa [9] Krzysiek M., Realizacja filtrów cyfrowych dla procesorów sygnałowych TMS320, Praca dyplomowa magisterska, Wydział Elektroniki PWr., Wrocław [10] Maciuszek M., Badanie charakterystyk filtrów cyfrowych w środowisku LabView oraz Matlab, Praca dyplomowa magisterska, Wydział Elektroniki PWr., Wrocław [11] śarowska A., Aplikacje filtrów cyfrowych dla procesorów sygnałowych TMS320 ćwiczenie laboratoryjne, Praca dyplomowa magisterska, Wydział Elektroniki PWr., Wrocław [12] Texas Instruments, DSP Library Programmer s Reference Guide, Literature Number: SPRU657B, June [13] National Instruments, PCIe-6251 manual, December [14] Texas Instruments, TMS320C6000 Programmer s Guide, Literature Number: SPRU198D, March [15] Texas Instruments, TMS320C6000 Optimizing Compiler 6.0 Beta User's Guide, Literature Number: SPRU187N, July [16] Texas Instruments, TMS320C6713 Floating-Point Digital Signal Processor, Literature Number: SPRS186L, December [17] Texas Instruments, TMS320C67x/C67x+ DSPCPU and Instruction SetReference Guide, Literature Number: SPRU733A, November [18] Dokumentacja środowiska Matlab dostępna online pod adresem: [19] Dokumentacja środowiska Code Composer Studio dostępna online pod adresem: 106

107 Dodatek A: Instrukcja ćwiczenia laboratoryjnego LABORATORIUM PROCESORÓW SYGNAŁOWYCH Temat ćwiczenia: BADANIE FILTRÓW CYFROWYCH Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z zagadnieniem filtracji cyfrowej. Program ćwiczenia przewiduje pomiary charakterystyk filtrów podczas realizacji projektów w róŝnych strukturach w zapisie stało- i zmiennoprzecinkowym. DuŜą uwagę zwrócono na wpływ kwantyzacji współczynników na parametry realizowanych filtrów. W instrukcji zawarto obszerny opis konfiguracji i obsługi stanowiska pomiarowego. Daje on moŝliwość zapoznania się ze środowiskiem programowym i przygotowuje do samodzielnego przeprowadzenia dalszej części ćwiczenia. Program ćwiczenia 1. Wstęp teoretyczny. 2. Zapoznanie się ze stanowiskiem pomiarowym. 3. Badanie wpływu struktury na charakterystykę filtra. Wykorzystując program SPTool naleŝy zaprojektować filtr według załoŝeń podanych przez prowadzącego i przeprowadzić jego pomiary dla następujących przypadków: 3.1. Realizacja filtra w kodowaniu zmiennoprzecinkowym w kolejnych strukturach: Struktura bezpośrednia, Struktura kratowa, Struktura bikwadratowa, Struktura bikwadratowa w zapisie zmiennych stanu Realizacja filtra w kodowaniu stałoprzecinkowym w następujących strukturach: Struktura bezpośrednia, Struktura kratowa, Struktura bikwadratowa, Struktura bikwadratowa w zapisie zmiennych stanu. Pomiary naleŝy przeprowadzić dla kodu o dokładności współczynników mniejszej od maksymalnej (np. dla Q=10). 4. Badanie odporności struktur filtracji na kwantyzację współczynników. W tej części ćwiczenia naleŝy porównać wpływ kwantyzacji współczynników filtra na kształt jego charakterystyk w zaleŝności od przyjętego stopnia kwantyzacji. Zaleca się przeprowadzenie pomiarów 2-3 struktur dla róŝnych kodów stałoprzecinkowych. 5. Wpływ kwantyzacji współczynników na stabilność filtrów cyfrowych. W tej części ćwiczenia dla dowolnych filtrów naleŝy zmierzyć charakterystyki stabilności przy zwiększającym się stopniu kwantyzacji współczynników. Wyniki porównać z charakterystykami filtrów zmiennoprzecinkowych. 107

108 6. Ocena wpływu przetwornika cyfrowo-analogowego i analogowo-cyfrowego na charakterystyki filtra. W tej części ćwiczenia dla dowolnego (dowolnych) filtrów naleŝy zmierzyć charakterystyki za pomocą karty akwizycji danych (opcja Źródło danych: próbki z przetwornika CA ) oraz w oparciu o próbki bezpośrednio z procesora (opcja Źródło danych: próbki z procesora ). W celu lepszego porównania charakterystyk warto wykorzystać opcję Hold w programie pomiarowym umoŝliwiającą wizualizację kilku charakterystyk na jednym wykresie. 1. Wprowadzenie teoretyczne Filtrem cyfrowym nazywamy układ, który dokonuje selekcji składowych sygnału podanych na jego wejście ([1], [2], [4]). Zgodnie z przyjętymi podczas projektowania załoŝeniami jego zadaniem jest wytłumienie wybranych składowych częstotliwościowych oraz pozostawienie innych w nienaruszonym stanie. W celu realizacji rzeczywistych filtrów cyfrowych wykorzystuje się klasę systemów, która moŝe być zaimplementowana jako aproksymacja systemów idealnych LTI (Linear Time Invariant). Warunek ten spełniają układy liniowe o stałych współczynnikach opisujące systemy o czasie dyskretnym. Ich działanie zapisuje się za pomocą równania róŝnicowego: N a y M [ n k] = bk x[ n k] k k= 0 k = 0 (1) 1.1. Filtry FIR Filtry FIR (Finitive Impulse Response) filtry o skończonej odpowiedzi impulsowej charakteryzują się tym, Ŝe ich odpowiedź impulsowa ma ograniczoną długość równą ilości współczynników filtra ([1], [4]). W transmitancja tych filtrów występują jedynie zera (wszystkie bieguny są równe zero), a do wyznaczania wartości wyjściowych próbek wykorzystywane są oprócz bieŝącej jedynie wcześniejsze próbki wejściowe; brak jest pętli sprzęŝenia na wyjściu filtra. Transmitancję filtru FIR opisuje równanie: H M ( z) = k = 0 b k z k (2) Filtrację za pomocą filtru FIR moŝemy zapisać zatem jako splot sygnału wejściowego h m filtra: z odpowiedzią impulsową ( ) y M ( n) = b x( n m) = h( m) x( n m) m= 0 m M m= 0 (3) 108

109 1.2. Filtry IIR Filtry IIR (Infinitive Impulse Response), czyli filtry o nieskończonej odpowiedzi impulsowej charakteryzują się nieograniczoną długością odpowiedzi impulsowej, która w przypadku filtra stabilnego musi zawsze dąŝyć do zera ([1], [4]). W transmitancji tych filtrów występują zarówno zera jak i bieguny, a do wyznaczania wartości wyjściowych próbek wykorzystywane są oprócz próbek wejściowych próbki wyjściowe filtra występuje pętla sprzęŝenia na wyjściu układu. Transmitancję filtru IIR opisuje następujące równanie: H ( z) Y X ( z) ( z) M k= = = N Równanie filtracji za pomocą filtra IIR ma postać: k= 0 k bk z 0 (4) a k z k y M ( n) = h( m) x( n m) g( k ) y( n k ) m= 0 N k = 1 (5) 1.3. Struktury filtrów cyfrowych Strukturą filtru cyfrowego nazywamy graf przepływowy filtru, w którym informacja przepływa z jednego węzła do następnego i jest pomiędzy nimi przetwarzana ([1], [4]). Poprzez pojęcie przetwarzania rozumie się mnoŝenie przez współczynniki skalujące, dodawanie współczynników oraz opóźnianie w dziedzinie czasu. Podstawowe struktury filtrów cyfrowych przedstawione zostały na rysunkach x(n) b 0.y(n).x(n) b 0.y(n).x(n-1),z -1 b 1,z -1 b 1 I-α 1,z -1.x(n-2),z -1 b 2,z -1 b 2 I-α 2,z -1,b N-1 b M-1 I-α N-1.x(n-N),z -1 b N,z -1 b M I-α N,z -1 Rys Struktury bezpośrednie filtru typu FIR (po lewej stronie) i typu IIR (po prawej stronie). 109

110 e (n) 0 e (n) 1 e (n) 2 e (n) M.y(n). γ 1.γ 2.γ M.x(n) e (n) 0,z -1.γ 1.γ 2.γ M e (n) 1,z -1,z -1 e 2(n) e M(n) Rys Struktura kratowa (lattice) filtru typu FIR..x(n) e (n) M e 2(n) e 1(n) e 0(n).-γ M.-γ 2.-γ 1 e (n) M.γ M.γ e (n) 2,z -1 2 e (n). γ 1,z -1 1 e (n),z -1 0.c M.c 2.c 1.c 0.y(n) Rys Struktura kratowa (lattice) filtru typu IIR. d.x(n) s (n+1) 1.y(n) I-α 1,z -1 s (n) 1 c 1 I-α 2,z -1 s (n) 2 c 2 Rys Struktura bikwadratowa filtru typu IIR w zapisie zmiennych stanu. 110

111 2. Zapoznanie się ze stanowiskiem pomiarowym Budowa stanowiska pomiarowego. Stanowisko pomiarowe składa się z następujących elementów: Moduł DSK z procesorem sygnałowym TMS320C6713 połączony z komputerem za pomocą interfejsu USB. Karta akwizycji danych National Instruments PCIe-6251 zainstalowana w komputerze. Komputer wyposaŝony w środowisko Matlab 2006b oraz Code Composer Studio 3.0 Terminal karty NI A O0 A I0 A I2 Moduł DSK IN OUT Rys Schemat budowy stanowiska pomiarowego. Połączenie elementów stanowiska: Przewodem koncentrycznym BNC naleŝy połączyć ze sobą wyjście analogowe karty akwizycji danych oznaczone AO0 (pierwsze od lewej strony złącze w terminalu karty) z wejściem analogowym AI0 (środkowe złącze w terminalu karty) oraz z prawym kanałem wejściowym przetwornika analogowo-cyfrowego modułu DSK (złącze IN). Wyjście prawego kanału modułu DSK (OUT) naleŝy połączyć z wejściem analogowym karty oznaczonym AI2 (pierwsze od lewej strony złącze w terminalu karty). Schemat połączeniowy stanowiska przedstawia rysunek 2.1. Karta akwizycji danych National Instruments nie umoŝliwia sprzętowej wizualizacji mierzonych sygnałów. Dlatego teŝ w celu wizualizacji moŝna dodatkowo wejście i wyjście modułu DSK połączyć z dwoma kanałami oscyloskopu. W takim wypadku zaleca się połączenie wejścia modułu z pierwszym, a wyjścia z drugim kanałem. Spowodowane jest to faktem, Ŝe trigger w oscyloskopie uruchamiany jest z pierwszego kanału pomiarowego. 111

112 W przypadku pomiaru charakterystyk filtrów na wejście modułu DSK podawany jest zwykle znany sygnał o amplitudzie rzędu ok. 1 V. Amplituda sygnału na wyjściu modułu moŝe mieć róŝne wartości zaleŝne od tłumienia filtra. Połączenie wejścia modułu z pierwszym kanałem oscyloskopu pozwala zatem uniknąć problemów z triggerem. Uwaga: Procedury filtrujące wykorzystują tylko prawy kanał przetwornika. NaleŜy zwrócić na to szczególną uwagę podczas łączenia układu pomiarowego (wejściowy i wyjściowy przewód naleŝy podłączyć do prawego kanału górne wejścia w module DSK) Program Biblioteka Filtrów Cyfrowych. Program Biblioteka Filtrów Cyfrowych składa się z dwóch funkcjonalnie róŝnych modułów realizujących zadania w oddzielnych oknach programu Matlab. Są to: Biblioteka Filtrów Cyfrowych dla DSK TMS320C6713. Badanie Filtrów Cyfrowych. Zadania realizowane przez moduł programu zarządzającego stanowiskiem pomiarowym pogrupowane zostały według obszaru funkcjonalności. Oba moduły są odpowiedzialne za następujące elementy programu: a) Biblioteka Filtrów Cyfrowych dla DSK TMS320C6713: Pobieranie współczynników filtrów z programu SPTool lub zapisanych w postaci zmiennych w przestrzeni roboczej Matlaba. Konwersja współczynników do wymaganego kodu stałoprzecinkowego IQ. Wybór struktury filtra i źródła współczynników. Wizualizacja podstawowych charakterystyk filtrów (amplitudowej, fazowej, odpowiedzi impulsowej, opóźnienia grupowego oraz rozkładu zer i biegunów) z uwzględnieniem wybranego kodowania współczynników. W celu lepszej wizualizacji projektu moŝna wykorzystać dodatkowe okno Wykres Biblioteka Filtrów otwierane z panelu głównego za pomocą przycisku Odłącz. Łączenie z modułem DSK i sterowanie jego pracą. Wgrywanie projektów filtrów do modułu DSK. Wgrywanie współczynników filtrów oraz wartości zmiennych sterujących i kontrolnych do modułu DSK. b) Badanie Filtrów Cyfrowych: Pomiar następujących charakterystyk filtrów za pomocą karty akwizycji danych PCIe-6251 firmy National Instruments: charakterystyki amplitudowej metodą punkt po punkcie, charakterystyki amplitudowej za pomocą sygnału sin(x)/x, charakterystyki fazowej, stabilności filtru. Wszystkie charakterystyki mogą być ponadto mierzone z uwzględnieniem badania dynamiki układu (dla kilku amplitud sygnału pobudzającego). 112

113 Pomiar następujących charakterystyk filtrów z uŝyciem próbek pobieranych bezpośrednio z procesora za pomocą interfejsu RTDX przez łącze USB: charakterystyki amplitudowej metodą punkt po punkcie, charakterystyki amplitudowej za pomocą sygnału sin(x)/x, charakterystyki fazowej, stabilności filtru. Wizualizacja i zapis wyników pomiarów (zarówno danych pomiarowych jak i zmierzonych wartości). Uruchamianie aplikacji: Po sprawdzeniu dostępnego oprogramowania i sprzętu pomiarowego naleŝy uruchomić aplikację wywołując komendę start z linii poleceń środowiska Matlab w katalogu głównym programu. W ten sposób uruchomiony zostaje pierwszy moduł programu Biblioteka Filtrów Cyfrowych dla DSK TMS320C6713 (rys. 2.2). Z jego poziomu za pomocą przycisku Pomiary uruchomić moŝna moduł pomiarowy Badanie Filtrów Cyfrowych Moduł programu Biblioteka Filtrów Cyfrowych dla DSK TMS320C6713 Rys Główne okno programu Biblioteka Filtrów Cyfrowych. 113

114 a) Wybór struktury filtra Górne Menu umoŝliwia wybór struktury filtra (rys. 2.3) z pośród następujących grup: Fixed Point filtry ze współczynnikami kodowanymi stałoprzecinkowo: o Filtry FIR (Finitive Impulse Response): Bezpośredni, Kratowy (Lattice). o Filtry IIR (Infinitive Impulse Response): Bezpośredni, Kratowy (Lattice ARMA), Bikwadratowy, Bikwadratowy w zapisie zmiennych stanu (w przestrzeni stanów). Float Point filtry ze współczynnikami kodowanymi zmiennoprzecinkowo: o Filtry FIR: Bezpośredni, Kratowy (Lattice). o Filtry IIR: Bezpośredni, Bezpośredni typu 2, Kratowy (Lattice ARMA), Bikwadratowy, Bikwadratowy w zapisie zmiennych stanu (w przestrzeni stanów). DSP Lib - filtry z biblioteki filtrów cyfrowych DSP_Lib ver. 2.0 firmy Texas Instruments: o Filtry FIR: DSPF_sp_fir_gen, DSPF_sp_fircirc, DSPF_sp_fir_cplx, DSPF_sp_fir_r2, DSPF_dp_fir_gen, DSPF_dp_fircirc, DSPF_dp_fir_cplx, DSPF_dp_fir_r2, o Filtry IIR: DSPF_sp_biquad, DSPF_dp_biquad, Rys Przykład wyboru struktury filtra. 114

115 Informacja o aktualnie wybranej strukturze filtra pojawia się w górnej części okna głównego programu (rys. 2.4). Rys Informacja o aktualnie wybranej strukturze filtra. b) Pobranie współczynników filtra Program Biblioteka filtrów Cyfrowych umoŝliwia importowanie współczynników filtra bezpośrednio z programu Signal Processing Toolbox w Matlabie (SPTool) lub ze zmiennych num i den zadeklarowanych w przestrzeni roboczej Matlaba, gdzie num oznacza współczynniki licznika, a den współczynniki mianownika transmitancji filtra. W przypadku filtra typu FIR zmienna den powinna zawierać wartość 1. Źródło danych moŝe zostać skonfigurowane za pomocą opcji Źródło danych w menu górnym programu. Domyślne źródło danych to m-plik, czyli wartości z programu SPTool. Sposób wyboru źródła danych przedstawia rysunek 2.5. Rys Przykład wyboru źródła współczynników filtra. Informacja o aktualnie wybranym źródle współczynników wyświetlana jest w oknie głównym programu ponad przyciskiem odpowiedzialnym za pobieranie współczynników (rys. 2.6). Rys Informacja o aktualnym źródle współczynników filtra. Po zaprojektowaniu filtra w programie SPTool (program uruchamia się komendą sptool wywoływaną z linii poleceń Matlaba) moŝna pobrać współczynniki filtra do aplikacji Biblioteka Filtrów Cyfrowych. W tym celu naleŝy kliknąć przycisk Pobierz współczynniki (rys. 2.6). JeŜeli jako źródło danych wybrano program SPTool, a nie został on uruchomiony lub wybrano zmienne w Matlabie, a nie zostały one zdefiniowane to wyświetlone zostaną komunikaty o błędach przedstawione odpowiednio na rysunkach 2.7 i

116 Rys Komunikat o błędzie w przypadku próby pobrania współczynników z programu SPTool, gdy nie został on uruchomiony. Rys Komunikat o błędzie w przypadku próby pobrania współczynników ze zmiennych num i den, gdy nie zostały one zdefiniowane. JeŜeli pobranie współczynników nastąpiło bez błędów to w oknie głównym programu na górnym i dolnym wykresie pojawią się charakterystyki pobranego filtra (rys. 2.9). Rys Główne okno programu Biblioteka Filtrów Cyfrowych po pobraniu współczynników filtra. 116

117 JeŜeli wybrana aktualnie struktura jest niezgodna z zaprojektowanym filtrem (np. wybrano jedną ze struktur typu IIR, a pobrane współczynniki reprezentują filtr FIR) to wyświetlony zostanie odpowiedni komunikat o błędzie. MoŜliwa będzie dalsza praca z pobranymi współczynnikami, lecz nie będzie moŝliwości wgrania filtra do procesora DSP. Okno dialogowe z odpowiednim komunikatem przedstawia rysunek Rys Okno dialogowe informujące o niezgodności wybranej struktury filtra z załadowanymi współczynnikami. Po załadowaniu współczynników filtra i wyświetleniu charakterystyki amplitudowej i fazowej filtra odpowiednio na górnym i dolnym wykresie w programie, aktywne stają się przyciski odpowiedzialne za opcje wykresów. Strzałki w górę i w dół po prawej stronie obu wykresów umoŝliwiają zmianę aktualnie wyświetlanej charakterystyki (rys. 2.11) spośród następujących charakterystyk: Charakterystyka amplitudowa. Charakterystyka fazowa. Odpowiedź impulsowa. Opóźnienie grupowe. Rozkład zer i biegunów filtra. Rys Przyciski odpowiedzialne za zmiany wyświetlanych charakterystyk. Przycisk Org powoduje wyświetlenie domyślnej dla danego wykresu charakterystyki (charakterystyki amplitudowej dla wykresu górnego i fazowej dla dolnego). Przycisk Zoom umoŝliwia powiększenie oglądanej charakterystyki. Pole Hold panelu głównego umoŝliwia wyświetlanie wielu charakterystyk równocześnie na jednym wykresie. Jest on sprzęŝony z oddzielnym oknem do prezentacji charakterystyk (opisanym poniŝej). Oznacza to, Ŝe zaznaczenie pola powoduje wyświetlanie wielu charakterystyk równocześnie równieŝ w odłączonym panelu. 117

118 Po załadowaniu współczynników aktywny staje się równieŝ przycisk Odłącz (rys. 2.12) pozwalający na obserwację charakterystyk zaprojektowanego filtra w oddzielnym oknie. Rys Przycisk otwierający oddzielne okno programu do analizy charakterystyk zaprojektowanego filtra. Oddzielne okno programu umoŝliwiające analizę charakterystyk zaprojektowanych filtrów oraz ich zapisywanie do pliku przedstawia rysunek Rys Oddzielne okno prezentujące wybrane charakterystyki filtra. W oknie Wykres Biblioteka Filtrów dostępne są następujące przyciski: Zapisz zapisuje aktualną charakterystykę do pliku. Zoom umoŝliwia powiększanie wybranych obszarów wykresu. Pobierz dane pobiera aktualne dane z programu głównego. JeŜeli zmieniono ustawienia współczynników bądź struktury filtru w programie głównym to celem wizualizacji kolejnych charakterystyk w omawianym oknie naleŝy uŝyć opisanego przycisku. 118

119 Wyczyść czyści obszar wykresu. Strzałki umoŝliwiają przełączanie pomiędzy charakterystykami. Oryginalny przywraca charakterystykę aktualnie wyświetlaną na dolnym wykresie programu głównego. Dobór kwantyzacji współczynników JeŜeli pobrano współczynniki filtra a wybrana jest jedna ze struktur stałoprzecinkowych aktywne stają się pola typu pop-up umoŝliwiające wybór stopnia kwantyzacji współczynników (rys. 2.14). Rys Menu wyboru kodu stałoprzecinkowego IQ. Po pobraniu współczynników automatycznie wybierany jest najbardziej optymalny dla danego projektu, a zarazem najbardziej pojemny z kodów IQ. Pola pop-up przyjmują wartości odpowiadające jego charakterystyce. W celu zmiany stosowanego kodu naleŝy wykorzystać dostępne menu. Po zmianie kodowania nie naleŝy ponownie pobierać współczynników filtra. Spowoduje to powrót do ustawień domyślnych. c) Komunikacja z modułem W celu wgrania filtra do modułu DSK naleŝy nawiązać komunikację z procesorem. Nawiązywanie połączenia z procesorem Aby nawiązać połączenie z procesorem naleŝy kliknąć przycisk Połącz z TMS320C6713. Spowoduje to otwarcie okna dialogowego informującego o nawiązywaniu połączenia z modułem DSK (rys. 2.15). Połączenie z modułem moŝe zająć kilka do kilkunastu sekund 119

120 W tym czasie naleŝy czekać i nie wykonywać innych operacji w programie. Ponadto na pasku zadań pojawi się informacja o uruchamianiu w tle aplikacji Code Composer Studio Monitor (rys. 2.16). Rys Okno dialogowe informujące o nawiązywaniu połączenia z modułem DSK. Rys Informacja na pasku zadań o uruchomieniu programu Code Composer Studio Monitor. W przypadku problemów w nawiązaniu komunikacji z modułem pojawi się standardowe okno dialogowe programu Code Composer Studio (rys. 1.17). W takim wypadku naleŝy sprawdzić czy moduł DSK jest włączony i prawidłowo połączony komputerem a następnie kontynuować poprzez naciśnięcie przycisku Retry. Rys Okno dialogowe informujące o problemach w połączeniu z modułem DSK. W przypadku dalszych problemów i braku moŝliwości połączenia z modułem zostanie wyświetlony się komunikat o błędzie (rys. 2.18). Rys Okno dialogowe z informacją o nieudanej próbie połączenia z modułem DSK. 120

121 Udana próba połączenia z modułem DSK zakończy się wyświetleniem informacji Połączono z modułem tuŝ nad przyciskiem słuŝącym do rozpoczynania komunikacji (rys. 2.19). Rys Informacja o nawiązanym połączeniu z modułem DSK. d) Wgrywanie projektu filtra do procesora W celu wgrania projektu filtra oraz współczynników filtracji do procesora naleŝy wykorzystać przycisk Załaduj filtr do DSP dostępny w grupie przycisków sterujących pracą procesora (rys. 2.20). Rys Przyciski sterujące pracą procesora. JeŜeli przed próbą wgrania projektu filtra do procesora DSP nie nawiązano komunikacji z modułem DSK wyświetlony zostanie odpowiedni komunikat o błędzie (rys. 2.21). NaleŜy wówczas połączyć się z modułem w opisany wcześniej sposób. Rys Okno dialogowe z informacją o braku połączenia z modułem DSK. JeŜeli podjęto próbę wgrania projektu filtra do procesora DSP, a nie pobrano wcześniej współczynników wgrywanie zostanie przerwane i wyświetlona zostanie informacja o błędzie przedstawiona na rysunku

122 Rys Okno dialogowe z informacją o konieczności pobrania współczynników. JeŜeli podjęto próbę wgrania projektu filtra do procesora DSP, a pobrane wcześniej współczynniki nie odpowiadają wybranej strukturze wgrywanie zostanie przerwane i wyświetlona zostanie informacja przedstawiona na rysunku NaleŜy wówczas wybrać poprawnie strukturę filtra oraz ponownie pobrać współczynniki. Rys Okno dialogowe informujące o niezgodności wybranej struktury filtra z załadowanymi współczynnikami. Po wgraniu projektu filtra do procesora DSP program jest uruchamiany automatycznie, a w oknie głównym pojawia się odpowiednia informacja. Informacja o aktualnym stanie procesora wyświetlana jest w kolorze czerwonym w polu pod przyciskami sterującymi jego działaniem (rys. 2.24). Rys Informacja o aktualnym stanie procesora Moduł Badanie Filtrów Cyfrowych Moduł Badanie Filtrów Cyfrowych uruchamia się za pomocą przycisku Pomiary w oknie głównym programu Biblioteka Filtrów Cyfrowych (rys. 2.25). Rys Przycisk uruchamiający moduł Badanie Filtrów Cyfrowych. Okno główne modułu oprogramowania Badanie Filtrów Cyfrowych przedstawiono na rysunku

123 Rys Okno główne modułu oprogramowania Badanie Filtrów Cyfrowych. a) Wybór rodzaju mierzonej charakterystyki W celu wyboru rodzaju przeprowadzanego pomiaru naleŝy wykorzystać przyciski typu radio button przedstawione na rysunku Wybór pomiaru danej charakterystyki sprawia, Ŝe pozostałe pola konfiguracyjne niepotrzebne w danym pomiarze stają się nieaktywne. Rys Pola wyboru rodzaju mierzonej charakterystyki. 123

124 W programie dostępne są następujące typy pomiarów: Charakterystyka amplitudowa umoŝliwia pomiar charakterystyki amplitudowej filtra metodą punkt po punkcie : dla zadanych częstotliwości filtr pobudzany jest sygnałem o określonej amplitudzie, po czym mierzona jest amplituda na wyjściu układu. Charakterystyka amplitudowa sinc umoŝliwia pomiar charakterystyki filtra za pomocą sygnału szerokopasmowego sin(x)/x. Podczas jednego pomiaru filtr pobudzany jest sygnałem sin(x)/x, a uzyskana w ten sposób odpowiedź daje całą charakterystykę filtra w badanym zakresie częstotliwości. Pomiar jest obarczony duŝym błędem, stąd jego zastosowanie ogranicza się do orientacyjnej oceny projektu filtra. Charakterystyka fazowa pomiar przesunięcia fazowego na wejściu i wyjściu filtra realizowany metodą punkt po punkcie. Badanie stabilności pomiar stabilności filtra. Wykorzystana metoda bazuje na pomiarze współczynnika zawartości harmonicznych h w określonym przez uŝytkownika zakresie częstotliwości filtra. W przypadku niestabilności układu wartości współczynnika h będą kilku- bądź kilkunastokrotnie większe dla częstotliwości, w których filtr jest niestabilny. b) Ustawianie parametrów przeprowadzanych pomiarów Przed rozpoczęciem pomiarów naleŝy dobrać parametry pomiarów. Dostępne opcje przedstawia rysunek Rys Parametry pomiarów. Przyciski konfiguracyjne parametrów pomiarów posegregowane zostały w następujące grupy: Sposób pomiaru: Pomiar krokowy pomiar wykonywany jest określoną ilość punktów wpisaną w pole ilość punktów znajdujące się poniŝej. Podczas pomiarów w polu czas pozostały wyświetlany zostaje szacunkowy czas do zakończenia pomiarów, Pomiar czasowy pomiar wykonywany jest przez określony czas, którego wartość podana jest w polu czas pomiaru. Pole to pojawia się zamiast pola ilość punktów w przypadku zaznaczenia opcji pomiar czasowy, Ilość punktów określa ilość punktów pomiarowych. Pole staje się aktywne po zaznaczeniu opcji pomiar krokowy. Punkty pomiarowe dobierane są automatycznie 124

O sygnałach cyfrowych

O sygnałach cyfrowych O sygnałach cyfrowych Informacja Informacja - wielkość abstrakcyjna, która moŝe być: przechowywana w pewnych obiektach przesyłana pomiędzy pewnymi obiektami przetwarzana w pewnych obiektach stosowana do

Bardziej szczegółowo

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

Transformata Laplace a to przekształcenie całkowe funkcji f(t) opisane następującym wzorem:

Transformata Laplace a to przekształcenie całkowe funkcji f(t) opisane następującym wzorem: PPS 2 kartkówka 1 RÓWNANIE RÓŻNICOWE Jest to dyskretny odpowiednik równania różniczkowego. Równania różnicowe to pewne związki rekurencyjne określające w sposób niebezpośredni wartość danego wyrazu ciągu.

Bardziej szczegółowo

8. Realizacja projektowanie i pomiary filtrów IIR

8. Realizacja projektowanie i pomiary filtrów IIR 53 8. Realizacja projektowanie i pomiary filtrów IIR Cele ćwiczenia Realizacja na zestawie TMX320C5515 ezdsp prostych liniowych filtrów cyfrowych. Pomiary charakterystyk amplitudowych zrealizowanych filtrów

Bardziej szczegółowo

Spis treści. 1. Cyfrowy zapis i synteza dźwięku Schemat blokowy i zadania karty dźwiękowej UTK. Karty dźwiękowe. 1

Spis treści. 1. Cyfrowy zapis i synteza dźwięku Schemat blokowy i zadania karty dźwiękowej UTK. Karty dźwiękowe. 1 Spis treści 1. Cyfrowy zapis i synteza dźwięku... 2 2. Schemat blokowy i zadania karty dźwiękowej... 4 UTK. Karty dźwiękowe. 1 1. Cyfrowy zapis i synteza dźwięku Proces kodowania informacji analogowej,

Bardziej szczegółowo

Wprowadzenie. Spis treści. Analiza_sygnałów_-_ćwiczenia/Filtry

Wprowadzenie. Spis treści. Analiza_sygnałów_-_ćwiczenia/Filtry Analiza_sygnałów_-_ćwiczenia/Filtry Spis treści 1 Wprowadzenie 2 Filtry cyfrowe: powtórka z wykładu 2.1 Działanie filtra w dziedzinie czasu 2.2 Nazewnictwo 2.3 Przejście do dziedziny częstości 2.3.1 Działanie

Bardziej szczegółowo

ĆWICZENIE nr 3. Badanie podstawowych parametrów metrologicznych przetworników analogowo-cyfrowych

ĆWICZENIE nr 3. Badanie podstawowych parametrów metrologicznych przetworników analogowo-cyfrowych Politechnika Łódzka Katedra Przyrządów Półprzewodnikowych i Optoelektronicznych WWW.DSOD.PL LABORATORIUM METROLOGII ELEKTRONICZNEJ ĆWICZENIE nr 3 Badanie podstawowych parametrów metrologicznych przetworników

Bardziej szczegółowo

Przedmowa Wykaz oznaczeń Wykaz skrótów 1. Sygnały i ich parametry 1 1.1. Pojęcia podstawowe 1 1.2. Klasyfikacja sygnałów 2 1.3.

Przedmowa Wykaz oznaczeń Wykaz skrótów 1. Sygnały i ich parametry 1 1.1. Pojęcia podstawowe 1 1.2. Klasyfikacja sygnałów 2 1.3. Przedmowa Wykaz oznaczeń Wykaz skrótów 1. Sygnały i ich parametry 1 1.1. Pojęcia podstawowe 1 1.2. Klasyfikacja sygnałów 2 1.3. Sygnały deterministyczne 4 1.3.1. Parametry 4 1.3.2. Przykłady 7 1.3.3. Sygnały

Bardziej szczegółowo

Teoria przetwarzania A/C i C/A.

Teoria przetwarzania A/C i C/A. Teoria przetwarzania A/C i C/A. Autor: Bartłomiej Gorczyński Cyfrowe metody przetwarzania sygnałów polegają na przetworzeniu badanego sygnału analogowego w sygnał cyfrowy reprezentowany ciągiem słów binarnych

Bardziej szczegółowo

Ćwiczenie 4. Filtry o skończonej odpowiedzi impulsowej (SOI)

Ćwiczenie 4. Filtry o skończonej odpowiedzi impulsowej (SOI) Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 4. Filtry o skończonej odpowiedzi impulsowej (SOI) 1. Filtracja cyfrowa podstawowe

Bardziej szczegółowo

b n y k n T s Filtr cyfrowy opisuje się również za pomocą splotu dyskretnego przedstawionego poniżej:

b n y k n T s Filtr cyfrowy opisuje się również za pomocą splotu dyskretnego przedstawionego poniżej: 1. FILTRY CYFROWE 1.1 DEFIICJA FILTRU W sytuacji, kiedy chcemy przekształcić dany sygnał, w inny sygnał niezawierający pewnych składowych np.: szumów mówi się wtedy o filtracji sygnału. Ogólnie Filtracją

Bardziej szczegółowo

1.5. Sygnały. Sygnał- jest modelem zmian w czasie pewnej wielkości fizycznej lub stanu obiektu fizycznego

1.5. Sygnały. Sygnał- jest modelem zmian w czasie pewnej wielkości fizycznej lub stanu obiektu fizycznego Sygnał- jest modelem zmian w czasie pewnej wielkości fizycznej lub stanu obiektu fizycznego Za pomocąsygnałów przekazywana jest informacja. Sygnałjest nośnikiem informacji. Za pomocą sygnału moŝna: badać

Bardziej szczegółowo

2. Próbkowanie Sygnały okresowe (16). Trygonometryczny szereg Fouriera (17). Częstotliwość Nyquista (20).

2. Próbkowanie Sygnały okresowe (16). Trygonometryczny szereg Fouriera (17). Częstotliwość Nyquista (20). SPIS TREŚCI ROZDZIAŁ I SYGNAŁY CYFROWE 9 1. Pojęcia wstępne Wiadomości, informacje, dane, sygnały (9). Sygnał jako nośnik informacji (11). Sygnał jako funkcja (12). Sygnał analogowy (13). Sygnał cyfrowy

Bardziej szczegółowo

Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe

Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe Przetworniki cyfrowo / analogowe W cyfrowych systemach pomiarowych często zachodzi konieczność zmiany sygnału cyfrowego na analogowy, np. w celu

Bardziej szczegółowo

Przetworniki A/C. Ryszard J. Barczyński, 2010 2015 Materiały dydaktyczne do użytku wewnętrznego

Przetworniki A/C. Ryszard J. Barczyński, 2010 2015 Materiały dydaktyczne do użytku wewnętrznego Przetworniki A/C Ryszard J. Barczyński, 2010 2015 Materiały dydaktyczne do użytku wewnętrznego Parametry przetworników analogowo cyfrowych Podstawowe parametry przetworników wpływające na ich dokładność

Bardziej szczegółowo

Cyfrowe przetwarzanie sygnałów Jacek Rezmer -1-

Cyfrowe przetwarzanie sygnałów Jacek Rezmer -1- Cyfrowe przetwarzanie sygnałów Jacek Rezmer -1- Filtry cyfrowe cz. Zastosowanie funkcji okien do projektowania filtrów SOI Nierównomierności charakterystyki amplitudowej filtru cyfrowego typu SOI można

Bardziej szczegółowo

Technika audio część 2

Technika audio część 2 Technika audio część 2 Wykład 12 Projektowanie cyfrowych układów elektronicznych Mgr inż. Łukasz Kirchner lukasz.kirchner@cs.put.poznan.pl http://www.cs.put.poznan.pl/lkirchner Wprowadzenie do filtracji

Bardziej szczegółowo

3. Przetwarzanie analogowo-cyfrowe i cyfrowo-analogowe... 43

3. Przetwarzanie analogowo-cyfrowe i cyfrowo-analogowe... 43 Spis treści 3 Przedmowa... 9 Cele książki i sposoby ich realizacji...9 Podziękowania...10 1. Rozległość zastosowań i głębia problematyki DSP... 11 Korzenie DSP...12 Telekomunikacja...14 Przetwarzanie sygnału

Bardziej szczegółowo

Podstawy Przetwarzania Sygnałów

Podstawy Przetwarzania Sygnałów Adam Szulc 188250 grupa: pon TN 17:05 Podstawy Przetwarzania Sygnałów Sprawozdanie 6: Filtracja sygnałów. Filtry FIT o skończonej odpowiedzi impulsowej. 1. Cel ćwiczenia. 1) Przeprowadzenie filtracji trzech

Bardziej szczegółowo

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Instrukcja do zajęć laboratoryjnych z przedmiotu: Przetwarzanie Sygnałów Kod: TS1A400027 Temat ćwiczenia:

Bardziej szczegółowo

Adam Korzeniewski - p. 732 dr inż. Grzegorz Szwoch - p. 732 dr inż.

Adam Korzeniewski - p. 732 dr inż. Grzegorz Szwoch - p. 732 dr inż. Adam Korzeniewski - adamkorz@sound.eti.pg.gda.pl, p. 732 dr inż. Grzegorz Szwoch - greg@sound.eti.pg.gda.pl, p. 732 dr inż. Piotr Odya - piotrod@sound.eti.pg.gda.pl, p. 730 Plan przedmiotu ZPS Cele nauczania

Bardziej szczegółowo

Przetwornik analogowo-cyfrowy

Przetwornik analogowo-cyfrowy Przetwornik analogowo-cyfrowy Przetwornik analogowo-cyfrowy A/C (ang. A/D analog to digital; lub angielski akronim ADC - od słów: Analog to Digital Converter), to układ służący do zamiany sygnału analogowego

Bardziej szczegółowo

Egzamin / zaliczenie na ocenę*

Egzamin / zaliczenie na ocenę* WYDZIAŁ PODSTAWOWYCH PROBLEMÓW TECHNIKI Zał. nr 4 do ZW 33/01 KARTA PRZEDMIOTU Nazwa w języku polskim CYFROWE PRZETWARZANIE SYGNAŁÓW Nazwa w języku angielskim DIGITAL SIGNAL PROCESSING Kierunek studiów

Bardziej szczegółowo

x(n) x(n-1) x(n-2) D x(n-n+1) h N-1

x(n) x(n-1) x(n-2) D x(n-n+1) h N-1 Laboratorium Układy dyskretne LTI projektowanie filtrów typu FIR Z1. apisać funkcję y = filtruj(x, h), która wyznacza sygnał y będący wynikiem filtracji sygnału x przez filtr FIR o odpowiedzi impulsowej

Bardziej szczegółowo

Temat ćwiczenia. Pomiary przemieszczeń metodami elektrycznymi

Temat ćwiczenia. Pomiary przemieszczeń metodami elektrycznymi POLITECHNIKA ŚLĄSKA W YDZIAŁ TRANSPORTU Temat ćwiczenia Pomiary przemieszczeń metodami elektrycznymi Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z elektrycznymi metodami pomiarowymi wykorzystywanymi

Bardziej szczegółowo

Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) kierunkowy (podstawowy / kierunkowy / inny HES)

Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) kierunkowy (podstawowy / kierunkowy / inny HES) Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2012/2013

Bardziej szczegółowo

Przetwarzanie sygnałów

Przetwarzanie sygnałów Przetwarzanie sygnałów Ćwiczenie 5 Filtry o nieskończonej odpowiedzi impulsowej (NOI) Spis treści 1 Wprowadzenie 1 1.1 Filtry jednobiegunowe....................... 1 1.2 Filtry wąskopasmowe........................

Bardziej szczegółowo

A-2. Filtry bierne. wersja

A-2. Filtry bierne. wersja wersja 04 2014 1. Zakres ćwiczenia Celem ćwiczenia jest zrozumienie propagacji sygnałów zmiennych w czasie przez układy filtracji oparte na elementach rezystancyjno-pojemnościowych. Wyznaczenie doświadczalne

Bardziej szczegółowo

Statyczne badanie wzmacniacza operacyjnego - ćwiczenie 7

Statyczne badanie wzmacniacza operacyjnego - ćwiczenie 7 Statyczne badanie wzmacniacza operacyjnego - ćwiczenie 7 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi zastosowaniami wzmacniacza operacyjnego, poznanie jego charakterystyki przejściowej

Bardziej szczegółowo

Przetworniki analogowo-cyfrowe - budowa i działanie" anie"

Przetworniki analogowo-cyfrowe - budowa i działanie anie Przetworniki analogowo-cyfrowe - budowa i działanie" anie" Wprowadzenie Wiele urządzeń pomiarowych wyposaŝonych jest obecnie w przetworniki A/C. Końcówki takich urządzeń to najczęściej typowe interfejsy

Bardziej szczegółowo

Kodowanie informacji. Kody liczbowe

Kodowanie informacji. Kody liczbowe Wykład 2 2-1 Kodowanie informacji PoniewaŜ komputer jest urządzeniem zbudowanym z układów cyfrowych, informacja przetwarzana przez niego musi być reprezentowana przy pomocy dwóch stanów - wysokiego i niskiego,

Bardziej szczegółowo

13.2. Filtry cyfrowe

13.2. Filtry cyfrowe Bibliografia: 1. Chassaing Rulph, Digital Signal Processing and Applications with the C6713 and C6416 DSK, Wiley-Interscience 2005. 2. Borodziewicz W., Jaszczak K., Cyfrowe Przetwarzanie sygnałów, Wydawnictwo

Bardziej szczegółowo

Filtracja. Krzysztof Patan

Filtracja. Krzysztof Patan Filtracja Krzysztof Patan Wprowadzenie Działanie systemu polega na przetwarzaniu sygnału wejściowego x(t) na sygnał wyjściowy y(t) Równoważnie, system przetwarza widmo sygnału wejściowego X(jω) na widmo

Bardziej szczegółowo

KARTA MODUŁU KSZTAŁCENIA

KARTA MODUŁU KSZTAŁCENIA KARTA MODUŁU KSZTAŁCENIA I. Informacje ogólne I. 1 Nazwa modułu kształcenia Analiza i przetwarzanie sygnałów 2 Nazwa jednostki prowadzącej moduł (należy wskazać nazwę zgodnie ze Statutem PSW Instytut,

Bardziej szczegółowo

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika Wielkości liczbowe Wykład z Podstaw Informatyki dla I roku BO Piotr Mika Wprowadzenie, liczby naturalne Komputer to podstawowe narzędzie do wykonywania obliczeń Jeden bajt reprezentuje 0 oraz liczby naturalne

Bardziej szczegółowo

Struktury specjalizowane wykorzystywane w mikrokontrolerach

Struktury specjalizowane wykorzystywane w mikrokontrolerach Struktury specjalizowane wykorzystywane w mikrokontrolerach Przetworniki analogowo-cyfrowe i cyfrowoanalogowe Interfejsy komunikacyjne Zegary czasu rzeczywistego Układy nadzorujące Układy generacji sygnałów

Bardziej szczegółowo

Zakres wymaganych wiadomości do testów z przedmiotu Metrologia. Wprowadzenie do obsługi multimetrów analogowych i cyfrowych

Zakres wymaganych wiadomości do testów z przedmiotu Metrologia. Wprowadzenie do obsługi multimetrów analogowych i cyfrowych Zakres wymaganych wiadomości do testów z przedmiotu Metrologia Ćwiczenie 1 Wprowadzenie do obsługi multimetrów analogowych i cyfrowych budowa i zasada działania przyrządów analogowych magnetoelektrycznych

Bardziej szczegółowo

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Instrukcja do zajęć laboratoryjnych z przedmiotu: Przetwarzanie Sygnałów Kod: TS1A400027 Temat ćwiczenia:

Bardziej szczegółowo

KOMPUTEROWE SYSTEMY POMIAROWE

KOMPUTEROWE SYSTEMY POMIAROWE KOMPUTEROWE SYSTEMY POMIAROWE Dr inż. Eligiusz PAWŁOWSKI Politechnika Lubelska Wydział Elektrotechniki i Informatyki Prezentacja do wykładu dla EMST - ITwE Semestr zimowy Wykład nr 12 Prawo autorskie Niniejsze

Bardziej szczegółowo

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Instrukcja do zajęć laboratoryjnych z przedmiotu: Przetwarzanie Sygnałów Kod: TS1C400027 Temat ćwiczenia:

Bardziej szczegółowo

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Instrukcja do zajęć laboratoryjnych z przedmiotu: Przetwarzanie Sygnałów Kod: TS1A400027 Temat ćwiczenia:

Bardziej szczegółowo

Podstawowe funkcje przetwornika C/A

Podstawowe funkcje przetwornika C/A ELEKTRONIKA CYFROWA PRZETWORNIKI CYFROWO-ANALOGOWE I ANALOGOWO-CYFROWE Literatura: 1. Rudy van de Plassche: Scalone przetworniki analogowo-cyfrowe i cyfrowo-analogowe, WKŁ 1997 2. Marian Łakomy, Jan Zabrodzki:

Bardziej szczegółowo

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Instrukcja do zajęć laboratoryjnych z przedmiotu: Przetwarzanie Sygnałów Kod: TS1C400027 Temat ćwiczenia:

Bardziej szczegółowo

Przetwarzanie analogowo-cyfrowe sygnałów

Przetwarzanie analogowo-cyfrowe sygnałów Przetwarzanie analogowo-cyfrowe sygnałów A/C 111111 1 Po co przekształcać sygnał do postaci cyfrowej? Można stosować komputerowe metody rejestracji, przetwarzania i analizy sygnałów parametry systemów

Bardziej szczegółowo

Wydział Elektryczny. Katedra Telekomunikacji i Aparatury Elektronicznej. Konstrukcje i Technologie w Aparaturze Elektronicznej.

Wydział Elektryczny. Katedra Telekomunikacji i Aparatury Elektronicznej. Konstrukcje i Technologie w Aparaturze Elektronicznej. Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Konstrukcje i Technologie w Aparaturze Elektronicznej Ćwiczenie nr 5 Temat: Przetwarzanie A/C. Implementacja

Bardziej szczegółowo

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łan Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łan Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn Metody numeryczne Wykład 2 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Arytmetyka zmiennopozycyjna

Bardziej szczegółowo

WZMACNIACZ OPERACYJNY. Podstawowe właściwości wzmacniaczy operacyjnych. Rodzaj wzmacniacza Rezystancja wejściowa Rezystancja wyjściowa

WZMACNIACZ OPERACYJNY. Podstawowe właściwości wzmacniaczy operacyjnych. Rodzaj wzmacniacza Rezystancja wejściowa Rezystancja wyjściowa WZMACNIACZ OPEACYJNY kłady aktywne ze wzmacniaczami operacyjnymi... Podstawowe właściwości wzmacniaczy operacyjnych odzaj wzmacniacza ezystancja wejściowa ezystancja wyjściowa Bipolarny FET MOS-FET Idealny

Bardziej szczegółowo

IMPLEMENTATION OF THE SPECTRUM ANALYZER ON MICROCONTROLLER WITH ARM7 CORE IMPLEMENTACJA ANALIZATORA WIDMA NA MIKROKONTROLERZE Z RDZENIEM ARM7

IMPLEMENTATION OF THE SPECTRUM ANALYZER ON MICROCONTROLLER WITH ARM7 CORE IMPLEMENTACJA ANALIZATORA WIDMA NA MIKROKONTROLERZE Z RDZENIEM ARM7 Łukasz Deńca V rok Koło Techniki Cyfrowej dr inż. Wojciech Mysiński opiekun naukowy IMPLEMENTATION OF THE SPECTRUM ANALYZER ON MICROCONTROLLER WITH ARM7 CORE IMPLEMENTACJA ANALIZATORA WIDMA NA MIKROKONTROLERZE

Bardziej szczegółowo

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ ELEMETY ELEKTRONIKI LABORATORIUM Kierunek NAWIGACJA Specjalność Transport morski Semestr II Ćw. 2 Filtry analogowe układy całkujące i różniczkujące Wersja opracowania

Bardziej szczegółowo

AKADEMIA GÓRNICZO HUTNICZA Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Katedra Elektroniki

AKADEMIA GÓRNICZO HUTNICZA Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Katedra Elektroniki AKADEMIA GÓRNICZO HUTNICZA Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Katedra Elektroniki Laboratorium Techniki Sensorowej Ćwiczenie nr 2 Badanie własności dynamicznych termopary OPIS

Bardziej szczegółowo

Ćw. 7 Przetworniki A/C i C/A

Ćw. 7 Przetworniki A/C i C/A Ćw. 7 Przetworniki A/C i C/A 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z zasadami przetwarzania sygnałów analogowych na cyfrowe i cyfrowych na analogowe poprzez zbadanie przetworników A/C i

Bardziej szczegółowo

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika Wielkości liczbowe Wykład z Podstaw Informatyki Piotr Mika Wprowadzenie, liczby naturalne Komputer to podstawowe narzędzie do wykonywania obliczeń Jeden bajt reprezentuje oraz liczby naturalne od do 255

Bardziej szczegółowo

AiR_CPS_1/3 Cyfrowe przetwarzanie sygnałów Digital Signal Processing

AiR_CPS_1/3 Cyfrowe przetwarzanie sygnałów Digital Signal Processing Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2013/2014

Bardziej szczegółowo

Ćwiczenie - 1 OBSŁUGA GENERATORA I OSCYLOSKOPU. WYZNACZANIE CHARAKTERYSTYKI AMPLITUDOWEJ I FAZOWEJ NA PRZYKŁADZIE FILTRU RC.

Ćwiczenie - 1 OBSŁUGA GENERATORA I OSCYLOSKOPU. WYZNACZANIE CHARAKTERYSTYKI AMPLITUDOWEJ I FAZOWEJ NA PRZYKŁADZIE FILTRU RC. Ćwiczenie - 1 OBSŁUGA GENERATORA I OSCYLOSKOPU. WYZNACZANIE CHARAKTERYSTYKI AMPLITUDOWEJ I FAZOWEJ NA PRZYKŁADZIE FILTRU RC. Spis treści 1 Cel ćwiczenia 2 2 Podstawy teoretyczne 2 2.1 Charakterystyki częstotliwościowe..........................

Bardziej szczegółowo

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Instrukcja do zajęć laboratoryjnych z przedmiotu: Przetwarzanie Sygnałów Kod: TS1C400027 Temat ćwiczenia:

Bardziej szczegółowo

Przetwarzanie sygnałów z zastosowaniem procesorów sygnałowych - opis przedmiotu

Przetwarzanie sygnałów z zastosowaniem procesorów sygnałowych - opis przedmiotu Przetwarzanie sygnałów z zastosowaniem procesorów sygnałowych - opis przedmiotu Informacje ogólne Nazwa przedmiotu Przetwarzanie sygnałów z zastosowaniem procesorów sygnałowych Kod przedmiotu 06.5-WE-EP-PSzZPS

Bardziej szczegółowo

CHARAKTERYSTYKI CZĘSTOTLIWOŚCIOWE

CHARAKTERYSTYKI CZĘSTOTLIWOŚCIOWE CHARAKTERYSTYKI CZĘSTOTLIWOŚCIOWE Do opisu członów i układów automatyki stosuje się, oprócz transmitancji operatorowej (), tzw. transmitancję widmową. Transmitancję widmową () wyznaczyć można na podstawie

Bardziej szczegółowo

1. Modulacja analogowa, 2. Modulacja cyfrowa

1. Modulacja analogowa, 2. Modulacja cyfrowa MODULACJA W16 SMK 2005-05-30 Jest operacja mnożenia. Jest procesem nakładania informacji w postaci sygnału informacyjnego m.(t) na inny przebieg o wyższej częstotliwości, nazywany falą nośną. Przyczyna

Bardziej szczegółowo

Adam Korzeniewski p Katedra Systemów Multimedialnych

Adam Korzeniewski p Katedra Systemów Multimedialnych Adam Korzeniewski adamkorz@sound.eti.pg.gda.pl p. 732 - Katedra Systemów Multimedialnych Sygnały dyskretne są z reguły przetwarzane w komputerach (zwykłych lub wyspecjalizowanych, takich jak procesory

Bardziej szczegółowo

Przetwarzanie i transmisja danych multimedialnych. Wykład 9 Kodowanie podpasmowe. Przemysław Sękalski.

Przetwarzanie i transmisja danych multimedialnych. Wykład 9 Kodowanie podpasmowe. Przemysław Sękalski. Przetwarzanie i transmisja danych multimedialnych Wykład 9 Kodowanie podpasmowe Przemysław Sękalski sekalski@dmcs.pl Politechnika Łódzka Katedra Mikroelektroniki i Technik Informatycznych DMCS Wykład opracowano

Bardziej szczegółowo

PRZETWORNIKI C / A PODSTAWOWE PARAMETRY

PRZETWORNIKI C / A PODSTAWOWE PARAMETRY PRZETWORIKI C / A PODSTAWOWE PARAMETRY Rozdzielczość przetwornika C/A - Określa ją liczba - bitów słowa wejściowego. - Definiuje się ją równieŝ przez wartość związaną z najmniej znaczącym bitem (LSB),

Bardziej szczegółowo

Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L

Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 4. Filtry o skończonej odpowiedzi impulsowej (SOI) 1. Filtracja cyfrowa podstawowe

Bardziej szczegółowo

Wzmacniacze, wzmacniacze operacyjne

Wzmacniacze, wzmacniacze operacyjne Wzmacniacze, wzmacniacze operacyjne Schemat ideowy wzmacniacza Współczynniki wzmocnienia: - napięciowy - k u =U wy /U we - prądowy - k i = I wy /I we - mocy - k p = P wy /P we >1 Wzmacniacz w układzie

Bardziej szczegółowo

Adam Korzeniewski p Katedra Systemów Multimedialnych

Adam Korzeniewski p Katedra Systemów Multimedialnych Adam Korzeniewski adamkorz@sound.eti.pg.gda.pl p. 732 - Katedra Systemów Multimedialnych Sygnały dyskretne są z reguły przetwarzane w komputerach (zwykłych lub wyspecjalizowanych, takich jak procesory

Bardziej szczegółowo

Cechy karty dzwiękowej

Cechy karty dzwiękowej Karta dzwiękowa System audio Za generowanie sygnału dźwiękowego odpowiada system audio w skład którego wchodzą Karta dźwiękowa Głośniki komputerowe Większość obecnie produkowanych płyt głównych posiada

Bardziej szczegółowo

SPRZĘTOWA REALIZACJA FILTRÓW CYFROWYCH TYPU SOI

SPRZĘTOWA REALIZACJA FILTRÓW CYFROWYCH TYPU SOI 1 ĆWICZENIE VI SPRZĘTOWA REALIZACJA FILTRÓW CYFROWYCH TYPU SOI (00) Celem pracy jest poznanie sposobu fizycznej realizacji filtrów cyfrowych na procesorze sygnałowym firmy Texas Instruments TMS320C6711

Bardziej szczegółowo

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania. Podstawy Automatyki

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania. Podstawy Automatyki Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania Podsta Automatyki Transmitancja operatorowa i widmowa systemu, znajdowanie odpowiedzi w dziedzinie s i w

Bardziej szczegółowo

Procesory Sygnałowe Digital Signal Processors. Elektrotechnika II Stopień Ogólnoakademicki

Procesory Sygnałowe Digital Signal Processors. Elektrotechnika II Stopień Ogólnoakademicki Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2012/2013

Bardziej szczegółowo

POMIARY WYBRANYCH PARAMETRÓW TORU FONICZNEGO W PROCESORACH AUDIO

POMIARY WYBRANYCH PARAMETRÓW TORU FONICZNEGO W PROCESORACH AUDIO Politechnika Rzeszowska Katedra Metrologii i Systemów Diagnostycznych Laboratorium Elektroniczne przyrządy i techniki pomiarowe POMIARY WYBRANYCH PARAMETRÓW TORU FONICZNEGO W PROCESORACH AUDIO Grupa Nr

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: moduł specjalności obowiązkowy: Sieci komputerowe Rodzaj zajęć: wykład, laboratorium I KARTA PRZEDMIOTU CEL PRZEDMIOTU PRZEWODNIK PO PRZEDMIOCIE

Bardziej szczegółowo

5 Filtry drugiego rzędu

5 Filtry drugiego rzędu 5 Filtry drugiego rzędu Cel ćwiczenia 1. Zrozumienie zasady działania i charakterystyk filtrów. 2. Poznanie zalet filtrów aktywnych. 3. Zastosowanie filtrów drugiego rzędu z układem całkującym Podstawy

Bardziej szczegółowo

Kodowanie podpasmowe. Plan 1. Zasada 2. Filtry cyfrowe 3. Podstawowy algorytm 4. Zastosowania

Kodowanie podpasmowe. Plan 1. Zasada 2. Filtry cyfrowe 3. Podstawowy algorytm 4. Zastosowania Kodowanie podpasmowe Plan 1. Zasada 2. Filtry cyfrowe 3. Podstawowy algorytm 4. Zastosowania Zasada ogólna Rozkład sygnału źródłowego na części składowe (jak w kodowaniu transformacyjnym) Wada kodowania

Bardziej szczegółowo

Przekształcenia sygnałów losowych w układach

Przekształcenia sygnałów losowych w układach INSTYTUT TELEKOMUNIKACJI ZAKŁAD RADIOKOMUNIKACJI Instrukcja laboratoryjna z przedmiotu Sygnały i kodowanie Przekształcenia sygnałów losowych w układach Warszawa 010r. 1. Cel ćwiczenia: Ocena wpływu charakterystyk

Bardziej szczegółowo

CZWÓRNIKI KLASYFIKACJA CZWÓRNIKÓW.

CZWÓRNIKI KLASYFIKACJA CZWÓRNIKÓW. CZWÓRNK jest to obwód elektryczny o dowolnej wewnętrznej strukturze połączeń elementów, mający wyprowadzone na zewnątrz cztery zaciski uporządkowane w dwie pary, zwane bramami : wejściową i wyjściową,

Bardziej szczegółowo

Dynamiczne badanie wzmacniacza operacyjnego- ćwiczenie 8

Dynamiczne badanie wzmacniacza operacyjnego- ćwiczenie 8 Dynamiczne badanie wzmacniacza operacyjnego- ćwiczenie 8 1. Cel ćwiczenia Celem ćwiczenia jest dynamiczne badanie wzmacniacza operacyjnego, oraz zapoznanie się z metodami wyznaczania charakterystyk częstotliwościowych.

Bardziej szczegółowo

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q LABORAORIUM PROCESORY SYGAŁOWE W AUOMAYCE PRZEMYSŁOWEJ Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q 1. Zasady arytmetyki stałoprzecinkowej. Kody stałopozycyjne mają ustalone

Bardziej szczegółowo

Ćwiczenie nr 11. Projektowanie sekcji bikwadratowej filtrów aktywnych

Ćwiczenie nr 11. Projektowanie sekcji bikwadratowej filtrów aktywnych Ćwiczenie nr 11 Projektowanie sekcji bikwadratowej filtrów aktywnych 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi filtrami elektrycznymi o charakterystyce dolno-, środkowo- i górnoprzepustowej,

Bardziej szczegółowo

Transformata Fouriera

Transformata Fouriera Transformata Fouriera Program wykładu 1. Wprowadzenie teoretyczne 2. Algorytm FFT 3. Zastosowanie analizy Fouriera 4. Przykłady programów Wprowadzenie teoretyczne Zespolona transformata Fouriera Jeżeli

Bardziej szczegółowo

Laboratorium nr 4: Porównanie filtrów FIR i IIR. skończonej odpowiedzi impulsowej (FIR) zawsze stabilne, mogą mieć liniową charakterystykę fazową

Laboratorium nr 4: Porównanie filtrów FIR i IIR. skończonej odpowiedzi impulsowej (FIR) zawsze stabilne, mogą mieć liniową charakterystykę fazową Teoria Sygnałów sprawozdanie z zajęć laboratoryjnych Zajęcia z dnia 07.01.2009 Prowadzący: dr inż. Stanisław Nuckowski Sprawozdanie wykonał: Tomasz Witka Laboratorium nr 4: Porównanie filtrów FIR i IIR

Bardziej szczegółowo

Filtry cyfrowe procesory sygnałowe

Filtry cyfrowe procesory sygnałowe Filtry cyfrowe procesory sygnałowe Rozwój wirtualnych przyrządów pomiarowych Algorytmy CPS działające na platformie TMX 320C5515e ZDSP USB STICK realizowane w laboratorium FCiPS Rozszerzenie ćwiczeń o

Bardziej szczegółowo

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10). Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 1. Systemy liczbowe Cel dydaktyczny: Poznanie zasad reprezentacji liczb w systemach pozycyjnych o różnych podstawach. Kodowanie liczb dziesiętnych

Bardziej szczegółowo

Opis efektów kształcenia dla modułu zajęć

Opis efektów kształcenia dla modułu zajęć Nazwa modułu: Teoria i przetwarzanie sygnałów Rok akademicki: 2013/2014 Kod: EEL-1-524-s Punkty ECTS: 6 Wydział: Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Kierunek: Elektrotechnika

Bardziej szczegółowo

Zastosowania liniowe wzmacniaczy operacyjnych

Zastosowania liniowe wzmacniaczy operacyjnych UKŁADY ELEKTRONICZNE Instrukcja do ćwiczeń laboratoryjnych Zastosowania liniowe wzmacniaczy operacyjnych Laboratorium Układów Elektronicznych Poznań 2008 1. Cel i zakres ćwiczenia Celem ćwiczenia jest

Bardziej szczegółowo

Analiza właściwości filtra selektywnego

Analiza właściwości filtra selektywnego Ćwiczenie 2 Analiza właściwości filtra selektywnego Program ćwiczenia. Zapoznanie się z przykładową strukturą filtra selektywnego 2 rzędu i zakresami jego parametrów. 2. Analiza widma sygnału prostokątnego..

Bardziej szczegółowo

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych Mechatronika i inteligentne systemy produkcyjne Modelowanie systemów mechatronicznych Platformy przetwarzania danych 1 Sterowanie procesem oparte na jego modelu u 1 (t) System rzeczywisty x(t) y(t) Tworzenie

Bardziej szczegółowo

(1.1) gdzie: - f = f 2 f 1 - bezwzględna szerokość pasma, f śr = (f 2 + f 1 )/2 częstotliwość środkowa.

(1.1) gdzie: - f = f 2 f 1 - bezwzględna szerokość pasma, f śr = (f 2 + f 1 )/2 częstotliwość środkowa. MODULACJE ANALOGOWE 1. Wstęp Do przesyłania sygnału drogą radiową stosuje się modulację. Modulacja polega na odzwierciedleniu przebiegu sygnału oryginalnego przez zmianę jednego z parametrów fali nośnej.

Bardziej szczegółowo

A-4. Filtry aktywne RC

A-4. Filtry aktywne RC A-4. A-4. wersja 4 4. Wstęp Filtry aktywne II rzędu RC to układy liniowe, stacjonarne realizowane za pomocą elementu aktywnego jakim jest wzmacniacz, na który załoŝono sprzęŝenie zwrotne zbudowane z elementów

Bardziej szczegółowo

WYZNACZANIE CECH PUNKTOWYCH SYGNAŁÓW POMIAROWYCH

WYZNACZANIE CECH PUNKTOWYCH SYGNAŁÓW POMIAROWYCH PODSTAWY SYGNAŁÓW POMIAROWYCH I METROLOGII WYZNACZANIE CECH PUNKTOWYCH SYGNAŁÓW POMIAROWYCH WSTĘP TEORETYCZNY Sygnałem nazywamy przebieg dowolnej wielkości fizycznej mogącej być nośnikiem informacji Opis

Bardziej szczegółowo

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński Temat: Systemy zapisu liczb. Cele kształcenia: Zapoznanie z systemami zapisu liczb: dziesiętny, dwójkowy, ósemkowy, szesnastkowy.

Bardziej szczegółowo

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG Kodowanie transformacyjne Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG Zasada Zasada podstawowa: na danych wykonujemy transformacje która: Likwiduje korelacje Skupia energię w kilku komponentach

Bardziej szczegółowo

K p. K o G o (s) METODY DOBORU NASTAW Metoda linii pierwiastkowych Metody analityczne Metoda linii pierwiastkowych

K p. K o G o (s) METODY DOBORU NASTAW Metoda linii pierwiastkowych Metody analityczne Metoda linii pierwiastkowych METODY DOBORU NASTAW 7.3.. Metody analityczne 7.3.. Metoda linii pierwiastkowych 7.3.2 Metody doświadczalne 7.3.2.. Metoda Zieglera- Nicholsa 7.3.2.2. Wzmocnienie krytyczne 7.3.. Metoda linii pierwiastkowych

Bardziej szczegółowo

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Instrukcja do zajęć laboratoryjnych z przedmiotu: Przetwarzanie Sygnałów Kod: TS1A400027 Temat ćwiczenia:

Bardziej szczegółowo

PRZETWORNIKI CYFROWO - ANALOGOWE POMIARY, WŁAŚCIWOŚCI, ZASTOSOWANIA.

PRZETWORNIKI CYFROWO - ANALOGOWE POMIARY, WŁAŚCIWOŚCI, ZASTOSOWANIA. strona 1 PRZETWORNIKI CYFROWO - ANALOGOWE POMIARY, WŁAŚCIWOŚCI, ZASTOSOWANIA. Cel ćwiczenia Celem ćwiczenia jest przedstawienie istoty działania przetwornika C/A, źródeł błędów przetwarzania, sposobu definiowania

Bardziej szczegółowo

Rozdział 5. Przetwarzanie analogowo-cyfrowe (A C)

Rozdział 5. Przetwarzanie analogowo-cyfrowe (A C) 5. 0. W p r ow adzen ie 1 2 1 Rozdział 5 Przetwarzanie analogowo-cyfrowe (A C) sygnał przetwarzanie A/C sygnał analogowy cyfrowy ciągły dyskretny próbkowanie: zamiana sygnału ciągłego na dyskretny konwersja

Bardziej szczegółowo

Klasyfikacja metod przetwarzania analogowo cyfrowego (A/C, A/D)

Klasyfikacja metod przetwarzania analogowo cyfrowego (A/C, A/D) Klasyfikacja metod przetwarzania analogowo cyfrowego (A/C, A/D) Metody pośrednie Metody bezpośrednie czasowa częstotliwościowa kompensacyjna bezpośredniego porównania prosta z podwójnym całkowaniem z potrójnym

Bardziej szczegółowo

XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej. XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej

XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej. XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej Zestaw pytań finałowych numer : 1 1. Wzmacniacz prądu stałego: własności, podstawowe rozwiązania układowe 2. Cyfrowy układ sekwencyjny - schemat blokowy, sygnały wejściowe i wyjściowe, zasady syntezy 3.

Bardziej szczegółowo

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles). Wykład 1 1-1 Informatyka nauka zajmująca się zbieraniem, przechowywaniem i przetwarzaniem informacji. Informacja obiekt abstrakcyjny, który w postaci zakodowanej moŝe być przechowywany, przesyłany, przetwarzany

Bardziej szczegółowo

KARTA PRZEDMIOTU. Techniki przetwarzania sygnałów, D1_3

KARTA PRZEDMIOTU. Techniki przetwarzania sygnałów, D1_3 KARTA PRZEDMIOTU 1. Informacje ogólne Nazwa przedmiotu i kod (wg planu studiów): Nazwa przedmiotu (j. ang.): Kierunek studiów: Specjalność/specjalizacja: Poziom kształcenia: Profil kształcenia: Forma studiów:

Bardziej szczegółowo

Arytmetyka binarna - wykład 6

Arytmetyka binarna - wykład 6 SWB - Arytmetyka binarna - wykład 6 asz 1 Arytmetyka binarna - wykład 6 Adam Szmigielski aszmigie@pjwstk.edu.pl SWB - Arytmetyka binarna - wykład 6 asz 2 Naturalny kod binarny (NKB) pozycja 7 6 5 4 3 2

Bardziej szczegółowo

Zjawisko aliasingu. Filtr antyaliasingowy. Przecieki widma - okna czasowe.

Zjawisko aliasingu. Filtr antyaliasingowy. Przecieki widma - okna czasowe. Katedra Mechaniki i Podstaw Konstrukcji Maszyn POLITECHNIKA OPOLSKA Komputerowe wspomaganie eksperymentu Zjawisko aliasingu.. Przecieki widma - okna czasowe. dr inż. Roland PAWLICZEK Zjawisko aliasingu

Bardziej szczegółowo