background image

8

Cyfrowe Przetwarzanie Sygnałów
Projektowanie rekursywnych filtrów cyfrowych (IIR)
dr inż. Jarosław Bułat

21.04.2010

Ćwiczenie 1 (1 pkt)

Za   pomocą   transformacji   biliniowej   dokonaj   konwersji   filtru   analogowego   na   filtr   cyfrowy.   Jako 
prototypu analogowego użyj filtru zaprojektowanego w ćwiczeniu 1 na laboratorium 7. Był to filtr 

typu Butterworth pasmowozaporowy (BS) o następujących parametrach:

f

p1

 = 1800Hzf

s1

 = 1900Hz, f

s2

 = 2100Hz, f

p2

 = 2200Hz, 

A

pass

 = 3dB, A

stop

 = 50dB

Przyjmij f

= 10000Hz jako częstotliwość próbkowania dla filtru cyfrowego. Następnie:

wyznacz charakterystykę amplitudowo-częstotliwościową 

wyznacz charakterystykę fazowo-częstotliwościową

wyznacz odpowiedź impulsową

porównaj otrzymane wyniki z charakterystykami filtru analogowego

Ćwiczenie 2 (2 pkt)

Zaprojektuj   filtr   rekursywny   o   parametrach   takich   samych   jak   w   ćwiczeniu   1,   jako   prototyp 
analogowy   wykorzystaj   filtr   Czebyszewa   typu   II.   Porównaj   charakterystyki   amplitudowo-

częstotliwościową   i   fazowo-częstotliwościową   dla   obu   filtrów   rekursywnych   (ćwiczenie   2
i ćwiczenie 1).

Ćwiczenie 3 (2 pkt)

Skonstruuj sygnał sinusoidalny typu ,,sweep'' o następujących parametrach:

częstotliwość początkowa f

1

 = 500Hz

częstotliwość końcowa f

2

 = 3000Hz

zmiana częstotliwości liniowa

czas trwania t = 1s

częstotliwość próbkowania f

= 10000Hz

Wykonaj   samodzielnie   (bez   użycia   instrukcji  filter()  lub   podobnej)   filtracji   tego   sygnału   za 
pomocą   filtru   skonstruowanego   w   ćwiczeniu   1   a   następnie   porównaj   wyniki   dla   tego   samego 

przypadku wygenerowane za pomocą funkcji filter().

****Ćwiczenie 4 (dodatkowe 4 pkt)

Wykonaj   filtrację   jak   w   ćwiczeniu   3,   zasymuluj   obliczenia   wykonywane   na   liczbach 

stałoprzecinkowych. Wyznacz granicę, dla której rezultat tak wykonanej filtracji nie zmienia się o 
więcej niż 5% w paśmie przepustowym. Wyznacz granicę, dla której filtr przestaje być stabilny po 

pobudzeniu   deltą   Kroneckera.   Granicę   wyznacz   jako   ilości   bitów   (lub   poziomów)   na   których 
prowadzone są obliczenia.

Użyj   typów  uint32  lub   odpowiednio   przeskalowanego   i   zaokrąglonego   typu  double.   Zadbaj   o 
poprawne skalowanie wszystkich współczynników i próbek podczas obliczeń, możesz wykorzystać 

fakt, że w większości procesorów akumulator jest dwukrotnie dłuższy (żeby zmieścił się w nim wynik 
mnożenia) od podstawowego rejestru. Dla uproszczenia, typy stałoprzecinkowe powinny być użyte 

wyłącznie podczas filtracji, przygotowanie filtru jak również wyników można wykonać przy użyciu 
liczb zmiennoprzecinkowych.

Informacje przydatne do rozwiązania tych zadań znajdują się w książce T.Zieliński ,,Cyfrowe Przetwarzanie 
Sygnałów'' w rozdziale 11.

Przykładowe programy pomocne w projektowaniu filtrów cyfrowych metodą transformacji biliniowej znajdują się na 
stronie eit.agh.edu.pl oraz w przykładach do ww. książki (patrz Tab. 11-2).


Document Outline