Laboratorium Cyfrowego Przetwarzania Sygnałów. Preskrypt do v.2014z ćwiczenie nr 4 z 10 (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

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

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

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

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

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

Przetwarzanie sygnałów

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

8. Realizacja projektowanie i pomiary filtrów IIR

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

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

ANALIZA SYGNAŁÓ W JEDNÓWYMIARÓWYCH

Cyfrowe przetwarzanie sygnałów Jacek Rezmer -1-

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

Podstawy Przetwarzania Sygnałów

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

Przetwarzanie sygnałów

DYSKRETNE PRZEKSZTAŁCENIE FOURIERA C.D.

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

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

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

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

SPRZĘTOWA REALIZACJA FILTRÓW CYFROWYCH TYPU SOI

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

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

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

CHARAKTERYSTYKI CZĘSTOTLIWOŚCIOWE

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

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

DYSKRETNA TRANSFORMACJA FOURIERA

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Stabilność. Krzysztof Patan

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

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

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

Analiza właściwości filtra selektywnego

ZASTOSOWANIA PRZEKSZTAŁCENIA ZET

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

CYFROWE PRZTWARZANIE SYGNAŁÓW (Zastosowanie transformacji Fouriera)

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

Technika audio część 2

13.2. Filtry cyfrowe

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski

Przetwarzanie sygnałów dyskretnych

Ćwiczenie nr 6 Charakterystyki częstotliwościowe

PROCESORY SYGNAŁOWE - LABORATORIUM. Ćwiczenie nr 04

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

Laboratorium Przetwarzania Sygnałów Biomedycznych

SYNTEZA obwodów. Zbigniew Leonowicz

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

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

Filtracja. Krzysztof Patan

5 Filtry drugiego rzędu

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

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

Wzmacniacze operacyjne

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

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH

7. Szybka transformata Fouriera fft

WZMACNIACZ OPERACYJNY

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

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

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

Filtry aktywne filtr środkowoprzepustowy

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

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

TEORIA OBWODÓW I SYGNAŁÓW LABORATORIUM

Transformata Fouriera

Analiza obrazów - sprawozdanie nr 2

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

Teoria sterowania - studia niestacjonarne AiR 2 stopień

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

Podstawowe człony dynamiczne

Laboratorium Przetwarzania Sygnałów

Przekształcenie Z. Krzysztof Patan

KARTA MODUŁU KSZTAŁCENIA

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

A-2. Filtry bierne. wersja

Przetwarzanie sygnałów

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

Rys. 1. Wzmacniacz odwracający

Kompresja dźwięku w standardzie MPEG-1

Układ regulacji automatycznej (URA) kryteria stabilności

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

Zastosowania liniowe wzmacniaczy operacyjnych

Filtry aktywne filtr górnoprzepustowy

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

3. Macierze i Układy Równań Liniowych

III. Wstęp: Elementarne równania i nierówności

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

AiR_TSiS_1/2 Teoria sygnałów i systemów Signals and systems theory. Automatyka i Robotyka I stopień ogólnoakademicki

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

FFT i dyskretny splot. Aplikacje w DSP

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

WOJSKOWA AKADEMIA TECHNICZNA

Metody numeryczne I Równania nieliniowe

Transkrypt:

Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do v.2014z ćwiczenie nr 4 z 10 (Filtry właściwości, projektowanie, przetwarzanie sygnałów) na prawach rękopisu Lista Autorów 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, 16 listopada 2014, 3:16

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.......................... 6 4.1.4 Triki implementacyjne......................... 12 4.1.5 Zadania do pracy własnej studenta................... 14 4.2 Dostępny sprzęt i oprogramowanie....................... 14 4.2.1 Standardowe funkcje MATLABa.................. 14 4.3 Eksperymenty do wykonania w laboratorium projektowanie i wykorzystanie filtrów cyfrowych................................ 15 4.3.1 Filtr SOI i NOI, związek zer i biegunów z charakterystyką...... 15 4.3.2 Bezpośrednie projektowanie filtrów SOI metoda obcięcia szeregu Fouriera................................. 17 4.3.3 Ekstra Projektowanie filtrów SOI metodą optymalizacyjną...... 19 4.3.4 Projektowanie filtrów NOI z prototypu analogowego......... 20 4.3.5 Realizacja filtrów i zastosowania filtrów................ 20 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. Dla 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θ ) charakterystyka częstotliwościowa A(θ) = H(e jθ ) i fazowa. 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ę. 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) = (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. 3

4 Filtry właściwości, projektowanie, przetwarzanie sygnałów 2014-11-16 3:16 Rys. 4.1: Filtr SOI w strukturze transwersalnej Gdy przypomnimy sobie, że splot w dziedzinie czasu odpowiada mnożeniu w dziedzinie widma 1, 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 (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. 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 pier- 1 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).

2014-11-16 3:16 Filtry właściwości, projektowanie, przetwarzanie sygnałów 5 wiastkó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 e jθ od jakiegoś zera jest niewielka, A(θ) jest pod silnym wpływem tego zera. 4.1.2. Sprzężenie zwrotne czyli filtry NOI (IIR) Układy filtrów NOI 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 migdy nie zniknąć. Dlatego tę klasę filtrów nazywamy filtrami NOI (o nieskończonej odpowiedzi impulsowej; po angielsku Infinite Impulse Response IIR). (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) = (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. 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.9) (4.10) (4.11) (4.12) (4.13)

6 Filtry właściwości, projektowanie, przetwarzanie sygnałów 2014-11-16 3:16 Rys. 4.3: Charakterystyka częstotliwościowa filtru z rys. 4.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 2 biegunami d k, X(z) = M N r=0 B r z r + N k=1 A k 1 d k z 1, A k = (1 d k z 1 ) X(z) 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. Warto zauważyć, że para biegunów sprzężonych (w zapisie biegunowym: re +jθ i re jθ wygenerują razem u(n)r(e +jθn + e jθn czyli zanikającą 3 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). 2 Co dzieje się przy biegunach wielokrotnych, zalecamy sprawdzić w podręczniku analizy z pierwszego roku studiów. 3 Chyba, że r > 1, wtedy będzie narastająca ale układów z takimi biegunami zazwyczaj unikamy.

2014-11-16 3:16 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 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). Zdecydować czy zależy nam na liniowości fazy (stałości opóźnienia grupowego) 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 4. Innymi słowy, projektując filtr rozwiązujemy zagadnienie aproksymacji wielomianowej. Niestety, wielomian opisujący funkcję A(θ) jest wielomianem trygonometrycznym (H(z) po 4 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ń.

8 Filtry właściwości, projektowanie, przetwarzanie sygnałów 2014-11-16 3:16 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 5 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 6. 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ą 5 Słowo żądana można też napisać bez polskich liter: zadana i, o dziwo, sens się nie zmieni. 6 Wystarczy zacząć od nieprzyczynowego filtru z P = 0 i można zobaczyć po co komu ta symetria.

2014-11-16 3:16 Filtry właściwości, projektowanie, przetwarzanie sygnałów 9 - 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ń. Metodę pokażemy na przykładzie filtru dolnoprzepustowego z pasmem przepustowym do θ p. 1 dla θ < θ p Zaczynamy od idealnego filtru: A 0 (θ) = i o zerowej fazie. 0 dla θ p < θ π Odpowiedź impulsową obliczymy z odwrotnej transformaty Fouriera: h 0 (n) = 1 2π π π H 0 (e jθ ) e jnθ dθ = θ p π sin nθ p n θ p 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): h[n] = h P [n P ] Ostatecznie otrzymamy H(z) = 2P n=0 h(n) z n = z P H P (z) 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).

