• Sonuç bulunamadı

Ayr¬k Fourier Dönü¸ sümü ve Uygulamalar¬

N/A
N/A
Protected

Academic year: 2021

Share "Ayr¬k Fourier Dönü¸ sümü ve Uygulamalar¬"

Copied!
35
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

B ¨ol ¨um 4

Ayr¬k Fourier Dönü¸ sümü ve Uygulamalar¬

Bu bölümde

Sinüzoidler ve ses, Ses üzerinde i¸ slemler,

Vektör ve matrislerin Fourier ve Ters Fourier Dönü¸ sümü, H¬zl¬Fourier algoritmas¬n¬inceliyor ve

Gürültülü sesten orijinal sesin ayr¬kla¸ st¬r¬lmas¬(…ltrelenmesi) i¸ slemini interaktif olarak inceliyoruz.

4.1 Sinüzoidler ve ses

y(t) = a sin(wt + ) (4.1)

biçiminde ifade edilebilen fonksiyonlar ailesinin her bir eleman¬na reel de¼ gerli bir sinüzoid ad¬ verilir. t zaman de¼ gi¸ skeni olmak üzere, zaman ekseninde sal¬n¬m yapan her nesnenin t an¬ndaki durumu uygun bir y(t) fonksiyonu veya fonksiyonlar¬n¬n lineer kombinasyonu yard¬m¬yla incelenebilir. Söz konusu nesne bazen elle tutulabilir bir cisim(dü¸ sey sal¬n¬m yapan yay ucuna as¬l¬bir kütle) olabildi¼ gi gibi bazen de sadece i¸ sitilebilir bir ses olabilir.

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .t r

(2)

(4.1) in dü¸ sey yönde bir sal¬n¬m¬temsil etmesi durumunda, a > 0 sal¬n¬m¬n y = 0 ekseninden en fazla ne kadar a¸ sa¼ g¬ya inebilece¼ gini veya yukar¬ya ç¬ka- bilece¼ gini, di¼ ger bir de¼ gimle sal¬n¬m¬genli¼ gini gösterir. w ise saniyede al¬nan mesafenin radyan cinsinden ölçüsüdür ve w ya dairesel frekans ad¬verilir ve birimi radyan/s dir. w ne kadar büyük ise sal¬n¬m o kadar h¬zl¬ gerçek- le¸ sir. ye ise faz(phase) ad¬verilir ve yay sal¬n¬m örne¼ gi için t = 0 an¬nda cismin orjine göre konumunu belirler ve birimi radyan d¬r. A¸ sa¼ g¬yön pozitif olarak kabul edilirse, negatif ; cismin ba¸ slang¬ç an¬nda y = 0 noktas¬n¬n yukar¬s¬nda(veya gerisinde) oldu¼ gunu ve henüz y = 0 a ula¸ samad¬¼ g¬n¬, yani gecikmeyi temsil eder. Pozitif ise ileride olmay¬temsil eder.

Sal¬n¬m hareketin ba¸ slad¬¼ g¬pozisyondan yine ayn¬pozisyona kadar gelme- sine kadar geçen süreye ise sal¬n¬m¬n peryodu ad¬verilir ve p ile gösterilir.

(4.1) ile verilen sal¬n¬m¬n peryodu

y(t + p) = a sin(w(t + p) + )

= a sin(wt + + wp)

= a sin(wt + + 2 )

= y(t) e¸ sitli¼ gini sa¼ glamas¬gerekti¼ ginden

p = 2 w

olarak elde edilir ve bu durumda p nin birimi saniye dir.

(4.1) in bir sesi veya daha net olarak ses dalgas¬n¬ temsil etmesi duru- munda a sesin siddetini ve w ise sinüzoidal frekans¬n¬belirler. w n¬n küçük de¼ gerleri kal¬n ses ve yüksek de¼ gerleri ise ince sesi temsil eder. Ancak ses dalgas¬yerine sesin özelliklerini incelemek istiyorsak, bu durumda

w = 2 f

ba¼ g¬nt¬s¬ile verilen ve genelde f ile gösterilen sal¬n¬m frekans¬kullan¬l¬r. f nin birimi 1=saniye = Hertz

1

dir ve Hz k¬saltmas¬ile gösterilir ve f , sesin saniyedeki titre¸ sim(sal¬n¬m) say¬s¬n¬verir. Saniyede 1000 kez titre¸ sim yapan ses dalgas¬ 1000Hz=1KHz(KiloHertz) frekansl¬d¬r denir. Farkl¬ radyo dal- galar¬, frekans farklar¬yla birbirinden ayr¬l¬rlar. Konu¸ sma seviyesindeki sesin 20Hz ile 20KHz aras¬nda frekans de¼ gerlerine sahip oldu¼ gu kabul edilmektedir.

1

Heinrich Rudolf Hertz(1857-1894) Alman …zikçi.

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .t r

(3)

4.2 Dijital ortamda ses ve ilgili i¸ slemler

Sesin dijitalle¸ stirilmesi (4.1) de = 0 ile

y = asin(wt) = asin(2 f t)

sinüzoidini göz önüne alal¬m ve 1 saniyelik k¬sm¬n¬elektronik ortamda kay- detmek isteyelim. Bu durumda [0; 1] zaman aral¬¼ g¬ içerisinde sonlu say¬da noktada ses de¼ gerinin(¸ siddetinin) ölçülmesi gerekir. Bu i¸ sleme örnekleme ad¬verilmektedir. Ölçüm yapaca¼ g¬m¬z anlar¬içeren vektörü T ile gösterelim.

Ölçüm anlar¬aras¬ndaki zaman fark¬n¬da dT ile gösterelim. O halde T = [0; dT; 2dT; :::; (N 1)dt = 1]

dir. Bu durumda Y = sin(2 f T ) ye birim zamanda olu¸ san örneklem uzay¬, ve T nin her bir an¬nda elde edilen kay¬t de¼ gerine ise örneklem veya örnek- lem de¼ geri ad¬verilir. F s = N de¼ gerine örneklem frekans¬(1 saniyede al¬nan örneklem say¬s¬) ve dT ye ise örneklem aral¬¼ g¬ad¬verilmektedir.

Sesin dijitalle¸ stirilmesinde temel referans Nyquist Teoremidir ve öze- tle herbir saniyede al¬nmas¬ gereken örneklem say¬s¬n¬n ses frekans¬n¬n iki kat¬ndan büyük veya e¸ sit olmas¬gerekti¼ gini ifade eder. Yani

F s >= 2f

olmal¬d¬r, aksi taktirde elde edilen örneklem orjinal sesi istenilen kalitede temsil edemez(Burada frekans için w yerine f kullan¬ld¬¼ g¬na dikkat edelim).

f nin farkl¬de¼ gerleri(f >= 20Hz) için olu¸ san sesleri inceleyen Program 4.1 a¸ sa¼ g¬da verilmektedir.

Küçük f lerin kal¬n ses ve büyüklerin ise ince sesleri üretti¼ gine dikkat edelim. Ayr¬ca a ise sesin ¸ siddetini belirlemektedir.

Example 1. Program 4.1 i çal¬¸ st¬rarak

>>sinuzoid(0.1,8000)

komutu ile üretilen sesi dinleyiniz.

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k t u .e d u .tr

(4)

--- function sinuzoid(a,Sinuzoid_frekans)

%y=a*sin(2*pi*f*t) ile ses Orneklem_frekans=40000;

Orneklem_araligi=1/Orneklem_frekans;

t=0:Orneklem_araligi:0.1;

y=a*sin(2*pi*Sinuzoid_frekans*t);

sound(y,Sinuzoid_frekans);

---

Program 4.1: Frekans ve ¸ siddetine göre ses analizi

4.2.1 Harf sesleri

Alfabemizdeki har‡erle olu¸ san sesleri yak¬ndan tan¬mak için A,B,C ve Ç har‡erine ait ses kayd¬n¬ yap¬yoruz. Bu i¸ slemi OCTAVE record fonksiyonu veya MATLAB wavrecord fonksiyonu ile gerçekle¸ stirebiliriz. Örne¼ gin

