Cyfrowe przetwarzanie sygnału - FTIMSstud.ics.p.lodz.pl/~aangiel/Semestr 7/cyfrowe/zad1.pdf ·...

4
Cyfrowe przetwarzanie sygnalu Zadanie 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 sygnalów cyfrowych, ich prezentacja oraz operacje na nich. 1 Zagadnienia teoretyczne W projekcie zaimplementowane zostalo generowanie poniższych sygnalów i szu- mów: szum o rozkladzie jednostajnym szum gaussowski sygnal sinusoidalny sygnal sinusoidalny wyprostowany jednopolówkowo sygnal sinusoidalny wyprostowany dwupolówkowo sygnal prostokątny sygnal prostokątny symetryczny sygnal trójkątny skok jednostkowy impuls jednostkowy szum impulsowy Każdy z nich ma określone parametry wejściowe, na podstawie których oblicza się kolejne wartości. Jako że sygnaly 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óbkowania jest Herc [Hz ]. 1

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