Ćwiczenie nr 4 (Filtry właściwości, projektowanie, przetwarzanie sygnałów)

Podobne dokumenty
Wersja do wydruku - bez części teoretycznej

Wersja do wydruku - bez części teoretycznej

Laboratorium Cyfrowego Przetwarzania Sygnałów. Preskrypt do v.2014z ćwiczenie nr 4 z 10 (Filtry właściwości, projektowanie, przetwarzanie sygnałów)

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

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

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

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

Przetwarzanie sygnałów

8. Realizacja projektowanie i pomiary filtrów IIR

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

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

Andrzej Leśnicki Laboratorium CPS Ćwiczenie 7 1/7 ĆWICZENIE 7. Splot liniowy i kołowy sygnałów

Cyfrowe przetwarzanie sygnałów Jacek Rezmer -1-

ANALIZA SYGNAŁÓ W JEDNÓWYMIARÓWYCH

Ćwiczenie 6 Projektowanie filtrów cyfrowych o skończonej i nieskończonej odpowiedzi impulsowej

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

Ćwiczenie 3. Właściwości przekształcenia Fouriera

Przetwarzanie sygnałów

Podstawy Przetwarzania Sygnałów

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

DYSKRETNE PRZEKSZTAŁCENIE FOURIERA C.D.

SPRZĘTOWA REALIZACJA FILTRÓW CYFROWYCH TYPU SOI

Stabilność. Krzysztof Patan

Opis matematyczny. Równanie modulatora. Charakterystyka statyczna. Po wprowadzeniu niewielkich odchyłek od ustalonego punktu pracy. dla 0 v c.

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

W celu obliczenia charakterystyki częstotliwościowej zastosujemy wzór 1. charakterystyka amplitudowa 0,

CHARAKTERYSTYKI CZĘSTOTLIWOŚCIOWE

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

Analiza właściwości filtrów dolnoprzepustowych

ZASTOSOWANIA PRZEKSZTAŁCENIA ZET

STUDIA MAGISTERSKIE DZIENNE LABORATORIUM SYGNAŁÓW, SYSTEMÓW I MODULACJI. Filtracja cyfrowa. v.1.0

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

ĆWICZENIE 6 Transmitancje operatorowe, charakterystyki częstotliwościowe układów aktywnych pierwszego, drugiego i wyższych rzędów

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Filtracja. Krzysztof Patan

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Analiza właściwości filtra selektywnego

CYFROWE PRZTWARZANIE SYGNAŁÓW (Zastosowanie transformacji Fouriera)

Kartkówka 1 Opracowanie: Próbkowanie częstotliwość próbkowania nie mniejsza niż podwojona szerokość przed spróbkowaniem.

Technika audio część 2

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

13.2. Filtry cyfrowe

Andrzej Leśnicki Laboratorium CPS Ćwiczenie 6 1/8 ĆWICZENIE 6. Dyskretne przekształcenie Fouriera DFT

Przetwarzanie sygnałów dyskretnych

DYSKRETNA TRANSFORMACJA FOURIERA

Interpolacja, aproksymacja całkowanie. Interpolacja Krzywa przechodzi przez punkty kontrolne

Ćwiczenie nr 6 Charakterystyki częstotliwościowe

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

PROCESORY SYGNAŁOWE - LABORATORIUM. Ćwiczenie nr 04

Filtry aktywne filtr środkowoprzepustowy

5 Filtry drugiego rzędu

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski

SYNTEZA obwodów. Zbigniew Leonowicz

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

Laboratorium Przetwarzania Sygnałów Biomedycznych

Projektowanie układów regulacji w dziedzinie częstotliwości. dr hab. inż. Krzysztof Patan, prof. PWSZ

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Teoria sterowania - studia niestacjonarne AiR 2 stopień

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

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

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

7. Szybka transformata Fouriera fft

Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne.

Filtry aktywne filtr górnoprzepustowy

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

Następnie przypominamy (dla części studentów wprowadzamy) podstawowe pojęcia opisujące funkcje na poziomie rysunków i objaśnień.

Przetwarzanie sygnałów

Podstawy Automatyki. Wykład 5 - stabilność liniowych układów dynamicznych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Metody numeryczne I Równania nieliniowe

Filtrowanie a sploty. W powyższym przykładzie proszę zwrócić uwagę na efekty brzegowe. Wprowadzenie Projektowanie filtru Zadania

KARTA MODUŁU KSZTAŁCENIA

8. Analiza widmowa metodą szybkiej transformaty Fouriera (FFT)

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

A-2. Filtry bierne. wersja

Analiza obrazów - sprawozdanie nr 2

Rozdział 2. Liczby zespolone

Podstawy Automatyki. Wykład 5 - stabilność liniowych układów dynamicznych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Dyskretne przekształcenie Fouriera cz. 2

Podstawy Automatyki. Wykład 5 - stabilność liniowych układów dynamicznych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Podstawowe człony dynamiczne

Wzmacniacze operacyjne

Przekształcenie Z. Krzysztof Patan

przy warunkach początkowych: 0 = 0, 0 = 0

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

WZMACNIACZ OPERACYJNY

Adam Korzeniewski p Katedra Systemów Multimedialnych

TEORIA OBWODÓW I SYGNAŁÓW LABORATORIUM

Technika regulacji automatycznej

FFT i dyskretny splot. Aplikacje w DSP

Transformata Fouriera

CZWÓRNIKI KLASYFIKACJA CZWÓRNIKÓW.

Definicja i własności wartości bezwzględnej.

Teoria sygnałów Signal Theory. Elektrotechnika I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Przetwarzanie sygnałów z czasem ciągłym

Całka nieoznaczona, podstawowe wiadomości

Charakterystyka amplitudowa i fazowa filtru aktywnego

Automatyka i Regulacja Automatyczna Laboratorium Zagadnienia Seria II

Transkrypt:

Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do v.2016l Ćwiczenie nr 4 (Filtry właściwości, projektowanie, przetwarzanie sygnałów) na prawach rękopisu Jacek Misiurewicz Krzysztof Kulpa Piotr Samczyński Mateusz Malanowski Piotr Krysik Łukasz Maślikowski Damian Gromek Artur Gromek Marcin K. Bączyk Zakład Teorii Obwodów i Sygnałów Instytut Systemów Elektronicznych Wydział Elektroniki i Technik Informacyjnych Politechnika Warszawska Uwagi redakcyjne prosimy zgłaszać do: jmisiure@elka.pw.edu.pl tel. 5441 Warszawa, 20 czerwca 2016, 23:34

Spis treści 4 Filtry właściwości, projektowanie, przetwarzanie sygnałów 3 4.1 Podstawy teoretyczne.............................. 3 4.1.1 Uśrednianie z wagami czyli filtry SOI (FIR).............. 3 4.1.2 Sprzężenie zwrotne czyli filtry NOI (IIR)............... 5 4.1.3 Projektowanie filtrów.......................... 7 4.1.4 Triki implementacyjne......................... 12 4.1.5 Zadania do pracy własnej studenta................... 16 4.2 Dostępny sprzęt i oprogramowanie....................... 16 4.2.1 Standardowe funkcje MATLABa R.................. 16 4.3 Eksperymenty do wykonania w laboratorium projektowanie i wykorzystanie filtrów cyfrowych................................ 17 4.3.1 Filtr SOI i NOI, związek zer i biegunów z charakterystyką...... 17 4.3.2 Bezpośrednie projektowanie filtrów SOI metoda obcięcia szeregu Fouriera................................. 19 4.3.3 Ekstra Projektowanie filtrów SOI metodą optymalizacyjną...... 22 4.3.4 Projektowanie filtrów NOI z prototypu analogowego......... 22 4.3.5 Realizacja filtrów i zastosowania filtrów................ 23 2

