Laboratorium Cyfrowego Przetwarzania...

21
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: [email protected] tel. 5441 Warszawa, 16 listopada 2014, 3:16

Transcript of Laboratorium Cyfrowego Przetwarzania...

Page 1: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

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ówZakład Teorii Obwodów i Sygnałów

Instytut Systemów Elektronicznych

Wydział Elektroniki i Technik Informacyjnych

Politechnika Warszawska

Uwagi redakcyjne prosimy zgłaszać do: [email protected] tel. 5441

Warszawa, 16 listopada 2014, 3:16

Page 2: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

Spis treści

4 Filtry – właściwości, projektowanie, przetwarzanie sygnałów 34.1 Podstawy teoretyczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

4.1.1 Uśrednianie z wagami czyli filtry SOI (FIR) . . . . . . . . . . . . . . 34.1.2 Sprzężenie zwrotne czyli filtry NOI (IIR) . . . . . . . . . . . . . . . 54.1.3 Projektowanie filtrów . . . . . . . . . . . . . . . . . . . . . . . . . . 64.1.4 Triki implementacyjne . . . . . . . . . . . . . . . . . . . . . . . . . 124.1.5 Zadania do pracy własnej studenta . . . . . . . . . . . . . . . . . . . 14

4.2 Dostępny sprzęt i oprogramowanie . . . . . . . . . . . . . . . . . . . . . . . 144.2.1 Standardowe funkcje MATLABa® . . . . . . . . . . . . . . . . . . 14

4.3 Eksperymenty do wykonania w laboratorium – projektowanie i wykorzystaniefiltrów cyfrowych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154.3.1 Filtr SOI i NOI, związek zer i biegunów z charakterystyką . . . . . . 154.3.2 Bezpośrednie projektowanie filtrów SOI – metoda obcięcia szeregu

Fouriera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.3.3 Ekstra Projektowanie filtrów SOI metodą optymalizacyjną . . . . . . 194.3.4 Projektowanie filtrów NOI z prototypu analogowego . . . . . . . . . 204.3.5 Realizacja filtrów i zastosowania filtrów . . . . . . . . . . . . . . . . 20

2

Page 3: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

Ćwiczenie 4

Filtry – właściwości, projektowanie,przetwarzanie sygnałów

Opiekun ćwiczenia: PK i ŁM

4.1. Podstawy teoretyczneNajczęś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 przezstałą, sumowania.

W uzasadnionych przypadkach stosuje się inne filtry – nieliniowe albo niestacjonarne, aleich 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(ejθ)– charakterystyka częstotliwościowa A(θ) = |H(ejθ)| 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 liczbaprzeszłych próbek jest zapamiętywana a następnie sumowana z wagami (rys. 4.1). Zauważ, żena 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 sy-gnału wejściowego z ciągiem b[k] = {b0, b1, b2, b3}.

y(n) =K∑k=0

x(n− k)b(k) (4.1)

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 Re-sponse – FIR). W tym wypadku długość odpowiedzi wynosi 4.

3

Page 4: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

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 dziedziniewidma1, zobaczymy w okamgnieniu, że charakterystyka częstotliwościowa filtru to transfor-mata Fouriera jego odpowiedzi impulsowej – a w przypadku filtru SOI ciągu jego współczyn-ników.

Spróbujmy zapisać równanie (4.1) w dziedzinie przekształcenia Z . Przekształcenie Z jestliniowe – to znaczy, że sumowanie i skalowanie (sygnałów) w dziedzinie nmożna przenieść natakie same operacje (na transformatach tych sygnałów) w dziedzinie z. Natomiast opóżnieniuw dziedzinie czasu x(n− n0) odpowiada mnożenie X(z) przez z−n0 .

Otrzymujemy więc

Y (z) =K∑k=0

X(z) · z−kb(k) (4.2)

Ciągu współczynników bk na razie nie przekształcamy – z punktu widzenia sygnału to są stałeskalują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)

Y (z) = X(z)K∑k=0

z−kb(k) = X(z) ·H(z) (4.3)

W ten sposób zobaczyliśmy, że H(z) =∑Kk=0 b(k)z

−k – czyli H(z) jest to transformata Zodpowiedzi impulsowej filtru (a dla filtru SOI – ciągu jego współczynników).

