Neden klasik Fourier filtresi yerine gürültü azaltma için hızlı Fourier dönüşümünü kullanıyorsunuz?


17

Bir konuşma kaydından çevresel gürültüyü nasıl kaldıracağımı bilmek istiyorum.

Biraz araştırma yaptım ve önerilen yöntemlerin çoğunun hızlı Fourier dönüşümünü kullandığını fark ettim. Ama neden gürültü frekanslarını gidermek için klasik bir elektronik filtre kullanmıyorsunuz? Neden bir FFT yapmaktan rahatsız oluyorsun?


Çünkü fft daha kaliteli bir çıktı verir?
Güneş Mike

4
Bir 5GS / s DSP sisteminin fiyatını bir grup indikatör ve kapakla karşılaştırın ...
PlasmaHH

1
Belki bir fft ile daha karmaşık filtreleme yapabilirsiniz. "klasik elektronik filtreler" sadece belirli bir aralıktaki tüm frekansları kaldırır. Ayrıca, burada öğrenci rozeti, benden sana bir hediye.
Andrew Pikul

1
Sorunuzla ilgili 2 sorunum var: (1) "Klasik elektronik filtre" ile ne demek istiyorsun? (2) Bir şeyin tek yönlü (FFT) yapılması, başka bir şekilde yapılamayacağı anlamına GELMEZ (filtre); başka şekilde yapmanın bazı dezavantajları olabilir. Bununla birlikte, klasik eletronic filtreyle (bununla ne demek istersen) yapmanın mümkün olmadığını varsayarsın, bu muhtemelen yanlıştır.
Lor

Konuşma kaydınızın biçimi nedir (analog veya dijital)? Gecikme bir sorun mu var (gerçeğe göre canlıya karşı)? Kayıt ne kadar sürer (bir şarkı veya kayıt günleri)?
copper.

Yanıtlar:


25

Bir konuşma kaydından çevresel gürültüyü nasıl kaldıracağımı bilmek istiyorum.

Şimdi dijital olarak saklanıyor, değil mi? yeniden kaydetmek için analog bir filtreden sonra mikrofonunuzu hoparlörün yanına koymayı planlıyor musunuz?

Yeterince uğraşmak, ciddi olacağım.


Bir filtreyi daha küçük frekans aralıklarında daha fazla zayıflatmak için, yani frekans tepki eğrisini daha dikey hale getirmek için, filtrenin sırasını artırmanız yeterlidir.

Bu, Matlab'da yapılması oldukça kolay bir şey. Aynı zamanda post-processing yapmak için uygun bir şey. Aynı zamanda tekrarlanabilirlik ile ilgilidir, eğer filtreyi bugün güneşli bir günde uygularsanız, yağmur yağdığında yarınla ​​aynı şekilde çalışmasını beklersiniz. Tam olarak aynı şekilde çalışmasını bekliyorsunuz , değil mi?

Analog devrelerde tüm bu "% 5 direnç", "% 1 kapasitör" ve diğer tüm özelliklere sahipsiniz. Bu nedenle, kesin bir şey yapmak istiyorsanız , devreyi kesinlikle daha sonra kesmeniz gerekir, böylece istediğiniz filtreyle mükemmel şekilde eşleşir. Filtrenin sırasını artırmak istiyorsanız ... o zaman ne yazık ki .. filtreyi fiziksel olarak çok daha büyük hale getirecektir. Kredi kartının boyutunu almak yerine, bilmiyorum, filtre sırasına ve neyin iyi olduğuna bağlıdır.

Tekrarlanabilirlik ile ilgili, bugün bir şeyler yapmak .. sıcak .. yarın .. daha soğuk ... dirençler çok az değişecek, frekans yanıtı değişecek, orada birkaç Hz, orada bazı, devrelerinizde daha fazla bileşen var , bileşenlerinizin değerlerini değiştirmesi daha olasıdır. Ve sonra nemlendirici, oksitleyici ...

Ve işte ilk olarak söylemem gereken delgi çizgisi, kaset kasetleriniz olmadıkça bunu gerçekten işleyemezsiniz. Kolayca kaydetmek / silmek için hangi analog müzik ortamının kullanıldığından% 100 emin değilim. LP diskleri kabus olurdu ...

Ve fiyatı da unutmayalım. Biri yazılımdır, kendiniz yazarsanız, o zaman esas olarak ücretsizdir, diğeri bileşenler, fiziksel parçalar gerektirir.

