background image

**. FFT- szybka transformata Fouriera 
 
 
1.przedstawienie przebiegów czasowych w dziedzinie częstości ma bardzo duŜe 
   znaczenie praktyczne (np. rozpoznawanie mowy, obrazów), 
2.Przekształcenie całkowe Fouriera ma podstawową wadę, wymaga nieskończonego 
   czasu całkowania. 
 

 

 

 

Na rysunkach pokazano wpływ ograniczenia się do czasów skończonych obserwacji (okno 
Prostokątne) na obserwowany przebieg czasowy. 
 

( )

( ) ( )

ω

ω

ω

j

Y

j

X

j

Z

=

 

 

Iloczynowi w dziedzinie czasu odpowiada splot w dziedzinie częstość. 
 

 

 

1/T 

 

background image

 

 

 

Mamy juŜ skończony czas obserwacji. Teraz zastąpimy całkowanie, sumowaniem 
próbkowanego sygnału: 

( )

( )

( )

( )

    

 

  

          

 

0

t

j

t

j

e

t

x

j

X

e

t

x

j

X

ω

ω

ω

ω

=

=

 

zamieniamy na sumę przy załoŜeniu Ŝe, znane jest  próbek sygnału: 
 

( )

1

2

1

0

         

 

2

1

0

=

=

=

N

,.........

,

,

  k

 

e

x

jk

X

N

π

 k n

j

N-

n

n

 

Jest to wzór na dyskretne przekształcenie Fouriera. 
Podobnie moŜna wyznaczyć odwrotne dyskretne przekształcenie Foruriera: 
 

( )

1

2

1

0

         

 

1

2

1

0

=

=

=

N

,.........

,

,

  n

 

e

X

N

n

x

N

π

 k n

j

k-

k

k

 

 

Aby wyliczyć dyskretną transformatę Fouriera naleŜy obliczyć  

2

N

 wyraŜeń typu: 

 

  

        

2

2

 

e

W

e

W

N

π

 k n

j

kn

N

j

=

=

π

 

 

pomnoŜyć je przez  odpowiednie 

n

x

 oraz zsumować. Bardzo duŜo obliczeń. ale jest na to 

bardzo prosty sposób, jeŜeli przyjmiemy, Ŝe  ilość próbek czasowych jest liczbą typu: 
 

całałkowi

 

liczba

   

          

2

=

l

N

l

 

 

róŜnych wartości wyraŜeń typu 

kn

W

 będzie tylko    a nie aŜ 

2

N

. I tak jeŜeli ilość próbek 

czasowych 

n

x

 jest np. 128 naleŜy obliczyć tylko 128 róŜnych  

kn

W

a nie  16.384 jak w 

przypadku dowolnym. Liczba mnoŜeń ogranicza się do: 
 

  

          

2

gdy   

     

log

2

l

N

N

N

=

 

 

np.: 

   

2

 

 

1024

10

=

=

N

wówczas 

1%

0.0098

 

1024

10

log

log

FT

FFT

2

2

2

=

=

=

=

N

N

N

N

N

 

 
 
 

background image

k= 0

n= 0,1,2,3,4,5,6,7

k= 2

0,4

1,5

2,6

3,7

k= 4

0,2,4,6

1,3,5,7

k= 6

0,4

1,5

2,6

3,7

k= 1

0

1

1

1

2

3

4

5

6

7

k= 3

0

1

2

3

4

5

6

7

k= 5

0

1

2

3

4

5

6

7

k= 7

0

1

2

3

4

5

6

7

 

background image

Jak naprawdę obliczać w matlabie: 
 
clear all  
T=100; 
dt=.01; 
t=0:dt:T; 
k=length(t);                       %    k=10001 
q=log2(k);                         %    q=13.2879 
r=floor(q);                         %    r=13 
l=2^r;                                 %    l=8192 
m=l/2;                                %    m=4096 
w1=5;                                %    częstość w Hz 
x=sin(2*pi*w1*t);             %    sinusoida 
figure(1);plot(x(1:l));         %    rysunek1 
f=(dt^(-1)*(0:m-1))/l;         %    skala częstości 
z=fft(x,l);                            %    fft 
figure(2);plot(z);                 %    rysunek-motylek   
p=(z.*conj(z))*l;                 %    gęstość widmowa 
figure(3);plot(f,p(1:m));      %    rysunek3