>>A=record(1)

komutu ile MATLAB/OCTAVE ortam¬nda bilgisayar mikrofonundan iletilen 1 saniyenik A har… sesi A isimli bir vektöre atanmaktad¬r. Bu durumda olu¸ san A vektörü 8000 adet bile¸ sene sahiptir. Herhangi bir noktas¬ndan 200 adet bile¸ senin gra…¼ gini görüntüleyerek vektörün elemanlar¬na yak¬ndan göz atmak istiyoruz.

Örne¼ gin A har…ne ait kay¬t için a¸ sa¼ g¬daki i¸ slemleri gerçekle¸ stiriyoruz:

— — — — — — — — — — — — — — — — — — — — —

>> A=record(1);

>> length(A) ans = 8000

>> plot(A(4000:4200),’linewidth’,2)

>> print -djpeg A

— — — — — — — — — — — — — — — — — — — — —

Bu i¸ slemi alfabemizdeki A,B,C ve Ç har‡eri için gerçekle¸ stirerek elde etti¼ gimiz sonucu gra…ksel olarak ¸ Sekil 4.1 de sunuyoruz:

Yukar¬daki ¸ sekli, Octave ortam¬nda record komutuyla ilgili harfe ait sesin kayd¬n¬yaparak, elde etti¼ gimiz kayd¬n merkezi bir k¬sm¬nda 200 birim uzun- luklu k¬sm¬n¬n plot fonksiyonu ile ga…¼ gini çizdirerek elde ediyoruz.

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .tr

(5)

(A) (B)

(C) (Ç)

¸

Sekil 4.1: A,B,C ve Ç har‡erinin gra…klerininden k¬sa görünüm

Yukar¬daki örnekte, 1 saniyelik A har… kayd¬ ile elemanlar¬ 1 ile 1 aras¬nda de¼ gi¸ sen ve 8000 bile¸ senli bir A vektörü olu¸ smaktad¬r. Daha sonra olu¸ san A vektöründen 200 birim uzunluklu bir k¬sm¬n gra…¼ gi çizdirilerek A:jpg isimli bir dosyaya kaydediyoruz. Audiowrite komutu ile ses vektörünü istenilen bir dosyada uygun bir ses format¬nda saklayabiliriz. Örne¼ gin A har…ne ait ses kayd¬

audiowrite(’A.wav’,A,8000);

komutu ile A.wav isimli ses dosyas¬na kaydedilmektedir.

A:wav dosyas¬na kaydedilen sesin ilgili k¬sm¬audioread komutu ile oku- narak, a¸ sa¼ g¬da görüldü¼ gü üzere Y dizisine(vektörüne) atanmaktad¬r.

[Y; F S] = audioread( 0A:wav0) burada F S ise örneklem frekans¬d¬r.

Yukar¬da oldu¼ gu üzere okuma i¸ sleminde format seçene¼ gi belirtilmedi¼ gi zaman veriler double format’ta okunur ve bu durumda Y de¼ gerleri 1 ile 1 aral¬¼ g¬nda de¼ gi¸ sir.

sound(Octave) komutu Y vektöründe sakl¬ses verisini F S frekans¬nda,

(6)

yani saniyede F S adet, i¸ sleme tabi tutmakta ve kaydedilen sesin gerçek za- manl¬olarak alg¬lanmas¬n¬(i¸ sitilmesini) sa¼ glamaktad¬r.

Al¬¸ st¬rmalar 4.1.

1. N = 5000; dt = 1=N ; t = 0 : dt : 0:5; f = 10; a = 2 de¼gerleri ile ba¸ slang¬çta y = asin(2 f t) ses sinyali olu¸ sturunuz. Olu¸ sturdu¼gunuz sinyali sound(y,N) komutu ile dinleyiniz.

2. Soru 1 de olu¸ sturdu¼gunuz sesin genli¼gini her defas¬nda iki kat¬na ç¬kararak olu¸ san yeni ses sinyalini sound komutu yard¬m¬yla dinlayiniz. Artan genlik de¼gerleri sesi nas¬l etkilemektedir?

3. Soru 1 de olu¸ sturdu¼gunuz sesin frekans¬n¬her defas¬nda iki kat¬na ç¬kararak olu¸ san yeni ses sinyalini sound komutu yard¬m¬yla dinlayiniz. Artan frekans de¼gerleri sesi nas¬l etkilemektedir?

4. >> B=record(0.5); komutuyla 0.5 saniyelik B har…ne ait kendi sesinizi MATLAB/OCTAVE ortam¬nda kaydederek,

>> plot(A(1000:1200),’linewidth’,2) komutuyla kaydetti¼giniz sesin bir k¬sm¬n¬n gra…¼gini çizdiriniz.

5. Soru 4 i küçük bir çocuk yak¬n¬n¬z¬n sesini kaydederek tekrarlay¬n¬z.

Sizin B har…ne ait sesinizle çocuk sesi aras¬nda ne fark gözlemliyor- sunuz.

Ses ile ilgili di¼ ger i¸ slemlerden önce Ayr¬k Fourier Dönü¸ sümünü k¬saca özetleyelim:

4.3 Ayr¬k Fourier Dönü¸ sümü

[0; 2 ] aral¬¼ g¬nda tan¬ml¬parçal¬sürekli bir f fonksiyonunun Fourier aç¬l¬m¬

f (x) ' 1 2 a

0

+

X

1 k=1

a

k

cos(kx) + b

k

sin(kx) (4.2) ile verilir, burada

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .t r

(7)

a

k

= 1 Z

2 0

f (x) cos(kx)dx; k = 0; 1; :::

ve

b

k

= 1 Z

2 0

f (x) sin(kx)dx; k = 1; 2; :::

olarak elde edilir. f nin süreki oldu¼ gu x noktalar¬nda (4.2) aç¬l¬m¬fonksiyo- nun söz konusu noktadaki de¼ gerine e¸ sittir.

Baz¬uygulamalarda [0; 2 ]aral¬¼ g¬nda ortogonal olanf1; sin(kx); cos(kxg

1k=1

reel fonksiyonlar¬yerine

= fe

ikx

g

1k= 1

; i = p

1 (4.3)

ile tan¬mlanan ortogonal kümenin kullan¬m¬ daha fazla tercih edilir. Bu durumda f fonksiyonun sürekli oldu¼ gu x noktalar¬nda

f (x) = X

1 k= 1

c

k

e

ikx

(4.4)

dir, burada c

k

lar kompleks say¬lard¬r. Reel ve kompleks katsay¬lar aras¬nda c

0

= 1

2 a

0

; c

k

= 1

2 (a

k

ib

k

); c

k

= 1

2 (a

k

+ ib

k

); k = 1; 2; (4.5) ba¼ g¬nt¬lar¬ geçerlidir(Al¬¸ st¬rma 1). kümesinin ortogonal oldu¼ gu kolayca görülebilir: k 6= l için n¬n ilgili elemanlar¬n¬n iç çarp¬m¬

< e

ikx

; e

ilx

>=

Z

2 0

e

ikx

e

ilx

dx = 1

i(k l) e

i(k l)x

2

0

= 0 (4.6) ve ayr¬ca

< e

ikx

; e

ikx

>= 2 (4.7) dir.(4.4) ifadesinin her iki yan¬n¬ e

ikx

ile çarp¬p, [0; 2 ] aral¬¼ g¬ üzerinden integral alarak, (4.6) ve (4.7) den c

k

de¼ gerlerini

c

k

= 1 2

Z

2 0

f (x)e

ikx

dx; k 2 Z (tamsay¬lar kümesi) (4.8)

olarak elde ederiz.

(8)

Peryodik fonksiyonlar için geçerli olan bu aç¬l¬ma paralel olarak f fonk- siyonun x = 2 =N aral¬kl¬x

0

= 0 olmak üzere x

k

; k = 0; 1; :::; N 1 nokta- lar¬ndaki de¼ gerlerinden olu¸ stu¼ gunu kabul edebilece¼ gimiz f = [f

0

; f

1

; :::; f

N 1

]

T

sütun vektörü için de geçerlidir.

Bu durumda (4.3) de fonksiyonlardan olu¸ san taban¬rolünü w = e

2 i=N

olmak üzere w n¬n kuvvetlerinden olu¸ san

1; w; w

2

; ; w

N 1

(4.9)

kümesi üstlenir. Bu kümenin her bir eleman¬z

N

= 1 dekleminin çözümüdür.

w = e

2 i=N

ise primitif kök olarak adland¬r¬l¬r. (4.9) kümesi kompleks dü- zlemde birim çember üzerinde e¸ sit aral¬klarla serpi¸ stirilmi¸ s N adet noktadan olu¸ sur, w çember üzerinde saatin tersi yönünde 1 den sonraki ilk köktür ve primitif kök olarak adland¬r¬l¬r. Örne¼ gin

z

2

= 1 ) w = 1 ve f1; wg = f1; 1 g ;