Ćwiczenie 4 Filtry właściwości, projektowanie, przetwarzanie sygnałów Opiekun ćwiczenia: PK i ŁM 4.1. Podstawy teoretyczne Najczęściej spotykane filtry cyfrowe są to układy liniowe i stacjonarne a więc składają się z operacji liniowych wykonywanych na przetwarzanym sygnale: opóźnienia, mnożenia przez stałą, sumowania. W uzasadnionych przypadkach stosuje się inne filtry nieliniowe albo niestacjonarne, ale ich analiza jest znacznie trudniejsza. W opisie filtrów liniowych i stacjonarnych można stosować takie bardzo przydatne pojęcia jak: odpowiedź impulsowa h[n] transmitancja H(z) albo H(e jθ ) charakterystyki częstotliwościowe 1 : amplitudowa A(θ) = H(e jθ ) fazowa ϕ(θ) = arg H(e jθ ) opóźnienie grupowe τ(θ) = dϕ(θ). dθ Należy zauważyć, że fizyczne realizacje filtrów cyfrowych są liniowe tylko w przybliżeniu pracują na sygnałach skwantowanych, mnożenie wykonują ze skończoną precyzją, i mają ograniczony zakres przetwarzanych liczb. 4.1.1. Uśrednianie z wagami czyli filtry SOI (FIR) Najprostsze w realizacji i w analizie oraz projektowaniu są filtry, w których pewna liczba przeszłych próbek jest zapamiętywana a następnie sumowana z wagami (rys. 4.1). Zauważ, że na schematach filtrów z 1 oznacza opóźnienie sygnału o jedną próbkę. 1 Po angielsku najczęsciej używa się terminu frequency response, a więc odpowiedź częstotliwościowa ; po polsku zamiast amplitudowa charakterystyka częstotliwościowa często pisze się się skrótowo charakterystyka amplitudowa albo charakterystyka częstotliwościowa. Oczywiście najbardziej poprawnie jest używać terminu dokładnego. 3

4 Filtry właściwości, projektowanie, przetwarzanie sygnałów 2016-06-20 23:34 Rys. 4.1: Filtr SOI w strukturze transwersalnej Jak łatwo sobie wyobrazić, patrząc na rysunek, filtr taki realizuje bezpośrednio splot sygnału wejściowego z ciągiem b[k] = {b 0, b 1, b 2, b 3 }. K y(n) = x(n k)b(k) (4.1) k=0 To oznacza, że ciąg współczynników b[k] jest po prostu odpowiedzią impulsową tego filtru, i jest to filtr o skończonej odpowiedzi impulsowej SOI (a po angielsku: Finite Impulse Response FIR). W tym wypadku długość odpowiedzi wynosi 4. Gdy przypomnimy sobie, że splot w dziedzinie czasu odpowiada mnożeniu w dziedzinie widma 2, zobaczymy w okamgnieniu, że charakterystyka częstotliwościowa filtru to transformata Fouriera jego odpowiedzi impulsowej a w przypadku filtru SOI ciągu jego współczynników. Spróbujmy zapisać równanie (4.1) w dziedzinie przekształcenia Z. Przekształcenie Z jest liniowe to znaczy, że sumowanie i skalowanie (sygnałów) w dziedzinie n można przenieść na takie same operacje (na transformatach tych sygnałów) w dziedzinie z. Natomiast opóżnieniu w dziedzinie czasu x(n n 0 ) odpowiada mnożenie X(z) przez z n 0. Otrzymujemy więc K Y (z) = X(z) z k b(k) (4.2) k=0 Ciągu współczynników b k na razie nie przekształcamy z punktu widzenia sygnału to są stałe skalujące! Możemy jednak wyciągnąć X(z) przed sumę (to jest bardzo przydatna własność przekształcenia Z możliwość rozdzielenia operatora opóżnienia od transformaty sygnału) K Y (z) = X(z) z k b(k) = X(z) H(z) (4.3) k=0 W ten sposób zobaczyliśmy, że H(z) = K k=0 b(k)z k czyli H(z) jest to transformata Z odpowiedzi impulsowej filtru (a dla filtru SOI ciągu jego współczynników). Gdyby więc b[n] = 1, 3, 3, 1, to H(z) = 1 3z 1 + 3z 2 z 3. Jest to wielomian rzędu 3 (liczy się najwyższa potęga z 1 ), czyli mamy do czynienia z filtrem rzędu 3. Zauważ, że filtr SOI rzędu 3 ma 3 bloki opóźnienia, ale 4 współczynniki. 2 Uwaga, to jest proste dla sygnałów o ograniczonej energii (z widmem ciągłym i o takich sygnałach tu mówimy) jeśli widmo jest dyskretne, splot w dziedzinie czasu musi być splotem kołowym (okresowym).

2016-06-20 23:34 Filtry właściwości, projektowanie, przetwarzanie sygnałów 5 Równie szybko uzyskamy charakterystykę częstotliwościową. Podstawiając z = e jθ do wzoru definiującego przekształcenie Z otrzymuje się przekształcenie Fouriera (inaczej można to sformułować obliczając transformatę Z na okręgu jednostkowym z = e jθ... ). Zatem aby otrzymać charakterystykę częstotliwościową filtru SOI wystarczy: zapisać transformatę Z odpowiedzi impulsowej podstawić z = e jθ i gotowe teraz można np. obliczyć i wykreślić moduł A(θ) = H(e jθ ) Wielomian H(z) w przypadku filtru SOI określa jednoznacznie charakterystykę filtru. Ponieważ wielomian można opisać (z dokładnościa do stałej skalującej) położeniem jego pierwiastków, H(z) = C (z z 1 )(z z 2 )(z z 3 )... (4.4) warto się zastanowić, o czym mówią nam pierwiastki H(z). Otóż położenia pierwiastków (zer transmitancji) w pobliżu okręgu jednostkowego (lub na nim) wyznaczają częstotliwości, dla których filtr ma znaczne tłumienie. Aby to zrozumieć, zapiszmy w podobnej postaci A(θ) A(θ) = H(z) z=e jθ = C e jθ z 1 e jθ z 2 e jθ z 3... (4.5) Widać, że zawsze, gdy odległość kartezjańska punktu z = e jθ od jakiegoś zera z i jest niewielka, A(θ) jest pod silnym wpływem tego zera. 4.1.2. Sprzężenie zwrotne czyli filtry NOI (IIR) Układy filtrów SOI zawierały operację opóźnienia tylko dla sygnału wejściowego. Jeśli do sumy wprowadzimy także opóźniony sygnał z wyjścia, otrzymamy układ ze sprzężeniem zwrotnym. W takim układzie raz wprowadzone pobudzenie może nigdy nie zaniknąć. Dlatego tę klasę filtrów nazywamy filtrami NOI (o nieskończonej odpowiedzi impulsowej; po angielsku Infinite Impulse Response IIR). x(n) + y(n) a delay Rys. 4.2: Bardzo prosty filtr NOI Przeanalizujmy co dzieje się w układzie jak na rys. 4.2. y(n) = x(n) + ay(n 1) (4.6) Y (z) = X(z) + ay (z)z 1 (4.7) 1 Y (z) = X(z) 1 az 1 (4.8) H(z) = Y (z) X(z) = 1 1 az 1 = z z a a więc h(n) = a n u(n) jeśli szukamy rozwiązania przyczynowego. (4.9)

6 Filtry właściwości, projektowanie, przetwarzanie sygnałów 2016-06-20 23:34 Rys. 4.3: Charakterystyka amplitudowa filtru z rys. 4.2 Spróbujmy wyznaczyć charakterystykę amplitudową filtru. H(z) = z z a ejθ H(e jθ ) = e jθ a H(e jθ 1 ) = e jθ a H(e jθ 1 ) = cosθ a + jsinθ = 1 1 2a cosθ + a 2 (4.10) (4.11) (4.12) (4.13) Funkcję tę wykreślono na rys. 4.3 w funkcji częstotliwości unormowanej (czyli θ 2π ). Jak widać, H(z) jest funkcją wymierną, czyli ilorazem dwóch wielomianów. Wielomian mianownika ma pierwiastek w punkcie a jest to biegun funkcji H(z), i ten biegun jest odpowiedzialny za składnik a n u(n) w odpowiedzi impulsowej. Każdą funkcję wymierną można rozłożyć na ułamki proste; w przypadku transmitancji taki rozkład pozwala łatwo znaleźć jej odwrotną transformatę Z (czyli odpowiedź impulsową układu). Jeśli X(z) jest funkcją wymierną z M zerami i N różnymi 3 biegunami d k, X(z) = M N r=0 B r z r + N A k 1 d k z, A 1 k = (1 d k z 1 ) X(z) k=1 z=dk Szukanie transformaty odwrotnej z tak rozłożonego wielomianu jest proste każdy biegun d k generuje nam składową wykładniczą u(n)d n k. Łatwo teraz wyjaśnić, dlaczego bieguny muszą być wewnątrz okręgu jednostkowego dla d k > 1 taka składowa narasta wykładniczo. 3 Co dzieje się przy biegunach wielokrotnych, zalecamy sprawdzić w podręczniku analizy z pierwszego roku studiów.

