FFT (veya Hızlı Fourier Dönüşümü) aslında bir olan algoritma hesaplanması için Ayrık Fourier Dönüşümü ya da DFT. Tipik uygulama , veri noktalarının sayısı , büyük olan bir sayı olduğu için burada bulunmayan bileşik bir tamsayı olduğu gerçeğinden yararlanılarak, DFT'nin geleneksel hesaplaması üzerinde hız kazanır . ( bir ana olduğunda FFT'ler mevcut olsa da, MATLAB'da uygulanabilecek veya uygulanmayacak farklı bir formülasyon kullanırlar). Gerçekten de, birçok kişi , DFT hesaplamasını FFT yoluyla hızlandırmak için veya biçiminde kasten seçer
.N101NN2k4k
Yansıtmanın neden gerçekleştiği sorusuna dönersek, hotpaw2 esasen nedenini belirtti ve bu yüzden aşağıdakiler sadece ayrıntıların doldurulmasıyla ilgili. Bir sekansın DFT arasında
veri noktaları bir sekans olarak tanımlanır burada
burada . , genel olarak , , gerçek-değerli bir sekans olsa bile, karmaşık-değerli bir sekans olduğu açık olacaktır . Ama unutmayın ne zamanx=(x[0],x[1],x[2],…,x[N−1])NX=(X[0],X[1],X[2],…,X[N−1])
X[m]=∑n=0N−1x[n](exp(−j2πmN))n,m=0,1,…,N−1
XxxX[0]= N - 1 ∑ n = 0 x[n]j=−1−−−√Xxx gerçek değerli bir dizilimdir, gerçek bir sayıdır. Dahası, eğer bir
çift sayı ise, o zaman, , biz de
gerçek bir sayıdır. Ancak, tek mi yoksa çift mi olduğuna bakılmaksızın, gerçek bir değere
sahip dizisinin DFT , bir yorumda bahsettiğiniz
Hermitian simetri özelliğine sahiptir. Herhangi bir
sabit ,
X[0]=∑n=0N−1x[n]Nexp(−jπ)=−1X[N2]=∑n=0N−1x[n](exp(−j2πN/2N))n=∑n=0N−1x[n](−1)n
NXx m1≤m≤N−1,
Böylece, , . Özel Bu durumda, not olarak biz seçerseniz ne zaman bile, biz o olsun , böylece bizim doğrulayan daha erken sonuç
1≤m≤N-1X[m]X[N−m]=∑n=0N−1x[n](exp(−j2πmN))n=∑n=0N−1x[n](exp(−j2πN−mN))n=∑n=0N−1x[n](exp(−j2π+j2πmN))n=∑n=0N−1x[n](exp(j2πmN))n=(X[m])∗
1≤m≤N−1X[N−m]=(X[m])∗m=N/2NX[N/2]=(X[N/2])∗X[N/2]gerçek bir sayıdır. Hermitiyen simetri özelliğinin bir etkisinin olduğuna dikkat edin.
gerçek değerli dizisinin kuru film kalınlığında inci bölmesi vardır , aynı büyüklük olarak inci kutusu.m(N−m)
MATLABi insanlarının, MATLAB dizilerinin yukarıya doğru numaralandırıldığını hesaba katmaları için tercüme etmesi gerekecektir .1
Gerçek verilerinize dönersek, değeriniz artı
bir değer olan Hz'lik bir sinüzoit periyodundan biraz daha fazla bir DC değeridir . Aslında, elde ettiğiniz şey
burada . Böylece, örneğin ilk ve sonuncusu aynı değere sahiptir. Böylece hesapladığınız DFT,
ile
arasındaki uyuşmazlık DFT’de karışıklığa neden olur: değerleri
x11
x[n]=1+sin(2π(0.01n)), 0≤n≤100
x[0]=x[100]=1101X[m]=∑n=0100(1+sin(2π(n100)))(exp(−j2πm101))n
100101X[m]için küçük de olsa, sıfırdan farklı olan. Öte yandan, MATLAB programınızdaki diziyi değerinde örnek alacak şekilde ayarlayacağınızı ve böylelikle
Sonra DFT,
Eğer DFT olacağı göreceksiniz
tam olarak (ya da en azından içinde yuvarlama hatası) ve
ters DFT bunun için verecektir ,
2≤m≤99t
100t=0,0.01,0.02,…,0.99x[n]=1+sin(2π(0.01n)), 0≤n≤99.
X[m]=∑n=099(1+sin(2π(n100)))(exp(−j2πm100))n,
X=(100,−50j,0,0,…,0,50j)0≤n≤99x[n]=1100∑m=099X[m](exp(j2πn100))m=1100[100−50jexp(j2πn100)1+50j(exp(j2πn100))99]=1+12j[exp(j2πn100)−exp(j2π−n100)]=1+sin(2π(0.01n))
, tam olarak başladığınız şey.