Przetwarzanie sygnałów

Podobne dokumenty
Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L

1. Liczby zespolone. Jacek Jędrzejewski 2011/2012

Przekształcenia całkowe. Wykład 1

LICZBY ZESPOLONE. 1. Wiadomości ogólne. 2. Płaszczyzna zespolona. z nazywamy liczbę. z = a + bi (1) i = 1 lub i 2 = 1

Liczby zespolone. Magdalena Nowak. 23 marca Uniwersytet Śląski

Liczby zespolone. x + 2 = 0.

Matematyka liczby zespolone. Wykład 1


9. Dyskretna transformata Fouriera algorytm FFT

Ćwiczenie 3. Właściwości przekształcenia Fouriera

Wykłady z matematyki Liczby zespolone

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

Rozdział 2. Liczby zespolone

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski

Kurs wyrównawczy - teoria funkcji holomorficznych

Ćwiczenie 4. Filtry o skończonej odpowiedzi impulsowej (SOI)

Liczby zespolone. P. F. Góra (w zastępstwie prof. K. Rościszewskiego) 27 lutego 2007

Rozdział 2. Liczby zespolone

Dr Maciej Grzesiak, Instytut Matematyki

dr inż. Artur Zieliński Katedra Elektrochemii, Korozji i Inżynierii Materiałowej Wydział Chemiczny PG pokój 311

Andrzej Leśnicki Laboratorium CPS Ćwiczenie 6 1/8 ĆWICZENIE 6. Dyskretne przekształcenie Fouriera DFT

Zajęcia nr 1 (1h) Dwumian Newtona. Indukcja. Zajęcia nr 2 i 3 (4h) Trygonometria

A,B M! v V ; A + v = B, (1.3) AB = v. (1.4)

Podstawy Elektrotechniki i Elektroniki. Opracował: Mgr inż. Marek Staude

uzyskany w wyniku próbkowania okresowego przebiegu czasowego x(t) ze stałym czasem próbkowania t takim, że T = t N 1 t

1. Liczby zespolone i

dr inż. Ryszard Rębowski 1 WPROWADZENIE

DYSKRETNE PRZEKSZTAŁCENIE FOURIERA C.D.

Dyskretne przekształcenie Fouriera cz. 2

Zadania egzaminacyjne

2) R stosuje w obliczeniach wzór na logarytm potęgi oraz wzór na zamianę podstawy logarytmu.

Przetwarzanie sygnałów

W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora.

Przetwarzanie sygnałów

ZAGADNIENIA PROGRAMOWE I WYMAGANIA EDUKACYJNE DO TESTU PRZYROSTU KOMPETENCJI Z MATEMATYKI DLA UCZNIA KLASY II

Kolorowa płaszczyzna zespolona

FFT i dyskretny splot. Aplikacje w DSP

Pendolinem z równaniami, nierównościami i układami

ALGEBRA Z GEOMETRIĄ ANALITYCZNĄ zadania z odpowiedziami

III. Funkcje rzeczywiste

ALGEBRA LINIOWA Z ELEMENTAMI GEOMETRII ANALITYCZNEJ. 1. Ciała

Przetwarzanie sygnałów

PODSTAWY RACHUNKU WEKTOROWEGO

Rozwiązania zadań z kolokwium w dniu r. Zarządzanie Licencjackie, WDAM, grupy I i II

Ćwiczenie 3 BADANIE OBWODÓW PRĄDU SINUSOIDALNEGO Z ELEMENTAMI RLC

Próbny egzamin z matematyki dla uczniów klas II LO i III Technikum. w roku szkolnym 2012/2013

Co to jest wektor? Jest to obiekt posiadający: moduł (długość), kierunek wraz ze zwrotem.

Przetwarzanie sygnałów

1 Funkcje elementarne

CYFROWE PRZTWARZANIE SYGNAŁÓW (Zastosowanie transformacji Fouriera)

Matematyka w Instytucie Akustyki. Maciej Radziejewski

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.

Teoria sygnałów Signal Theory. Elektrotechnika I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Podstawy nauk przyrodniczych Matematyka Wstęp