z

4

= 1 ) w = i ve 1; w; w

2

; w

3

= f1; i; 1; ig

Fonksiyonlar için kulland¬¼ g¬m¬z fe

ikx

g

1k= 1

taban rolünü, bu taban¬n her bir k için yukar¬da belirtilen e¸ sit aral¬kl¬N - adet noktadaki de¼ gerinden olu¸ san

W

k

= 2 6 6 6 6 6 4

1 w w

2

.. . w

N 1

3 7 7 7 7 7 5

k

; k = 0; 1; :::; N 1 (4.10)

vektörler kümesi üstlenir. Bu durumda f vektörümüzü

f = 2 6 6 6 4

f

0

f

1

.. . f

N 1

3 7 7 7 5 =

N

X

1 k=0

c

k

W

k

(4.11)

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .tr

(9)

olarak ifade ederiz.

Iddia: · fW

k

g

Nk=01

kümesi ortogonaldir.

Ispat: · k 6= l olmak üzere, r = w

k

w

l

olarak tan¬mlayarak

< W

k

; W

l

>= [1 w

k

w

2l

:::w

(N 1)k

] 2 6 6 6 4

1 w

l

.. . w

l(N 1)

3 7 7

7 5 (4.12)

= 1 + w

k

w

l

+ ::: + w

(N 1)k

w

`(N 1)

= 1 + r + ::: + r

N 1

= 1 r

N

1 r = 0 elde ederiz, çünkü

r

N

= (w

k

w

l

)

N

= w

kN

w

lN

= (w

N

)

k

(w

N

)

l

= 1

dir. Öteyandan

< W

l

; W

l

>= 1 + w

l

w

l

+ ::: + w

(N 1)l

w

(N 1)`

= N (4.13) dir, çünkü

w

l

w

l

= (ww)

l

= 1; :::; w

(N 1)l

w