2016-06-20 23:34 Filtry właściwości, projektowanie, przetwarzanie sygnałów 7 A 0 (e jθ ) dopuszczalne zafalowania w pasmie przepustowym aproksymacja wielomianem pasmo przepustowe minimalne tłumienie w pasmie zaporowym 0 pasmo zaporowe π θ pasmo przejściowe Rys. 4.4: Opis tolerancji charakterystyki filtru Warto zauważyć, że para biegunów sprzężonych (w zapisie biegunowym: re +jθ i re jθ ) wygeneruje razem u(n) r n (e +jθn + e jθn ) czyli zanikającą 4 wykładniczo kosinusoidę. 4.1.3. Projektowanie filtrów Co to znaczy zaprojektować filtr? Zdefiniować wymagania (co właściwie chcemy od filtru) Określić, czy filtr będzie NOI czy SOI (z tego wynika inny sposób projektowania, inne niebezpieczeństwa i inne implementacje). Określić rząd filtru (szukamy najniższego rzędu, który pozwala spełnić wymagania ale często zdarza się, że mamy też ograniczenie maksymalnego rzędu wynikające z możliwości realizacyjnych, i wtedy wymagania trzeba nagiąć). Znaleźć współczynniki filtru Zdecydować o szczegółach implementacji (nie zawsze można filtr wysokiego rzędu zrealizować wprost ze wzoru; trzeba zabezpieczyć się przed kumulacją błędów numerycznych, przed przekroczeniem zakresu dynamiki itd.) Jak opisać wymagania na charakterystykę filtru? Zdecydować, dla jakich częstotliwości filtr ma przepuszczać sygnał (pasmo przepustowe passband), dla jakich ma tłumić (pasmo zaporowe stopband), a dla jakich jest nam obojętne co będzie (pasmo przejściowe transition band). Opisać dopuszczalne tolerancje: zafalowania (ang. ripple), minimalne tłumienie (ang. attenuation) patrz rys. 4.4. Nie przesadzać z precyzowaniem wymagań dać metodom projektowania trochę swobody (np. pasmo przejściowe). Zadanie projektowania filtru zbyt idealnego może skończyć się niepowodzeniem albo niepotrzebną komplikacją implementacji. Zdecydować czy zależy nam na liniowości fazy (stałości opóźnienia grupowego). 4 Chyba, że r > 1, wtedy będzie narastająca ale układów z takimi biegunami zazwyczaj unikamy.

8 Filtry właściwości, projektowanie, przetwarzanie sygnałów 2016-06-20 23:34 Aproksymacja charakterystyki albo Chcemy znaleźć najlepszą funkcję wymierną b 0 + b 1 z 1 +... + b M z M 1 + a 1 z 1 +... + a N z N (NOI) b 0 + b 1 z 1 +... + b M z M (SOI) która dobrze wypełni nasze wymagania. Nie należy zapominać, że chcemy zaprojektować filtr stabilny i przyczynowy 5. Innymi słowy, projektując filtr rozwiązujemy zagadnienie aproksymacji wielomianowej. Niestety, wielomian opisujący funkcję A(θ) jest wielomianem trygonometrycznym (H(z) po podstawieniu z = e jθ ). Takie zagadnienie (w przeciwieństwie do zwykłej aproksymacji wielomianowej) nie jest łatwe do rozwiązania. Dlatego chętnie stosuje się tu metody optymalizacyjne, polegające w dużym uproszczeniu na heurystycznym poszukiwaniu współczynników dających najlepsze przybliżenie żądanej 6 charakterystyki. W niniejszym ćwiczeniu spróbujemy jednak pokazać kilka metod algorytmicznych, tj. takich, w których po wykonaniu znanej liczby kroków na pewno osiągniemy sukces. Opóźnienie grupowe Opóźnienie grupowe jest to parametr mówiący o tym, jak opóźniana jest obwiednia impulsu o danej częstotliwości. W wielu zastosowaniach ważne jest, aby różne składowe przechodziły przez układ z tym samym opóźnieniem inaczej następuje dyspersja sygnału, która jest zjawiskiem niepożądanym: dyspersja w torze telekomunikacyjnym może powodować interferencję międzysymbolową i inne błędy demodulacji transmisji cyfrowej; dyspersja w torze audio powoduje spadek jakości odsłuchu. Opóźnienie grupowe matematycznie definiuje się jako zanegowaną pochodną charakterystyki fazowej względem częstotliwości: τ(θ) = dϕ(θ)/dθ (4.14) Można udowodnić, że filtr, którego odpowiedź impulsowa jest symetryczna względem pewnego punktu P : 2P Z h(p + n) = h(p n) (4.15) lub antysymetryczna h(p + n) = h(p n) (4.16) będzie miał stałe opóźnienie grupowe (i wyniesie ono P czyli może być całkowite lub połówkowe). Prosty dowód pozostawiamy Czytelnikowi 7. 5 Przyczynowość jest ważna, jeśli filtr ma pracować w czasie rzeczywistym. Jeżeli filtrujemy zarejestrowany sygnał, możemy użyć filtru nieprzyczynowego bieg czasu w sygnale nie jest związany z czasem fizycznym wykonania obliczeń. 6 Słowo żądana można też napisać bez polskich liter: zadana i, o dziwo, sens się nie zmieni. 7 Wystarczy zacząć od nieprzyczynowego filtru z P = 0 i można zobaczyć po co komu ta symetria.

2016-06-20 23:34 Filtry właściwości, projektowanie, przetwarzanie sygnałów 9 Decyzja: SOI czy NOI? Skrótowo podamy tu wady ( ) i zalety (+) obu typów filtrów Filtry SOI (FIR): + łatwo zaprojektować metodą algorytmiczną + zawsze są stabilne + łatwo w nich zapanować nad zakresem dynamicznym sygnału + typowe metody ich projektowania gwarantują stałe opóźnienie grupowe + pozwalają stosunkowo łatwo zrealizować charakterystykę pasmowozaporową wymagają wysokich rzędów do osiągnięcia wąskich pasm przejściowych Filtry NOI (IIR): + pozwalają osiągnąć wymaganą charakterystykę znacznie mniejszym kosztem (obliczeń i pamięci) + stosunkowo łatwo w nich implementować charakterystykę pasmowoprzepustową niosą ze sobą ryzyko niestabilności są wrażliwe na efekty kwantowania współczynników wymagają dodatkowych zabiegów w celu ograniczenia ryzyka przekroczenia zakresu liczbowego są trudne w projektowaniu nie mogą zapewnić stałego opóźnienia grupowego SOI: metoda obcięcia odpowiedzi impulsowej (szeregu Fouriera) Metoda obcięcia odpowiedzi impulsowej jest prosta, po przeprowadzeniu projektowania zgodnie z podanym przepisem uzyskujemy dobry wynik w określonej, deterministycznej ilości obliczeń. (to wartoby zilustrować serią rysunków) Metodę pokażemy na przykładzie filtru dolnoprzepustowego z pasmem przepustowym do θ p. Zaczynamy od idealnego filtru: A 0 (θ) = 1 dla θ < θ p 0 dla θ p < θ π i o zerowej8 fazie czyli H 0 (e jθ ) = A 0 (θ). Odpowiedź impulsową obliczymy z odwrotnej transformaty Fouriera: h 0 (n) = 1 π H 0 (e jθ )e jnθ dθ = θ p 2π π π sin nθ p n θ p = 1 π sin nθ p n i otrzymujemy idealny, ale nieprzyczynowy filtr o nieskończonej odpowiedzi... Przycinamy więc odpowiedź, aby była skończona: h P [n] = h 0 [n] g[n] (funkcja g[n] = 0 dla n > P czyli okno, np. prostokątne) Aby filtr był przyczynowy wystarczy przesunąć odpowiedź impulsową (opóźnić sygnał o P próbek), tak, aby lewa skrajna próbka znalazła się w n = 0: h[n] = h P [n P ] Ostatecznie otrzymamy H(z) = 2P n=0 h(n) z n = z P H P (z) 8 Jak coś jest stale równe zero, to jest liniową funkcją dowolnej zmiennej np. zmiennej θ.