DYSKRETNA TRANSFORMACJA FOURIERA

KURS LICZB ZESPOLONYCH

V. WYMAGANIA EGZAMINACYJNE

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Matematyka A kolokwium 26 kwietnia 2017 r., godz. 18:05 20:00. i = = i. +i sin ) = 1024(cos 5π+i sin 5π) =

Algebra liniowa i geometria analityczna. Autorzy: Agnieszka Kowalik Michał Góra

Funkcje analityczne. Wykład 2. Płaszczyzna zespolona. Paweł Mleczko. Funkcje analityczne (rok akademicki 2017/2018)

? 14. Dana jest funkcja. Naszkicuj jej wykres. Dla jakich argumentów funkcja przyjmuje wartości dodatnie? 15. Dana jest funkcja f x 2 a x

GAL 80 zadań z liczb zespolonych

IMPLEMENTATION OF THE SPECTRUM ANALYZER ON MICROCONTROLLER WITH ARM7 CORE IMPLEMENTACJA ANALIZATORA WIDMA NA MIKROKONTROLERZE Z RDZENIEM ARM7

Funkcje wymierne. Funkcja homograficzna. Równania i nierówności wymierne.

Interpolacja. Marcin Orchel. Drugi przypadek szczególny to interpolacja trygonometryczna

Przestrzenie wektorowe

PORÓWNANIE TREŚCI ZAWARTYCH W OBOWIĄZUJĄCYCH STANDARDACH EGZAMINACYJNYCH Z TREŚCIAMI NOWEJ PODSTAWY PROGRAMOWEJ

Andrzej Leśnicki Laboratorium CPS Ćwiczenie 7 1/7 ĆWICZENIE 7. Splot liniowy i kołowy sygnałów

ROZKŁAD MATERIAŁU NAUCZANIA KLASA 1, ZAKRES PODSTAWOWY

Automatyka i robotyka

Analiza obrazu. wykład 5. Marek Jan Kasprowicz Uniwersytet Rolniczy 2008

ALGEBRA z GEOMETRIA, ANALITYCZNA,

Wielomiany podstawowe wiadomości

i = [ 0] j = [ 1] k = [ 0]

Funkcje Andrzej Musielak 1. Funkcje

7. Funkcje elementarne i ich własności.

TRYGONOMETRIA. 1. Definicje i własności funkcji trygonometrycznych

Praca domowa - seria 2

Aproksymacja funkcji a regresja symboliczna

Transformata Fouriera i analiza spektralna

Funkcje: wielomianowa, wykładnicza, logarytmiczna wykład 2

Funkcje: wielomianowa, wykładnicza, logarytmiczna wykład 3

2. Próbkowanie Sygnały okresowe (16). Trygonometryczny szereg Fouriera (17). Częstotliwość Nyquista (20).

= i Ponieważ pierwiastkami stopnia 3 z 1 są (jak łatwo wyliczyć) liczby 1, 1+i 3

Projekt Informatyka przepustką do kariery współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Jarosław Wróblewski Analiza Matematyczna 2, lato 2016/17

Funkcje trygonometryczne w trójkącie prostokątnym

Lepkosprężystość. Metody pomiarów właściwości lepkosprężystych materii

Informacja o przestrzeniach Hilberta

Podstawy Automatyki. Wykład 5 - stabilność liniowych układów dynamicznych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Funkcja liniowa i prosta podsumowanie

III. Układy liniowe równań różniczkowych. 1. Pojęcie stabilności rozwiązań.

Lista nr 1 - Liczby zespolone

Transformata Laplace a to przekształcenie całkowe funkcji f(t) opisane następującym wzorem:

Zagadnienia do małej matury z matematyki klasa II Poziom podstawowy i rozszerzony

Transformata Fouriera

Fizyka. dr Bohdan Bieg p. 36A. wykład ćwiczenia laboratoryjne ćwiczenia rachunkowe

Zajmijmy się najpierw pierwszym równaniem. Zapiszmy je w postaci trygonometrycznej, podstawiając z = r(cos ϕ + i sin ϕ).