10 Filtry właściwości, projektowanie, przetwarzanie sygnałów 2014-11-16 3:16 Rys. 4.5: Efekt Gibbsa (zielony) i jego zmniejszenie z użyciem okna Hamminga (niebieski) Efekt zafalowań możemy zmniejszyć używając innego okna 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). Trzeba więc sprowadzić nasz cel 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 średniowadratowo przyblizenia 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ę. Polega to na zdefiniowaniu funkcji kary jako sumy błędów podniesionych do wysokiej potęgi (duże wartości p, a często p narastające w

2014-11-16 3:16 Filtry właściwości, projektowanie, przetwarzanie sygnałów 11 kolejnych iteracjach): ε = k A(θ k ) A 0 (θ k ) 2p (4.18) Praktycznie taką metodykę realizują gotowe funkcje MATLABa : funkcja firpm pozwala zaprojektować filtr SOI metodą minimaksową 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 sotsunku 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) 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 < 0 na lewą półpłaszczyznę Res < 0. Filtr zaprojektowany jako stabilny w s zostanie więc przekształcony an 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 realizujących tę procedurę, warto jedynie znać właściwości typowo stosowanych rodzin wielomianów:

12 Filtry właściwości, projektowanie, przetwarzanie sygnałów 2014-11-16 3:16 θ = +π Rez o o Imz Ims = jω o o Res θ = π θ = 0 o o o ω = 0 o Rys. 4.6: Przekształcenie biliniowe 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 wielomiany Butterwortha dają aproksymację maksymalnie płaską (bez zafalowań) 7 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. 7 Ciekawym zbiegiem okoliczności butter oznacza masło, a masło jest gładkie...