Ancak analog filtrelerin kötü olduğunu düşünmeyin, büyük DC motorlarda kötü harmonikleri kaldırmak veya akımı düzelterek 3D yazıcılar için ultra sessiz step motorlar yapmak gibi kullanımlarını aldılar . Ve tonlarca başka kullanım. - Ayrıca analog bir filtre ile çözerseniz, kimse bunun kötü bir çözüm olacağını düşünmez.

Dolaylı olarak FFT'nin neden işlemek için daha iyi bir yol olduğunu, post-processing akıllıca yanıtladığımı düşünüyorum. Sonuç olarak , yapmak çok daha ucuz olmasıdır. Ayrıca, gürültünün hangi frekansta olduğunu biliyorsanız bir çentik filtresi de uygulayabilirsiniz. Veya daha geniş, diğer bir bant filtresi.

Ve eklemek istediğim son şey ... woaw bu cevap çok uzun, üzgünüm. Ama analog bir filtre kullanırsanız ve ... hesaplamalarýnýzý karýţtýrýrsan ve sonra her ţeyin iyi ve züppe olduđunu düţünürsünüz ve bunu İsveç Kralı (Knugen) ile mülakat yapmak gibi ciddi bir olayda kullanırsınız. Ve 16kHz gürültüyü filtrelemek yerine, bir kapasitörün boyutuyla uğraştınız, 4kHz "gürültüsünü" filtreliyorsunuz. Bunun yerine dijital olarak bununla uğraşırsanız, bu sadece bazı değişkenleri değiştirmekle ilgilidir, başka bir bileşeni lehimlemeye gerek yoktur -> lehimlemeniz gerekmez. Ayrıca röportaj mahvetti.


4
Hans Majonnäs Honung Carl XVI Gustaf
boru

@pipe Tackar, det behövdes. (Teşekkürler, buna ihtiyacım vardı.)
Harry Svensson

Takip eden soru (çünkü bu cevap, kelimenin tam anlamıyla bir analog tanımına bağlı olduğu için). Klasik polinom filtreler yerine gürültüyü filtrelemek için neden FFT'yi seçmelisiniz?
slebetman

@slebetman buna cevap vermemi beklemiyor.
Harry Svensson

Bu oldukça sağlam bir cevaptı! Teşekkürler kardeşim ve cevap veren herkese teşekkürler, çok fazla yardım beklemiyordum! Bu forumda kesinlikle daha fazla soru soracağım. Tekrar teşekkürler!
Jazis

7

Ama neden gürültü frekanslarını gidermek için klasik bir elektronik filtre kullanmıyorsunuz?

Yapamayacağınızı kim söyledi? Bu, dijital sinyal işlemeden önceki günlerde böyle yapıldı. Sorun şu ki, gürültüyü filtrelemek her zaman istediğiniz sinyale (konuşma, müzik) dokunulmadan gürültüyü düşürmek arasında bir uzlaşmadır.

Kaset bantları ve DNL ve Dolby gibi diğer analog teyp kayıt sistemleri için, sadece sinyal zayıf olduğunda filtrelenir, yani gürültü daha duyulabilir. Daha sonra sinyal daha güçlü olduğunda filtre söner. Bakınız: Gürültü azaltma hakkında Wikipedia Makalesi

Konuşma, yine de mükemmel bir şekilde anlaşılırken 300 Hz ila 3 kHz gibi dar bir frekans bandıyla sınırlandırılabilir. Bu bant için basit bir analog filtre yapabilirsiniz, ancak bu, gürültünün ne kadar bastırılacağını sınırlar. Bu bandın dışındaki frekansları daha etkili bir şekilde filtrelemek için karmaşık bir analog filtre gerekir. Bu tür filtrelerin tasarımı, yapımı ve imalatı zordur.

Dijital sinyal işleme devreye giriyor. Dijital alanda birçok kutup ve sıfır içeren karmaşık filtrelerin uygulanması çok daha kolay. Ayrıca, bu kutupların ve sıfırların konumu (frekans alanında), doğru (kristal) bir saat olan DSP'nin (Dijital Sinyal İşlemcisi) saatine bağlı olduğundan, filtre, bir analog uygulamaya kıyasla çok daha doğru olacaktır. .