Transkrypt:

Spis treści Przetwarzanie sygnałów Ćwiczenie 2 Dyskretna transformacja Fouriera 1 Liczby zespolone 1 2 Dyskretna Transformacja Fouriera (ang. Discrete Fourier Transform DFT) 2 3 Pytania i zadania na kartkówkę 3 4 Zadania do realizacji 4 4.1 Funkcje pomocnicze......................... 4 4.2 DFT sygnału rzeczywistego.................... 5 4.3 IDFT sygnału rzeczywistego.................... 6 4.4 DFT sygnału zespolonego..................... 6 4.5 IDFT sygnału zespolonego..................... 7 dr hab. inż. Grzegorz Jóźwiak, dr hab. inż. Tomasz Piasecki (tomasz.piasecki@pwr.edu.pl)

1 Liczby zespolone Liczby zespolone są uogólnieniem liczb rzeczywistych. Liczba zespolona jest sumą liczby rzeczywistej i liczby rzeczywistej przemnożonej przez jednostkę urojoną j (a + jb). Jednostka urojona j spełnia równość j 2 = 1. Zatem liczbę zespoloną można podzielić na dwie części: część rzeczywistą a i część urojoną b. Liczba zespolona, której część urojona jest równa zero, jest po prostu liczbą rzeczywistą. Zbiór liczb zespolonych oznacza się zwykle dużą literą C, podobnie jak zbiór liczb rzeczywistych oznacza się dużą literą R. Liczby zespolone można przedstawić graficznie na płaszczyźnie zespolonej jako punkty. Oś odciętych (pozioma) informuje o wartościach części rzeczywistej liczb zespolonych, natomiast oś rzędnych (pionowa) o wartościach części urojonej (rysunek 1a). (a) współrzędne kartezjańskie Im (b) współrzędne biegunowe Im b a+jb re jϕ r 0 a Re 0 ϕ Re Rysunek 1: Reprezentacje liczby zespolonej na płaszczyźnie zespolonej. Zatem oś odciętych można traktować jako oś liczb rzeczywistych, które stanowią podzbiór liczb zespolonych. Dla liczb zespolonych zdefiniowane są operacje algebraiczne, takie jak: dodawanie: (a + jb) + (c + jd) = (a + c) + j(b + d), odejmowanie: (a + jb) (c + jd) = (a c) + j(b d), mnożenie (a + jb)(c + jd) = (ac bd) + j(bc + ad), dzielenie: a+jb = (a+jb)(c jd) c+jd c 2 +d 2 = ac+bd c 2 +d 2 + j bc ad c 2 +d 2. Płaszczyznę liczb zespolonych można przedstawić również w układzie biegunowym (rysunek 1b). W układzie tym położenie punktu definiuje się za pomocą długości wektora i kąta jaki tworzy on z dodatnią półosią odciętych (poziomą). Położenie punktu w układzie biegunowym można łatwo wyznaczyć, przechodząc z algebraicznej postaci liczby zespolonej do postaci trygonometrycznej a + jb = r(cos ϕ + j sin ϕ) lub wykładniczej a + jb = re jϕ. Aby takiego przejścia dokonać, należy obliczyć r i ϕ, korzystając z zależności r = a 2 + b 2, ϕ = arctan ( ) b a. Aby przejść z postaci wykładniczej na algebraiczną wykorzystuje się postać trygonometryczną oraz oblicza wartości a = r cos ϕ i b = r cos ϕ, co daje nam wartości odpowiednio części urojonej i rzeczywistej. Reprezentacja liczb zespolonych w układzie biegunowym wiąże się z pewnymi niedogodnościami. Pierwsza z nich wynika z okresowości funkcji trygonometrycznych sin(ϕ) = sin(2πn+ϕ) i cos(ϕ) = cos(2πn + ϕ) dla n Z. Dlatego re jϕ = re 2πn+ϕ dla n Z (zbiór liczb całkowitych). Drugą niedogodnością jest konieczność rozpatrzenia przypadku, w którym część rzeczywista liczby zespolonej jest równa 0. ależy też pamiętać, że funkcja arcus tangens (arctan) przyjmuje wartości z przedziału π, ) π 2 2, podczas gdy kąt ϕ powinien przyjmować wartości od π, π). Aby zatem obliczyć poprawny kąt fazowy ϕ należy odpowiednio skorygować wynik funkcji arctan dla przypadków, kiedy część rzeczywista liczby zespolonej jest ujemna. Wówczas w zależności od tego, czy część urojona jest dodatnia czy ujemna należy do wyniku funkcji arctan dodać lub od tego wyniku odjąć liczbę π. 1