10 Filtry właściwości, projektowanie, przetwarzanie sygnałów 2016-06-20 23:34 Rys. 4.5: Efekt Gibbsa (zielony) i jego zmniejszenie z użyciem okna Hamminga (niebieski) Jest to filtr o liniowej charakterystyce fazowej a więc o stałym opóźnieniu grupowym równym P (z poprzedniego rozdziału pamiętamy że to jest ważne w wielu zastosowaniach np. telekomunikacyjnych filtrowane impulsy nie ulegną dyspersji). Jak ma się taki obcięty filtr do filtru idealnego? Aby odpowiedzieć na to pytanie, znów uciekniemy się do mnożenia w dziedzinie czasu i równoważnego splatania w dziedzinie widma. Otóż, obcinając odpowiedź impulsową pomnożyliśmy ją przez okno prostokątne g[n] o długości L = 2P + 1. To znaczy, że w dziedzinie sin Lθ/2 sin θ/2. widma spletliśmy idealną charakterystykę z funkcją G(θ) = Taki splot: rozmył nam ostre przejście z pasma przepustowego do zaporowego uzyskało ono teraz praktycznie szerokość równą szerokości listka głównego G(θ) przeniósł nieco energii z pasma przepustowego do zaporowego, splatając z listkami bocznymi G(θ) skutkiem są zafalowania w pasmie przepustowym i niepełne tłumienie w pasmie zaporowym (w obu przypadkach zobaczymy tu kształt listków bocznych jest to znany z syntezy sygnału prostokątnego efekt Gibbsa). Efekt zafalowań możemy zmniejszyć używając innego okna (rys. 4.5) ale kosztem będzie szersze pasmo przejściowe (bo lepsze okna mają szerszy listek główny G(θ)). Warto podkreślić, że obcięcie oknem prostokątnym prowadzi do optymalnej aproksymacji w sensie średniokwadratowym (która jednak nie jest optymalna w sensie zdrowego rozsądku). SOI i NOI metody optymalizacyjne Metody optymalizacyjne projektowania filtrów zazwyczaj pozwalają spełnić wymagania przy niższym rzędzie filtru, niż metody deterministyczne. Za to obarczone są ryzykiem długich obliczeń w czasie projektowania i ewentualnego nieuzyskania dobrego rozwiązania. Metody optymalizacyjne rozwiązywania wszelkich zagadnień polegają na sformułowaniu funkcji celu i znalezieniu jej maksimum lub odwrotnie, sformułowaniu funkcji kary i szukanie minimum. Nie jest celem tego przedmiotu wykład metod, jakimi się to osiąga; ograniczymy się do pokazania, jak taką funkcję kary można sformułować. Otóż celem przy projektowaniu filtru jest uzyskanie charakterystyki A(θ) mozliwie bliskiej charakterystyce idealnej A 0 (θ) oznacza to, że chcielibyśmy minimalizować odchyłkę A(θ) A 0 (θ) na całym interesującym nas przedziale wartości θ (możemy np. wykluczyć z minimalizacji pasmo przejściowe). Aby zastosować metody optymalizacji, trzeba ten nasz

2016-06-20 23:34 Filtry właściwości, projektowanie, przetwarzanie sygnałów 11 cel sprowadzić do minimalizacji pewnej wartości skalarnej ε, charakteryzującej odchyłkę na całym przedziale. Ponieważ do minimalizacji zatrudnimy komputer, odchyłkę będziemy obliczać w skończonej liczbie punktów z tego przedziału (przy czym niektóre metody zmieniają rozkład tych punktów w trakcie iteracji). Popularne podejście zwane średniokwadratowym polega na sumowaniu kwadratów odchyłek: ε = k A(θ k ) A 0 (θ k ) 2 (4.17) Podejście średniokwadratowe często prowadzi do efektywnych algorytmów minimalizacji. Warto jednak przypomnieć sobie przykład efektu Gibbsa: zachodzi on właśnie dla najlepszego średniokwadratowo przybliżenia funkcji prostokątnej; mimo, że średniokwadratowy błąd jest mały, to maksymalny błąd pozostaje duży. Dlatego w projektowaniu filtrów często stosuje się podejście zwane minimaksowym minimalizuje się w nim maksymalną odchyłkę. Ponieważ to prowadzi do nieciekawych własności funkcji kary 9 często przybliżamy tę funkcję sumą błędów podniesionych do wysokiej potęgi (duże wartości p, a często p narastające w kolejnych iteracjach): ε = k A(θ k ) A 0 (θ k ) 2p (4.18) Praktycznie taką metodykę realizują gotowe funkcje MATLABa R : funkcja firpm pozwala zaprojektować filtr SOI metodą minimaksową 10 funkcja yulewalk aproksymuje średniokwadratowo wymaganą charakterystykę dla filtru NOI. NOI projektowanie za pomocą prototypu analogowego Poniższe metody projektowania pozwalają uzyskać stosunkowo dobre wyniki przy deterministycznym nakładzie obliczeń. We wstępnych rozważaniach zauważyliśmy, że potrzebujemy niełatwej aproksymacji zadanej funkcji wielomianami trygonometrycznymi. Dla filtrów analogowych opracowano wiele metod łatwej aproksymacji zwykłymi wielomianami. Tu spróbujemy ten olbrzymi zasób wiedzy wykorzystać, projektując filtr analogowy a następnie przenosząc projekt do dziedziny filtrów cyfrowych. Zasadniczymi różnicami między pojęciem częstotliwości dla sygnałów z czasem dyskretnym w stosunku do sygnałów z czasem ciągłym są: unormowanie częstotliwości do częstotliwości próbkowania, okresowość osi częstotliwości To właśnie okresowość częstotliwości jest przyczyną, dla której charakterystyki częstotliwościowe są opisane wielomianami trygonometrycznymi. Aby uniknąć wynikających z tego kłopotów, potrzebujemy przekształcić jeden okres osi pulsacji θ (od π do π) na całą oś pulsacji ω (od do + ). Zastosujemy do tego funkcję ω = 2 T s tg θ 2 (4.19) 9 Dobrze jest np. jeśli funkcja kary jest różniczkowalna po szersze informacje odsyłamy do literatury na temat optymalizacji. 10 Literki pm pochodzą od nazwisk autorów tego algorytmu - Parksa i McClellana.

