Cyfrowe Przetwarzanie Sygnałów
8 Projektowanie rekursywnych filtrów cyfrowych (IIR)
21.04.2010
dr inż. Jarosław Bułat
Ć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: fp1 = 1800Hz, fs1 = 1900Hz, fs2 = 2100Hz, fp2 = 2200Hz, Apass = 3dB, Astop = 50dB
Przyjmij fs = 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 f1 = 500Hz
•
częstotliwość końcowa f2 = 3000Hz
•
zmiana częstotliwości liniowa
•
czas trwania t = 1s
•
częstotliwość próbkowania fs = 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).