+1, istenen sinyalleri tutmak ve istenmeyenleri kaldırmak arasındaki uzlaşmadan bahsettiği için. Sorun, konuşma ve gürültünün aynı frekansları işgal etmesidir, böylece bir FFT filtresi "taban çizgisi" gürültüsünü kaldırabilir, yani konuşma olmadan her bir frekanstaki gürültü genliğini analiz ettikten sonra , konuşma olduğu yerde çıkarılabilir. Audacity vb. FFT gürültü filtreleri bu şekilde çalışır.
Ters Mühendis

Analog filtrelerin tasarım ve yapımını özellikle zorlaştıran şeyin ne olduğundan emin değilim. Temelde ihtiyacınız olan tek şey bir veya iki opamp ve bazı dirençler ve kapasitörler. Ve opamp'ler genellikle çift paketler halinde bulunduğundan, sadece bir çipe ihtiyacınız vardır. Genellikle sinyalde çok az aliased yüksek frekans sinyali olduğundan emin olmak için düşük geçişli filtreleme yapmak için analog filtre kullanırdım. Sen olamaz sonradan FFT ile bu kurtulmak. Öte yandan, temiz bir "kayıt" işlemek için FFT bant geçiren filtre yapmak sorun değil.
Barleyman

@Barleyman , analog filtrelerin tasarım ve yapımını özellikle zorlaştıran şeyin ne olduğundan emin değilim . 4. derece ve üstü gibi yüksek dereceli filtrelerden bahsediyordum. Birkaç opamp olduğuna katılıyorum. dirençler ve kapasitörler hemen hemen her sipariş filtresini yapabilir, ancak henüz bir tane tasarlamaya çalıştınız mı? Tamam, bir simülatörde var, ama sonra zaten yeterince doğru olmayan standart hazır kapasitörlerle karşılaşıyorsunuz . Daha yüksek siparişlerde bileşenlerin kesin değeri gittikçe daha önemli hale gelir.
Bimpelrekkie

Ayrıca örtüşme artık böyle bir sorun değil, çünkü şimdi çok yüksek örnekleme frekanslarına sahip sigma-delta ADC'lere ve DAC'lere sahibiz, bu yüzden basit bir RC yeterlidir.
Bimpelrekkie

@Bimpelrekkie Bu günlerde birkaç şey tasarladım. Güne geri döndüğünüzde, bazı makul bileşen değerleri elde etmek için biraz zaman harcayacağınız önceden hesaplanmış parametre seçeneklerine sahip bir kitap kullanacaksınız. Çok seçici olmaya çalışmıyorsanız doğruluk çok büyük bir sorun değildir. Örneğin ses kaydı yapmaya çalışıyorsanız RC gerçekten işi yapmaz. -20dB / on yıl ile Nyquist frekansında bir çeşit filtrasyon elde etmek için filtreyi 2.2kHz'e koymanız gerekir. 3. sipariş Cherbychew @ 12kHz fc daha iyi yapardı. 5. sipariş "yeterince iyi"
-46dB

5

FFT'ye neden ihtiyaç duyduğumuzu anlamanın ilk adımı, dijital filtrelemenin nasıl çalıştığını anlamaktır.

Yani temel olarak, bir dizi bellek elemanı, bir giriş ve bir çıkış ile bir kaydırma yazmacı gibi bir yapınız var. Girişe bir örnek değer girer, kayıttan geçer ve çıkışa geçer. Kayıttaki her aşamada, filtre katsayısı adı verilen bir sayı ile çarpılır.

Hızlı çarpma işlemi yapan hızlı bir kaydınız varsa ve yavaş yavaş tek tek gelen örnekleriniz olduğunda bu fikir sorunsuz çalışır.

Gerçek hayatta, bunun yerine, büyük olasılıkla bir dizi örnekten oluşan bir çerçeve elde edersiniz. Bunu filtrelemek istediğinizde, örnekleri filtre katsayılarıyla birleştirirsiniz. Bu, önceki yaklaşımı yapmakla aynıdır, ancak sadece biraz farklı görünüyor.

Şimdi FFT kısmı geliyor. Evrişimin sayısal karmaşıklıkta çok sayıda örnekle çok hızlı büyüdüğü ortaya çıkıyor. Öte yandan, FFT başlangıçta sayısal olarak karmaşıktır, ancak ihtiyaç duyulan işlem sayısı, katsayılara kıyasla filtre katsayılarının artmasıyla çok daha yavaş büyür.

Yukarıdaki anlama gelir, belirli sayıda örneğin üzerinde, bir sinyali bir FFT kullanarak frekans alanına dönüştürmek, frekans alanındaki sinyali filtrelemek ve daha sonra IFFT kullanarak geri dönüştürmek çok daha hızlı olacaktır. Kullandığımız hile, evrişimin özelliklerinden biridir, yani zaman alanındaki evrişimin, bazı durumlarda, frekans evresinde çarpma olarak modellenebilmesidir.