12 Filtry właściwości, projektowanie, przetwarzanie sygnałów 2016-06-20 23:34 θ = +π x Rez x o x o Imz x x x Ims = jω o o Res x θ = π x θ = 0 x x o o o ω = 0 x x o Rys. 4.6: Przekształcenie biliniowe Należy pamiętać, że jest to funkcja nieliniowa. Z takim przekształceniem związane jest tzw. przekształcenie biliniowe przeprowadzające całą dziedzinę z na dziedzinę s s = 2 T s 1 z 1 1 + z 1 (4.20) Przekształcenie to przeprowadza oś pulsacji z = e jθ na oś pulsacji s = jω, i wnętrze okręgu jednostkowego z < 1 na lewą półpłaszczyznę Res < 0. Filtr zaprojektowany jako stabilny w s zostanie więc przekształcony na filtr stabilny w z (patrz rys. 4.6). Procedura projektowania tą metodą polega więc na: przeliczeniu wymaganych unormowanych częstotliwości granicznych w dziedzinie dyskretnej na dziedzinę czasu ciągłego (wzór (4.19) po angielsku nazywa się tę operację terminem prewarp), zastosowaniu gotowych metod aproksymacji znanymi wielomianami i obliczeniu transmitancji prototypu H a (s) podstawieniu zamiast s wyrażenia biliniowego (4.20). Korzystając z gotowych funkcji MATLABa R realizujących tę procedurę, warto jedynie znać właściwości typowo stosowanych rodzin wielomianów: wielomiany Butterwortha dają aproksymację maksymalnie płaską (bez zafalowań) 11 wielomiany Czebyszewa dają zafalowania w jednej części (typ I w pasmie przepustowym, II w zaporowym), a płaską charakterystykę w drugiej, wielomiany Cauera (eliptyczne) dają zafalowania w obu pasmach. Poglądowo aproksymacje te (dla dziedziny ciągłej) przedstawiono na rys. 4.7. 4.1.4. Triki implementacyjne Problemy implementacyjne zostaną tu tylko zasygnalizowane skrótowo. Oszczędne implementacje filtrów SOI Spełnienie wymagań przez filtry SOI często wymaga użycia wysokich rzędów filtru. Jest jednak kilka sposobów na zmniejszenie złożoności obliczeniowej filtru SOI. 11 Ciekawym zbiegiem okoliczności butter oznacza masło, a masło jest gładkie...

2016-06-20 23:34 Filtry właściwości, projektowanie, przetwarzanie sygnałów 13 Rys. 4.7: Poglądowe charakterystyki amplitudowe dolnoprzepustowych filtrów zaprojektowanych z wykorzystaniem aproksymacji a) Butterwortha, b),c) Czebyszewa typ I i II, d) Cauera Po pierwsze, w filtrze o liniowej charakterystyce fazowej można wykorzystać symetrię odpowiedzi impulsowej najpierw zsumować dwie próbki sygnału, a potem raz je pomnożyć przez odpowiedni współczynnik, i w ten sposób oszczędzić połowę mnożeń. Po drugie, jeśli odpowiedź impulsowa fitru jest długa, warto zastąpić splot w dziedzinie czasu mnożeniem w dziedzinie widma FFT i IFFT są algorytmami bardzo efektywnymi. Trzeba tylko pamiętać, że w ten sposób realizujemy splot kołowy aby był on równoważny liniowemu, trzeba dopełnić sygnały zerami (a potem odpowiednio sklejać wyniki filtrowania kolejnych bloków) 12. Trzeba też pamiętać, że tu nie uzywa się okien, bo to zniekształciłoby przebieg sygnału w dziedzinie czasu. Po trzecie, w niektórych sytuacjach (filtr dolnoprzepustowy, uśredniający bardzo wiele próbek) można wykorzystać kaskadę filtrów grzebieniowych, w których nie potrzeba mnożenia (współczynniki są równe 0 lub 1) 13. W strukturze transwersalnej (czyli wprost według definicji splotu (4.1)), pokazanej na początku tego rozdziału, na rys. 4.1, wszystkie sumowania wykonuje się kaskadowo. Nie ma to raczej znaczenia w implementacji programowej na pojedynczym procesorze, natomiast w implementacjach sprzętowych (albo masywnie wieloprocesorowych) może być krytycznym czynnikiem ograniczającym prędkość przetwarzania przy wysokich rzędach filtru dane muszą przepropagować przez wszystkie sumatory w jednym cyklu zegara. W pewnym sensie każdy sumator czeka na wynik z poprzedniego. Jeśli zamienimy miejscami bloki (rys. 4.8), to każdy sumator ma na wykonanie sumowania cały cykl minus czas mnożenia przez współczynnik. Innymi słowy, sumatory pracują równolegle, nie czekając na siebie wzajemnie. 12 Więcej informacji można szukać pod hasłem overlap-add i overlap-save to są nazwy dwóch metod sklejania bloków danych filtrowanych w taki sposób. 13 Ten temat jest tylko zasygnalizowany można poszukać w literaturze lub na wykładzie z przedmiotu TRA.

14 Filtry właściwości, projektowanie, przetwarzanie sygnałów 2016-06-20 23:34 Rys. 4.8: Filtr SOI (FIR) w strukturze odwróconej Problem dynamiki Po zaprojektowaniu filtru należy rozważyć, jak duże liczby mogą się pojawić wewnątrz układu filtru (np. po pomnożeniu sygnału przez duży współczynnik, albo po zakumulowaniu próbek w pętli sprzężenia zwrotnego w filtrze NOI) przekroczenie zakresu reprezentacji liczbowej grozi nieprzyjemnymi efektami, które bardzo trudno zanalizować. Ryzyko takich efektów można zmniejszyć, dzieląc filtr na sekcje niższego rzędu i odpowiednio ustawiając kolejność sekcji oraz ich wzmocnienia. Sekcja bikwadratowa Zastanówmy się, jak można filtr wysokiego rzędu podzielić na sekcje niższych rzędów. Matematycznie polega to na zapisaniu licznika i mianownika w postaci iloczynowej, co pozwala następnie podzielić zera i bieguny na grupy realizowane w różnych sekcjach. Najmniejszą nietrywialną sekcją jest sekcja rzędu pierwszego H 1 (z) = z zz z z b. Pamiętamy, że zera i bieguny transmitancji mogą być zespolone - w takiej sytuacji mielbyśmy kłopot z implementacją: mimo, że współczynniki filtru i sygnały są rzeczywiste, trzebaby korzystać z arytmetyki liczb zespolonych. Dlatego najczęściej wykorzystuje się fakt, że jeśli wielomian o współczynnikach rzeczywistych ma pierwiastki zespolone, to występują one parami sprzężonymi. To oznacza, że warto takie pary zebrać razem, i wtedy otrzymuje się sekcję rzędu drugiego: zwaną sekcją bikwadratową. H biq (z) = z z z z z b z z z z z b = 1 2 Re(z z)z 1 + z z 2 z 2 1 2 Re(z b )z 1 + z b 2 z 2 (4.21) Problem stabilności Filtr NOI może być niestabilny z kilku powodów. Procedura projektowania (np. optymalizacyjna) może dać w wyniku biegun poza okręgiem jednostkowym wtedy można zareagować, przenosząc ten biegun do wewnątrz p := 1/p, co nie zmienia charakterystyki amplitudowej. Kwantowanie wartości współczynników może wyprowadzić biegun, który leżał blisko okręgu jednostkowego poza tę granicę. Radą na to jest dzielenie filtru na sekcje niskiego rzędu (najczęściej rzędu 2 czyli bikwadratowe) wtedy zmniejsza się skala wartości współ-

2016-06-20 23:34 Filtry właściwości, projektowanie, przetwarzanie sygnałów 15 x[n] y[n] z 1 2 Re(z b ) 2 Re(z z ) z b 2 z 1 z z 2 Rys. 4.9: Implementacja sekcji bikwadratowej w strukturze odwróconej oszczędzającej zasoby pamięciowe Rys. 4.10: Struktura kratowa filtru SOI [By Constant314 (Own work) [CC0], via Wikimedia Commons] czynników. Inną metodą jest zastosowanie struktury kratowej filtru, w której wrażliwość na błędy współczynników jest mniejsza (za cenę większej złożoności obliczeniowej). Struktura kratowa (ang. lattice) Struktura kratowa (rys. 4.10 wersja SOI) jest bardzo często używana w filtrach adaptacyjnych.