Gdyby więc b[n] = 1, − 3, 3, − 1, toH(z) = 1−3z−1+3z−2− z−3. Jest to wielomianrzę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 = ejθ dowzoru definiującego przekształcenieZ otrzymuje się przekształcenie Fouriera (inaczej możnato sformułować “obliczając transformatę Z na okręgu jednostkowym z = ejθ ....”).

Zatem aby otrzymać charakterystykę częstotliwościową filtru SOI wystarczy:– zapisać transformatę Z odpowiedzi impulsowej– podstawić z = ejθ– i gotowe – teraz można np. obliczyć i wykreślić moduł A(θ) = |H(ejθ)|

WielomianH(z)w przypadku filtru SOI określa jednoznacznie charakterystykę filtru. Po-nieważ wielomian można opisać (z dokładnościa do stałej skalującej) położeniem jego pier-

1Uwaga, to jest proste dla sygnałów o ograniczonej energii (z widmem ciągłym – i o takich sygnałach tumówimy) – jeśli widmo jest dyskretne, splot w dziedzinie czasu musi być splotem kołowym (okresowym).

Page 5: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

2014-11-16 3:16 Filtry – właściwości, projektowanie, przetwarzanie sygnałów 5

wiastków,H(z) = C · (z − z1)(z − z2)(z − z3) . . . (4.4)

warto się zastanowić, o czym mówią nam pierwiastkiH(z). Otóż położenia pierwiastków (zertransmitancji) w pobliżu okręgu jednostkowego (lub na nim) wyznaczają częstotliwości, dlaktórych filtr ma znaczne tłumienie. Aby to zrozumieć, zapiszmy w podobnej postaci A(θ)

A(θ) = |H(z)|z=ejθ = |C| · |ejθ − z1| · |ejθ − z2| · |ejθ − z3| · . . . (4.5)

Widać, że zawsze, gdy odległość kartezjańska ejθ od jakiegoś zera jest niewielka,A(θ) jestpod 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 su-my wprowadzimy także opóźniony sygnał z wyjścia, otrzymamy układ ze sprzężeniem zwrot-nym. 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 angielskuInfinite Impulse Response – IIR).

delay✟✟✟

❍❍❍a

✖✕✗✔+

y(n)x(n)

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)

Y (z) = X(z)1

1− az−1(4.8)

H(z) =Y (z)X(z)

=1

1− az−1=z

z − a(4.9)

a więc h(n) = anu(n) jeśli szukamy rozwiązania przyczynowego.Spróbujmy wyznaczyć charakterystykę amplitudową filtru.

H(z) =z

z − a(4.10)

H(ejθ) =ejθ

ejθ − a(4.11)

|H(ejθ)| = 1|ejθ − a|

(4.12)

|H(ejθ)| = 1|cosθ − a+ jsinθ|

=1√

1− 2a · cosθ + a2(4.13)

Page 6: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

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. Wielomianmianownika ma pierwiastek w punkcie a – jest to biegun funkcji H(z), i ten biegun jest od-powiedzialny za składnik anu(n) w odpowiedzi impulsowej.

Każdą funkcję wymierną można rozłożyć na ułamki proste; w przypadku transmitancjitaki rozkład pozwala łatwo znaleźć jej odwrotną transformatę Z (czyli odpowiedź impulsowąukładu).

Jeśli X(z) jest funkcją wymierną zM zerami i N różnymi2 biegunami dk,

X(z) =M−N∑r=0

Br · z−r +N∑k=1

Ak1− dkz−1

, Ak = (1− dkz−1) ·X(z)∣∣∣z=dk

Szukanie transformaty odwrotnej z tak rozłożonego wielomianu jest proste – każdy bie-gun dk generuje nam składową wykładniczą u(n)dnk . Łatwo teraz wyjaśnić, dlaczego biegunymuszą być wewnątrz okręgu jednostkowego – dla |dk| > 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ówCo 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).2Co dzieje się przy biegunach wielokrotnych, zalecamy sprawdzić w podręczniku analizy z pierwszego roku

studiów.3Chyba, że r > 1, wtedy będzie narastająca – ale układów z takimi biegunami zazwyczaj unikamy.

Page 7: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

2014-11-16 3:16 Filtry – właściwości, projektowanie, przetwarzanie sygnałów 7

A0(ejθ)

π θ