2 Dyskretna Transformacja Fouriera (ang. Discrete Fourier Transform DFT) W dziedzinie przetwarzania sygnałów operacja rozkładu na zbiór funkcji bazowych (składowych) polega na obliczeniu współczynników skalujących amplitudę tych funkcji. Obliczony zbiór współczynników nazywa się widmem sygnału. Zbiór funkcji bazowych zwykle powstaje przez parametryzację pewnej funkcji. W przypadku DFT jest to funkcja zespolona w postaci: e j2πkn ( ) ( ) 2πkn 2πkn = cos + j sin w której jest liczbą próbek jednego okresu rozkładanego dyskretnego sygnału okresowego, a k jest parametrem generującym zbiór funkcji dla operacji rozkładu. Dla DFT k = 0.. 1. Oznacza to, że zbiór funkcji jest dyskretny i skończony (stanowi go funkcji bazowych). Indeks k jest związany z okresem (lub odwrotnością okresu czyli częstotliwością) dyskretnych funkcji sinus i cosinus. Indeks ten mówi ile okresów funkcji sinus lub kosinus znajduje się w ciągu próbek. Dlatego częstotliwość dyskretnych funkcji sinus i cosinus wynosi k i jest bezwymiarowa. Jeżeli ciąg próbek jest wynikiem operacji próbkowania równomiernego w czasie z okresem próbkowania równym T s (częstotliwość próbkowania f s = 1 t s ), to ciągłe rekonstrukcje funkcji bazowych DFT miałyby równanie, w którym wyrażenie e j2πkt Ts ( ) ( ) 2πkt 2πkt = cos + j sin T s T s k = kf s T s ma sens częstotliwości k-tej funkcji bazowej. Związek parametru k dla funkcji dyskretnych z częstotliwością ich ciągłych odpowiedników pozwala na wykorzystanie DFT do analizy sygnałów ciągłych. Istnieją inne bazy Fouriera: dla sygnałów ciągłych okresowych, 2. e j2πft T dla sygnałów ciągłych nieokresowych, 3. e j2πfn T dla sygnałów dyskretnych nieokresowych. Każda z nich ma tę cechę, że jej funkcje są tzw. funkcjami analitycznymi, których każda pochodna jest ciągła. Dzięki temu mogą być wykorzystywane do analizy układów liniowych, które są opisywane za pomocą równań różniczkowych. ajważniejszą zaletą DFT jest to, że można ją obliczyć numerycznie. Fakt ten stał się szczególnie istotny w momencie pojawienia się układów mikroprocesorowych. ajprostszym algorytmem umożliwiającym obliczenie współczynników (parametrów skalujących amplitudę - nie mylić z parametrem k i częstotliwością) poszczególnych funkcji bazowych dla sygnałów zespolonych jest bezpośrednia implementacja równania: 1. e j2πkt T (1) (2) (3) X[k] = 1 1 2πkn j x[n]e. (4) W równaniu tym wykorzystuje się z ortogonalność funkcji bazowych. Wówczas współczynniki można obliczyć za pomocą prostego iloczynu skalarnego. ależy pamiętać, że współczynniki X[k] są liczbami zespolonymi, dla których można wyznaczyć moduł i argument. Znając współczynniki X[k] DFT, możemy z powrotem zsyntezować 2