(N 1)`

= (ww)

(N 1)l

= 1:

fW

k

g

Nk=01

kümesinin ortogonalli¼ gi ve (4.13) yard¬m¬yla (4.11) ün her iki yan¬n¬W

Tk

(W

k

nin transpozu) ile çarparak

W

Tk

f = [1 w

k

w

2k

:::w

(N 1)k

] 2 6 6 6 4

f

0

f

1

.. . f

N 1

3 7 7

7 5 = N c

k

(4.14)

veya

c

k

= 1

N W

Tk

f = 1 N

N

X

1 j=0

f

j

(w

k

)

j

= 1 N

N

X

1 j=0

f

j

(e

2 i=N

)

kj

; k = 0; 1; :::; N 1

(4.15)

(10)

elde ederiz. c = [c

0

; c

1

; ; c

N 1

]

T

vektörüne f nin ayr¬k Fourier dönü¸ sümü ad¬ verilir. Ayr¬k Fourier dönü¸ sümü için genelde kullan¬lan bir özel nota- syon yoktur, ancak burada biz kolayl¬k aç¬s¬ndan c = F (f ) notasyonunu kullanaca¼ g¬z.

Matris-vektör notasyonu yard¬m¬yla da c yi ifade edebiliriz: Bu amaçla fW

k

g

Nk=01

kümesi yard¬m¬yla

B = [W

0

W

1

W

N 1

] = 2 6 6 6 4

1 1 1

1 w w

N 1

.. . .. . .. . 1 w

(N 1)

w

(N 1)2

3 7 7

7 5 (4.16)

matrisini tan¬mlayal¬m. (4.14) dan

W

T0

f = f

0

+ f

1

+ + f

N 1

= N c

0

W

T1

f = f

0

+ wf

1

+ + w

N 1

f

N 1

= N c

1

.. .

W

TN 1

f = f

0

+ w

(N 1)

f

1

+ + w

(N 1)2

f

N 1

= N c

N 1

veya

B = [W

0

W

1

W

N 1

] = 2 6 6 6 4

1 1 1

1 w w

N 1

.. . .. . .. . 1 w

(N 1)

w

(N 1)2

3 7 7 7 5

olmak üzere

Bf = W

0

f

0

+ W

1

f

1

+ + W

N 1

f

N 1

= N c veya

c = F (f ) := 1 N Bf

elde ederiz. Ayr¬ca B nin sütunlar¬n¬n ortogonalli¼ gi ve (4.13) dan BB = N I

elde ederiz, burada I ise B ile ayn¬boyutta olan birim matristir. Dolay¬s¬yla B

1

= 1

N B

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .t r

(11)

dir.

O halde verilen f vektörünün ayr¬k Fourier dönü¸ sümü c = 1

N Bf = B

1

f (4.17)

ve c nin ayr¬k ters Fourier dönü¸ sümü ise

f = F

1

(c) := Bc (4.18)

dir.

ÖRNEK 4.1. f = [1 1]

T

vektörünün ayr¬k Fourier dönü¸ sümünü belir- leyiniz.

N = 2 olup, w = e

2 i=N

= e

i

= 1 dir. O halde

B = 1 1

1 w = 1 1

1 1

olup,

c = 1

N Bf = 1 2

1 1

1 1

1

1 = 0

1 elde ederiz.

ÖRNEK 4.2. f = [1 1 1 1]

T

vektörünün ayr¬k Fourier dönü¸ sümünü be- lirleyiniz.

N = 4 olup, w = e

2 i=N

= e

i=2

= i dir. O halde

B = 2 6 6 4

1 1 1 1

1 w w

2

w

3

1 w

2

w

4

w

6

1 w

3

w

6

w

9

3 7 7 5 =

2 6 6 4

1 1 1 1

1 i i

2

i

3

1 i

2

i

4

i

6

1 i

3

i

6

i

9

3 7 7 5

= 2 6 6 4

1 1 1 1

1 i 1 i

1 1 1 1

1 i 1 i

3 7 7 5

elde ederiz. Dolay¬s¬yla

(12)

c = F (f ) = 1

N Bf = 1 4

2 6 6 4

1 1 1 1

1 i 1 i

1 1 1 1

1 i 1 i

3 7 7 5

2 6 6 4

1 1 1 1

3 7 7 5 =

2 6 6 4

1=2 ( 1=2)i

1=2 (1=2)i

3 7 7 5

olarak elde ederiz.

Ters Fourier Fourier Dönü¸ sümü ise c yard¬m¬yla orijinal f dizisini elde etme i¸ slemidir ve

f = Bc olarak verilir.

Ayr¬k Fourier dönü¸ sümünü (4.15) formülü ile gerçekle¸ stiren Program 4.2 a¸ sa¼ g¬da verilmektedir.

--- function c=fourier(f)

format rat;

f=f’;

N=length(f);

w=exp(2*pi*i/N); % 1 in N-inci kok W=ones(N,1);

for k=2:N

W(k)=w*W(k-1);

end

B(:,1)=ones(N,1);

B(:,2)=W;

for k=3:N

B(:,k)=W.*B(:,k-1);

end

c=conj(B)*f/N;

---

Program 4.2: Klasik(h¬zl¬olmayan) Fourier Dönü¸ sümü

ÖRNEK 4.3. >> f = [1 1] vektörünün Ayr¬k Fourier dönü¸ sümünü Prog- ram 4.2 yard¬m¬yla hesaplay¬n¬z.

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k t u .e d u .tr

(13)

>> f=[1 -1];

>> fourier(f) ans =

0 + 0i 1 + 0i elde ederiz.

ÖRNEK 4.4. >>f = [1 1 1 1] sat¬r vektörünün Ayr¬k Fourier dönü¸ sümünü Program 4.2 yard¬m¬yla hesaplay¬n¬z.

>> f=[1 1 1 -1];

>> fourier(f) ans =

1/2 + 0i 0 - 1/2i 1/2 + 0i 0 + 1/2i elde ederiz.

Elde edilen ayr¬k Fourier dönü¸ sümünün reel ve sanal k¬s¬mlar¬ile genli¼ gi ve faz olarak bilinen argüman¬gra…ksel olarak ¸ Sekil 4.2 de sunulmaktad¬r.

Yukar¬daki gra…k a¸ sa¼ g¬daki program parças¬yard¬m¬yla elde edilmi¸ stir.

--- function dortlugraf()

f=[1 1 1 -1]’;

c=fourier(f);

k=1:length(f);

subplot(4,1,1);

stem(k,real(c));ylabel(’Re(c)’);

subplot(4,1,2);

stem(k,imag(c));ylabel(’Im(c)’);

subplot(4,1,3);

stem(k,abs(c));ylabel(’ jcj’);

subplot(4,1,4);

stem(k,angle(c));ylabel(’Faz(c)’);

---

(14)

¸

Sekil 4.2: Ayr¬k Fourier dönü¸ sümünün reel ve sanal k¬s¬mlar¬ile genlik ve faz gra…¼ gi

Yukar¬da ifade edilen Ayr¬k fourier dönü¸ sümü B matrisinin N N boyu- tunda bir matris olmas¬durumunda N

2

adet çarpma i¸ slemi yap¬lmas¬n¬gerek- tirir. Bu ise çok say¬da elemana sahip olan f dizileri veya f matrisleri için çok fazla bilgisayar sistem kayna¼ g¬kullan¬m¬n¬gerektirir. Bu durumda B ma- trisinin özelliklerinde faydalanmak suretiyle verilen dizi alt parçalara bölün- mek suretiyle ayr¬k Fourier dönü¸ sümü gerçekle¸ stirir. Bölüm 4.5 te inceleye- ce¼ gimiz söz konusu yönteme H¬zl¬ Fourier Dönü¸ sümü(Fast Fourier Trans- form) ad¬ verilir ve MATLAB/OCTAVE ortam¬nda ¤t() fonksiyonu yard¬- m¬yla gerçekle¸ stirilir.

ÖRNEK 4.5. f = [1 1 1 1]

0

nin Ayr¬k Fourier Dönü¸ sümünü ¤t program¬

yard¬m¬yla hesaplay¬n¬z.

>>f = [1 1 1 1]

0

;

>> ¤t(f ) ans = 2 + 0i 0 - 2i 2 + 0i

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k t u .e d u .tr

(15)

0 + 2i Uyar¬lar:

¤t ile elde etti¼ gimiz sonuçlar¬n, fourier program¬ ile elde edilenlerin 4 kat¬oldu¼ guna dikkat ediniz. Uzunlu¼ gu N olan vektör için ¤t() ile elde edilen sonuçlar, fourier() ile elde etti¼ gimiz sonuclar¬n N kat¬na e¸ sit olur. Bu sonuç uygulamalarda herhangi bir sorun olu¸ sturmaz, her iki yakla¸ s¬mda literatürde s¬kça kullan¬l¬r.

Bile¸ sen say¬s¬fazla olan uygulamalar için ¤t() kullan¬lmal¬d¬r. fourier() program¬n¬sadece yöntemin nas¬l çal¬¸ st¬¼ g¬n¬göstermek amac¬yla ince- liyoruz.

Ayr¬k Fourier dönümünün tersi de benzer biçimde hesaplanabilir. fourier() program¬nda gerekli düzenlemeler yap¬larak ifourier() ismi ile ters ayr¬k Fourier dönü¸ sümü de hesaplanabilir(Al¬¸ st¬rma 12).

Bir c vektörünün ters ayr¬k Fourier dönü¸ sümü MATLAB/OCTAVE or- tam¬nda

>>i¤t(c)

komutu ile gerçekle¸ stirilir.

ÖRNEK 4.6. c = [2 2i 2 2i] nin ters Fourier dönü¸ sümünü i¤t komutu yard¬m¬yla hesaplay¬n¬z.

>> c = [2 2 i 2 2 i] için

>>if f t(c)

ans = 1 1 1 1 elde ederiz.

4.4 Bir matrisin Fourier ve Ters Fourier Dönü¸ sümü

Bir matrisin ayr¬k Fourier ve ters Fourier dönü¸ sümünü inceleyelim:

A = 1 2

3 4

(16)

matrisi verilsin.

A matrisinin ayr¬k Fourier dönü¸ sümü, her bir sat¬r¬n Fourier dönü¸ sümü ile elde edilen matrisin sütunlar¬n¬n Fourier dönü¸ sümüne e¸ sittir. B, önceki bölümde tan¬mlanan Fourier matrisi olmak üzere, n = 2 için

B = 1 1

1 1

dir. Bu durumda A n¬n her bir sat¬r¬n¬n Fourier dönü¸ sümü

C

1

= 1 2

1 1

1 1

1

2 = 3=2

1=2 ve

C

2

= 1 2

1 1

1 1

3

4 = 7=2

1=2 olmak üzere,

C = C

1T

C

2T

= 3=2 1=2 7=2 1=2 elde ederiz.

¸

Simdi de C nin herbir sütununun Fourier Dönü¸ sümünü elde edelim:

D

1

= 1 2

1 1

1 1

3=2

7=2 = 5=2 1 ve

D

2

= 1 2

1 1

1 1

1=2

1=2 = 1=2

0 yani

F

2

(A) = 5=2 1=2

1 0

elde ederiz.

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .t r

(17)

Yukar¬daki i¸ slem k¬saca F

2

(A) = 1

n

2

BAB

= 1 4 BAB

= 1 4

1 1

1 1

1 2 3 4

1 1

1 1

=

5 2

1 2

1 0 olarak ta ifade edilebilir. Burada

1 2

1 2 3 4

1 1

1 1 = 3=2 1=2

7=2 1=2

çarp¬m¬, yukar¬da da elde edildi¼ gi üzere A matrisinin sat¬rlar¬n¬n Fourier dönü¸ sümünü verir. Gerçekten de her iki yan¬n transpozesini alarak,

1 2

1 1

1 1

1 3 2 4

= 1 2

1 1

1 1

1 2 + 1

2

1 1

1 1

3 4

= 3=2 7=2

1=2 1=2 elde ederiz.

Öte yandan

1 2

1 1

1 1

3=2 1=2 7=2 1=2

= 1 2

1 1

1 1

3=2 7=2 + 1

2

1 1

1 1

1=2 1=2

çarp¬m¬ise , elde edilen matrisin sütunlar¬n¬n Fourier dönü¸ sümüne e¸ sittir.

A matrisinin Ters Fourier Dönü¸ sümü ise

F

2

(A)

1

= BAB

(18)

biçiminde ifade edilebilir.

Örne¼ gin yukar¬da elde edilen F

2

(A) n¬n ters Fourier dönü¸ sümü F

2

(F

2

(A))

1

= BF

2

(A)B

= 1 1

1 1

5 2

1 2

1 0

1 1

1 1

= 1 2

3 4 olarak elde edilir.

Yukar¬daki i¸ slemleri bu kez de

A = a b c d

matrisi için tekrarlayarak A matrisinin Fourier dönü¸ sümünü hesaplayal¬m.

Öncelikle sat¬rlar¬n Fourier dönü¸ sümlerini hesaplayal¬m:

F

1

(a; b) = 1 2

1 1

1 1

a

b = 1 2

a + b a b ve

F

1

(c; d) = 1 2

1 1

1 1

c

d = 1 2

c + d c d elde ederiz. Buradan

C = 1 2

a + b a b c + d c d

elde ederiz. ¸ Simdi de C nin sütunlar¬n¬n Fourier dönü¸ sümlerini elde edelim:

F

1

((a + b)=2; (c + d)=2) = 1 2

1 1

1 1

(a + b)=2 (c + d)=2

= 1 4

1 1

1 1

a + b c + d

= 1 4

a + b + c + d a + b (c + d)

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .t r

(19)

ve benzer biçimde

F

1

((a b)=2; (c d)=2) = 1 2

1 1

1 1

(a b)=2 (c d)=2

= 1 4

1 1

1 1

a b c d

= 1 4

a + c (b + d) a + d (b + c) elde ederiz. O halde

F

2

(A) = 1 4

a + b + c + d a + c (b + d) a + b (c + d) a + d (b + c) elde ederiz.

¸

Simdi de yukar¬da hesaplad¬¼ g¬m¬z F

2

(A) n¬n ters Fourier dönü¸ sümünü hesaplayal¬m:

F

2

(F

2

(A))

1

= BF

2

(A)B

= 1 1

1 1

1 4

a + b + c + d a + c (b + d) a + b (c + d) a + d (b + c)

1 1

1 1

= 1 4

1 1

1 1

2a + 2c 2b + 2d 2a 2c 2b 2d

= a b

c d elde ederiz.

Matris Fourier dönü¸ sümü, MATLAB/OCTAVE ortam¬nda ¤t2 fonksi- yonu yard¬m¬yla ve H¬zl¬ Fourier Algoritmas¬yla gerçekle¸ stirilir. Örne¼ gin yukar¬da verilen A matrisi için

>> ¤t2(A) ans = 10 -2 -4 0

elde ederiz. Bu sonuç yukar¬da elde etti¼ gimiz F

2

(A) n¬n 4 kat¬d¬r. A

n n

matrisi için

F

2

(A) = 1

n

2

f f t2(A)

(20)

d¬r, fakat uygulamalarda bu farkl¬l¬k herhangi bir sorun te¸ skil etmez.

Ters Fourier dönü¸ sümü ise i¤t2 fonksiyonu ile gerçekle¸ stirilir.

Genelle¸ stirmek istersek, B : Bölüm 4.2 de (4.16) ile tan¬mlanan Fourier matrisi olmak üzere A

n n

matrisinin Fourier dönü¸ sümü

F

2

(A) = 1

n

2

BAB (4.19)

ve ters Fourier dönü¸ sümü ise

F

2

(A)

1

= BAB (4.20)

olarak ifade edilir. Bu kurallar¬f vektörü için c =

1n

Bf Fourier dönü¸ sümü ve f = Bc ters Fourier dönü¸ sümü ile kar¸ s¬la¸ st¬r¬n¬z).

Al¬¸ st¬rmalar 4.2.

1. f = [1 2]

T

; f = [1 1 1 1]

T

vektörlerinin ayr¬k Fourier dönü¸ sümlerini (4.17) ile belirleyiniz.

2. Soru 1 de elde etti¼giniz dönü¸ sümlerinin ters Fourier dönü¸ sümlerini (4.18) belirleyiniz.

3. Soru 1 ve 2 yard¬m¬yla f nin 2 normu ve c ile gösterece¼gimiz ayr¬k Fourier dönü¸ sümünün 2 normu aras¬nda nas¬l bir ili¸ ski görüyorsunuz?

4. f = [f

0

; f

1

; :::; f

N 1

] vektörü verilsin ve c ile de f nin ayr¬k Fourier dönü¸ sümünü gösterelim(c =

N1

Bf ). Bu taktirde Parseval ba¼g¬nt¬s¬ ad¬

verilen

jjfjj

22

= N jjcjj

22

ba¼g¬nt¬s¬n¬n geçerli oldu¼gunu gösteriniz.

5. 2 peryotlu bir f fonksiyonunun 2 normu ile Fourier serisinin c = fc

k

g

1k= 1

katsay¬lar vektörünün 2 normu aras¬nda soru 4 teki gibi Parseval ba¼g¬nt¬s¬mevcuttur,

jjfjj

22

= 2 jjcjj

22

Yukar¬daki ba¼g¬nt¬n¬n da do¼gru oldu¼gunu ispat ediniz.

6. A¸ sa¼g¬da verilen birim vektörlerin ayr¬k Fourier dönü¸ sümlerini belir- leyiniz.

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k t u .e d u .tr

(21)

(a) e

1

= [1 0 0 0]

T

(b) e

2

= [0 1 0 0]

T

(c) e

3

= [0 0 1 0]

T

(d) e

4

= [0 0 0 1]

T

7. Yukar¬da verilen Program 4.2 yard¬m¬yla a¸ sa¼g¬daki vektörlerin ayr¬k Fourier dönü¸ sümlerini hesaplay¬n¬z.

(a) f = [1]

(b) g = [1 2 3 4]

T

(c) h = [2 4 6 8]

T

8. Ayr¬k Fourier dönü¸ sümünün lineer bir dönü¸ süm oldu¼gunu gösteriniz:

f; g 2 C

N

ve ; key… iki skaler olmak üzere F ( f + g) = F (f ) + F (g) oldu¼gunu gösteriniz.

9. Soru 8 deki lineerlik özelli¼gi ve soru 6 da elde etti¼giniz sonuçlar yard¬- m¬yla soru 7-b, 7-c deki Fourier dönü¸ sümlerini hesaplay¬n¬z.

10. Ayr¬k Fourier dönü¸ sümünün bire-bir dönü¸ süm oldu¼gunu gösteriniz, yani f; g 2 C

N

ve f 6= g ise F (f) 6= F (g) oldu¼gunu gösteriniz.

11. Ayr¬k Fourier dönü¸ sümünün çekirde¼gi nedir?

(Not: çek(F ) = f 2 C

N

jF (f) = 0 2 C

N

)

12. Ters Fourier dönü¸ sümünü f= ifourier(c) komutu ile hesaplayan program a¸ sa¼g¬da verilmektedir.

--- function f=ifourier(c)

format rat;

N=length(c);

w=exp(2*pi*i/N); % 1 in N-inci kok W=ones(N,1);

for k=2:N

(22)

W(k)=w*W(k-1);

end

B(:,1)=ones(N,1);

B(:,2)=W;

for k=3:N

B(:,k)=W.*B(:,k-1);

end f=B*c;

---

Bu program yad¬m¬yla soru 7 de elde etti¼giniz dönü¸ sümlerin ters Fourier dönü¸ sümlerini hesaplayarak, verilen dizileri elde etti¼ginizi gözlemleyiniz.

13. A¸ sa¼g¬da verilen matrislerin Fourier Dönü¸ sümlerini (4.19) ba¼g¬nt¬s¬ ile hesaplay¬n¬z.

(a)

A = 2 1 1 2 (b)

A = 2 6 6 4

2 1 1 0

1 1 3 1

1 3 3 1

0 1 1 4

3 7 7 5

14 Soru 13 de elde etti¼giniz Fourier dönü¸ sümlerinin ters Fourier dönü¸ süm- lerini (4.20) hesaplayarak, ba¸ slang¬çtaki A matrislerini elde etti¼ginizi gözlemleyiniz.

14. Verile bir matrisin Fourier dönü¸ sümünü (4.19) ba¼g¬nt¬s¬ile hesaplayan fouriermat isimli bir program ve Ters fourier dönü¸ sümünü ise (4.20) ba¼g¬nt¬s¬ile hesaplayan ifouriermat isimli birere program haz¬rlayarak, Soru 13 ve 14 te elde etti¼giniz sonuçlar¬kontrol ediniz.

4.5 H¬zl¬Fourier Dönü¸ sümü

N bile¸ senli f vektörü için c = F (f ) =

N1

Bf Fourier dönü¸ sümü, N

2

adet çarpma i¸ slemi gerektirir. Pratik i¸ slemlerde çok say¬da bile¸ sene sahip f vek-

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .t r

(23)

törü ile birden fazla defa tekrarlanmas¬gereken bu i¸ slem a¸ s¬r¬bilgisayar za- man¬ gerektirir ve ilgili i¸ slemlerin etkinli¼ gini azalt¬r. 1967 y¬l¬nda J. Coo- ley ve J. Tukey, B matrisinin özelliklerini inceleyerek söz konusu çarpma i¸ sleminin N = 2

l

için N

2

adet çarpma i¸ slemi yerine çok daha küçük olan

1

2

N l =

12

N log

2

(N ) adet çarpma i¸ slemi ile h¬zl¬ biçimde gerçekle¸ stirilebile- ce¼ gini göstermi¸ slerdir. B Fourier matrisi ile h¬zl¬ çarpma i¸ slemini gerçek- le¸ stiren bu algoritma H¬zl¬Fourier Algoritmas¬olarak adland¬r¬lm¬¸ st¬r. Bölüm 2 de inceledi¼ gimiz Simpleks algoritmas¬gibi bu algoritma da 20: yüzy¬l bil- imine en fazla katk¬ sa¼ glayan ilk on matematiksel algoritma aras¬nda yer almaktad¬r[1].

Bu bölümde h¬zl¬ Fourier dönü¸ sümünü ana hatlar¬yla ve k¬saca özetliy- oruz, konuyla ilgilili detayl¬bilgiler için [2] nolu referans¬önermekteyiz.

H¬zl¬Fourier algoritmas¬, B

2m 2m

matrisi ile B

m m

matrisinin elemanlar¬

aras¬ndaki a¸ sa¼ g¬daki gözlemi esas al¬r:

n = 2m için w

2n

= w

m

; w

m

= e

2 i=m

dir. Gerçekten de

w

2n

= (e

2 i=n

)

2

= e

4 i=n

= e

4 i=(2m)

= e

2 i=m

= w

m

dir.

N = 4 için algoritmay¬inceleyelim:

w

4

= e

2 i=4

= i;

B

4

= 2 6 6 4

1 1 1 1

1 w w

2

w

3

1 w

2

w

4

w

6

1 w

3

w

6

w

9

3 7 7 5 =

2 6 6 4

1 1 1 1

1 i 1 i

1 1 1 1

1 i 1 i

3 7 7 5

için

(24)

c = F (f )

= 1 4 B

4

f

= 1 4

2 6 6 4

1 1 1 1

1 i 1 i

1 1 1 1

1 i 1 i

3 7 7 5

2 6 6 4

f

0

f

1

f

2

f

3

3 7 7 5

= 1 4

2 6 6 4

f

0

+ f

1

+ f

2

+ f

3

f

0

if

1

f

2

+ if

3

f

0

f

1

+ f

2

f

3

f

0

+ if

1

f

2

if

3

3 7 7 5

elde ederiz.

N = 2 için w

2

= e

2 i=2

= 1;

B

2

= 1 1

1 w = 1 1

1 1

dir. f

0

= [f

0

; f

2

]; f

00

= [f

1

; f

3

] olmak üzere f nin tek ve çift indisli terimleri ile iki alt dizi olu¸ stural¬m:

y

0

= B

2

f

0

= 1 1

1 1

f

0

f

2

= f

0

+ f

2

f

0

f

2

= y

00

y

10

ve

y

00

= B

2

f

00

= 1 1

1 1

f

1

f

3

= f

1

+ f

3

f

1

f

3

= y

000

y

100

olmak üzere

y

0

= y

00

+ (w

4

)

0

y

000

= f

0

+ f

2

+ f

1

+ f

3

; y

1

= y

10

+ (w

4

)

1

y

001

= f

0

f

2

i(f

1

f

3

) ve

y

2

= y

00

(w

4

)

0

y

000

= f

0

+ f

2

(f

1

+ f

3

);

y

3

= y

10

(w

4

)

1

y

100

= f

0

f

2

+ i(f

1

f

3

)

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .t r

(25)

olarak tan¬mlayal¬m. Bu durumda

y = 2 6 6 4

y

0

y

1

y

2

y

3

3 7 7 5 =

2 6 6 4

f

0

+ f

1

+ f

2

+ f

3

f

0

if

1

f

2

+ if

3

f

0

f

1

+ f

2

f

3

f

0

+ if

1

f

2

if

3

3 7 7

5 = B

4

f

olup,

c = F (f ) = 1

4 B

4

f = 1 4 y elde ederiz.

Yukar¬da özetlenen i¸ slemler H¬zl¬Fourier yöntemininin bir ad¬m¬n¬olu¸ s- turmaktad¬r.

Öteyandan

B

2

f

0

= 1 1

1 1

f

0

f

2

= f

0

+ f

2

f

0

f

2

i¸ sleminin çarpma i¸ slemi yapmaks¬z¬n gerçekle¸ stirilebilece¼ gine dikkat edelim:

Birinci sat¬r f

0

nün bile¸ senler toplam¬, ikinci sat¬r ise bile¸ senler fark¬d¬r. Ben- zer sonuç B

2

f

00

için de geçerlidir.

16 adet çarpma i¸ slemi ile gerçekle¸ stirilebilen B

4

f çarp¬m¬, çarpma i¸ slemi gerektirmeyen

B

2

f

0

= f

0

+ f

2

f

0

f

2

B

2

f

00

= f

1

+ f

3

f

1

f

3

ile, sadece y

0

ve y

00

den y nin elde edilmesi için gerekli 4 adet çarpma i¸ slemi olmak üzere toplam 4 adet çarpma i¸ slemi ile gerçekle¸ stirilmi¸ stir. Yani N

2

= 16 i¸ slem ; 2

l

= N = 4 için l = 2 = log

2

(N ) ile

12

N l =

12

N log

2

(N ) = 4 adet çarpma i¸ slemi ile gerçekle¸ stirilmi¸ stir.

Kelebek diagram¬ad¬verilen diagramla, yukar¬daki i¸ slemler a¸ sa¼ g¬daki gibi

¸ sematik olarak gösterilebilir:

(26)

f

0

! y

00

:= f

0

+ f

2

! y

0

:= y

00

+ w

40

y

000

% %

f

2

& y

01

:= f

0

f

2

! y

1

:= y

10

+ w

41

y

100

%

f

1

y

000

:= f

1

+ f

3

& y

2

:= y

00

w

40

y

000

%

f

3

& y

001

:= f

1

f

3

& y

3

:= y

10

w

41

y

100

Yukar¬da f nin çift ve tek indisli bile¸ senlere ayr¬ld¬¼ g¬na dikkat edelim.

Daha aç¬kça son sütundan w

4

= i için,

y

0

:= y

00

+ y

000

= f

0

+ f

2

+ f

1

+ f

3

= f

0

+ f

1

+ f

2

+ f

3

y

1

:= y

01

+ wy

100

= f

0

f

2

i(f

1

f

3

) = f

0

if

1

f

2

+ if

3

y

2

:= y

00

y

000

= f

0

+ f

2

(f

1

+ f

3

) = f

0

f

1

+ f

2

f

3

y

3

:= y

01

wy

100

= f

0

f

2

( i)(f

1

f

3

) = f

0

+ if

1

f

2

if

3

elde ederiz. Buradan

y = B

4

f ve

c = F (f ) = 1

4 B

4

f = 1 4 y

oldu¼ gu kolayca görülür. Di¼ ger bir de¼ gimle diyagram¬n son sütunun 4 e bölümü ilk sütunda yer alan vektörün h¬zl¬Fourier dönü¸ sümüdür.

Yukar¬daki i¸ slem a¸ sa¼ g¬daki gibi genelle¸ stirilebilir:

Çift bir n = 2m için, B

n

f in ilk m ve son m bile¸ seni y

j

= y

j0

+ w

nj

y

j00

; j = 0; 1; :::; m 1 y

j+m

= y

j0

w

nj

y

00j

; j = 0; 1; :::; m 1 ve

c = F (f ) = 1 n y dir, burada

y

0

= B

m

f

tek

; y

00

= B

m

f

cif t

ve

f

tek

= (f

1

; f

3

; :::; f

n 1

);

f

cif t

= (f

0

; f

2

; :::; f

n

) dir.

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .t r

(27)

ÖRNEK 4.7. Kelebek diyagram¬ve klasik yöntem ile f = [1; 2; 3; 4] dizisinin H¬zl¬Fourier dönü¸ sümünü hesaplay¬n¬z.

Kelebek diyagram¬ile

1 ! y

00

:= 1 + 3 = 4 ! y

0

:= y

00

+ w

40

y

000

= 10

% %

3 & y

10

:= 2 ! y

1

:= y

10

+ w

41

y

100

= 2 + 2i

%

2 y

000

:= 6 & y

2

:= y

00

w

40

y

000

= 2

%

4 & y

100

:= 2 4 = 2 & y

3

:= y

10

w

41

y

100

= 2 2i için

c = F (f ) = 1 4 y = 1

4 (10; 2 + 2i; 2; 2 2i) elde ederiz.

Klasik yöntemle de

c = 1 4

2 6 6 4

1 1 1 1

1 i 1 i

1 1 1 1

1 i 1 i

3 7 7 5

2 6 6 4

1 2 3 4

3 7 7 5 =

1 4

2 6 6 4

10 2 + 2i

2 2 2i

3 7 7 5

elde ederiz.

Al¬¸ st¬rmalar 4.3.

1. f = [1; 0; 2; 1] dizisi verilsin. f nin Ayr¬k Fourier dönü¸ sümünü klasik yöntem ve

kelebek diyagram¬(h¬zl¬Fourier algoritmas¬) yard¬m¬yla hesaplay¬n¬z.

2. f = [1; 1; 0; 1] dizisi verilsin. f nin Ayr¬k Fourier dönü¸ sümünü klasik yöntem ve

kelebek diyagram¬ile hesaplay¬n¬z.

3. f = [1; 0; 2; 1; 1; 2; 3; 4] dizisi verilsin. f nin Ayr¬k Fourier dönü¸ sümünü klasik yöntem ve

kelebek diyagram¬ yard¬m¬yla hesaplay¬n¬z, bu durumda kelebek

diyagram¬üç a¸ samal¬(sütunlu) olmal¬d¬r.

(28)

¸

Sekil 4.3: S¬ras¬yla f; g ve h sinyallerinin gra…ksel gösterimi.

4.6 Ayr¬k Fourier Dönü¸ sümü Uygulamalar¬

Ayr¬k Fourier Dönü¸ sümü genellikle zamanla üretilen sonlu elemanl¬bir dizinin elemanlar¬ üzerinde frekans analizi yapmak amac¬yla gerçekle¸ stirilir. Veri içerisinde herhangi bir frekanstaki harmoni¼ gin gücü ve faz¬n¬n belirlenmesi oldukça önemlidir.

ÖRNEK 4.8. f

1

= 10Hz; f

2

= 40Hz frekenslar¬ile tan¬mlanan sinizoidal f (t) = sin(2 f

1

t);

g(t) = sin(2 f

2

t); 0 t 1 sinyalleri ve bu iki sinyalin süperpozisyonu ile olu¸ sturulan

h(t) = f (t) + g(t)

sinyalini gözönüne alal¬m. Ayr¬k Fourier ve ters Fourier dönü¸ sümü yard¬- m¬yla h(t) içerisinden f (t) ve g(t) bile¸ senlerini yakla¸ s¬k olarak ayr¬¸ st¬r¬n¬z.

¸

Sekil 4.3 (a),(b) ve (c) de s¬ras¬yla f,g ve h fonksiyonlar¬gra…ksel olarak sunulmaktad¬r.

Amac¬m¬z farkl¬frekanslara sahip ¸ Sekil 4.3 (a) ve (b) sinyallerinin toplam¬

ile olu¸ sturulan ve ¸ Sekil 4.3(c) de sunulan sinyal içerisinden (a) ve (b) sinyal- lerini tekrar elde etmektir. (c) ile gösterilen sinyalin ayr¬k Fourier dönü¸ sümünün mutlak de¼ geri ¸ Sekil 4.4 (a) da sunulmaktad¬r.

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k t u .e d u .tr

(29)

¸

Sekil 4.4: Filtreleme

¸

Sekil 4.3(a) da öncelikle 10Hz ve 40Hz frekansl¬ iki sinyal görülmekte- dir. Örneklem uzunlu¼ gu 250 olan sinyalin yar¬s¬ olan 250=2 = 125Hz den büyük olan sinyallerin Ayr¬k Fourier analizi için anlam ifade etmedi¼ gi bilin- mektedir. O halde 10Hz ve 40Hz merkezli sinyallere odaklanarak sinyalin Fourier dönü¸ sümünün mutlak de¼ gerce büyük de¼ gerler ald¬¼ g¬ ve bant aral¬¼ g¬

olarak bilinen aral¬klar¬ belirlemeliyiz. 10Hz merkezli sinyal için [0; 20] ve 40Hz merkezli sinyal için ise [21; 60] Hz aral¬¼ g¬n¬yakla¸ s¬k olarak seçebiliriz.

Bu durumda hs ile h n¬n Ayr¬k Fourier dönü¸ sümünü gösterelim ve frekans bölgesinde

h1s = hs s 20 0 s > 20 ve

h2s = hs 21 s 60

0 s < 21 ve s > 60

…ltrelenmi¸ s sinyallerini tan¬mlayal¬m. h1s nin ters Fourier dönü¸ sümü ¸ Sekil 4.4(b) den görülece¼ gi üzere f sinüzoidini temsil etmekte ve ¸ Sekil 4.4(c) den görülece¼ gi üzere h2s nin ters Fourier dönü¸ sümü g sinüzoidini temsil etmek- tedir. Böylece h(t) içerisinde yer alan orjinal sinyaller iyi bir yakla¸ s¬mla elde etmi¸ s olduk.

Farkl¬frekanslara sahip sinyalleri Ayr¬k Fourier ve Ters Fourier yöntemiyle

ayr¬kla¸ st¬rd¬¼ g¬m¬z Octave program¬a¸ sa¼ g¬da verilmektedir.

(30)

--- function filtre1()

%Basit bir filtreleme, ec, Mart 2015 clf;

fs1=10;fs2=40;N=250;

Nv=0:N;

Tv=(0:N)/N;

f=sin(2*pi*fs1*Tv);

g=sin(2*pi*fs2*Tv);

h=f+g;

figure(1);

subplot(3,1,1);

plot(Tv,f);title(’(a)’);

subplot(3,1,2);

plot(Tv,g);title(’(b)’);

subplot(3,1,3);

plot(Tv,h);title(’(c)’);

hs=fft(h);

figure(2);

subplot(3,1,1);

hsmutlak=abs(hs);

plot(hsmutlak);title(’(a)’);

f1=hs.*(Nv<=20);

f2=hs.*(Nv>20 &Nv<=60);

f1ters=real(ifft(f1));

f2ters=real(ifft(f2));

subplot(3,1,2);

plot(Tv,f1ters);title(’(b)’);

subplot(3,1,3);

plot(Tv,f2ters);title(’(c)’);

--- Program 4.3: Örnek 4.8 e ait Filtreleme örne¼ gi-I

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k t u .e d u .tr

(31)

ÖRNEK 4.9. A¸ sa¼g¬daki s¬ralanan ad¬mlar ile basit bir gürültü ay¬klama uygulamas¬n¬n nas¬l gerçekle¸ stirildi¼gini gözlemleyiniz.

Gürültü ay¬klama yöntemimiz k¬saca a¸ sa¼ g¬daki ad¬mlardan olu¸ smaktad¬r:

1. record komutu ile 1 saniyelik bir ses, örne¼ gin A harf sesi, F s = 8000 örneklem frekans¬ile kaydedilerek, Y vektörüne atanmaktad¬r.

2. sound komutu ile ses kaydedilmi¸ s oldu¼ gu Fs frekans¬nda dinletilmek- tedir.

3. n, Y nin uzunlu¼ gu olmak üzere gurultu = 0:2 rand(n; 1) atamas¬ile rasgele bir gürültü olu¸ sturulmaktad¬r.

4. yg = y + gurultu atamas¬yla gürültülü ses olu¸ sturuyoruz.

5. Gurultulu ses sound komutuyla dinletilmektedir.

6. Gurultulu sesin ayr¬k Fourier dönü¸ sümü hesaplanarak f yg de¼ gi¸ skenine atanmaktad¬r.

7. Gürültülü sesin ayr¬k Fourier dönü¸ sümüne …ltre uygulanmaktad¬r: kabaca, ayr¬k Fourier dönü¸ sümünün mutlak de¼ geri 12 de¼ gerine e¸ sit veya daha küçük olan indisler belirlenerek ii de¼ gi¸ skenine atanmaktad¬r.

8. f yg(ii) de¼ gerleri s¬f¬rlanmaktad¬r.

9. Filtrelenmi¸ s f yg de¼ gerlerinin ters fourier dönü¸ sümünün reel k¬sm¬f gs de¼ gi¸ skenine atanmaktad¬r.

10. f gs …ltrelenmi¸ s sesi sound komutuyla dinletilmektedir.

Uygulama:

>> …ltre2()

Enter tusuna basarak bir saniyelik ses kaydedin Enter tusuna basarak sesinizi dinleyin

Enter tusuna basarak gurultulu sesinizi dinleyin

Enter tusuna basarak …ltrelenmis sesinizi dinleyin

(32)

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .t r

(33)

--- function filtre2()

% Basit bir filtreleme, ec, Nisan, 2018 Fs=8000;

a=input(’Enter tusuna basarak bir saniyelik ses kaydedin’);

y=record(1,Fs);N=length(y);M=round(N/4);Mv=1:M;

a=input(’Enter tusuna basarak sesinizi dinleyin’);

sound(y,Fs);

n=length(y);

gurultu=0.2*rand(n,1);

yg=y+gurultu;

a=input(’Enter tusuna basarak gurultulu sesinizi dinleyin’);

sound(yg, Fs);

fyg=fft(yg);

ii=find(abs(fyg)<=12);

fyg(ii)=0;

fgs=real(ifft(fyg));

a=input(’Enter tusuna basarak filtrelenmis sesinizi dinleyin’);

sound(fgs,Fs);

figure(1)

subplot(2,1,1);

plot(y(Mv));axis([ 1 M -0.5 0.5]);

xlabel(’ses ’);set(gca,’XTickLabel’,’’); hold on;

subplot(2,1,2);

plot(abs(fft(y(Mv))));

xlabel(’sesin fft sinin mutlak degeri’);

set(gca,’XTickLabel’,’’);set(gca,’XTickLabel’,’’);hold on;

figure(2);

subplot(2,1,1);plot(gurultu(Mv));hold on;

xlabel(’gurultu’);set(gca,’XTickLabel’,’’);

subplot(2,1,2);plot(abs(fft(gurultu)));

xlabel(’gurultunun fft sinin mutlak degeri’);

hold on;set(gca,’XTickLabel’,’’);

figure(3);

subplot(2,1,1);plot(yg(Mv));xlabel(’gurultulu ses’); hold on;

set(gca,’XTickLabel’,’’);

subplot(2,1,2);plot(fgs(Mv));axis([ 1 M -0.5 0.5]);

xlabel(’filtrelenmis ses’); hold on;set(gca,’XTickLabel’,’’);

---

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .t r

(34)

Al¬¸ st¬rmalar 4.4.

1. Örnek 4.8 için verilen program¬ veya biraz daha de¼gi¸ sik olarak a¸ sa¼g¬da verilen program¬ referans alarak, seçece¼giniz frekanslardaki iki sinyalin toplam¬olarak ifade edilen sinyalden, ilgili bile¸ senleri Ayr¬k Fourier ve Ters Fourier dönü¸ sümü yard¬m¬yla elde ediniz.

2. Örnek 4.9 için verilen program¬kaydedece¼giniz birer saniyelik sesler ile test ediniz.

3. Yukar¬da verilen fourier program¬ve MATLAB/OCTAVE ¤t program¬n¬n h¬z¬n¬artan uzunluklara sahip rand komutuyla olu¸ sturulan f dizileri ile test yap¬n¬z. Küçük boyutlu ve büyük boyutlu dizilerde her iki program¬n sonuçlar¬n¬elde ederken harcad¬klar¬zaman¬kar¸ s¬la¸ st¬r¬n¬z. Ne gözlem- liyorsunuz?

K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k t u .e d u .tr

(35)

[1] Cipra, Bary A., The best of the 20th Century(XX. Yüzy¬l¬n en iyileri(en iyi matematiksel yöntemleri)),

URL:https://archive.siam.org/pdf/news/637.pdf

[2] Brigham, E. Oran, The Fast Fourier Transform and its Applications, Prentice Hall, 1988.

[3] Co¸ skun, E. MATLAB/Octave ile Say¬sal Hesaplama ve Kodlama, URL:aves.ktu.edu.tr/erhan(veya erhancoskun.com.tr).

[4] Strang, G., Introduction to Applied Mathematics, Wellesley Cambridge

Press, ABD, 1986.

Referanslar

Benzer Belgeler

Temuçin Faik ERTAN (Ankara Üniversitesi Türk İnkılap Tarihi Enstitüsü) Özdemir TURGUT (Haymana Belediye Başkanı).. Gamze BERKTİN (Atatürk Araştırma Merkezi

Sonuç olarak Kervan Gıda için Oyak Yatırım tarafından hazırlanmış olan Fiyat Tespit Raporu’nda belirlenen değerleme yöntemlerine göre hesaplanan 1.687.420.797

Sonuç olarak Kontrolmatik için Gedik Yatırım tarafından hazırlanmış olan Fiyat Tespit Raporu’nda belirlenen değerleme yöntemlerine göre hesaplanan özsermaye değerleri eşit

Ayr¬k Fourier dönü¸sümü için genelde kullan¬lan bir özel notasyon yoktur, ancak burada biz kolayl¬k aç¬s¬ndan c = F ( f ) notasyonunu kullanaca¼ g¬z. Matris-vektör

Uzunlu¼ gu N olan vektör için ¤t() ile elde edilen sonuçlar, fourier() ile elde etti¼ gimiz sonuclar¬n N kat¬na e¸sit olur. Bile¸sen say¬s¬fazla olan uygulamalar için

Soru 1 (a) da verilen dizilerin lineer konvolüsyonunu, devirli konvolüsy- onun ayr¬k Fourier dönü¸ sümü özelli¼gi ile hesaplay¬n¬z.. Soru 1 de verilen dizilerin

Bunun için verilen ifadelerde y kapalı olarak x’in fonksiyonu olarak düşünülüp Kapalı Fonksiyon Teoremi’ne göre türev

¸seklindeki Gauss da˘ gılım fonksiyon dizisinin distrib¨ usyonel manada Dirac distrib¨ usyonuna yakınsayaca˘ gı- nı g¨ osteriniz.... mertebeden zayıf t¨