aproksymacja wielomianem

minimalne tłumienie w pasmie zaporowym

dopuszczalne zafalowania w pasmie przepustowym

pasmoprzepustowe

pasmo zaporowe

pasmo przej¶ciowe

0

Rys. 4.4: Opis tolerancji charakterystyki filtru

– Określić rząd filtru (szukamy najniższego rzędu, który pozwala spełnić wymagania – aleczęsto zdarza się, że mamy też ograniczenie maksymalnego rzędu wynikające z możliwościrealizacyjnych, i wtedy wymagania trzeba nagiąć).

– Znaleźć współczynniki filtru– Zdecydować o szczegółach implementacji (nie zawsze można filtr wysokiego rzędu zreali-

zować 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 namobojętne co będzie (pasmo przejściowe – transition band).

– Opisać dopuszczalne tolerancje: zafalowania (ang. ripple), minimalne tłumienie (ang. atte-nuation) – 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 charakterystykiChcemy znaleźć “najlepszą” funkcję wymierną

b0 + b1z−1 + . . .+ bMz−M

1 + a1z−1 + . . .+ aNz−N(NOI)

albob0 + b1z−1 + . . .+ bMz−M (SOI)

która dobrze wypełni nasze wymagania. Nie należy zapominać, że chcemy zaprojektować filtrstabilny i przyczynowy4.

Innymi słowy, projektując filtr rozwiązujemy zagadnienie aproksymacji wielomianowej.Niestety, wielomian opisujący funkcję A(θ) jest wielomianem trygonometrycznym (H(z) po

4Przyczynowość jest ważna, jeśli filtr ma pracować w czasie rzeczywistym. Jeżeli filtrujemy zarejestrowanysygnał, możemy użyć filtru nieprzyczynowego – bieg czasu w sygnale nie jest związany z czasem fizycznymwykonania obliczeń.

Page 8: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

8 Filtry – właściwości, projektowanie, przetwarzanie sygnałów 2014-11-16 3:16

podstawieniu z = ejθ). Takie zagadnienie (w przeciwieństwie do zwykłej aproksymacji wielo-mianowej) nie jest łatwe do rozwiązania. Dlatego chętnie stosuje się tu metody optymalizacyj-ne, polegające – w dużym uproszczeniu – na heurystycznym poszukiwaniu współczynnikówdających najlepsze przybliżenie żądanej5 charakterystyki. W niniejszym ćwiczeniu spróbuje-my jednak pokazać kilka metod algorytmicznych, tj. takich, w których po wykonaniu znanejliczby kroków na pewno osiągniemy sukces.

Opóźnienie grupoweOpóźnienie grupowe jest to parametr mówiący o tym, jak opóźniana jest obwiednia im-

pulsu o danej częstotliwości. W wielu zastosowaniach ważne jest, aby różne składowe prze-chodziły przez układ z tym samym opóźnieniem – inaczej następuje dyspersja sygnału, którajest 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ą charaktery-styki fazowej względem częstotliwości:

τ(θ) = −dϕ(θ)/dθ (4.14)

Można udowodnić, że filtr, którego odpowiedź impulsowa jest symetryczna względempewnego punktu P : 2P ∈ Z

h(P + n) = h(P − n) (4.15)

lub antysymetrycznah(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 Czytelnikowi6.

Decyzja: SOI czy NOI?Skrótowo podamy tu wady (-) i zalety (+) obu typów filtrówFiltry 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ą

5Słowo “żądana” można też napisać bez polskich liter: “zadana” i, o dziwo, sens się nie zmieni.6Wystarczy zacząć od nieprzyczynowego filtru z P = 0 i można zobaczyć po co komu ta symetria.

Page 9: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

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 licz-

bowego- 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, deterministycznejilości obliczeń.

Metodę pokażemy na przykładzie filtru dolnoprzepustowego z pasmem przepustowym doθp.

– Zaczynamy od idealnego filtru: A0(θ) =

1 dla |θ| < θp0 dla θp < |θ| ¬ π

i o zerowej fazie.

– Odpowiedź impulsową obliczymy z odwrotnej transformaty Fouriera:

h0(n) =12π

∫ π−πH0 (ejθ ) ejnθ dθ =

θpπ

sin nθpn θp

i otrzymujemy idealny, ale nieprzyczynowy filtr o nieskończonej odpowiedzi....– Przycinamy więc odpowiedź, aby była skończona: hP [n] = h0[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] = hP [n− P ]−→ Ostatecznie otrzymamy

H(z) =2P∑n=0

h(n) z−n = z−PHP (z)

Jest to filtr o liniowej charakterystyce fazowej – a więc o stałym opóźnieniu grupowymró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 dziedziniewidma spletliśmy idealną charakterystykę z funkcją G(θ) = sinLθ/2sin θ/2 .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 boczny-

miG(θ) – skutkiem są zafalowania w pasmie przepustowym i niepełne tłumienie w pasmiezaporowym (w obu przypadkach zobaczymy tu kształt listków bocznych – jest to znany zsyntezy sygnału prostokątnego efekt Gibbsa).

Page 10: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

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 szerszepasmo przejściowe (bo “lepsze” okna mają szerszy listek główny G(θ)).

Warto podkreślić, że obcięcie oknem prostokątnym prowadzi do optymalnej aproksymacjiw sensie średniokwadratowym (która jednak nie jest optymalna w sensie zdrowego rozsądku).

SOI i NOI – metody optymalizacyjneMetody optymalizacyjne projektowania filtrów zazwyczaj pozwalają spełnić wymagania

przy niższym rzędzie filtru, niż metody “deterministyczne”. Za to obarczone są ryzykiem dłu-gich obliczeń w czasie projektowania i ewentualnego nieuzyskania dobrego rozwiązania.

Metody optymalizacyjne rozwiązywania wszelkich zagadnień polegają na sformułowa-niu funkcji celu i znalezieniu jej maksimum – lub odwrotnie, sformułowaniu funkcji kary iszukanie minimum. Nie jest celem tego przedmiotu wykład metod, jakimi się to osiąga; ogra-niczymy się do pokazania, jak taką funkcję kary można sformułować.

Otóż celem przy projektowaniu filtru jest uzyskanie charakterystyki A(θ) mozliwie bli-skiej charakterystyce idealnej A0(θ) – oznacza to, że chcielibyśmy minimalizować odchyłkę|A(θ) − A0(θ)| na całym interesującym nas przedziale wartości θ (możemy np. wykluczyć zminimalizacji pasmo przejściowe). Trzeba więc sprowadzić nasz cel do minimalizacji pewnejwartoś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 tychpunktów w trakcie iteracji). Popularne podejście zwane średniokwadratowym polega na su-mowaniu kwadratów odchyłek:

ε =∑k

|A(θk)− A0(θ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 jestmały, to maksymalny błąd pozostaje duży.

Dlatego w projektowaniu filtrów często stosuje się podejście zwane minimaksowym – mi-nimalizuje się w nim maksymalną odchyłkę. Polega to na zdefiniowaniu funkcji kary jakosumy błędów podniesionych do wysokiej potęgi (duże wartości p, a często – p narastające w

Page 11: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

2014-11-16 3:16 Filtry – właściwości, projektowanie, przetwarzanie sygnałów 11

kolejnych iteracjach):ε =∑k

|A(θk)− A0(θ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 analogowegoPoniższe metody projektowania pozwalają uzyskać stosunkowo dobre wyniki przy deter-

ministycznym nakładzie obliczeń.We wstępnych rozważaniach zauważyliśmy, że potrzebujemy niełatwej aproksymacji za-

danej funkcji wielomianami trygonometrycznymi. Dla filtrów analogowych opracowano wie-le metod łatwej aproksymacji zwykłymi wielomianami. Tu spróbujemy ten olbrzymi zasóbwiedzy wykorzystać, projektując filtr analogowy a następnie przenosząc projekt do dziedzinyfiltrów cyfrowych.

Zasadniczymi różnicami między pojęciem częstotliwości dla sygnałów z czasem dyskret-nym 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ściTo 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ło-potów, potrzebujemy przekształcić jeden okres osi pulsacji θ (od−π do π) na całą oś pulsacjiω (od −∞ do +∞). Zastosujemy do tego funkcję

ω =2Tstgθ

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 =2Ts

1− z−1

1 + z−1(4.20)

Przekształcenie to przeprowadza oś pulsacji z = ejθ na oś pulsacji s = jω, i wnętrze okręgujednostkowego |z| < 0 na lewą półpłaszczyznę Res < 0. Filtr zaprojektowany jako stabilnyw 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 dyskret-

nej na dziedzinę czasu ciągłego (wzór (4.19) – po angielsku nazywa się tę operację termi-nem prewarp),

– zastosowaniu gotowych metod aproksymacji znanymi wielomianami i obliczeniu transmi-tancji prototypu Ha(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:

Page 12: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

12 Filtry – właściwości, projektowanie, przetwarzanie sygnałów 2014-11-16 3:16

Res

Rez

Imz

θ = +π

θ = −π θ = 0

ω = 0

x

xx

x

xx

x

x

x

x

x

x

o

o

oo

o

o

o

o

Ims = jω

Rys. 4.6: Przekształcenie biliniowe

Rys. 4.7: Poglądowe charakterystyki amplitudowe dolnoprzepustowych filtrów zaprojektowa-nych 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.

7Ciekawym zbiegiem okoliczności “butter” oznacza “masło”, a masło jest gładkie...

Page 13: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

2014-11-16 3:16 Filtry – właściwości, projektowanie, przetwarzanie sygnałów 13

Oszczędne implementacje filtrów SOISpeł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 dziedzinieczasu 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żnyliniowemu, trzeba dopełnić sygnały zerami (a potem odpowiednio sklejać wyniki filtrowaniakolejnych bloków)8.

Po trzecie, w niektórych sytuacjach (filtr dolnoprzepustowy, uśredniający bardzo wielepróbek) można wykorzystać kaskadę filtrów grzebieniowych, w których nie potrzeba mnoże-nia (współczynniki są równe 0 lub 1)9.

Problem dynamikiPo 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 zakumulowaniupróbek w pętli sprzężenia zwrotnego w filtrze NOI) – przekroczenie zakresu reprezentacjiliczbowej 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 odpo-wiednio ustawiając kolejność sekcji oraz ich wzmocnienia.

Problem stabilnościFiltr NOI może być niestabilny z kilku powodów.

– Procedura projektowania (np. optymalizacyjna) może dać w wyniku biegun poza okręgiemjednostkowym – 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ł bliskookręgu jednostkowego poza tę granicę. Radą na to jest dzielenie filtru na sekcje niskiegorzę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ść nabłędy współczynników jest mniejsza (za cenę większej złozoności obliczeniowej).

8Więcej informacji można szukać pod hasłem “overlap-add” i “overlap-save” – to są nazwy dwóch metodsklejania bloków danych filtrowanych w taki sposób.

9Ten temat jest tylko zasygnalizowany – można poszukać w literaturze lub na wykładzie z przedmiotu TRA.

Page 14: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

14 Filtry – właściwości, projektowanie, przetwarzanie sygnałów 2014-11-16 3:16

4.1.5. Zadania do pracy własnej studentaPodobne 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 ampli-tudowej 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 odpo-wiedź 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 Fo-uriera”.

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ściowe-go.

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 Zb) 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®Filtracja cyfrowa w MATLABie® zaimplementowania została w standardowej funkcji filter.

Page 15: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

2014-11-16 3:16 Filtry – właściwości, projektowanie, przetwarzanie sygnałów 15

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, wstawia-

my tu 1,x – sygnał do przefiltrowania (wynik będzie miał taki sam rozmiar jak x –zazwyczaj podaje-

my tu wektor sygnału, ale x może też być macierzą, i wtedy każda jej kolumna zostanieprzefiltrowana 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, natomiastN – 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 wy-nikiem jest wektor zespolonych wzmocnień h i wektor pulsacji unromowanych w, z którychmożna samemu stworzyć wykres charakterystyki amplitudowej i fazowej.

4.3. Eksperymenty do wykonania w laboratorium – projek-towanie 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ównej0.1 + numerstanowiska/50» x=2+sin(f*2*pi*[0:99]);» plot(x)» mean(x)%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 ej0, umieść je w zmiennejB

Wskazówka: help poly Zanotuj

Zanotuj obliczone współczynnikiPrzefiltruj sygnał filtrem, którego transmitancja jest znalezionym wielomianem, obejrzyjwynik» y=filter(B,1,x);» plot(0:99,x,0:99,y);» mean(y) Zanotuj

Zanotuj wartość składowej stałej w sygnale po filtracji

OdpowiedzOdpowiedz 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 ze-rami jak w poprzednim zadaniu. Dla zgodności z help'em do funkcji filter umieść

Page 16: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

16 Filtry – właściwości, projektowanie, przetwarzanie sygnałów 2014-11-16 3:16

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.Zanotuj

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ść unormowa-ną10.Uwaga: Jeżeli faza angle(h) wychodzi nieciągła z powodu przekroczenia π, możeszużyć unwrap(angle(h)); nieciągłością dla punktu θ = 0 można się nie przejmować– wzmocnienie jest tu zerowe11.

✿✿✿✿✿✿✿✿✿Naszkicuj

✿✿✿✿✿✿✿✿wykres

✿✿✿✿✿✿✿✿✿✿✿opóźnienia

✿✿✿✿✿✿✿✿✿✿✿✿grupowego

✿i✿✿✿✿✿✿✿✿✿✿✿✿✿✿wzmocnieniaNaszkicuj

✿✿✿✿✿filtru (charakterystyki częstotliwościowej), Zanotuj maksymalne opóźnienie i jego lokalizację

Zanotujna osi częstotliwości.Przetestuj filtr w kilku punktach charakterystyki. W każdym punkcie wygeneruj sinusoidę oodpowiedniej 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ściZanotuj

(zero) (nieduża) (w max. ch-ki) (duża)CzęstotliwośćAmplituda weAmplituda wyWzmocnienie z charakterystykiWzmocnienie z testu

4.3.1.3. Extra Prosty rezonator II

Powtórz poprzednie zadanie dla biegunów w 0.9e±j0.8π.

10Student powinien już pamiętać, że pulsacja unormowana θ = π odpowiada częstotliwości unormowanejfn = 0.5 albo częstotliwości fizycznej f = 0.5fs. Ten przypis powstał dlatego, że niektórzy nie pamiętają izadają prowadzącym głupie pytania

11Jeśli masz nieciągłość gdzieś indziej, być może zrobiłeś jakiś błąd – nieciągłość może się pojawić w cha-rakterystyce fazowej filtru, ale przy tym filtrze jej nie ma.

Page 17: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

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 szereguFouriera

4.3.2.1. Filtr o odpowiedzi sinc()

Spróbujemy teraz zaprojektować idealny filtr dolnoprzepustowy (o prostokątnej charaktery-styce 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 (dolnoprze-pustowego) 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 ge-neruje wektor zer i jedynek (na indeksach, na których elementy wektora n /nie spełnia-ją/spełniają/ wyrażenia logicznego), i tym wektorem indeksujemy wektor h – to oznaczawybó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 podej-rzany element12 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,'-*'); Zanotuj

Zanotuj (analityczne) obliczenia granicy.Jeśli nie robiłeś zadania extra, oblicz odpowiedź impulsową korzystając z funkcji sinc(zdefiniowanej jako sinπx

πx)

» n=-1023:1024;% oś czasu» thetaG=(2+nrs)/20*pi» x=n*thetaG;» h=thetaG/pi*sinc(x*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łnie-niem zerami do 216)» 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ęstotli-

woś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

12Jeśli czytasz ten tekst nie wykonując ćwiczenia, domyśl się, co mógł obliczyć Matlab jako sin(0)/0.

Page 18: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

18 Filtry – właściwości, projektowanie, przetwarzanie sygnałów 2014-11-16 3:16

» plot(20*log10(A)))» axis([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

Zanotuj szerokość pasma przejściowego filtru i porównaj z szerokością listka głównegotransformaty oknaPopraw charakterystykę filtru używając okna Hamminga» hh=h(:).*hamming(length(h)); Wykreśl na ekranie charakterystykę poprawio-nego filtru oraz transformatę Fouriera funkcji oknaZanotuj

Zanotuj szerokość pasma przejściowego filtru i porównaj z szerokością listka głównegotransformaty okna

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ęsto-tliwości Fc = (1 + numerstanowiska/10) kHz. W dalszej częsci ćwiczenia będziesz usu-wać z rzeczywistego sygnału takie zakłócenie wygenerowane generatorem laboratoryjnym.Do projektu załóż, że sygnał będzie próbkowany z częstotliwością Fs = 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ż pokazujeona rozmaite niespodziewane efekty o dużej wartości dydaktycznej. Tylko w razie poważnegobraku 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 po-przez 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 pro-jektu pasmo zaporowe 1.5 raza szersze13. Zanotuj przyjęte założenia projektowe, wyrażoneZanotuj

w dziedzinie częstotliwości unormowanej.Załóż, że pasmo przejściowe filtru może mieć szerokość porównywalną z 1/4 pasma zapo-rowego. Zastanów się, jaki z tego wynika minimalny rząd filtru L. Wskazówka: Wykorzy-staj wyniki poprzedniego zadania co do związku szerokości pasma przejściowego z listkiemgłównym transformaty okna. Zastanów się jaka jest szerokość listka głównego transformatyimpulsu prostokątnego o długości L+ 1..Zanotuj obliczony minimalny rząd.Zanotuj

Przyjmij, że charakterystykę filtru spróbkujesz w Lh = 4 · (L + 1) punktach (gdzie L jestwyznaczonym 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ńcowyUtwórz wektor H zawierający pożądaną charakterystykę filtru dla czestości od 0 do π, wy-pełniając ją jedynkami (a zerami w pasmie zaporowym).

13Nawet jeśli masz bardzo pewną rękę, nie przyjmuj mniej niż ±50 Hz.

Page 19: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

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 cy-kliczności widma odpowiada częstotliwościom powyzej Fs/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ściDFT) – 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ży-ciem 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 dopliku.» 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 przyj-mują 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. Zanotuj

Utrudnij zadanie optymalizacji – przy tych samych pozostałych parametrach wymuś węższepasmo przejściowe.Zwiększ rząd, aby zniwelować niekorzystne efekty zaostrzenia wymagań.

Page 20: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

20 Filtry – właściwości, projektowanie, przetwarzanie sygnałów 2014-11-16 3:16

OdpowiedzOdpowiedz na pytanie: Określ ilościowo (w przyblizeniu), jakiej zmiany rzędu wymaga dwu-krotne zwężenie pasma przejściowego.

4.3.4. Projektowanie filtrów NOI z prototypu analogowegoPrototyp analogowy będzie przekształcony w filtr cyfrowy przy wykorzystaniu transformacjibiliniowej zmiennej s w zmienną z. W Matlabie zazwyczaj projektowanie jest dwuetapowe –najpierw obliczamy rząd filtru konieczny do spełnienia wymagań (i ew. parametry pomocni-cze) funkcją ***ord, a następnie podajemy je do funkcji znajdującej współczynniki.

Uwaga: Wszystkie procedury MATLABa® przeznaczone do projektowania filtrów przyj-mują 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π,– 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 czasuwybierz 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 wymaga-nia.Zanotuj

Zanotuj rząd filtru w każdym przypadku i opisz zachowanie w pasmie zaporowym iprzepustowym (zafalowania, sposób zanikania zafalowań z częstotliwością itp.)

4.3.5. Realizacja filtrów i zastosowania filtrów4.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 fil-trów cyfrowych.

Page 21: Laboratorium Cyfrowego Przetwarzania Sygnałówstaff.elka.pw.edu.pl/~jmisiure/lcps_a_2015l/skrypt_lcps_l4_2014z.pdf · Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do

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 od-cięcia 0.075 · fs. Możliwe jest manualne zdefiniowanie współczynników filtru (po kliknięciuprzycisku 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 oddzie-lone są tabulatorem a separatorem dziesiętnym jest kropka. Pierwsza kolumna pliku definiujekolejne współczynniki licznika, poczynając od potęgi 0, druga mianownika.

Liczba bitów stosowanych po kwantyzacji do reprezentacji współczynników filtru jest war-tością z kontrolki „filter coeffs word length after quantization”.

W zakładce „frequency domain” znajdują się wykresy widma amplitudowego sygnałuodebranego przed i po filtracji cyfrowej.

Zakładka „filter plots” zawiera wykresy odpowiedzi impulsowej, zer i biegunów na płasz-czyźnie S oraz charakterystyki amplitudowej wczytanego filtru przed i po kwantyzacji. Po-szczególne wykresy można wyłączać/włączać checkboxami przy legendzie (jedynie, kiedyaplikacja nie jest w stanie odbioru!).

Wykorzystując lab4receiver.vi zbadaj wpływ kwantyzacji współczynników na charaktery-stykę 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 wrazie 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...)