Bu Araç Ne İşe Yarar?
Dairesel Konvolüsyon Hesaplama Aracı, iki ayrık zamanlı dizinin dairesel (çevrimsel) konvolüsyonunu hesaplar — bu, dijital sinyal işlemenin (DSP) temel işlemlerinden biridir. Doğrusal konvolüsyondan farklı olarak dairesel konvolüsyon, dizileri sabit bir N periyodu etrafında "sarar". İki sinyalin Ayrık Fourier Dönüşümlerini (DFT) çarpıp ters dönüşüm aldığınızda da tam olarak bu olur. Dizilerinizi girin; araç sonuç dizisini, ayrıca hızlı analiz için maksimum ve minimum değerlerini anında verir.
Girdiler
- Birinci Dizi: giriş sinyaliniz x; virgülle ayrılmış sayılar olarak girilir (örneğin
1, 2, 3, 4). - İkinci Dizi: ikinci sinyal h; yine virgülle ayrılmış olarak girilir (örneğin
1, 1, 1).
İki dizinin uzunlukları farklıysa araç, kısa olanı N = uzun dizinin uzunluğu olacak şekilde sıfırlarla tamamlar (zero-padding). Ardından her iki dizi de N periyotlu (periyodik) kabul edilir.
Formül
Dairesel konvolüsyon şöyle tanımlanır:
$$y[n] = \sum_{k=0}^{N-1} x[k] \cdot h\big[(n - k)\bmod N\big]$$Doğrusal konvolüsyondan en önemli farkı, indeksteki mod N ifadesidir. \((n - k)\) negatif olduğunda sıfır üretmek yerine dizinin sonuna doğru sarılır. İşte bu yüzden sonuç her zaman tam olarak N örnek içerir — yani en uzun girdiyle aynı uzunluktadır.
Çözümlü Örnek
x = [1, 2, 3, 4] ve h = [1, 1, 1, 1] olsun (her ikisi de N = 4 uzunluğunda). Her çıkışı hesaplayalım:
- \(y[0] = 1\cdot 1 + 2\cdot 1 + 3\cdot 1 + 4\cdot 1 = 10\)
- \(y[1] = 1\cdot 1 + 2\cdot 1 + 3\cdot 1 + 4\cdot 1 = 10\)
- \(y[2] = 10\), \(y[3] = 10\)
Sonuç: [10, 10, 10, 10]; maksimum 10, minimum 10. h dizisinin tamamı bir olduğundan her çıkış, x'in toplamına eşittir — kullanışlı bir doğrulama yöntemi.
Sıkça Sorulan Sorular
Doğrusal konvolüsyondan farkı nedir? Doğrusal konvolüsyon, sarma olmadan (len(x) + len(h) − 1) uzunluğunda bir dizi üretir. Dairesel konvolüsyon ise uzunluğu N'de tutar ve taşan kısmı başa katlar; bu da DFT tabanlı filtrelemeyle birebir örtüşür.
Dizilerim farklı uzunluktaysa ne olur? Kısa olan dizi, uzun olanın uzunluğu N'ye ulaşana kadar sıfırlarla doldurulur; böylece konvolüsyondan önce ikisi de hizalanmış olur.
Negatif veya ondalıklı sayı kullanabilir miyim? Evet. Girdiler ondalıklı sayı olarak işlenir; bu nedenle -1.5, 0.25, 3 gibi değerler sorunsuz çalışır.