http://nbviewer.jupyter.org/gist/leftaroundabout/83df89a7d3bdc24373ea470fb50be629
DFT, boyut 16
FFT, boyut 16
Karmaşıklıktaki fark bundan oldukça belirgindir, değil mi?
FFT'yi şu şekilde anlıyorum.
FT : L2( R ) → L2( R )
Peki bu dönüşüm nasıl hala iyi tanımlanmış? Peki, genel fonksiyon alanı üzerinde çalışmaması çok önemlidir.R → C sadece (Lebesgue-, kare-) bütünleştirilebilir fonksiyonların . Şimdi, bu bütünlük çok güçlü bir özellik değildir (farklılaşabilirlikten çok daha zayıftır), ancak işlevin “yerel olarak sayılabilir bilgilerle ayırt edilebilir hale gelmesini” talep eder. Böyle bir açıklama, kısa süreli Fourier Dönüşümünün katsayıları tarafından verilir . †En basit durum, işlevinizin sürekli olması ve onu o kadar küçük bölgelere bölmenizdir ki, her birinde temel olarak sabittir. Sonra STFT'lerin her biri en güçlü şekilde sıfırıncı terime sahiptir. Diğer katsayıları (zaten azalıyorsa) yoksayarsanız, her etki alanı yalnızca tek bir veri noktasıdır. Tüm bu kısa süreli LF sınır katsayılarından, ayrık bir Fourier dönüşümü alabilirsiniz. Aslında, ölçülen gerçek dünya verileri üzerinde herhangi bir FT gerçekleştirirken tam olarak bunu yaparsınız!
Ölçülen verilerin mutlaka temel bir fiziksel miktara karşılık gelmesi gerekmez. Örneğin, bazı ışık yoğunluğunu ölçtüğünüzde, frekansı bir ADC ile örneklenemeyecek kadar yüksek olan bir elektromanyetik dalganın genliğini . Ancak, ışık dalgasının deli frekansına rağmen, örneklenmiş bir ışık yoğunluğu sinyalinin DFT'sini de hesaplayabilirsiniz.
Bu, FFT'nin ucuz olmasının en önemli nedeni olarak anlaşılabilir:
Bireysel salınım döngülerini görmeye çalışmakla uğraşmayın en yüksek seviyeden . Bunun yerine, önceden yerel olarak önceden işlenmiş olan biraz yüksek düzeydeki bilgileri dönüştürün.
Yine de hepsi bu kadar değil. FFT ile ilgili en güzel şey şudur: , size tam bir DFT'nin vereceği tüm bilgileri hala vermesidir. . Yani bir ışık huzmesinin tam elektromanyetik dalgasını örneklerken alacağınız tüm bilgiler. Bu bir fotodiyot sinyali dönüştürülerek yapılabilir mi? - Bundan kesin ışık frekansını ölçebilir misiniz?
Cevap hayır olamaz. Fazladan hileler uygulamadığınız sürece.
Her şeyden önce, kısa zaman bloklarındaki frekansı en azından kabaca ölçmeniz gerekir . Bu bir spektrografla mümkün. Ancak sadece hassasiyete kadar mümkündürΔ ν= 1 / Δ t , tipik bir belirsizlik ilişkisi ‡ .
Genel olarak daha uzun bir zaman aralığına sahip olarak, frekans belirsizliğini daraltabilmeliyiz. Ve yerel olarak sadece kaba frekansı değil, aynı zamanda dalganın fazını da ölçerseniz, bu gerçekten mümkündür . Bir saniye sonra bakarsanız 1000 Hz'lik bir sinyalin aynı faza sahip olacağını biliyorsunuz. Oysa 1000,5 Hz'lik bir sinyal kısa ölçekte ayırt edilemezken, bir saniye sonra fazı tersine çevirecektir.
Neyse ki, bu faz bilgisi tek bir karmaşık sayı içinde çok iyi saklanabilir. Ve FFT böyle çalışır! Çok sayıda küçük, yerel dönüşümle başlar. Bunlar ucuzdur - bir şey için açıkçası, sadece az miktarda veri kullandıkları için, ancak ikincisi, kısa zaman aralığı nedeniyle, frekansı zaten çok kesin bir şekilde çözemediklerini bildikleri için - bu tür dönüşümleri bir sürü yapın.
Ancak bunlar fazı da kaydeder ve bundan sonra frekans çözünürlüğünü en üst düzeyde daha kesin hale getirebilirsiniz. Gerekli dönüşüm yine ucuzdur, çünkü herhangi bir yüksek frekanslı salınımla uğraşmaz, sadece önceden işlenmiş düşük frekanslı verilerle uğraşmaz.
† Evet, bu noktada argümanlarım biraz dairesel. Sadece özyinelemeli diyelim ve iyiyiz ...
‡ Bu ilişki olduğunu değil mekanik kuantum ama Heisenberg belirsizlik aslında aynı temel nedeni vardır.