Sonucun karmaşık olması beklenir. Birkaç şeye dikkat çekmek istiyorum:
Verilere bir tuğla duvar frekans alanı filtresi uyguluyorsunuz, 0.005 Hz'den daha büyük bir frekansa karşılık gelen tüm FFT çıkışlarını sıfırlamayı deniyorsunuz, sonra tekrar zaman alanı sinyali almak için ters çevriliyor. Sonucun gerçek olması için, ters FFT'ye giriş konjuge simetrik olmalıdır . Bunun anlamı, bir uzunluk için - FFT,N-
X[ k ] = X*[ N- k ] , k = 1 , 2 , … , N2- 1( Ne v e n )
X[ k ] = X*[ N- k ] , k = 1 , 2 , … , ⌊ N2⌋( No dd)
- Not bunun için da, ve genel olarak eşit, ancak her ikisi de gerçek değildir. Tek , gerçek olmalıdır.N-X [ NX[ 0 ]NX[0]X[ N2]N-X[ 0 ]
Yukarıdaki kodunuzda böyle bir şey yapmaya çalıştığınızı görüyorum, ancak bu doğru değil. Yukarıdaki koşulu ters FFT'ye ilettiğiniz sinyale zorlarsanız, gerçek bir sinyal almalısınız.
İkinci noktam daha çok felsefi bir konu: Yaptığınız şey, istemediğiniz frekans-alan içeriğini bastırmak için işe yarayacak. Bununla birlikte, bu tipik olarak bir alçak geçiren filtrenin pratikte uygulanma şekli değildir. Daha önce de belirttiğim gibi, yaptığınız şey aslında tuğla duvarlı (yani mükemmel dikdörtgen şeklinde) büyüklük tepkisine sahip bir filtre uygulamak. Böyle bir filtrenin darbe tepkisi, bir iç şekline sahiptir. Frekans domeninde çarpma, zaman domeninde (DFT, dairesel) konvolüsyona eşdeğer olduğu için, bu işlem, zaman domen sinyalinin bir fonksiyonuyla çevrilmesine eşdeğerdir .s i n cs i n c ( x )s i n c
Bu neden bir problem? işlevinin zaman alanında nasıl göründüğünü hatırlayın (Wikipedia'dan utanmadan ödünç alınan resmin altındakiler):s i n c
fonksiyon zaman alanındaki çok geniş desteğe sahip; zaman içinde ana lobundan uzaklaştıkça yavaş yavaş çürür. Birçok uygulama için bu arzu edilen bir özellik değildir; Bir sinyali bir , yavaş yavaş azalan sidelob'lerin etkileri, genellikle filtrelenmiş çıkış sinyalinin zaman-alanı formunda açıkça görülecektir. Bu tür bir etki genellikle zil sesi olarak adlandırılır . Ne yaptığınızı biliyorsanız, bu tür filtrelemenin uygun olabileceği bazı durumlar vardır, ancak genel durumda, istediğiniz şey bu değildir.s ı n Cs i n cs i n c
Hem zaman hem de frekans alanlarında, düşük geçişli filtreleri uygulamanın daha pratik yolları vardır. Sonlu dürtü yanıtı ve sonsuz dürtü yanıt filtreleri, fark denklem gösterimleri kullanılarak doğrudan uygulanabilir . Filtre yeterince uzun dürtü yanıtı vardır Ya da, genellikle kullanarak performans yararları elde etmek için hızlı bir kıvrım gibi, FFT dayalı teknikleri (yerine zaman alanında konvolüsyon frekans alanında çarparak filtre uygulama) Üst üste binme- kaydet ve üst üste bindirme yöntemleri.