Cyfrowe przetwarzanie sygnału - FTIMSstud.ics.p.lodz.pl/~aangiel/Semestr 7/cyfrowe/zad1.pdf ·...
Transcript of Cyfrowe przetwarzanie sygnału - FTIMSstud.ics.p.lodz.pl/~aangiel/Semestr 7/cyfrowe/zad1.pdf ·...
Cyfrowe przetwarzanie sygnałuZadanie 1
Artur Angiel 157797 Piotr Jasiak 157853
16 listopada 2012
Wstęp
Celem niniejszego sprawozdania jest podsumowanie prac nad programem, które-go zadaniem jest generowanie sygnałów cyfrowych, ich prezentacja oraz operacje nanich.
1 Zagadnienia teoretyczne
W projekcie zaimplementowane zostało generowanie poniższych sygnałów i szu-mów:
• szum o rozkładzie jednostajnym
• szum gaussowski
• sygnał sinusoidalny
• sygnał sinusoidalny wyprostowany jednopołówkowo
• sygnał sinusoidalny wyprostowany dwupołówkowo
• sygnał prostokątny
• sygnał prostokątny symetryczny
• sygnał trójkątny
• skok jednostkowy
• impuls jednostkowy
• szum impulsowy
Każdy z nich ma określone parametry wejściowe, na podstawie których obliczasię kolejne wartości.
Jako że sygnały te są cyfrowe, zbiór ich wartości od czasu jest zdyskretyzowany.Czas również określony jest na skończonym zbiorze. Wszystkie wartości obliczane sądla równych odstępów czasu, co nazywamy próbkowaniem. Wartością próbkowaniajest Herc [Hz].
1
2 Obsługa programu
Program obsługiwany jest bardzo intuicyjnie. Z okna głównego (rys. 1) wybie-ramy pożądany przez nas sygnał, a interfejs uaktywnia wymagane parametry, któreużytkownik musi uzupełnić.
Rysunek 1: Okno główne
Po wciśnięciu przycisku “Generuj” pokazuje się okno dla wygenerowanego sy-gnału (szumu) (rys. 2) domyślnie otwartego na zakładce z wykresem amplitudy odczasu [A(t)].
Rysunek 2: Okno z wykresem sygnału
2
Na drugiej zakładce (rys. 3) znajduje się histogram, mówiący o tym, ile razydana częstotliwość wystąpiła w wygenerowanym sygnale.
Rysunek 3: Okno z histogramem
3 Generowanie danych
Sposób, w jaki dane zostały wygenerowane jest bardzo prosty, ponieważ wyko-rzystane zostały wzory podane w instrukcji do zadania1. Przełożono je ze wzorówmatematycznych na instrukcje języka programowania, takie jak pętle i warunki.
Przykład Dla funkcji sin: x(t) = Asin(2πT
(t− t1))
for (int i = 0; i < this.sine.length; i++) {this.sine[i] = A * Math.sin((2 * Math.PI / (T * f)) * (i - (t1 * f)));
}
W powyższym przykładzie uwzględniona została częstotliwość próbkowania (f).
1http://ftims.edu.p.lodz.pl//file.php/154/zadanie1_20101011.pdf
3
4 Implementacja
Program napisany został w języku Java2, z wykorzystaniem biblioteki graficznejSwing. Do prezentacji wykresów wykorzystano bibliotekę JFreeChart3.
Podstawową klasą jest MainWindow, która po wyborze wszystkich parametrówwykresu tworzy obiekt klasy DigitalSignal. Do tego obiektu przekazywane są wszyst-kie parametry, potrzebne do wygenerowania sygnału. W dalszej kolejnościMainWin-dow tworzy nowe okno klasy GeneratedSignal, do którego następnie dodawany jestChartPanel dziedziczący po klasie JPanel. ChartPanel tworzony jest poprzez prze-kazanie odpowiedniego obiektu klasy DigitalSignal oraz napisu informującego, którysygnał jest pożądany.
5 Wnioski
2http://java.com3http://www.jfree.org/jfreechart/
4