16 Filtry właściwości, projektowanie, przetwarzanie sygnałów 2016-06-20 23:34 4.1.5. Zadania do pracy własnej studenta Podobne zadania mogą znaleźć się na wejściówce. Nie dotyczy to zadań oznaczonych tu jako trudne. 1) Idealny filtr LP. Oblicz odpowiedź impulsową idealnego filtru dolnoprzepustowego o charakterystyce amplitudowej jak na rysunku. Przyjmij θ b = π/4 i charakterystykę fazową równą zeru. π θ b 0 θ b π Wskazówka: Przecałkowanie funkcji wykładniczej w zadanych granicach nie jest trudne. 2) Obcinając wynik poprzedniego zadania oblicz współczynniki przyczynowego filtru SOI rzędu 8 (czyli mającego odpowiedź impulsową o długości 9 próbek). Naszkicuj odpowiedź impulsową, zastanów się jakie będzie on miał opóźnienie grupowe. Wskazówka: Zajrzyj do opisu metody projektowania filtrów poprzez obcięcie szeregu Fouriera. 3) Myśląc kategoriami mnożenie w czasie = splot w częstotliwości spróbuj naszkicować charakterystykę uzyskanego filtru przyczynowego i oszacować szerokość pasma przejściowego. 4) Jak zmieniłaby się w/w charakterystyka, gdyby zamiast obcięcia użyć okna (nie-prostokątnego)? 5) Oblicz i naszkicuj charakterystykę amplitudową filtru SOI o współczynnikach: a) [1, 1] b) [1, 1, 1] c) [1, 2, 1] 6) Przeanalizuj filtr NOI o jednym biegunie rzeczywistym w punkcie a. (Wybierz a : a < 1, bo nie chcemy filtru niestabilnego). a) Zapisz jego transmitancję w dziedzinie Z b) Znajdź charakterystykę filtru, spróbuj ją naszkicować (do tego celu wylicz wartości w charakterystycznych punktach max, min itd...) c) Znajdź opdpowiedź impulsową 7) Przeanalizuj filtr NOI o dwóch biegunach sprzężonych w punktach re ±jθp. Sam wybierz parametry r i θ p, ale dopilnuj aby filtr był stabilny. 4.2. Dostępny sprzęt i oprogramowanie 4.2.1. Standardowe funkcje MATLABa R Filtracja cyfrowa w MATLABie R zaimplementowania została w standardowej funkcji filter.

2016-06-20 23:34 Filtry właściwości, projektowanie, przetwarzanie sygnałów 17 Parametrami polecenia filter(b,a,x) są: B wektor współczynników licznika (części SOI), A wektor współczynników mianownika (części NOI); jeśli realizujemy filtr SOI, wstawiamy tu 1, x sygnał do przefiltrowania (wynik będzie miał taki sam rozmiar jak x zazwyczaj podajemy tu wektor sygnału, ale x może też być macierzą, i wtedy każda jej kolumna zostanie przefiltrowana oddzielnie). Charakterystykę częstotliwościową filtru najsprawniej oblicza się za pomocą funkcji [h w]=freqz(b,a,n), gdzie B i A to współczynniki licznika i mianownika, natomiast N liczba punktów na osi częstotliwości od 0 do π (domyślnie 512). Jeśli pominiemy parametry wyjściowe, otrzymamy wykres; w przeciwnym przypadku wynikiem jest wektor zespolonych wzmocnień h i wektor pulsacji unromowanych w, z których można samemu stworzyć wykres charakterystyki amplitudowej i fazowej. Najprościej (chociaż to jest wersja dla opornych ) filtry projektuje się przy pomocy Matlab'owego narzędzia fdatool. Jest to narzędzie z interfejsem graficznym, w którym można z menu zadać klase filtru i częściowo graficznie podać wymagania częstotliwościowe. Potem można zobaczyć wyniki projetowania i wyeksportować współczynniki. Jak z każdym narzędziem uniwersalnym, czasem nie rozumiemy co robimy, a czasem zaplączemy się przy wydobywaniu z niego współczynników. W tym ćwiczeniu można się fdatool()'em posłużyć przy niektórych zadaniach extra. 4.3. Eksperymenty do wykonania w laboratorium projektowanie i wykorzystanie filtrów cyfrowych 4.3.1. Filtr SOI i NOI, związek zer i biegunów z charakterystyką 4.3.1.1. Usuwanie składowej stałej Wygeneruj sygnał sinusoidalny ze składową stałą. Użyj częstotliwości unormowanej równej 0.1 + numerstanowiska/50 x=2+sin(f*2*pi*[0:99]); plot(x) mean(x)%obliczenie wart. sredniej wyrażenie użyte do generacji sygnału oraz obliczoną wartość średnią (składową stałą). Oblicz współczynniki wielomianu o podwójnym zerze w punkcie e jπ (e do potęgi j pi), umieść je w zmiennej B. Wskazówka: Obliczenie współczynników wielomianu help poly, ale w tym zadaniu szybciej jest pomyśleć samemu. obliczone współczynniki Przefiltruj sygnał filtrem, którego transmitancja jest znalezionym wielomianem, obejrzyj wynik y=filter(b,1,x); plot(0:99,x,0:99,y); mean(y)

18 Filtry właściwości, projektowanie, przetwarzanie sygnałów 2016-06-20 23:34 Odpowiedz wartość składowej stałej w sygnale po filtracji Odpowiedz na pytanie: Jakiego typu (SOI/NOI) filtr użyto w tym eksperymencie? Zapisz wyrażeniem matematycznym jego transmitancję H(z) i charakterystykę amplitudową A(θ). 4.3.1.2. Prosty rezonator Naszkicuj Przygotuj (oblicz współczynniki) fitru 2 rzędu o biegunach w punktach 0.9e ±j0.2π i z podwójnym zerem w e jπ = 1. Dla zgodności z help'em do funkcji filter umieść współczynniki licznika w zmiennej B, a mianownika w A. Wskazówka: Konieczne jest znalezienie współczynników wielomianu, a więc znów przyda się poly. W Matlabie nie ma stałej e, ale jest funkcja exp(). współczynniki na wszelki wypadek. Zbadaj przygotowany filtr. Utwórz wykres odpowiedzi impulsowej filtru; impuls jednostkowy uzyskasz np. tak: dlt=zeros(1,64); dlt(1)=1;, plot(filter(...))%zastanów się co tu dalej wpisać Oblicz charakterystykę częstotliwościową [H, w]=freqz(...);, Oblicz opóźnienie grupowe (przybliż dφ/dθ skończonymi różnicami 14 ): grd=-diff(angle(h))./diff(w);% uwaga na minus! Wykreśl na wspólnym wykresie charakterystykę (amplitudową) i opóżnienie grupowe plot(w,abs(h),w(2:end),grd); Jeśli wolisz, zmień oś poziomą wykresu z pulsacji (częstości) na częstotliwość unormowaną 15. Uwaga: Jeżeli faza angle(h) wychodzi nieciągła z powodu przekroczenia π, możesz użyć unwrap(angle(h)); nieciągłością dla punktu θ = 0 można się nie przejmować wzmocnienie jest tu zerowe 16. Naszkicuj wykres opóźnienia grupowego i wzmocnienia filtru (charakterystyki częstotliwościowej). maksymalne opóźnienie i jego lokalizację na osi częstotliwości. Przetestuj filtr w kilku punktach charakterystyki. W każdym punkcie wygeneruj sinusoidę o odpowiedniej częstotliwości (najlepiej o jednostkowej amplitudzie), przefiltruj, i sprawdź czy zmierzone (z wykresu sygnału wejściowego i wyjściowego) wzmocnienie jest zgodne z wykresem uzyskanym z freqz(). Wyniki zanotuj w tabelce wpisując konkretne wartości częstotliwości 14 W Matlabie jest funkcja grpdelay(), która oblicza opóźnienie w bardziej wyrafinowany sposób. 15 Student powinien już pamiętać, że pulsacja unormowana θ = π odpowiada częstotliwości unormowanej f n = 0.5 albo częstotliwości fizycznej f = 0.5f s. Ten przypis powstał dlatego, że niektórzy nie pamiętają i zadają prowadzącym głupie pytania. 16 Jeśli masz nieciągłość gdzieś indziej, być może zrobiłeś jakiś błąd nieciągłość może się pojawić w charakterystyce fazowej filtru, ale akurat przy tym konkretnym filtrze jej nie ma.

