Professional Documents
Culture Documents
com
Eğitim: Bilişim: Paylaşım
Fourier Dönüşümü
Matlab Uygulamalı
Zafer CÖMERT
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
İçindekiler
1. Giriş ...............................................................................................................................................................................................1
Ekler ...................................................................................................................................................................................................... 17
Kaynakça............................................................................................................................................................................................. 24
I
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
1. Giriş
Sinyal ya da işaret, zaman, uzay ya da başka bir veya birkaç bağımsız değişken ile değişiklik
gösteren fiziksel nicelik olarak tanımlanabilir. Matematiksel olarak, bir sinyal bir ya da daha fazla
bağımsız değişkenin fonksiyonu olarak tanımlanabilir. Bir başka ifadeyle işaretler, fiziksel bir durum
hakkında bilgi taşıyan, bir veya daha fazla değişkene bağlı fonksiyonlardır.
Doğada basit periyodik olaylar matematiksel olarak sinüs ve kosinüs fonksiyonları ile ifade
edilirler. Örneğin bir sarkacın küçük genlerle salınımı, bir diyapozonun titreşimleri ve buna benzer
fiziksel olayların her biri birer basit periyodik olaydır. Eğer olay saniyede 𝑛 defa tekrarlanıyor ise basit
titreşimleri gösteren fonksiyon bir sinüs ya da kosinüs bileşeni ile gösterilebilir [1]. Ancak doğadaki
pek çok sinyal fonksiyonel bir ifadeyle tanımlanamaz. Genel olarak bir konuşma sinyali için farklı
genlikler ve farklı frekanslarda birkaç sinüzoidal frekansın toplamı olarak aşağıdaki gibi yazılabilir:
𝑁
Burada:
𝐴𝑖 (𝑡) : Sinüzoidal dalganın genliği
𝐹𝑖 (𝑡) : Sinüzoidal dalganın frekansı
𝜃𝑖 (𝑡) : Sinüzoidal dalganın faz kümesini temsil etmektedir.
İşaretler, ayrık zamanlı ya da sürekli zamanlı olabilirler. Bir başka ifadeyle ayrık-zamanlı
(dijital) ya da sürekli-zamanlı (analog) olarak işlenebilirler.
Frekans Yanıtı
Doğrusal zamanla-değişmez1 bir sistemin çalışması, sistemin dürtü yanıtı veya sabit katsayı
fark denklemi (SKFD) gösterimi ile tanımlanabilmektedir. Her ikisinde de sistemin tanımı sistemin
çıkış işareti örnek değerlerinin giriş işareti örnek değerlerinden bulunması prensibine dayanmaktadır.
Sistemin dürtü yanıtı ve frekansa bağlı 𝐻(𝑒 𝑗Ω ) katsayısı aşağıdaki gibi tanımlanmaktadır.
∞
Karmaşık üstel 𝐻(𝑒 𝑗Ω ) katsayısı giriş işaretinin frekansına bağlı olarak, sistemin 𝑒 𝑗Ω işaretinin
genliği ve fazında neden olduğu değişikliği göstermektedir. Bu nedenle 𝐻(𝑒 𝑗Ω ) sistemin frekans yanıtı
olarak ifade edilmektedir.
Alternatif bir gösterim için genlik ve faz bileşenleri kullanılarak frekans yanıtı aşağıdaki gibi
ifade edilir.
𝑗Ω )
𝐻(𝑒 𝑗Ω ) = |𝐻(𝑒 𝑗Ω )|𝑒 𝑗∠𝐻(𝑒
Frekans yanıtı, sistemlerin çalışma prensiplerinin belirlenmesi için alternatif bir tanımlama
sağlamaktadır. Ayrık-zamanlı bir sistemin çalışmasını frekans uzayında karakterize eden frekans
yanıtı, frekans bileşenlerine göre oluşan sistem davranışını sergilemektedir. Bazı durumlarda bir
sistemin işlevinin anlaşılmasında sistemin frekans yanıtı, sistemin dürtü yanıtından veya sistemin fark
denklemi gösteriminde çok daha faydalı olmaktadır.
Bir doğrusal zamanla-değişmez sisteme giriş olarak karmaşık üstel işaret uygulandığı
takdirde, sistem çıkışı karmaşık üstel işaret ile frekans yanıtının çarpımından oluşacaktır.
2
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
2. Fourier Dönüşümü
Fourier dönüşüm yöntemi sinyalin içindeki bilgilerin elde edilebilmesi için, sinyallerin
işlenmesinde kullanılan çok önemli bir yöntemdir. Bu bilgiler, Fourier dönüşümü ile yeniden
kullanılmaya uygun bir veri formatına çevrilir. Fourier dönüşümüyle bir sinyal, farklı genlik, frekans ve
fazlarda kosinüs ve sinüs temel bileşenlerinin toplamı olarak ifade edilir. Her bileşenin frekans ve
genliği ile birlikte tablolaşması, bilgisayarla verilerin işlenmesi sırasında kolaylık sağlar.
Fourier dönüşümünü açıklamak için bir benzetim yapıldığında: hesaplama dinlemeye
benzetilebilir. Dinleme için kulak, otomatik olarak dönüşümü hesaplayacaktır ancak beynin
hesaplamayı yapabilmesi için yıllar süren matematik eğitimi gereklidir. Kulak sesi frekans tayfına
(farklı perdelerdeki ses miktarları) çevirerek dönüşümü gerçekleştirir. Beyin bu bilgiyi algılanmış sese
çevirir [2]. Benzer şekilde Fourier dönüşümü, her frekansa ait sinüs dalgası için genlik ve evre
hesaplayan bir fonksiyon olarak düşünülmelidir.
Fourier analizi bir takım anormal durumlar için uygulanamaz. Örneğin, sınırlı bir bölgede
sonsuz sayıda sıçrama yapan bir fonksiyona uygulanamaz. Ancak bir fiziksel büyüklüğün
ölçülmesinden oluşan tüm fonksiyonlar için Fourier serisi yakınsayacaktır. Fourier analizi uzaydaki
veya zamandaki bir fonksiyonu frekans, genlik ve evresi değişen sinüzoidal elemanlara indirger.
Fourier dönüşümü her frekanstaki genlik ve evreyi gösteren bir fonksiyondur. Dönüşüm iki
matematiksel metotla hesaplanır; birincisi fonksiyon sürekli ise ikincisi ise fonksiyon kesikliyse (ayrık
ise) uygulanır.
Eğer fonksiyon kesikliyse, yani fonksiyon kesikli zaman aralıklarına ait değerlerden
oluşuyorsa, ayrık frekanslardaki sinüzoidal fonksiyonların serisi şeklinde gösterilebilir. Bu frekanslar
asıl frekansın iki, üç ve daha büyük katlarıdır. Bu şekildeki sinüslerin toplamına Fourier serisi denir.
Eğer fonksiyon sürekliyse, yani her gerçek sayı için tanımlı bir değeri varsa bu fonksiyon tüm
frekanslardaki sinüslerin Fourier integraline indirgenebilir. Fourier dönüşümü ne seri ne de integral
değildir. Kesikli fonksiyonlarda, Fourier serisini oluşturan evrelerin ayrık frekanslara bağlı listesidir,
sürekli fonksiyonlarda ise Fourier integralinin alınmasından ortaya çıkan frekansa bağlı bir
fonksiyondur.
Dönüşüm hangi yöntemle hesaplanırsa hesaplansın, her frekansta iki sayının hesaplanması
gerekir. Bu iki sayı genlik ve evre(faz) olabilir veya aynı bilgiyi içeren farklı iki sayı da olabilir. Bu iki
sayı, bir karmaşık sayı ile gösterilebilir. Bu gösterim yaygın olarak kullanılır, çünkü karmaşık cebir
işlemlerine olanak sağlar. Karmaşık cebir kuramı ve Fourier dönüşümü, elektrik devresi tasarımında,
mekanik titreşim analizi ve dalga yayılımı çalışmalarında yapılan sayısal hesaplamalarında ayrılmaz
bir bütün oluştururlar.
Ne kadar aritmetik işlem yapılacağı fonksiyonu gösteren noktaların sayısına bağlıdır. Toplama
işleminin sayısı nokta sayısına, çarpma işleminin sayısı ise nokta sayısının karesine yakındır. Örneğin
3
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
1,000 düzenli aralıkla alınmış noktadan oluşan bir dalganın analizi için yaklaşık 1,000 toplama ve bir
milyon çarpma işlemi gereklidir.
Bilgisayarlar ve programlar geliştikçe Fourier analizi için yeni yöntemler ortaya çıkmıştır ve
hesaplar çok kolaylaşmıştır. Yapılan bu çalışmalar "Hızlı Fourier Dönüşümü2 (FFT)" diye bilinen
programın ortaya çıkmasını sağlamıştır. Hızlı Fourier dönüşümü çarpmaların sayısını azaltarak
zamandan kazanmaktadır. Hızlı Fourier dönüşümü, eğri üzerinde eşit aralıklarla çok sayıda örnek alır.
Örnek sayısı yarıya düşürülürse analiz için gereken çarpma sayısı da yarıya düşer. Örneğin, 16
örnekten oluşan eğri için 16’nın karesi yani 256 çarpma gerekecektir. Eğer eğriyi 2 tane 8 sekiz
örnekten oluşan parçaya ayırırsak, her parça için 8’in karesi yani 64 çarpma gerekecektir. İki parça için
toplam 128 çarpma olacaktır ki bu da önceki durumun yarısına eşittir.
Fourier ile ilgili bazı özellikler:
Genelleme yapıldığında Fourier dönüşümü düzensiz değişim gösteren durumlarla ilgilenen
bütün alanlarda kullanılabilir.
Sinyaller genellikle zaman fonksiyonu olarak gösterilir. Birçok durum için sinyal hakkındaki
bilgi frekans tanım aralığında ifade edilir.
Fourier analizi yardımıyla bir sinyal zaman alanından frekans alanına aktarılır.
Fourier dönüşümü bir sinyalin içerdiği frekansı gösterir fakat hangi zaman değerlerinde hangi
frekansların mevcut olduğu bilgisini vermez. Doğal olarak zamana göre değişmeyen
sinyallerin dönüşümünde oldukça başarılıdır.
Geçici durum analizlerinde ise istenilen neticeyi verememektedir. Bu nedenle Kısa Zaman
Fourier Dönüşümleri3 (STFT) kullanılmaktadır. Yani Fourier dönüşümleri belirli bir zaman
çerçevesi içerisinde kullanılmaktadır. Bu durum frekans değerleri için sorun teşkil etmektedir.
Sonuç olarak bu metot ile frekansın göründüğü zaman dilimi tespit edilemez. Sadece ilgili
zaman aralığındaki frekans bileşenleri tespit edilebilir.
Matlab’da ise Fourier dönüşümü için fft() fonksiyonu, ters Fourier dönüşümü içinse
iff() komutu kullanılmaktadır.
Fourier dönüşümü, sürekli ve ayrık olarak ikiye ayrılabilir. İki dönüşüm de bir nesneyi
ortogonal iki uzay arasında eşler. Sürekli nesneler için dönüşüm:
∞
1
𝐹(𝑘) = ∫ 𝑓(𝑥)𝑒 −𝑖𝑘𝑥 𝑑𝑥
√2𝜋 −∞
∞
1
𝑓(𝑥) = ∫ 𝐹(𝑘)𝑒 𝑖𝑘𝑥 𝑑𝑘
√2𝜋 −∞
∞
𝑋(𝑒 𝑗𝑤 ) = ∫ 𝑋𝑐 (𝑡)𝑒 −𝑗𝑤𝑡 𝑑𝑡
−∞
Ayrık zamanlı Fourier dönüşümü, bir ayrık-zaman işaretinin farklı frekanslardaki karmaşık
üstel işaret bileşenlerini vermektedir. Fourier dönüşümü bazen Fourier spektrumu, Frekans
spektrumu veya sadece Spektrum olarak ifade edilmektedir. Ayrık zamanlı Fourier Dönüşümü, ayrık-
zaman işareti sürekli frekans bileşenlerine ayrıştırmaktadır. Bu nedenle bir ayrık-zamanlı işaretin
ayrık zamanlı Fourier dönüşümü frekansa bağlı sürekli bir fonksiyondur.
Ayrık-zaman karmaşık üstel işaretlerin özelliklerinden dolayı 2𝜋 periyodu ile periyodiktir.
∞
𝑗Ω )
𝑋(𝑒 = ∑ 𝑥[𝑛]𝑒 −𝑗Ω𝑛
𝑛=−∞
Sınırlı-giriş, sınırlı-çıkış anlamında kararlı sistemlerin dürtü yanıtlarının tanım itibari ile
mutlak toplanabilir olmasından dolayı kararlı sistemlerin mutlak sonlu ve sürekli bir frekans yanıtının
olması önemli bir noktadır.
𝑥[𝑛] gerçek bir ayrık-zamanlı işaret olduğunda, genlik spektrumu çift bir fonksiyon, faz
spektrumu da tek bir fonksiyon olmaktadır. İşaretin frekans spektrumu (−𝜋, 𝜋) aralığında ele
alındığından genlik spektrumu simetrik, faz spektrumu da ters-simetrik olarak oluştuğundan frekans
spektrumunun sadece (0, 𝜋) aralığında incelenmesi yeterli olmaktadır. Bu DTFT’nin simetrik
özelliğinden kaynaklanmaktadır.
Zamanda işaretin ötelenmesi işaretin genlik spektrumunda bir değişime yol açmazken,
işaretin faz spektrumunda öteleme miktarı ile doğru orantılı bir faz kayması meydana getirmektedir.
Bu nedenle bir işaretin ötelenmesi sadece doğrusal bir faz kayması meydana getirmektedir.
Pratikte bir işaretin DTFT ile görüntülenmesi istendiği takdirde; işaretin spektrumundan
alınan örnek adedi arttıkça, yani DTFT hesabı için kullanılan 𝑁 değeri arttırıldıkça elde edilen ayrık
frekans spektrumu işaretin sürekli frekans spektrumuna daha fazla benzeyecektir. Fakat bu durumda
yapılması gereken hesap miktarı da artmaktadır. Frekansın örneklenmesi için 𝑁 değeri yeteri kadar
büyük seçilmediği takdirde ters Fourier dönüşümü uygulandığında orijinal sinyale geri dönüş
istenildiği gibi gerçekleşmeyecektir.
Frekans spektrumunun seyrek örneklenmesi sonucu zaman uzayında işaret değerlerinin üst
üste binmesi olayı zamanda örtüşme6 olarak adlandırılır.
Ayrık Fourier dönüşümü aşağıda listelenen alanlarda kullanılmaktadır.
1. Spektrum analizi
2. Hızlı konvolüsyon
3. Frekans uzayında süzgeçleme
Karmaşık sayıların gerçek kısımları sinyalin frekansı ile ilgili bilgilerin edinilmesini sağlarken,
sanal kısımlar ise faz bilgisi ile ilgili verilerin elde edinilmesini sağlamaktadır.
6 Aliasing
6
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
Matlab’ın hesaplayarak verdiği sonuçları yukarıda verilen formüllere bağlı olarak, elle çözüp
elde etmek de mümkündür. Bu kapsamda aşağıda [1234] değerlerine sahip olan bir serinin çözümü
gösterilmiştir.
7
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
Örnek DTFT
Çözüm DTFT
𝑋(𝑘) = ∑ 𝑥(𝑛)𝑊𝑁𝑛𝑘 0 ≤ 𝑘 ≤ 𝑁 − 1
𝑛=0
Burada:
2𝜋
−𝑗( )
𝑊𝑁 = 𝑒 𝑁
𝑁 = 4
𝜋
−𝑗( )
𝑊4 = 𝑒 2
3
𝜋𝑘𝑛
𝑋(𝑘) = ∑ 𝑥(𝑛)𝑒 −𝑗 2
𝑛=0
𝑘 = 0𝑖ç𝑖𝑛
𝑋(0) = ∑3𝑛=0 𝑥(𝑛)𝑒 −𝑗0 = 𝑥(0)𝑒 −𝑗0 + 𝑥(1)𝑒 −𝑗0 + 𝑥(2)𝑒 −𝑗0 + 𝑥(3)𝑒 −𝑗0
= 1 + 2 + 3 + 4 = 10
𝑘 = 1𝑖ç𝑖𝑛
𝜋𝑛 𝜋 3𝜋
𝑋(1) = ∑3𝑛=0 𝑥(𝑛)𝑒 −𝑗 2 = 𝑥(0)𝑒 −𝑗0 + 𝑥(1)𝑒 −𝑗 2 + 𝑥(2)𝑒 −𝑗𝜋 + 𝑥(3)𝑒 −𝑗 2
= 1 − 𝑗2 − 3 + 4𝑗
= −2 + 𝑗2
𝑘 = 2𝑖ç𝑖𝑛
𝑋(2) = ∑3𝑛=0 𝑥(𝑛)𝑒 −𝑗𝜋𝑛 = 𝑥(0)𝑒 −𝑗0 + 𝑥(1)𝑒 −𝑗𝜋 + 𝑥(2)𝑒 −𝑗2𝜋 + 𝑥(3)𝑒 −𝑗3𝜋
= 1 − 2 + 3 − 4 = −2
𝑘 = 3𝑖ç𝑖𝑛
3𝜋 3𝜋 9𝜋
𝑋(3) = ∑3𝑛=0 𝑥(𝑛)𝑒 −𝑗 2 = 𝑥(0)𝑒 −𝑗0 + 𝑥(1)𝑒 −𝑗 2 + 𝑥(2)𝑒 −𝑗3𝜋 + 𝑥(3)𝑒 −𝑗 2
8
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
Ayrık Fourier dönüşümünün yapısındaki periyodiklik nedeniyle bir işaretin spektrumu DTFT
ile hesaplanırken, işaret son örneğin arkasından tekrar ilk örnek geliyormuş gibi işlem görmektedir. Bu
durum göz önüne alındığında frekans ilişkisi frekans bileşenlerinin değerlerine yansımaktadır.
Şekil 2.2’de periyodunu tamamlamış bir sinüs işareti ve onun DTFT dönüşümü
gösterilmektedir. İşaret periyodunu tamamladığından, bir süreksizlik olmadığından beklendiği gibi
işaretin frekansına karşılık gelen pozitif ve negatif frekansta tek bir örnek olarak oluşmaktadır.
Şekil 2.3’de sinüs değeri periyodunu tamamlamadığından DTFT dönüşümü sonrası işaretin
yapısında olmayan frekans bileşenleri gözükmektedir.
9
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
DTFT hesabı sırasında spektral sızmayı azaltmanın bir yolu, işaretin son değeri ile ilk değeri
arasındaki devamsızlığın giderilmesidir. Bu amaçla işarette, DTFT öncesi pencereleme 7
kullanılmaktadır.
DTFT hesabı sırasında işaretin son değerleri ile ilk değerleri arasında
meydana gelen ve ayrık Fourier dönüşümünün doğasından kaynaklanan suni
devamsızlık, enerjinin diğer frekanslara sızması şeklinde algılanabileceğinden
spektral sızma 8 olarak adlandırılmaktadır.
Pencereleme yöntemi işaretin DTFT hesabı öncesinde, genliği kenarlara doğru yavaşça sıfıra
yaklaşan bir pencere fonksiyonu ile çarpılmasını öngörmektedir. Bu sayede işaretin son değeri ile ilk
değerleri arasındaki devamsızlık giderilmektedir. Değişik pencere fonksiyonlarının kullanımı
mümkündür.
Periyodunu tamamlamış sinüs işaretinin Hanning penceresi ile çarpılması sonucu elde edilen
işaret Şekil 2.5’de gösterilmektedir. Pencereleme sonucu işaretin son ve ilk değerleri sıfıra doğru
çekildiğinden devamsızlık ortadan kalkmaktadır. Pencerelenmiş işaretin DTFT spektral sızma etkisi
azaltılmıştır.
Pencereleme spektral sızmayı azaltmaktadır. Bu nedenle çoğunlukla DTFT hesaplanmadan
önce işaret pencerelenmektedir. Kullanılan pencere çeşidi uygulamaya göre değişmektedir. Örneğin
Hamming penceresi ses işaretlerinin işlenmesinde tercih edilirken, genel amaçlı uygulamalarda
Hanning penceresi kullanılmaktadır.
7 Windowing
8 Spectral Leakage
10
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
11
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
İşaretlerin çift sayılı ve tek sayılı örneklerine ayrıştırılmasıyla elde edilir. 𝑥[𝑛] işaretinin 𝑁
noktalı ayrık zaman dönüşümü tek ve çift sayı örneklerinin 𝑁/2 noktalı ayrık Fourier dönüşümü
cinsinden elde edilmektedir. 𝑥1 [𝑛] = 𝑥[2𝑛] ve 𝑥2 [𝑛] = 𝑥[2𝑛 + 1] işaretlerinden oluşmaktadır. Ayrık
Fourier dönüşümünün doğrudan hesaplanmasında 𝑁 2 ile orantılı hesap yükü, zamanda örnek
seyreltme prensibine dayanan hızlı Fourier dönüşümünün kullanımı sayesinde 𝑁𝑙𝑜𝑔𝑁 ile orantılı
seviyeye düşmektedir.
N=2
x[0]
x[4]
N=4
x[0] x[2]
x[0] x[2] x[6]
x[1] x[4] N=2
x[2] x[6]
x[3]
x[4]
N=8
x[5]
x[1]
x[6]
x[3] N=2
x[7]
x[5]
x[1]
x[7]
x[5]
N=4
x[3]
x[7]
N=2
Zamanda örnek seyreltme algoritmasında olduğu gibi çift ve tek frekans örneklerini kapsayan
dizilerin tekrar kendi tek ve çift frekanslarına ayrılmasına devam edilebilmektedir. Bunun için işaret
sürekli olarak ikiye bölünerek işaretin birinci yarısının ikinci yarısı ile toplamı ve farkı hesaplanıp fark
işaret gerekli faz faktörü ile çarpılmaktadır.
En alt seviyede sadece 2-noktalı bir DTFT hesabı ile işaretin hızlı Fourier dönüşümü elde
edilmektedir. Özetle FFT zamanda ve frekansta örnek seyreltme yöntemleri ile ayrık Fourier
dönüşümünün hızlı bir şekilde hesaplanmasına olanak tanımaktadır.
13
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
%% Sinyalin Oluşturulması
Fs = 1000; % Örnekleme Frekansı
T = 1/Fs; % Örnekleme Zamanı (Periyot)
L = 1000; % Sinyalin uzunluğu
t = (0:L-1)*T; % Zaman Vektörü
% 100 Hz ve 0.7 genliğinde sinyalin tanımlanması
s1 = 0.7*sin(2*pi*100*t);
y = s1;
%% FFT Uygulanması
% Orijinal sinyale bakarak frekans bileşenlerinin tanımlanması zordur. Gürültülü
sinyal y'nin frekans alanına taşımak için Fast Fourier Transform (FFT)
kullanılacaktır. Sinyali 2'nin üstü şeklinde ayarlamak üzere kullanılır.
% örneğin nextpow2(2000) girildiğinde 2048 dönecektir.
% nextpow2(4000) girildiğinde 4096 dönecektir.
NFFT = 2^nextpow2(L);
Yc = fft(y,NFFT);
Yt = fft(y,NFFT)/L;
ft = Fs/2*linspace(0,1,NFFT/2+1); % tek taraflı için gerekli
fc = Fs*linspace(0,1,NFFT); % Genel spektrum için gerekli
%% ifft Uygulaması
r1 = ifft(Yt);
14
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
Şekil 4.1 Temiz bir sinüs sinyali için Hızlı Fourier Dönüşümünün uygulama sonuçları
Şekil 4.2 Gürültülü bir sinüs sinyali için Hızlı Fourier Dönüşümünün uygulanma sonuçları
Programın çalıştırılmasından sonra elde edilen sonuçlar Şekil 4.1’de gösterilmiştir. Aynı
sinyale gürültü uygulanarak elde edilen sonuçlar ise Şekil 4.2’de gösterilmiştir.
15
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
Ekler
Bir Sinüs Sinyali için Hızlı Fourier Dönüşümü Kaynak Kodları
% Fourier dönüşümünün yaygın bir kullanımı, zaman alanındaki gürültülü bir
% sinyalin frekans bileşenlerini bulmaktır.
% Verinin 1000 Hz ile örneklendiğini düşünelim.
% Sinyalin özellikleri
% 50 Hz sinüs
% 0.7 genlik
%% FFT Uygulanması
% Orjinal sinyale bakarak frekans bileşenlerinin tanımlanması zordur.
% Gürültülü sinyal y'nin frekans alanına taşımak için Fast Fourier
% Transform (FFT) kullanılacaktır.
%% ifft Uygulaması
r1 = ifft(Yt);
%% Çizimler
% Orijinal Sinyal
y = s1;
subplot(4,1,1);
grid on;
plot(t,y);
title('Orijinal Sinyal');
xlabel('Zaman (ms)');
ylabel('Genlik');
% Genlik Spektrumu
subplot(4,1,3);
plot(fc,abs(Yt));
title('y(t) spektrumu');
xlabel('Frekans (Hz)')
ylabel('|Y(f)|');
subplot(4,1,4);
17
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
plot(r1);
title('Ters Fourier Dönüşümü')
xlabel('Zaman');
ylabel('Genlik')
xlim([0 L]);
figure,
%% Gürültü ile sinyalin bozulması
y = s1 + rand(size(t));
%% FFT Uygulanması
Yc2 = fft(y,NFFT);
Yt2 = fft(y,NFFT)/L;
r2 = ifft(Yt2);
%% Çizimler
% Tek taraflı genlik spektrumunun çizdirilmesi
figure(2)
subplot(4,1,1);
plot(t,y);
title('y(t) Gürültülü Sinyal')
xlabel('Zaman');
ylabel('Genlik');
subplot(4,1,3);
plot(fc,abs(Yt2));
title('y(t) spektrumu');
xlabel('Frekans (Hz)')
ylabel('|Y(f)|');
subplot(4,1,4);
plot(r2);
title('y(t) spektrumu');
xlabel('Frekans (Hz)')
ylabel('|Y(f)|');
xlim([0 L]);
% subplot(4,1,4); plot(abs(Y1));
18
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
btn_sinyal_uret_Callback(hObject,eventdata,handles);
% --- Outputs from this function are returned to the command line.
function varargout = FourierTransform_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
19
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
if get(handles.ddl_sinyal_turu,'Value')==1
% 1 sinüs
handles.sinyal = handles.genlik * sin(2*pi*handles.frekans*handles.zaman);
else
% 2 cosinüs
handles.sinyal = handles.genlik * cos(2*pi*handles.frekans*handles.zaman);
end
cla(handles.axes_sinyal,'reset');
plot(handles.axes_sinyal,handles.sinyal);
% Gürültüyü göster
if get(handles.cb_gurultu,'Value')==1
21
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
hold(handles.axes_sinyal,'on');
plot(handles.axes_sinyal,handles.hamsinyal,'r--');
% plot(handles.axes_sinyal,handles.gurultu,'r.-');
legend(handles.axes_sinyal,'Gürültülü Sinyal','Ham Sinyal','Gürültü');
end
guidata(hObject,handles);
handles.nfft = 2^nextpow2(handles.uzunluk);
set(handles.lbl_uzunluk,'String', strcat('Kullanılan nokta sayısı:
',int2str(handles.nfft)));
handles.fft = fft(handles.sinyal,handles.nfft)/handles.uzunluk;
handles.hamfft = fft(handles.hamsinyal,handles.nfft)/handles.uzunluk;
22
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
23
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
Kaynakça
[2] R. N. Bracewell, «The Fourier Transform,» Scientific American , pp. 86-95, 1989.
24
Zafer CÖMERT Dijital Sinyal İşleme
www.zafercomert.com 13.11.2015
Eğitim: Bilişim: Paylaşım
Belge Geçmişi
31.10.2015 Belge ilk kez oluşturuldu.
25