2014-11-16 3:16 Filtry właściwości, projektowanie, przetwarzanie sygnałów 13 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. 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) 8. 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) 9. 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. 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ół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łozoności obliczeniowej). 8 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. 9 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 2014-11-16 3:16 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 ma, 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 Filtracja cyfrowa w MATLABie zaimplementowania została w standardowej funkcji filter.

2014-11-16 3:16 Filtry właściwości, projektowanie, przetwarzanie sygnałów 15 Parametrami polecenia filter(b,a,) 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, sygnał do przefiltrowania (wynik będzie miał taki sam rozmiar jak zazwyczaj podajemy tu wektor sygnału, ale 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. 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» =2+sin(f*2*pi*[0:99]);» plot()» mean()%obliczenie wart. sredniej Zanotuj Zanotuj 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 j0, umieść je w zmiennej B Wskazówka: help poly Zanotuj Zanotuj obliczone współczynniki Przefiltruj sygnał filtrem, którego transmitancja jest znalezionym wielomianem, obejrzyj wynik» y=filter(b,1,);» plot(0:99,,0:99,y);» mean(y) Zanotuj Zanotuj 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 Przygotuj (oblicz współczynniki) fitru 2 rzędu o biegunach w punktach 0.9e ±j0.2π i z zerami jak w poprzednim zadaniu. Dla zgodności z help'em do funkcji filter umieść Odpowiedz

16 Filtry właściwości, projektowanie, przetwarzanie sygnałów 2014-11-16 3:16 Zanotuj Naszkicuj Zanotuj Zanotuj 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. Zanotuj 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;), Oblicz charakterystykę częstotliwościową» [h, w]=freqz( );, Oblicz opóźnienie grupowego (przybliż dφ/dθ skończonymi różnicami):» grd=-diff(angle(h))./diff(w); 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ą 10. 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 11. Naszkicuj wykres opóźnienia grupowego i wzmocnienia filtru (charakterystyki częstotliwościowej), Zanotuj 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, 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 Częstotliwość Amplituda we Amplituda wy Wzmocnienie z charakterystyki Wzmocnienie z testu (zero) (nieduża) (w ma. ch-ki) (duża) 4.3.1.3. Etra Prosty rezonator II Powtórz poprzednie zadanie dla biegunów w 0.9e ±j0.8π. 10 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 11 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 przy tym filtrze jej nie ma.