Özetlemek gerekirse, sahip olduğunuz filtre katsayılarının sayısı yeterince büyükse, FFT daha hızlıdır. "Büyük" yüz kadar küçük olabilir.


3
"Klasik elektronik filtre" ile, evrişim değil analog bir filtre demekti.
jalalipop

1
@jalalipop olabilir, ama açıkça FFT bölümünü açıklamak istedim. O zaman, analog yerine neden dijital filtrelere sahip olmak istediğimizi açıklayan bir cevabımız var.
AndrejaKo

2

FFT tabanlı yöntemler (yine de pencereleme ve örtüşme-ekleme veya örtüşme-kaydırma modifikasyonları ile çalışmanız gerekir), temel avantaj olarak tasarımın frekans alanında sağlam olması ve bir Wiener filtresi veya spektral çıkarma veya bir dizi sinyal istatistiklerine ve bir modele dayanan diğer sistemler gerçekten temel olarak frekans alanında çalışır.

Buna karşılık, yankı iptali ve çeşitli varyantlar, bir gürültü modeline değil , gürültüyle son derece ilişkili kusurlu bir kayda dayanır . Bunlar, sinyalden bir gürültü tahmini çıkartmak ve kalan sinyalin gürültü kanalıyla korelasyonunu minimum düzeyde tutmak için filtreleri güncellemek için değişen filtreler (genellikle FIR) kullanılarak yapılır. Bu teknikler için, FFT o kadar yararlı değildir (sonuçta ortaya çıkan sinyalin ve filtre güncellemelerinde önemli gecikmelere izin verildiğinde, performans nedenlerinden dolayı gecikmeli bir blackbox FIR'da bileşen olarak kullanılabilirler, ancak bunlar için gerçekten yararlı değildirler. frekans bölgesi gösterme yeteneği).


katı frekans alanında . Eğer tonlar ve notalar toprak tonu ve tonlama özelliklerine sahip olduğu için olmasaydı herhangi bir avantaj olmazdı.
mathreadler

2

Analog filtreler tasarlamak için yeterince kolaydır, ancak sınırlama, verilen frekansların bant durdurmalı filtrelemesini sağlamak için fiziksel filtre öğeleri eklemeye devam etmenizdir. Çentikleri hareket ettirmek istiyorsanız bileşen değerlerini ayarlamanız gerekir. Tek bir opamp bir bant durdurma çentiği yapabilir, böylece istediğiniz her çentik için başka bir amplifikatör eklemeniz gerekir. Daha seçici bir çentik için her çentik için iki amplifikatöre ihtiyacınız olacaktır.

Pratik şartlarda, en iyi şekilde, tek bir opamp veya iki tane gerektiren beşinci bir düşük geçiş filtresi ile yapabileceğiniz 3. dereceden bir alçak geçiren filtre tarafından servis edilirsiniz. Nyquist frekansının (1/2 örnekleme frekansı) üzerindeki frekansları bir miktar marjla azaltmak için düşük geçiş filtrelerini kullanın; işlem sonrası için yüksek kaliteli bir dijital örneğiniz olacaktır. Böyle temiz bir kayıtla, gerektiğinde yüksek geçişli, bant geçiren ve bant durdurucu filtreler oluşturmak için FFT filtreleri uygulayabilirsiniz.


1

Bir "klasik elektronik filtrenin" yaptığı doğrusal zamanla değişmeyen filtreleme, Fourier alanında sadece "aptal" bir çarpmadır. Ancak bir FFT'de bulduğunuz bilgiler size sadece bir filtrenin yanıtından daha fazla ayrıntı söyler, bu da bu bileşenlerin sadece doğrusal bir kombinasyonudur. Bu bilgileri kullanarak veri işlemeyi yönlendirebilir ve verilere uyarlanmasını sağlayabilirsiniz. Gürültü, net vokal ve müzikal tonların yapmadığı bazı özelliklere sahiptir, örneğin ses tonları arasındaki correllation ses veya müzikteki gürültü için neredeyse aynı değildir.

Dolayısıyla, frekans bileşenleri arasındaki korelasyonları belirleyebilirsek - yani bir "toprak tonu" bulmak filtrelemeyi yönlendirebilir ve verilere daha fazla adapte edebiliriz.

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.