Frekans bölgesinde evrişim çekirdeği nasıl bulunur?


12

Uzamsal verilerin iki vektörü var (her biri yaklaşık 2000 eleman uzunluğunda). Biri diğerinin kıvrımlı bir versiyonudur. Böyle bir evrişim üretecek çekirdeği belirlemeye çalışıyorum. Bunu, çıktı ve girdi vektörlerinin Fourier dönüşümlerinin oranının ters Fourier dönüşümünü bularak yapabileceğimi biliyorum. Gerçekten, bunu yaptığımda beklediğim şekli az çok alıyorum. Bununla birlikte, çekirdek vektörüm, gerçekte kıvrım noktaların sadece beşte birini (~ 300-400) kullanırken iki giriş vektörü ile aynı boyutluluğa sahiptir. Doğru şekli alıyorum ama yanlış sayıda nokta, ifft ve fft işlevlerini tam olarak doğru kullanmadığımı düşündürüyor. Görünüşe göre gerçekten doğru olanı yapsaydım, bu doğal olarak gerçekleşmeli. Şu anda basitçe yapıyorum;

FTInput = fft(in); 
FtOutput = fft(out);
kernel = ifft(FtOutput./FTInput).

Bu doğru mu ve çıktı vektörünü doğru yorumlamak bana mı yoksa görevi gereğinden fazla mı basitleştirdim? Eminim ikincisi, nerede olduğundan emin değilim.


2
Girdi verileriniz her iki tarafta da evrişim çekirdeğinin uzunluğuna sıfır olarak yerleştirilmiş mi? Olmalı, aksi takdirde bu eserlerin nedeni olabilecek bilgileri kaybedersiniz.
leftaroundabout

Yanıtlar:


5

Sinyalinizde parazit varsa, doğrudan Fourier alan adı bölümü sonuçlarınızda çok sayıda hataya neden olur. Bundan kaçınmanın bazı yolları, çift kanallı FFT'yi kullanmaktır ( Bölüm 1 ve Bölüm 2 ). Ayrıca uyarlanabilir filtreler, LMS veya NLMS ([Normalleştirilmiş] En Küçük Ortalama Kareler) filtreleri yoluyla dekonvolüsyon önerebilirim , özellikle sinyallerin uzun olması durumunda CPU döngüleri açısından çok pahalı değildir. LMS adaptif filtreleri gürültüye karşı çok dayanıklıdır.


Bu bir tedavi çalıştı ve ben bilmediğim yepyeni bir şey keşfettim.
Bowler

@Phonon bu bağlantılar çalışıyor mu? Bu tam olarak ne için kayıt oluyor?
Spacey

@Mohammad: Brüel & Kjær teknik inceleme makalelerine ve kitaplarına erişmek içindir. Kaydolmak ücretsizdir ve birçok iyi makaleye erişim sağlar.
Thor
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.