2014-11-16 3:16 Filtry właściwości, projektowanie, przetwarzanie sygnałów 17 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 π. etra 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» =n*thetag;» h=sin()./;» 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 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 12 wartością, odpowiadającą zerowej próbce uciąglonej funkcji sin()/.» h(n==0)=...% tu samodzielna decyzja studenta ;-)» h=h*thetag/pi;%normalizacja, aby wzmocnienie w pasmie przepustowym było =» plot(n,h,'-*'); Zanotuj Zanotuj (analityczne) obliczenia granicy. Jeśli nie robiłeś zadania etra, oblicz odpowiedź impulsową korzystając z funkcji sinc sin π (zdefiniowanej jako ) π» n=-1023:1024;% oś czasu» thetag=(2+nrs)/20*pi» =n*thetag;» h=thetag/pi*sinc(*pi);» plot(n,h,'-*'); Powiększ wykres i naszkicuj go dla 10 < n10 Naszkicuj 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 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ń w okolicy skoku charakterystyki? Zanotuj wartość jako % skoku oraz przeliczoną na db. Wyświetl ten sam wykres w skali decybelowej 12 Jeśli czytasz ten tekst nie wykonując ćwiczenia, domyśl się, co mógł obliczyć Matlab jako sin(0)/0.

18 Filtry właściwości, projektowanie, przetwarzanie sygnałów 2014-11-16 3:16 Zanotuj Zanotuj» plot(20*log10(a)))» ais([0 2ˆ16-50 30]) Wykreśl transformatę Fouriera funkcji okna prostokątnego» G=abs(fft(ones(size(h)),2ˆ16));» figure» plot(g); Zanotuj szerokość pasma przejściowego filtru i porównaj z szerokością listka głównego transformaty okna Popraw charakterystykę filtru używając okna Hamminga» hh=h(:).*hamming(length(h)); Wykreśl na ekranie charakterystykę poprawionego filtru oraz transformatę Fouriera funkcji okna Zanotuj szerokość pasma przejściowego filtru i porównaj z szerokością listka głównego transformaty okna 4.3.2.2. Filtr o zadanej charakterystyce częstotliwościowej Zanotuj Zanotuj 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 usuwać 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 fir2. Ć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.8). Sprawdź, z jaką dokładnością można ustawić częstotliwość na generatorze i przyjmij do projektu pasmo zaporowe 1.5 raza szersze 13. Zanotuj 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.. Zanotuj 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.» 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). 13 Nawet jeśli masz bardzo pewną rękę, nie przyjmuj mniej niż ±50 Hz.

2014-11-16 3:16 Filtry właściwości, projektowanie, przetwarzanie sygnałów 19 π 0 Rys. 4.8: Sposób zadania charakterystyki filtru π» 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)];» 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 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). Zanotuj szerokości pasma przejściowego i zaporowego i porównaj z założe- Zanotuj niami. 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ą 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 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. Zanotuj 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ń. Zanotuj

20 Filtry właściwości, projektowanie, przetwarzanie sygnałów 2014-11-16 3:16 Odpowiedz 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 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 Zanotuj Zaprojektuj filtr NOI dolnoprzepustowy (LP) o parametrach: pasmo przepustowe (passband) do 0.2π, 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. Zanotuj 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 1 khz i mowy z mikrofonu (rys. 4.9 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 Kwantyzacja współczynników Aplikacja lab4receiver.vi służy do analizy wpływu kwantyzacji na charakterystyki filtrów cyfrowych.

2014-11-16 3:16 Filtry właściwości, projektowanie, przetwarzanie sygnałów 21 Rys. 4.9: Polączenia do zakłócania mowy sygnałem z generatora 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ć checkboami 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.tt', '-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...)