• Nie Znaleziono Wyników

Filtracja cyfrowa I.

N/A
N/A
Protected

Academic year: 2021

Share "Filtracja cyfrowa I."

Copied!
4
0
0

Pełen tekst

(1)

Uniwersytet Zielonogórski

Instytut Sterowania i Systemów Informatycznych

Laboratorium cyfrowego przetwarzania i kompresji danych

Filtracja cyfrowa I.

Cele ćwiczenia

Celem ćwiczenia jest zapoznanie się z projektowaniem filtrów cyfrowych.

Uwagi do ćwiczenia

Część wykonanych zadań może być wykorzystana w kolejnych ćwiczeniach, więc propo- nowane jest przechowywanie wyników na potrzeby kolejnych ćwiczeń.

Polecenia języku Python

Zapoznać się z następującymi poleceniami w języku Python: np.arange, np.linspace,

np.sin, np.pi, plt.figure, plt.plot, plt.stem, plt.grid, plt.xlabel, plt.ylabel, plt.legend, np.fft.fft, np.abs, np.random.rand, signal.butter, signal.lfilter, signal.dlti, signal.dimpulse, signal.convolve.

Jeśli jest to możliwe, użyj powyższych poleceń do implementacji rozwiązań poniższych zadań.

Zadania do wykonania

1. Wygenerować sumę przebiegów sinusoidalnych według następującego wzoru

y(t) =XN

i=0

Aisin(2πfit+ φi), (1)

gdzie: i - numer przebiegu, t - czas, Ai - amplituda sygnału sinusoidalnego [V ], fi

- częstotliwość sygnału sinusoidalnego [Hz], φi - przesunięcie fazowe sygnału [o] dla wartości podanych w poniższej tabeli z uwzględnieniem: częstotliwości próbkowania

Nr. przebiegu Ai[V ] fi[Hz] φi[o]

1 230 50 10

2 115 100 20

3 75 250 30

4 35 400 40

5 15 800 50

Fs = 2400[Hz], liczba próbek L = 240. Narysować przebieg czasowy oraz widmo amplitudowe sygnału. Wynikiem ma być wykres 1 oraz 2.

2. Zaprojektować filtr Butterwortha dolnoprzepustowy, górnoprzepustowy, środkowo- przepustowy oraz środkowozaporowy z wykorzystaniem funkcji signal.butter dla następujących częstotliwości odcięcia

• Filtr dolnoprzepustowy - 100[Hz], 500[Hz], 1000[Hz],

• Filtr górnoprzepustowy - 100[Hz], 500[Hz], 1000[Hz],

• Filtr środkowoprzepustowy - [300,500][Hz], [600,800][Hz], [900,1100][Hz],

• Filtr środkowozaporowy - [300,500][Hz], [600,800][Hz], [900,1100][Hz],

1

(2)

Parametr funkcji signal.butter określający częstotliwość odcięcia należy podać jako wartość znormalizowaną z przedziału od 0 do 1 gdzie wartość 1 odpowiada połowie częstotliwości próbkowania. Wartość znormalizowaną można obliczyć z na- stępującego wzoru

W n = Fc 0.5Fs

, (2)

gdzie Fs częstotliwością próbkowania, Fc częstotliwość odcięcia. Jako rząd filtru przyjąć wartości odpowiednio: 2, 4, 6, 8, 10. Po zaprojektowaniu filtru wykonać filtrację oraz sprawdzić wyniki według następującego schematu:

Krok 1 - Wykonać filtrację z wykorzystaniem funkcji signal.lfilter Krok 2 - Wyznaczyć widmo amplitudowe uzyskanego sygnału

Krok 3 - Na jednym wykresie porównać widmo amplitudowe uzyskanego przebiegu z przebiegiem z zdania 1.

Krok 4 - Wyznaczyć odpowiedź impulsową zaprojektowanego filtru z wykorzysta- niem funkcji signal.dimpulse.

Krok 5 - Wykonać filtrację z wykorzystaniem funkcji signal.convolve.

Krok 6 - Wyznaczyć widmo amplitudowe uzyskanego sygnału.

Krok 7 - Na jednym wykresie porównać widmo amplitudowe uzyskanego przebiegu z przebiegiem z zdania 1.

Krok 8 - Na jednym wykresie porównać widma amplitudowe dla sygnałów z kroku 3 oraz 7.

Wynikiem ma być wykres od 3 do 5 dla przypadku filtru dolnoprzepustowego 100[Hz]

o rzędzie 2.

3. Bazując na zadaniu 2 przeanalizować wpływ wartości rzędu filtru na charakterystykę częstotliwościową. Na jednym wykresie porównać charakterystyki poszczególnych filtrów dla wartości rzędu filtru z zadania 2.

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1

−400

−200 0 200 400

Czas[s]

Amplituda

− d −

Wykres. 1: d – przebieg dyskretny

2

(3)

0 200 400 600 800 1000 1200 0

50 100 150 200 250

f[Hz]

Amplituda

− d −

Wykres. 2: d – przebieg dyskretny

0 200 400 600 800 1000 1200

0 50 100 150 200 250

f[Hz]

Amplituda

Old New

Wykres. 3: c – przebieg ciągły, d – przebieg dyskretny

3

(4)

0 200 400 600 800 1000 1200 0

50 100 150 200 250

f[Hz]

Amplituda

Old New

Wykres. 4: c – przebieg ciągły, d – przebieg dyskretny

0 200 400 600 800 1000 1200

0 50 100 150 200 250

f[Hz]

Amplituda

filter conv

Wykres. 5: c – przebieg ciągły, d – przebieg dyskretny

4

Cytaty

Powiązane dokumenty

Zapoznać się z następującymi poleceniami w środowisku Matlab: linspace, sin, figure, plot, stem, hold on, hold off, xlabel, ylabel, legend, zeros, length, find, for, end, fft,

a następnie dla każdego zestawu parametrów na jednym wykresie porównać od- powiedź częstotliwościową uzyskanych filtrów z zastosowaniem funkcji freqz oraz plot. Zaprojektować

Dla poszczególnych kategorii rozpoznania zaproponowano następujące dopuszczalne wielkości błędów wyznaczanych jako błędy krigingu zwyczajnego: kategoria measured (A + B wg

Król Artur urządza turniej rycerski, w którym rycerze spotykają się (jakże by inaczej?) systemem turniejowym. W każdym pojedynku obaj rycerze mają takie same szanse na

Czynność tę mogę zautomatyzować korzy- stając ze (związanej już z programowaniem) funkcji iteracyjnej For.. In[4]:= For[i=1,Length[r[i]]==0,++i];

Porównać sumy Riemanna dla obu

Obliczyć prawdopodobieństwa dla konkretnych

W danej populacji intensywność śmiertelności zmienia się skokowo w rocznicę narodzin i jest stała aż do następnych narodzin. takiego wieku, w którym gęstość rozkładu