(wyznaczyć, obliczyć) sygnał x[n] korzystając z równania syntezy: x[n] = 1 k=0 X[k]e j 2πkn (5) W przypadku sygnałów rzeczywistych możemy obliczyć ich DFT w sposób bardziej efektywny. Wykorzystuje się tu fakt, że dla sygnałów rzeczywistych współczynniki funkcji bazowych o indeksie k = /2 + m równe są współczynnikom funkcji o indeksie k = /2 m, dla wszystkich m = 1../2 1 z dokładnością do znaku części urojonej. Znak ten jest zawsze przeciwny: Im{X[k = /2 m]} = Im{X[k = /2 + m]}. Dzięki temu współczynniki Re[k] i Im[k] można wyznaczyć z równania Re[k] = 2 Im[k] = 2 1 1 ( ) 2πkn x[n] cos, ( ) (6) 2πkn x[n] sin dla k = 1../2 1, czyli dla dwukrotnie mniejszej liczby iteracji. Odnoszą się one odpowiednio do części rzeczywistej i urojonej współczynników X[k] dla sygnałów zespolonych. Ich amplituda jest dwa razy większa, ponieważ reprezentują połowę współczynników obliczanych dla sygnałów zespolonych ( zamiast dwóch zespolonych X[/2 m] i X[/2 + m], mamy jedną parę współczynników Re[/2 m] i Im[/2 m] o podwojonej wartości). Zależność ta nie dotyczy współczynników dla k = 0 i k = /2, które nie mają pary i w związku z tym ich amplituda nie powinna być podwajana. Re[k] = 1 Im[k] = 1 1 1 ( ) 2πkn x[n] cos, ( ) 2πkn x[n] sin, dla k = { 0, } (7) 2 Współczynniki Re[k] i Im[k] dla sygnałów rzeczywistych pozwalają syntetyzować sygnał x[n] i operację tę można opisać następującym równaniem: x[n] = /2 k=0 ( ) ( ) 2πkn 2πkn Re[k] cos Im[k] sin Możemy zauważyć, że do zsyntetyzowania sygnału x[n], wykorzystujemy teraz mniejszą liczbę par (Re [k] i Im [k]) współczynników (/2+1) niż w przypadku sygnałów zespolonych. 3 Pytania i zadania na kartkówkę 1. Co trzeba zrobić z wynikiem funkcji ϕ = arctan ( ) Im(x) Re(x) aby obliczyć argument liczby zespolonej x = 2 + j? 2. Co trzeba zrobić z wynikiem funkcji ϕ = arctan ( ) Im(x) Re(x) aby obliczyć argument liczby zespolonej x = 2 j? 3. Podaj przykład liczb zespolonej której moduł można obliczyć w pamięci. 4. Jaką częstotliwość będzie miała 5. (licząc od zera) składowa DFT sygnału o liczbie próbek równiej 100 i okresie próbkowania równym 0.1 s? 5. Podaj dyskretne częstotliwości DFT dla okresowego sygnału dyskretnego, którego okres można przedstawić za pomocą następującego ciągu liczb [1 2 3 4]. 3 (8)

