Uniwersytet Zielonogórski
Instytut Sterowania i Systemów Informatycznych
Laboratorium cyfrowego przetwarzania i kompresji danych
Liniowe systemy niezmienne w czasie oraz operacja splotu dyskretnego
Cele ćwiczenia
Celem ćwiczenia jest zapoznanie się z systemami niezmiennymi w czasie oraz operacją splotu dyskretnego.
Uwagi do ćwiczenia
Cześć 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.exp, np.zeros, np.where.
Jeśli jest to możliwe, użyj powyższych poleceń do implementacji rozwiązań poniższych zadań.
Przykład pomocniczy do zadań
Poniższy przykład pozwala na wygenerowanie podstawowego przebiegu w postaci sygnału sinusoidalnego (wykres. 1). Kod można wykorzystać do rozwiązania zadań w ramach tej listy.
Fs = 1600 % Częstotliwości próbkowania
Ts = 1/Fs % Czas próbkowania
L = 32 % Liczba próbek
t_d = np.arange(0,L,1)*Ts % Oś czasu - wartości dyskretne t_c = np.linspace(0,t_d[-1],L) % Oś czasu - wartości ciągłe
A = 10 % Parametry sygnały - Amplituda
f = 50 % Parametry sygnały - Częstotliwości
Phi = 0 % Parametry sygnały - Przesunięcie fazowe
y_c= A*np.sin(2*np.pi*f*t_c + Phi) % Sygnał - wartości osi Y y_d = A*np.sin(2*np.pi*f*t_d + Phi) % Sygnał - wartości osi Y
% Wykres
plt.figure(figsize=(15,3))
plt.plot(t_c, y_c, ’r’, linestyle = ’-’)
plt.stem(t_d,y_d ,’b’ , markerfmt = ’bs’, use_line_collection = True) plt.grid()
plt.xlabel(’Czas[s]’) plt.ylabel(’Amplituda’)
plt.legend([’- c -’,’- d -’])
0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.02
−10
−5 0 5 10
Czas[s]
Amplituda
− c −
− d −
Wykres. 1: c – przebieg ciągły, d – przebieg dyskretny
Zadania do wykonania
1. Wygenerować sygnał sinusoidalny określony przez następujące równanie
y(t) = A sin(t), (1)
dla następujących parametrów: częstotliwości próbkowania Fs= 10[Hz], liczba pró- bek L = 126, amplituda A = 10. Następnie wykonać przebieg funkcji według nastę- pującego wzoru zawierającego przesunięcie w czasie
y(t) = 10 sin(t + 5). (2)
Uzyskane przebiegi przedstawić na jednym wykresie oraz sprawdzić czy przesunię- cie w czasie powoduję zmianę przebiegu dla próbek powyżej wartości przesunięcia.
Wynikiem ma być wykres 2.
2. Wygenerować odpowiedź impulsową układu opisanego następującym równaniem różnicowym
y(n) = a1
a0y(n − 1) + b1
b0x(n), (3)
dla następujących parametrów: częstotliwości próbkowania Fs= 50[Hz], liczba pró- bek L = 36 oraz x(n) = δ(n), a1 = 2.5, a0 = 3, b1 = 2.5, b0 = 3, gdzie n – numer próbki. Wynikiem ma być wykres 3.
3. Wygenerować odpowiedź impulsową układu opisanego następującym równaniem różnicowym
y(n) = a1
a0y(n − 1) +a2
a0y(n − 2) + b1
b0x(n), (4)
dla następujących parametrów: częstotliwości próbkowania Fs= 50[Hz], liczba pró- bek L = 64 oraz x(n) = δ(n), a2 = 0.2, a1 = 2.5, a0 = 3, b1 = 3.5, b0 = 2, gdzie n – numer próbki. Wynikiem ma być wykres 4.
4. Wyznacz odpowiedź układu (3) na wymuszenie w postaci skoku jednostkowego, przebiegu sinusoidalnego oraz sumy przebiegów sinusoidalnych na podstawie listy laboratoryjnej nr. 1 analogicznie do zadania 2 zamieniając δ(n) na odpowiednio:
skoku jednostkowy, przebiegu sinusoidalny oraz sumę przebiegów sinusoidalnych.
Wynikiem mają być wykresy 5, 6, 7.
5. Bazując na odpowiedzi impulsowej z zadania 2, wyznacz odpowiedź układu (3) na
przebiegów sinusoidalnych na podstawie listy laboratoryjnej nr. 1 z zastosowaniem operacji splotu. Wykorzystaj funkcję conv. Porównać otrzymane wyniki z wynikami z poprzedniego zadania na jednym wykresie dla danego wymuszenia. Wynikiem mają być wykresy 8, 9, 10.
6. Analogicznie do dwóch poprzednich zadań wykonaj odpowiedź układu dla wymu- szenia w postaci sygnału losowego dla wartości w przedziale [50, 100]. Wykorzystaj funkcję rand. Przy czym: częstotliwości próbkowania Fs = 1[Hz], liczba próbek L = 100. Wynikiem ma być wykres 11.
0 2 4 6 8 10 12 14
−10
−5 0 5 10
Czas[s]
Amplituda
− d −
− d −
Wykres. 2: d – przebieg dyskretny
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7
0 0.2 0.4 0.6 0.8 1
Czas[s]
Amplituda
− d −
Wykres. 3: d - przebieg dyskretny
0 0.2 0.4 0.6 0.8 1 1.2 1.4
0 0.5 1 1.5 2
Czas[s]
Amplituda
− d −
Wykres. 4: c – przebieg ciągły, d – przebieg dyskretny
0 2 4 6 8 10 12 14 16 18 20 0
1 2 3 4 5
Czas[s]
Amplituda
− d −
Wykres. 5: c – przebieg ciągły, d – przebieg dyskretny
0 0.005 0.01 0.015 0.02 0.025 0.03
−20
−10 0 10 20 30
Czas[s]
Amplituda
− d −
Wykres. 6: c – przebieg ciągły, d – przebieg dyskretny
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08
−1000
−500 0 500 1000
Czas[s]
Amplituda
− d −
Wykres. 7: c – przebieg ciągły, d – przebieg dyskretny
0 2 4 6 8 10 12 14 16 18 20
0 1 2 3 4 5
Czas[s]
Amplituda
− d −
− d −
Wykres. 8: c – przebieg ciągły, d – przebieg dyskretny
0 0.005 0.01 0.015 0.02 0.025 0.03
−20
−10 0 10 20 30
Czas[s]
Amplituda
− d −
− d −
Wykres. 9: c – przebieg ciągły, d – przebieg dyskretny
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08
−1000
−500 0 500 1000
Czas[s]
Amplituda
− d −
− d −
Wykres. 10: d - przebieg dyskretny
0 10 20 30 40 50 60 70 80 90 100
0 100 200 300 400 500
Czas[s]
Amplituda
− d −
− d −
Wykres. 11: d - przebieg dyskretny