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=123=6
−1
2 −1−3 j 
−21 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=12⋅
−1 3
−1 3
−3 3
−
j 3⋅

j=

j
2
2
2
2
2
2
A2 =12⋅
−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).