Ben sıfır bir dizilim 4N, bir FFT yapar ve sadece üretilen 4N dışında en düşük frekans N noktaları kullanan bir algoritma var.
Bu çok boşa giden bir iş gibi görünüyor, bunun nasıl daha hızlı yapılabileceği hakkında bir fikir var mı?
Ben sıfır bir dizilim 4N, bir FFT yapar ve sadece üretilen 4N dışında en düşük frekans N noktaları kullanan bir algoritma var.
Bu çok boşa giden bir iş gibi görünüyor, bunun nasıl daha hızlı yapılabileceği hakkında bir fikir var mı?
Yanıtlar:
Sadece birkaç bölmeniz varsa, aşağıdakiler sizin için çok verimli olabilir:
1. İhtiyacınız olan her frekansta DFT'yi yapın.
2. Söz konusu her frekans için Goertzel algoritmasını kullanın.
Sıfır dolgu, 4X uzunluğa kadar, daha uzun FFT'yi hesaplar ve daha sonra sadece alt 1/4 bölmeleri kullanarak, orijinal uzunluk FFT'nin pencereli Sinc enterpolasyonu ile hemen hemen aynı sonuçlar üretir.
Bu yüzden sadece orijinal FFT uzunluğunu kullanın ve uygun bir pencere genişliğine sahip 3 fazlı Sinc enterpolasyon çekirdeğini kullanarak enterpolasyon yapın.
Zaman alanındaki sıfır doldurma size daha yüksek frekans çözümü sağlar, ancak yeni bilgi vermez, bu nedenle frekans alanında esasen enterpolasyon sağlar. Sinyallerinizin doğasına ve gereken hassasiyete bağlı olarak, düzenli bir N noktası FFT'si ile ek frekans noktaları elde edebilir ve uygun bir enterpolasyon (doğrusal, spline, pchip, sinc vb.) Yapabilirsiniz.