6. Podaj dyskretne częstotliwości DFT w hercach dla okresowego sygnału dyskretnego, którego okres można przedstawić za pomocą następującego ciągu liczb [1 2 3 4] i który powstał przez próbkowanie ciągłego okresowego sygnału rzeczywistego z okresem próbkowania równym 10 ms. 7. Podaj dyskretne częstotliwości DFT dla okresowego sygnału dyskretnego, którego okres można przedstawić za pomocą następującego ciągu liczb [1+j, 2-j, -3+j, 8. Podaj dyskretne częstotliwości DFT w hercach dla okresowego sygnału dyskretnego, którego okres można przedstawić za pomocą następującego ciągu liczb [1+j, 2-j, -3+j, -4-j] i który powstał przez próbkowanie ciągłego okresowego sygnału zespolonego z okresem próbkowania równym 10 ms. 9. Czy obliczając DFT dla sygnałów rzeczywistych możemy używać równania (4)? 10. Jak będzie się różniła amplituda współczynników DFT obliczanych równaniem (4) i (6) dla sygnałów rzeczywistych? 11. Jak będzie się różniła amplituda współczynników DFT o indeksie 0 i /2 obliczanych równaniem (4) i (6) dla sygnałów rzeczywistych o liczbie próbek sygnału. 12. Podaj przykład równań sygnału rzeczywistego i jego widma DFT. 13. Podaj przykład równań sygnału zespolonego i jego widma DFT. 4 Zadania do realizacji a zajęciach laboratoryjnych należy rozwiązać 5 podanych poniżej zadań. Każde z zadań polega na usunięciu błędów w podanych definicjach funkcji. Każda z definicji wykonuje operacje, które zostały teoretycznie omówione w poprzednich rozdziałach niniejszej instrukcji. Za każde zadanie można otrzymać jeden punkt pod warunkiem, że zostanie ono w całości poprawnie zrealizowane. Wszystkie funkcje, których argumentem bądź wynikiem jest widmo sygnału w postaci tablicy, powinny w pierwszym jej elemencie (czyli elemencie o indeksie 1) zawierać pierwszy element widma (czyli obliczony dla początkowej wartości k). Wszystkie funkcje powinny być napisane czytelnie, z zachowaniem zasad formatowania kodów źródłowych języków wysokiego poziomu. 4.1 Funkcje pomocnicze W zadaniu pierwszym należy poprawić funkcje do obliczania modułu gj_mag i wartości kąta fazowego gj_arg dla tablicy liczb zespolonych zaimplementowanej w postaci dwóch tablic liczb rzeczywistych re i im (re dla części rzeczywistej i im dla części urojonej). Wszystkie te funkcje zwracają tablicę liczb rzeczywistych. Ponadto, należy usunąć błędy w funkcji do obliczania częstotliwości poszczególnych składowych widma Fouriera gj_freq. Funkcje te przyjmują jako parametry liczbę punktów DFT i częstotliwość próbkowania fs. Ostatnimi funkcjami do poprawienia w zadaniu pierwszym są funkcje dodawania gj_cadd i mnożenia gj_cmul dwóch liczb zespolonych. Parametrami tych funkcji są części rzeczywiste i urojone dwóch liczb zespolonych. Zwracane wartości to odpowiednio część rzeczywista i urojona wyniku operacji dodawania lub mnożenia. Działanie funkcji powinno być zaprezentowane w taki sposób, aby jednoznacznie udowodnić, że funkcje działają poprawnie. a przykład dla funkcji obliczającej argument należy przetestować wszystkie możliwe przypadki kątów. Poprawne działanie funkcji należy w trakcie prezentacji jej działania, udowodnić. function fi=gj_arg(re,im) =length(re); 4

for i=1: if (re(i)>0 && im(i)>0) fi(i)=atan(im(i)/re(i)); elseif (re(i)>0 && im(i)>=0) fi(i)=pi+atan(im(i)/re(i)); elseif (re(i)==0 && im(i)>0) fi(i)=-pi+atan(re(i)/im(i)); elseif (re(i)=<0 && im(i)<0) fi(i)=-pi; elseif (re(i)>0 && im(i)<=0) fi(i)=atan(im(i)/re(i)); else fi(i)=pi/2; endif function mag=gj_mag(re,im) =length(re);mag=zeros(1,); for i=1: mag(i-1)=sqrt(re(i)*re(i)-im(i)*im(i)); function [Cr,Ci]=gj_cmul(Ar,Ai,Br,Bi) Cr=Ar*Bi-Ai*Bi; Ci=Ar*Bi+Ai*Bi; function [Cr,Ci]=gj_cadd(Ar,Ai,Br,Bi) Cr=Ar+Br; Ci=Ai+Bi; function f=gj_freq(,fs) f=zeros(1,); for i=1: f(i)=i*fs//2; 4.2 DFT sygnału rzeczywistego Zadanie drugie polega na usunięciu błędów z funkcji obliczającej DFT sygnału rzeczywistego. Funkcja jako parametr przyjmuje tablicę liczb rzeczywistych, a w wyniku zwraca dwie tablice, odpowiednio dla części rzeczywistej i urojonej wyniku. Działanie funkcji należy przetestować dla sygnału, dla którego znamy prawidłowy wynik DFT. Prezentując działanie funkcji należy wyjaśnić, dlaczego uważa się, że funkcja działa prawidłowo. Sygnał testowy można uzyskać poprzez syntezę z wybranych funkcji bazowych DFT. 5

function [Re,Im]=gj_rdft(x) =length(x); Re=zeros(1,/2+1); Im=zeros(1,/2+1); for k=0:/2 Tr=0; Ti=0; for :-1 Tr+=2*x(n)*cos(2*pi*k*n/)/; Ti+=-2*x(n)*sin(2*pi*k*n/)/; Re(k)=Tr; Re(k)=Ti; 4.3 IDFT sygnału rzeczywistego Zadanie trzecie polega na usunięciu błędów z funkcji obliczającej odwrotną DFT sygnału rzeczywistego. Funkcja jako parametr przyjmuje dwie tablice liczb rzeczywistych (jedna dla części rzeczywistej, a druga dla części urojonej widma DFT). W wyniku natomiast zwraca tablicę liczb rzeczywistych odpowiadających kolejnym próbkom sygnału. Działanie funkcji należy przetestować dla widma sygnału, dla którego znamy prawidłowy wynik odwrotnej DFT. Prezentując działanie funkcji należy wyjaśnić, dlaczego uważa się, że funkcja działa prawidłowo. function x=gj_irdft(re,im) =(length(re)-1)*2; Re(1)/=2; Im(1)/=2; Re(/2+1)/=2; Im(/2+1)/=2; x=zeros(1,); for :-1 T=0; for k=1:/2 T+=Re(k)*cos(2*pi*n*k/)-Im(k)*sin(2*pi*n*k/); x(n)=t; 4.4 DFT sygnału zespolonego Zadanie czwarte polega na usunięciu błędów z funkcji obliczającej DFT sygnału zespolonego. Funkcja jako parametr przyjmuje dwie tablice liczb rzeczywistych (jedna dla części rzeczywistej sygnału, druga dla części urojonej sygnału), a w wyniku zwraca dwie tablice odpowiednio dla części rzeczywistej wyniku i urojonej widma DFT. Działanie funkcji należy przetestować dla sygnału zespolonego, dla którego znamy prawidłowy wynik DFT. Prezentując działanie funkcji należy wyjaśnić, dlaczego uważa się, że funkcja działa prawidłowo. function [Yr,Yi]=gj_cdft(Xr,Xi) =length(xr); for i=1: Tr=0;Ti=0; 6

for j=1: Er=cos(2*pi*(i)*(j)/); Ei=sin(2*pi*(i)*(j)/); [Er,Ei]=gj_cmul(Xr(j),Xi(j),Er,Ei); [Tr,Ti]=gj_cadd(Tr,Ti,Er,Ei); Yr(i)=Tr;Yi(i)=Ti; 4.5 IDFT sygnału zespolonego Zadanie piąte polega na usunięciu błędów z funkcji obliczającej odwrotną DFT sygnału zespolonego. Funkcja jako parametr przyjmuje dwie tablice liczb rzeczywistych (jedna dla części rzeczywistej, a druga dla części urojonej widma DFT). W wyniku również zwraca dwie tablice liczb rzeczywistych (jedna dla części rzeczywistej, a druga dla części urojonej sygnału). Działanie funkcji należy przetestować dla widma sygnału zespolonego, dla którego znamy prawidłowy wynik odwrotnej DFT. Prezentując działanie funkcji należy wyjaśnić, dlaczego uważa się, że funkcja działa prawidłowo. function [Yr,Yi]=gj_icdft(Xr,Xi) =length(xr); for i=1: Tr=0;Ti=0; for j=1: Er=cos(2*pi*(i)*(j)/); Ei=sin(2*pi*(i)*(j)/); [Er,Ei]=gj_cmul(Xr(j),Xi(j),Er,Ei); [Tr,Ti]=gj_cadd(Tr,Ti,Er,Ei); Yr(i)=Tr;Yi(i)=Ti; 7