2016-06-20 23:34 Filtry właściwości, projektowanie, przetwarzanie sygnałów 19 Częstotliwość Amplituda we Amplituda wy Wzmocnienie z charakterystyki Wzmocnienie z testu (zero) (nieduża) (w max. ch-ki) (duża) 4.3.1.3. Extra Prosty rezonator II Powtórz poprzednie zadanie dla biegunów w 0.9e ±j0.8π. 4.3.2. Bezpośrednie projektowanie filtrów SOI metoda obcięcia szeregu Fouriera 4.3.2.1. Filtr o odpowiedzi sinc() Spróbujemy teraz zaprojektować idealny filtr dolnoprzepustowy (o prostokątnej charakterystyce częstotliwościowej i o zerowej fazie). Granicą pasma przepustowego filtru będzie θ G = (2 + nrstanowiska)/20 π. extra Wygeneruj przebieg będący odpowiedzią impulsową idealnego filtru LP (dolnoprzepustowego) o żądanej pulsacji granicznej n=-1023:1024;% oś czasu thetag=(2+nrs)/20*pi x=n*thetag; h=sin(x)./x; h(n==0) W ostatnim poleceniu wykorzystujemy tzw. indeksowanie logiczne; operator n==0 generuje wektor zer i jedynek (na indeksach, na których elementy wektora n /nie spełniają/spełniają/ wyrażenia logicznego), i tym wektorem indeksujemy wektor h to oznacza wybór z wektora h elementów, dla których wektor indeksów ma wartość prawdy (czyli 1). Odpowiedz na pytanie: Jaką wartość powinna mieć funkcja h(n) dla n = 0? Przypomnij sobie pojęcia granicy i ciagłości funkcji. Zastąp w obliczonym wektorze podejrzany element 17 wartością, odpowiadającą zerowej próbce uciąglonej funkcji sin(x)/x. h(n==0)=...% tu samodzielna decyzja studenta ;-) h=h*thetag/pi;%normalizacja, aby wzmocnienie w pasmie przepustowym było =1 plot(n,h,'-*'); (analityczne) obliczenia granicy. Jeśli nie robiłeś zadania extra, oblicz odpowiedź impulsową korzystając z funkcji sinc sin πx (zdefiniowanej jako ) πx n=-1023:1024;% oś czasu thetag=(2+nrs)/20*pi x=n*thetag; 17 Jeśli czytasz ten tekst nie wykonując ćwiczenia, domyśl się, co mógł obliczyć Matlab jako sin(0)/0. Odpowiedz

20 Filtry właściwości, projektowanie, przetwarzanie sygnałów 2016-06-20 23:34 Naszkicuj Odpowiedz h=thetag/pi*sinc(x/pi); plot(n,h,'-*'); Powiększ wykres i naszkicuj go dla 10 < n < 10 Wyświetl transformatę Fouriera odpowiedzi impulsowej (obliczoną przez FFT z dopełnieniem zerami do 2 16 ) A=(abs(fft(h,2^16))); plot(a) Odpowiedz na pytania: (z teorii) Jaka jest zależność między obliczoną transformatą a charakterystyką częstotliwościową filtru? (z przyjrzenia się rysunkowi) Czy obliczona odpowiedź impulsowa była rzeczywiście idealna? Wskazówka: Na jakiej dziedzinie jest określona funkcja sinc? (wykonaj pomiar kursorem na rysunku) Jaka jest amplituda zafalowań pasma przepustowego w okolicy skoku charakterystyki? W tabeli wg. wzoru poniżej zanotuj wartość jako % skoku (zauważ, że obcięliśmy odpowiedź filtru idealnego do zakresu 1023 : 1023, czyli zastosowaliśmy okno prostokątne!). W tabeli będziemy notowali wyniki kolejnych eksperymentów. Użyte okno zafalowania w % I listek w db szer. pasma przejściowego szer. listka gł. okna prostokątne Hamminga Wyświetl ten sam wykres w skali decybelowej plot(20*log10(a))) axis([0 2^16-50 30]) w tabelipoziom I listka zafalowań w pasmie zaporowym wyrażony w db. Wykreśl transformatę Fouriera funkcji okna prostokątnego G=abs(fft(ones(size(h)),2^16)); figure plot(g); w tabeli szerokość pasma przejściowego filtru i porównaj z szerokością listka głównego transformaty okna. Wskazówka: Najprościej będzie notować wartości w próbkach FFT jest to sensowne, jeśli rozmiary FFT są takie same. Bądź jednak gotowy/a na pytanie prowadzącego a ile to będzie w skali częstotliwości unormowanej?. Popraw charakterystykę filtru używając okna Hamminga gg=hamming(length(h)); hh=h(:).*gg; Wykreśl na ekranie charakterystykę poprawionego filtru oraz transformatę Fouriera funkcji okna Hamminga. w tabeli szerokość pasma przejściowego filtru i porównaj z szerokością listka głównego transformaty okna. Spróbuj zapisać jakiś wniosek co poprawiliśmy i jakim kosztem. 4.3.2.2. Filtr o zadanej charakterystyce częstotliwościowej Zaprojektuj pasmowozaporowy (bandstop) filtr SOI usuwający z sygnału zakłócenie o częstotliwości F c = (1 + numerstanowiska/10) khz. W dalszej częsci ćwiczenia będziesz usu-

2016-06-20 23:34 Filtry właściwości, projektowanie, przetwarzanie sygnałów 21 π 0 Rys. 4.11: Sposób zadania charakterystyki filtru π wać z rzeczywistego sygnału takie zakłócenie wygenerowane generatorem laboratoryjnym. Do projektu załóż, że sygnał będzie próbkowany z częstotliwością F s = 48 khz. Fs=48e3; Spróbujemy wykonać ten projekt ręcznie krok po kroku, oglądając wyniki pośrednie. Droga ta jest długa i żmudna, ale bardzo zalecamy przejście jej samodzielnie, gdyż pokazuje ona rozmaite niespodziewane efekty o dużej wartości dydaktycznej. Tylko w razie poważnego braku czasu można udać się na skróty, tj. użyć gotowej procedury MATLABa R fir2, albo (o zgrozo) fdatool. Ćwiczona tu metoda projektowania polega na obliczeniu odpowiedzi impulsowej filtru poprzez odwrotną transformatę Fouriera żądanej charakterystyki. Można to zrobić analitycznie, ale my posłużymy się komputerem (oraz odwrotną DTF). W tym celu żądaną charakterystykę filtru zadamy w postaci spróbkowanej (rys. 4.11). Sprawdź, z jaką dokładnością można ustawić częstotliwość na generatorze i przyjmij do projektu pasmo zaporowe 1.5 raza szersze 18. przyjęte założenia projektowe, wyrażone w dziedzinie częstotliwości unormowanej. Załóż, że pasmo przejściowe filtru może mieć szerokość porównywalną z 1/4 pasma zaporowego. Zastanów się, jaki z tego wynika minimalny rząd filtru L. Wskazówka: Wykorzystaj wyniki poprzedniego zadania co do związku szerokości pasma przejściowego z listkiem głównym transformaty okna. Zastanów się jaka jest szerokość listka głównego transformaty impulsu prostokątnego o długości L + 1.. obliczony minimalny rząd. Przyjmij, że charakterystykę filtru spróbkujesz w L h = 4 (L + 1) punktach (gdzie L jest wyznaczonym przed chwilą rzędem filtru, zaokrąglonym do liczby nieparzystej). Oblicz zakres indeksów punktów, w których charakterystyka ma być wyzerowana. Wskazówka: Najlepiej sobie narysować ręcznie taką charakterystykę i na niej zaznaczać. Lz1=...;% indeks początkowy Lz2=...;%indeks końcowy Utwórz wektor H zawierający pożądaną charakterystykę filtru dla czestości od 0 do π, wypełniając ją jedynkami (a zerami w pasmie zaporowym). H=ones(1,Lh/2); H(Lz1:Lz2)=0; Sprawdź, czy projektujesz właściwy filtr wykreśl H w funkcji częstotliwości fizycznej plot([0:(lh/2-1)]*fs/lh,h); Teraz dostaw drugą połówkę charakterystyki (dla ujemnych częstotliwości, co przy cykliczności widma odpowiada częstotliwościom powyzej F s /2) H=[H H(end:-1:1)]; 18 Nawet jeśli masz bardzo pewną rękę, nie przyjmuj mniej niż ±50 Hz.

