FFT'deki Eserler


10

Kısa süre önce FFT'lerin mükemmel olmadığını fark ettim. Bir sinyal alıp daha sonra FFT alıp ters FFT yaparsam sonuçta elde edilen çıktı girişle tam olarak aynı değildir. İşte size ne demek istediğimi gösteren bir resim:FFT her zaman çalışmaz

Bence imaj oldukça açıklayıcı. IFFT sinyali sadece "FFT spektrumu" nun ters bir dönüşümüdür ve "Fark" grafiği, IFFT sinyali ile orijinal sinyal arasındaki farktır ( ).IFFT - Original

Açıkçası bazı eserler var, ancak gerçekten küçükler. İlk etapta neden ortaya çıktıklarını bilmek istiyorum. Bu fourier dönüşümünün sonlu penceresi yüzünden mi? Veya FFT algoritmasındaki bir şey yüzünden mi?

Not: Bu arsa 32 puan var, ancak 100, 1000, 1024, 256 ve 64 puan ile kontrol ettim ve her zaman benzer bir büyüklük farkı ( veya ).10161015


4
Tüm sınırlı hassas matematik sadece FFT'lerde değil, bu hatalara sahiptir.
endolit

Yanıtlar:


16

Gördüğünüz farklılıklar kayan nokta biçimindeki sayısal hatalardan kaynaklanmaktadır. Bir FFT ve ters bir FFT gerçekleştirmek için gereken tüm işlemler sadece sonlu hassasiyetle yapılabilir ve bu sonlu doğruluk sonucunu sağ alt grafiğinizde gösterdiniz.


Bu hatanın kayan nokta hassasiyetinin ötesinde patlayabileceği bir durum olur mu?
Kitchi

6
Ve @ MattL'nin cevabını doğrulamak için: ve çift kesinlikli kayar nokta sayılarında 53 bit mantis var. Gördüğünüz yuvarlama hatası sadece son 2 bitte. Bu mümkün olduğu kadar iyi. 1016253
Gezici Mantık

@Kitchi: evet, sayısal hataların kayan nokta biçiminde bile önemli bir sorun olabileceği birçok durum var. Matris inversiyonu birçok örnekten biri olacaktır. Her şey koşul numarası ile ilgilidir .
Matt L.

1
@MattL. - Olağanüstü! Referans için teşekkürler.
Kitchi

7

Genel olarak bir sayı tam olarak dijital biçimde temsil edilemez. Bir hata oluştu. Matlab'daysanız, komutta eps yazabilirsiniz, size bir sayı verir.

Bağımsız değişken içermeyen EPS, 1.0 ile bir sonraki büyük çift kesinlikli sayı arasındaki mesafedir, yani EPS = 2 ^ (- 52).

Çiziminizde gördüğünüz hata, eps ile döndürülen aralıktadır (2 ^ (- 52)).

IFFT'nizden elde ettiğiniz çıktıda gerçek değerler beklemenize rağmen, hayali kısmınızın tam olarak sıfıra eşit olmadığını görebilirsiniz. Aynı şey.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.