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
= 1800Hz, f
s1
= 1900Hz, f
s2
= 2100Hz, f
p2
= 2200Hz,
A
pass
= 3dB, A
stop
= 50dB
Przyjmij f
s
= 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
s
= 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).