22 Filtry właściwości, projektowanie, przetwarzanie sygnałów 2016-06-20 23:34 Odpowiedz plot([0:(lh-1)]*fs/lh,h); Oblicz odwrotną transformatę Fouriera charakterystyki(za pomocą IFFT) czyli odpowiedź impulsową filtru (operator real() usunie efekty błędów numerycznych) h=real(ifft(h)); plot(h); Jak widać, odpowiedź impulsowa jest cykliczna (wynika to z właściwości DFT) utnij ją do czasu od L/2 do +L/2 i ustaw w odpowiedniej kolejności h=[h((end-l/2):end) h(1:(l/2+1))]; plot(h); Prawie gotowe sprawdź co wyszło!!! freqz(h,1); Odpowiedz na pytanie: Czy wyszedł Ci filtr, jakiego oczekiwałeś(-aś)? Spróbuj określić przyczyny niepowodzenia... Zmodyfikuj współczynniki filtru z użyciem okna Hamminga hh=h(:).*hamming(length(h)); Zweryfikuj charakterystykę filtru (np. z użyciem freqz). szerokości pasma przejściowego i zaporowego i porównaj z założeniami. Jeśli filtr teraz spełnia Twoje oczekiwania, warto dla pewności zapisać współczynniki do pliku. save nazwapliku.mat hh 4.3.3. Ekstra Projektowanie filtrów SOI metodą optymalizacyjną Odpowiedz Zaprojektuj filtr dolnoprzepustowy SOI metodą optymalizacyjną ( firpm). Przyjmij łatwe parametry filtru szerokie pasmo przejściowe (około 1/20 częstotliwości próbkowania). Uwaga: Wszystkie procedury MATLABa R przeznaczone do projektowania filtrów przyjmują specyfikację częstotliwości w postaci liczb od 0 do 1, gdzie 1 odpowiada θ = π. Przyjmij pasmo przepustowe do częstotliwości (2 + nrstanowiska) π/24. Użyj rzędu 10, zwiększ jeśli potrzeba. wynikowe pasmo przejściowe i rząd filtru. Utrudnij zadanie optymalizacji przy tych samych pozostałych parametrach wymuś węższe pasmo przejściowe. Zwiększ rząd, aby zniwelować niekorzystne efekty zaostrzenia wymagań. Odpowiedz na pytanie: Określ ilościowo (w przyblizeniu), jakiej zmiany rzędu wymaga dwukrotne zwężenie pasma przejściowego. 4.3.4. Projektowanie filtrów NOI z prototypu analogowego Prototyp analogowy będzie przekształcony w filtr cyfrowy przy wykorzystaniu transformacji biliniowej zmiennej s w zmienną z. W Matlabie zazwyczaj projektowanie jest dwuetapowe najpierw obliczamy rząd filtru konieczny do spełnienia wymagań (i ew. parametry pomocnicze) funkcją ***ord, a następnie podajemy je do funkcji znajdującej współczynniki. Uwaga: Wszystkie procedury MATLABa R przeznaczone do projektowania filtrów przyjmują specyfikację częstotliwości w postaci liczb od 0 do 1, gdzie 1 odpowiada θ = π. 4.3.4.1. Projektowanie filtru Zaprojektuj filtr NOI dolnoprzepustowy (LP) o parametrach: pasmo przepustowe (passband) do 0.2π,

2016-06-20 23:34 Filtry właściwości, projektowanie, przetwarzanie sygnałów 23 Rys. 4.12: Polączenia do zakłócania mowy sygnałem z generatora pasmo zaporowe (stopband) od 0.3π, zafalowania w paśmie przepustowym (passband ripple) 0.5 db, tłumienie w paśmie zaporowym (stopband attenuation) 80 db (przy niektórych prototypach nie wszystkie parametry są wykorzystywane). Porównaj wyniki projektowania z użyciem różnych prototypów (w razie braku czasu wybierz dwa): 1) Butterworth'a (buttord, butter) 2) Czebyszewa typ I i II (cheb1ord, cheby1, cheb2ord, cheby2) 3) Cauera (eliptyczny: ellipord, ellip) W kazdym przypadku wyświetl uzyskaną charakterystykę i sprawdź, czy spełnia wymagania. rząd filtru w każdym przypadku i opisz zachowanie w pasmie zaporowym i przepustowym (zafalowania, sposób zanikania zafalowań z częstotliwością itp.) 4.3.5. Realizacja filtrów i zastosowania filtrów 4.3.5.1. Filtracja sygnału zarejestrowanego Zarejestruj sumę sygnału sinusoidalnego o częstotliwości F c = (1+numerstanowiska/10) khz i mowy z mikrofonu (rys. 4.12 przedwzmacniacz pełni również rolę sumatora sygnałów) Wykorzystaj filtr zaprojektowany w zadaniu 4.3.2.2 do usunięcia zakłócenia Sprawdź widma sygnału wejściowego i wyjściowego filtru. Odsłuchaj wynik. 4.3.5.2. Ekstra Usuwanie przydźwięku 50 Hz W tym zadaniu trzeba polegać na własnej fantazji: skądś wziąć sygnał z przydźwiękiem sieci (dźwięk ze źle połaczona masą? sygnał EMG pobrany byle jak?)

24 Filtry właściwości, projektowanie, przetwarzanie sygnałów 2016-06-20 23:34 przeanalizować sygnał (FFT, a może spektrogram?), aby zrozumieć, jakie w nim występują zakłócenia zaprojektować (a potem użyć) odpowiedni filtr. 4.3.5.3. Ekstra Kwantyzacja współczynników Aplikacja lab4receiver.vi służy do analizy wpływu kwantyzacji na charakterystyki filtrów cyfrowych. Współczynniki filtru, tak przed jak i po kwantyzacji pokazane są w tabelach w zakładce Filter coefficients. Domyślnie wczytany filtr jest filtrem FIR rzędu 100 o częstotliwości odcięcia 0.075 f s. Możliwe jest manualne zdefiniowanie współczynników filtru (po kliknięciu przycisku Reset i wpisaniu własnych wartości) lub wczytanie współczynników filtru z pliku. Format pliku czytanego przez aplikację to dwukolumnowy plik ASCII, gdzie kolumny oddzielone są tabulatorem a separatorem dziesiętnym jest kropka. Pierwsza kolumna pliku definiuje kolejne współczynniki licznika, poczynając od potęgi 0, druga mianownika. Liczba bitów stosowanych po kwantyzacji do reprezentacji współczynników filtru jest wartością z kontrolki filter coeffs word length after quantization. W zakładce frequency domain znajdują się wykresy widma amplitudowego sygnału odebranego przed i po filtracji cyfrowej. Zakładka filter plots zawiera wykresy odpowiedzi impulsowej, zer i biegunów na płaszczyźnie S oraz charakterystyki amplitudowej wczytanego filtru przed i po kwantyzacji. Poszczególne wykresy można wyłączać/włączać checkboxami przy legendzie (jedynie, kiedy aplikacja nie jest w stanie odbioru!). Wykorzystując lab4receiver.vi zbadaj wpływ kwantyzacji współczynników na charakterystykę filtru. Zaprojektuj w Matlabie filtr wysokiego rzędu i sprawdź jego charakterystykę (freqz). Propozycje filtrów: Filtr SOI z zadania 4.3.2.2 Filtr NOI z zadania 4.3.4.1 Zapamiętaj jego współczynniki (fwsp musi być tablicą o 2 kolumnach wektory A i B w razie potrzeby musisz usupełnić zerami do równych długości): fwsp=[b(:),a(:)]; save('filename.txt', '-ascii','-double','-tabs','fwsp'); Załaduj współczynniki do lab4receiver sprawdź jak zmienia się charakterystyka filtru gdy zmieniasz liczbę bitów kwantyzacji sprawdź jak filtr filtruje sygnał z generatora (sin, chirp...)