Haklısın. Birçok yankı iptali yöntemi vardır, ancak bunların hiçbiri tam anlamıyla önemsiz değildir. En genel ve popüler yöntem, uyarlanabilir bir filtre aracılığıyla eko iptali. Bir cümleyle, uyarlanabilir filtrenin işi, girdiden gelen bilgi miktarını en aza indirerek oynatılan sinyali değiştirmektir.
Uyarlanabilir filtreler
Uyarlanabilir (dijital) filtre, katsayılarını değiştiren ve sonunda en uygun yapılandırmaya dönüşen bir filtredir. Bu adaptasyonun mekanizması, filtrenin çıktısını istenen bazı çıktılarla karşılaştırarak çalışır. Aşağıda genel bir uyarlanabilir filtrenin şeması bulunmaktadır:
Diyagramdan da görebileceğiniz gibi, sinyali ile çıkış sinyali üretmek için filtrelenir . Daha sonra çıkarma ile ilgili arzu edilen bir sinyal üretmek için hata sinyali . Not bu katsayılarının bir vektördür, bir sayı (dolayısıyla yazmak değil ). Her yinelemeyi değiştirdiği için (her örnek), bu katsayıların mevcut koleksiyonunu ile abone ediyoruz . elde edildikten sonra güncellemek için kullanırızx[n]w⃗ nd^[n]d^[n]d[n]e[n]w⃗ nw[n]ne[n]w⃗ nseçim güncelleme algoritması ile (daha sonra daha fazla). Giriş ve çıkış zaman içinde değişmeyen ve iyi tasarlanmış bir güncelleme algoritması verilen doğrusal bir ilişkiyi , en sonunda en uygun filtreye yakınlaşacak ve yakından takip edecek .w⃗ nd^[n]d[n]
Yankı giderme
Yankı iptal etme sorunu, girdi-çıktı ilişkisini tatmin eden en uygun filtreyi bularak girdi verilen bilinen bazı ideal çıktıları üretmeye çalıştığımız uyarlanabilir bir filtre sorunu açısından sunulabilir. Özellikle, kulaklığınızı alıp "merhaba" dediğinizde, bir odanın akustik tepkisi (yüksek sesle çalınıyorsa) ile değiştirilir ve geri dönmek için ağa geri beslenir. yankı olarak sana. Ancak, sistem ilk "merhaba" nın neye benzediğini bildiği ve şimdi yankılanan ve gecikmiş "merhaba" seslerinin nasıl bildiğini bildiğinden, bu oda yanıtının uyarlanabilir bir filtre kullandığını tahmin edebiliriz. O zaman bu tahmini kullanabiliriz, Gelen tüm sinyalleri bu dürtü tepkisiyle (bu bize yankı sinyalinin tahminini verir) dönüştürün ve aradığınız kişinin mikrofonuna girenlerden çıkartın. Aşağıdaki şemada bir uyarlamalı yankı giderici gösterilmektedir.
Bu şemada, “merhaba” sinyaliniz . Bir hoparlörden çalındıktan sonra, duvarlardan sekerek ve cihazın mikrofonu tarafından alındıktan sonra yankılanmış bir sinyal olur . Uyarlanabilen filtre alır ve çıkış üreten yakınsama sonra ideal sinyal yankılandı izleme gereken . Bu nedenle, , kimsenin hattın diğer ucunda konuşmadığı göz önüne alındığında, sıfıra gitmelidir, bu genellikle kulaklığı yeni aldığınız ve "Merhaba". Bu her zaman doğru değildir ve bazı ideal olmayan vaka değerlendirmeleri daha sonra tartışılacaktır.x[n]d[n]w⃗ nx[n]y[n]d[n]e[n]=d[n]−y[n]
Matematiksel olarak, NLMS (normalleştirilmiş en küçük ortalama kare) uyarlanabilir filtre aşağıdaki gibi uygulanır. Her adımda değerini önceki adımın hata sinyalini kullanarak güncelliyoruz . Yani, hadiw⃗ n
x⃗ n=(x[n],x[n−1],…,x[n−N+1])T
burada içindeki musluk (örnek) sayısıdır . Hangi örneklerinin ters sırada olduğuna dikkat edin . Ve bırakNw⃗ nx
w⃗ n=(w[0],w[1],…,x[N−1])T
Daha sonra ve iç çarpımını (her iki sinyal de gerçekse nokta çarpımını) bularak değerini hesaplıyoruz (kıvrım yoluyla) :y[n]=x⃗ n=w⃗ n
y[n]=x⃗ Tnw⃗ n=x⃗ n⋅w⃗ n
Şimdi hatayı hesaplayabildiğimize göre, en aza indirmek için normalleştirilmiş bir degrade iniş yöntemi kullanıyoruz . için aşağıdaki güncelleme kuralını alıyoruz :w⃗
w⃗ n+1=w⃗ n+μx⃗ ne[n]x⃗ Tnx⃗ n=w⃗ n+μx⃗ nx⃗ Tnw⃗ n−d[n]x⃗ Tnx⃗ n
burada , şekilde adaptasyon adımı boyutudur .0 ≤ μ ≤ 2μ0≤μ≤2
Gerçek hayattaki uygulamalar ve zorluklar
Bu yankı iptali yöntemiyle birçok şey zorluk yaşayabilir. Her şeyden önce, daha önce de belirtildiği gibi, “merhaba” sinyalinizi alırken diğer kişinin sessiz olduğu her zaman doğru değildir. Bazı durumlarda, giriş sinyali ve yankı olduğu için hattın diğer ucunda önemli miktarda girdi varken, dürtü yanıtını tahmin etmenin faydalı olabileceği gösterilebilir (ancak bu cevabın kapsamı dışındadır). istatistiksel olarak bağımsız olduğu varsayılır; bu nedenle, hatayı en aza indirmek geçerli bir prosedür olacaktır. Genel olarak, yankı tahmini için iyi zaman aralıklarını tespit etmek için daha karmaşık bir sisteme ihtiyaç vardır.
Öte yandan, alınan sinyal yaklaşık olarak sessiz olduğunda (aslında gürültü) yankıyı tahmin etmeye çalıştığınızda ne olacağını düşünün. Anlamlı bir giriş sinyalinin yokluğunda, uyarlamalı algoritma ayrılır ve hızlı bir şekilde anlamsız sonuçlar üretmeye başlar ve sonunda rastgele bir eko patteriyle sonuçlanır. Bu, konuşma algılamayı da dikkate almamız gerektiği anlamına gelir . Modern yankı iptalcileri daha çok aşağıdaki şekle benziyor, ancak yukarıdaki açıklama onun jistidir.
Hem uyarlanabilir filtreler hem de yankı iptali ile birlikte kullanabileceğiniz bazı açık kaynak kütüphaneleri hakkında çok sayıda literatür var.