Wojskowa Akademia Techniczna
Transkrypt
Wojskowa Akademia Techniczna
Wojskowa Akademia Techniczna Cyfrowe Przetwarzanie Sygnałów Stopień, imię i nazwisko prowadzącego Stopień, imię i nazwisko słuchacza Grupa szkoleniowa dr inż. Andrzej Wiśniewski Grzegorz Pol I7G2S1 Data wykonania ćwiczenia Data wykonania sprawozdania Numer ćwiczenia / laboratoria 09.11.2009 r. 16.11.2009 r. 2 Temat: Dyskretna Transformata Fouriera 1. Wykonanie obliczeń Pierwsza część zadania polegała na ręcznym obliczeniu Dyskretnej Transformaty Fouriera. Obliczenia zamieściłem poniżej: n −1 An =∑ a k w−3 kn k =0 X =[1 2 3 ] w3 =e j 2⋅pi N =e j 2 pi 3 =cos 2 2 −1 3 pi jsin pi= j 3 3 2 2 A0 =1⋅w03 2⋅w03 3⋅w 03=123=6 −1 2 −1−3 j −21 3 j −1 3 −1 3 j w = = = = − j 2 4 2 2 −1 3 j−1−3 j −1 3 2 −2 −1 2 −4 −2 2 w3 =w3 = 2 −1 3 1 3 j −1 3 − j = = j 2 2 4 2 2 2 w0 =w3 = −1 3 −1 3 j = − j 2 2 2 2 A1=12⋅ −1 3 −1 3 −3 3 − j 3⋅ j= j 2 2 2 2 2 2 A2 =12⋅ −1 3 −1 3 −3 3 j 3⋅ − j= − j 2 2 2 2 2 2 2. Wyznaczenie dyskretnej transformaty Fouriera w środowisku Matlab Po wykonaniu obliczeń za pomocą środowiska Matlab sprawdzam poprawność moich obliczeń. Tą cześć wykonuje na trzy sposoby: – wyznaczam DTF z definicji (podpunkt 2.1) – wyznaczam DTF z postaci macierzowej (podpunkt 2.2) – wyznaczam DTF za pomocą funkcji wbudowanej w Matlaba (podpunkt 2.3) 2.1 wyznaczam DTF z definicji fragment kodu programu disp('DFT z definicji') for n=1:N w1=w^(n-1); for k=1:N M(n)=M(n)+A(k)*w1^(1-k); end; end; M wynik DFT z definicji M = 6.0000 -1.5000 + 0.8660i -1.5000 - 0.8660i 2.2 wyznaczam DTF z postaci macierzowej fragment kodu programu wynik disp('DFT z postaci macierzowej') DFT z postaci macierzowej for i=0:N-1; for k=0:N-1; M1(i+1,k+1)=w^(i*k); end; end; M2 = [M1*(A')]' M = 6.0000 -1.5000 + 0.8660i -1.5000 - 0.8660i 2.3 wyznaczam DTF za pomocą funkcji wbudowanej w Matlaba fragment kodu programu disp('DFT za pomoca funkcji Matlaba') M3=[fft(A)] wynik DFT za pomoca funkcji Matlaba M = 6.0000 -1.5000 + 0.8660i -1.5000 - 0.8660i 3. Wyświetlenie na wykresie widma amplitudowego i fazowego sygnału Następnym zadaniem na laboratoriach było wyświetlenie na wykresie widma amplitudowego i fazowego sygnału 2_tony.waw, który został pobrany ze strony http://www.ita.wat.edu.pl/~lgrad/cps/index.html. Wyniki (3 wykresy) zostały umieszczone na jednej Figure - subplot (x,2,2). Poniżej prezentuje fragment kodu oraz screeny wykresów. fragment kodu programu: [s,fs]=wavread('2_tony'); widmo=fft(s); widmoamp=abs(widmo); widmofaz=unwrap(angle(widmo)); figure(1) ts=1/fs; L=length(s); t=[0:ts:(L-1)*ts]; subplot(2,2,1); plot(t,s); grid on title('Przebieg czasowego sygnalu 2_tony.wav ') xlabel('ts [s]') ylabel('sygnal') f=[0:fs/L:(L-1)*fs/L]; subplot(2,2,2); plot(f,widmoamp); grid on title('Widmo amplitudowe sygnalu ') xlabel('f [Hz]') ylabel('modul amplitudy') subplot(2,2,3); plot(f,widmofaz); grid on title('Widmo fazowe sygnalu') xlabel('f [Hz]') ylabel('faza [stopnie]') screen: 4. Wnioski końcowe Wyniki które otrzymałem w zadaniu 2 za pomocą trzech różnych metod są takie same. Jest to potwierdzeniem prawidłowości każdej metody. Dyskretna Transformacja Fouriera (w skrócie DTF) jest wyjątkowo ważnym przekształceniem w cyfrowym przetwarzaniu sygnałów głównie z powodu bezstratności – co krótko mówiąc oznacza że mając transformatę danego sygnału możemy odtworzyć jego oryginalny przebieg. Na podstawie wykresu pokazującego widmo amplitudowe sygnału możemy zauważyć jego symetryczność względem osi częstotliwości (wynoszącej 4kHz). Natomiast widmo fazowe sygnału jest funkcją nieparzystą względem tej samej osi częstotliwości. Nazywamy to częstotliwością Nyquista (częstotliwość, która równa jest połowie częstotliwości próbkowania).