Dlaczego warto korzystać z szybkiej transformaty Fouriera do redukcji szumów zamiast klasycznego filtra elektronicznego?

17

Chciałbym wiedzieć, jak usunąć hałas otoczenia z nagrania mowy.

Przeprowadziłem badania i zauważyłem, że większość proponowanych metod wykorzystuje szybką transformację Fouriera. Ale dlaczego nie można użyć klasycznego filtra elektronicznego do usunięcia częstotliwości szumów? Po co zawracać sobie głowę robieniem FFT?

Jazis
źródło
Ponieważ fft daje lepszą jakość wydruku?
Solar Mike
4
Porównaj cenę systemu DSP 5GS / s z ceną indutorów i czapek ...
PlasmaHH
1
Może możesz zrobić bardziej złożone filtrowanie za pomocą fft. „klasyczne filtry elektroniczne” po prostu usuwają wszystkie częstotliwości z określonego zakresu. Oto odznaka studencka, prezent ode mnie dla ciebie.
Andrew Pikul
1
Mam 2 problemy z twoim pytaniem: (1) Co rozumiesz przez „klasyczny filtr elektronowy”? (2) Fakt, że coś jest zrobione w jedną stronę (FFT) NIE oznacza, że ​​NIE MOŻNA tego zrobić w inny sposób (filtr); mogą wystąpić pewne wady, aby zrobić to w inny sposób. Zakładasz jednak, że nie można zrobić z klasycznym filtrem elektronicznym (cokolwiek przez to rozumiesz), co prawdopodobnie jest błędne.
Twar
Jaki jest format twojego nagrania mowy (analogowy vs. cyfrowy)? Czy opóźnienie jest problemem (na żywo czy po fakcie)? Jak długo trwa nagranie (utwór vs. dni nagrania)?
copper.hat

Odpowiedzi:

25

Chciałbym wiedzieć, jak usunąć hałas otoczenia z nagrania mowy.

Teraz jest przechowywany cyfrowo, prawda? więc planujesz umieścić mikrofon obok głośnika za filtrem analogowym, aby go ponownie nagrać?

Dość bałaganu, będę poważny.


Aby filtr osłabiał się bardziej w mniejszym zakresie częstotliwości, czyli zwiększając pionową krzywą odpowiedzi częstotliwościowej, wystarczy zwiększyć kolejność filtra.

Jest to dość łatwe do zrobienia w Matlabie. Jest to również wykonalne przetwarzanie końcowe. Chodzi również o powtarzalność, jeśli zastosujesz dzisiaj filtr w słoneczny dzień, oczekujesz, że zadziała identycznie jak jutro, gdy pada deszcz. Oczekujesz, że zadziała dokładnie tak samo, prawda?

W obwodach analogowych masz wszystkie te „rezystor 5%”, „kondensator 1%” i wszystkie inne rzeczy. Więc jeśli chcesz zrobić coś dokładnego , na pewno będziesz musiał później przyciąć obwód, aby idealnie pasował do pożądanego filtra. Jeśli chcesz zwiększyć kolejność filtra ... to niestety ... to sprawi, że filtr będzie znacznie większy fizycznie. Zamiast zajmować rozmiar karty kredytowej, zajmie ona rozmiar, nie wiem, zależy od kolejności filtrów i tego, z czym jesteś w porządku.

Jeśli chodzi o powtarzalność, robienie czegoś dzisiaj… ciepło… jutro… zimniej… rezystancje będą się nieznacznie zmieniać, zmieni się pasmo przenoszenia, kilka Hz tam, trochę tam, im więcej elementów masz w swoich obwodach , istnieje większe prawdopodobieństwo, że komponenty zmienią swoje wartości. A potem masz wilgoć, utleniającą ...

A oto pierwsza kwestia, którą powinienem powiedzieć najpierw, nie można tak naprawdę post-processować, chyba że masz kasety magnetofonowe. Nie jestem w 100% pewien, jakiego analogowego nośnika muzycznego używa się do łatwego nagrywania / usuwania. Płyty LP byłyby koszmarem ...

I nie zapominajmy o cenie. Jednym z nich jest oprogramowanie, jeśli napiszesz je samodzielnie, to zasadniczo jest za darmo, drugie wymaga komponentów, części fizycznych.

Ale nie sądzę, że filtry analogowe są złe, mają swoje zastosowania, takie jak usuwanie nieprzyjemnych harmonicznych w dużych silnikach prądu stałego lub tworzenie ultra cichych silników krokowych do drukarek 3D poprzez wygładzenie prądu. I mnóstwo innych zastosowań. - Również jeśli rozwiązałbyś go za pomocą filtra analogowego, nikt nie pomyślałby, że byłoby to złe rozwiązanie.

Wydaje mi się, że pośrednio odpowiadam, dlaczego FFT jest lepszym sposobem, aby to zrobić, jeśli chodzi o przetwarzanie końcowe. Najważniejsze jest to, że jest to o wiele tańsze. Możesz także zastosować filtr wycinający, jeśli wiesz, na jakiej częstotliwości występuje hałas. Lub szerszy, znany również jako filtr passtopowy.

I ostatnia rzecz, którą chcę dodać ... łał, ta odpowiedź jest tak długa, przepraszam. Ale jeśli użyjesz filtra analogowego i ... zepsujesz swoje obliczenia, a potem pomyślisz, że wszystko jest w porządku i eleganckie i użyjesz go w poważnym wydarzeniu, takim jak wywiad z królem Szwecji (Knugen). I pomyliłeś się z wielkością kondensatora, zamiast filtrować szum 16 kHz, odfiltrowujesz „szum” 4 kHz. Jeśli zamiast tego poradzisz sobie z tym cyfrowo, to tylko kwestia zmiany niektórych zmiennych, nie musisz rozlutowywać -> lutować inny komponent. Również wywiad jest zrujnowany.

Harry Svensson
źródło
4
Hans Majonnäs Honung Carl XVI Gustaf
fajka
@pipe Tackar, det behövdes. (Dziękuję, potrzebowałem tego.)
Harry Svensson
Pytanie uzupełniające (ponieważ odpowiedź ta w zbyt dużym stopniu zależy od dosłownej definicji analogu). Dlaczego warto wybrać FFT do filtrowania szumów zamiast klasycznych filtrów wielomianowych?
slebetman
@leblebman nie oczekuję, że odpowiem na to pytanie.
Harry Svensson
To była dość solidna odpowiedź! Dzięki, stary i wszystkim, którzy odpowiedzieli, nie spodziewałem się tak dużej pomocy! Z pewnością zadam więcej pytań na tym forum. Jeszcze raz dziękuję!
Jazis
7

Ale dlaczego nie można użyć klasycznego filtra elektronicznego do usunięcia częstotliwości szumów?

Kto powiedział, że nie możesz? Tak właśnie zrobiono w dniach poprzedzających cyfrowe przetwarzanie sygnału. Problem polega na tym, że filtrowanie szumów jest zawsze kompromisem między utrzymywaniem pożądanego sygnału (mowy, muzyki) nietkniętym przy jednoczesnym obniżaniu hałasu.

W przypadku kaset magnetofonowych i innych analogowych systemów nagrywania taśm zastosowano systemy takie jak DNL i Dolby, które filtrują tylko wtedy, gdy sygnał jest słaby, co oznacza, że ​​szum jest bardziej słyszalny. Następnie, gdy sygnał jest silniejszy, filtr zanika. Widzieć: artykuł w Wikipedii na temat redukcji hałasu

Mowa może być ograniczona do wąskiego pasma częstotliwości, takiego jak 300 Hz do 3 kHz, a jednocześnie jest doskonale zrozumiała. Możesz stworzyć prosty filtr analogowy dla tego pasma, ale to ograniczyłoby tłumienie hałasu. Aby skuteczniej odfiltrować częstotliwości poza tym pasmem, potrzebny byłby złożony filtr analogowy. Takie filtry są trudne do zaprojektowania, zbudowania i wyprodukowania.

W tym miejscu pojawia się cyfrowe przetwarzanie sygnału. W domenie cyfrowej znacznie łatwiej jest zaimplementować złożone filtry z wieloma biegunami i zerami. Ponieważ lokalizacja (w dziedzinie częstotliwości) tych biegunów i zer jest powiązana z zegarem DSP (Digital Signal Processor), który jest dokładnym zegarem (krystalicznym), filtr będzie znacznie dokładniejszy w porównaniu do implementacji analogowej .

Bimpelrekkie
źródło
+1 za wzmiankę o kompromisie między utrzymywaniem pożądanych sygnałów a usuwaniem niechcianych. Problem polega na tym, że mowa i hałas zajmują te same częstotliwości, więc filtr FFT może usunąć szum „bazowy”, tj. Po przeanalizowaniu amplitudy hałasu dla każdej częstotliwości bez mowy , którą można usunąć tam, gdzie jest mowa. Tak działają filtry szumów FFT w Audacity itp. Itd.
Reversed Engineer
Nie jestem pewien, co sprawia, że ​​filtry analogowe są szczególnie trudne do zaprojektowania i zbudowania. Wszystko, czego potrzebujesz, to jeden lub dwa opampy oraz niektóre oporniki i kondensatory. A ponieważ opampy są zwykle dostarczane w podwójnych pakietach, potrzebujesz tylko jednego układu. Zwykle używałbym filtra analogowego do filtrowania dolnoprzepustowego, aby upewnić się, że w sygnale jest mało aliasu sygnału wysokiej częstotliwości. Państwo nie może pozbyć się, że z FFT później. Z drugiej strony nie ma problemu z filtrowaniem pasmowym FFT, gdy masz czyste „nagranie” do przetworzenia.
Barleyman
@Barleyman 'nie jestem pewien, co sprawia, że ​​filtry analogowe są szczególnie trudne do zaprojektowania i zbudowania. Odniosłem się do filtrów wysokiego rzędu, takich jak 4. rzędu i wyższych. Zgadzam się, że kilka opamps. rezystory i kondensatory mogą wykonać prawie każdy filtr zamówienia, ale czy próbowałeś go już zaprojektować? Mam OK, w symulatorze, ale wtedy już natrafisz na standardowe gotowe kondensatory, które nie są wystarczająco dokładne . Przy wyższych zamówieniach dokładna wartość komponentów staje się coraz ważniejsza.
Bimpelrekkie
Również aliasing nie jest już takim problemem, ponieważ mamy teraz przetworniki ADC sigma-delta i przetworniki DAC o bardzo wysokich częstotliwościach próbkowania, więc wystarczy tylko prosty RC.
Bimpelrekkie
@ Bimpelrekkie Zaprojektowałem kilka, nic do tego w dzisiejszych czasach .. Wcześniej użyłbyś książki z pewnymi wstępnie obliczonymi wyborami parametrów, z którymi spędziłbyś trochę czasu, aby uzyskać rozsądne wartości składników. Dokładność nie jest wielkim problemem, jeśli nie próbujesz być zbyt wybiórczy. RC tak naprawdę nie wykonuje zadania, jeśli próbujesz np. Nagrać dźwięk. Przy -20dB / dekadę musiałbyś ustawić filtr na 2,2 kHz, aby uzyskać pewnego rodzaju filtrację na częstotliwości Nyquista. Cherbychew 3. rzędu byłby lepszy przy 12 kHz FC. Piąte zamówienie doprowadziłoby do -46dB, co jest „wystarczająco dobre”
Barleyman
5

Pierwszym krokiem do zrozumienia, dlaczego potrzebujemy FFT, jest zrozumienie, jak działa filtrowanie cyfrowe.

Zasadniczo masz strukturę, taką jak rejestr przesuwny, z wieloma elementami pamięci, wejściem i wyjściem. Przykładowa wartość trafia na wejście, zostaje przesunięta przez rejestr i przechodzi na wyjście. Na każdym etapie rejestru jest on mnożony przez liczbę zwaną współczynnikiem filtru.

Ten pomysł działa OK, gdy masz szybki rejestr wykonujący szybkie multiplikacje i próbki przychodzą powoli jedna po drugiej.

W rzeczywistości zamiast tego najprawdopodobniej otrzymasz ramkę składającą się z wielu próbek. Kiedy chcesz to przefiltrować, splot próbki ze współczynnikami filtra. To tak samo, jak w poprzednim podejściu, ale wygląda nieco inaczej.

Teraz pojawia się część FFT. Okazuje się, że splot rośnie w złożoności numerycznej bardzo szybko wraz z liczbą próbek. Z drugiej strony FFT jest na początku skomplikowane numerycznie, ale liczba potrzebnych operacji rośnie znacznie wolniej wraz ze wzrostem współczynników filtra w porównaniu do splotu.

Oznacza to, że powyżej pewnej liczby próbek konwersja sygnału do dziedziny częstotliwości za pomocą FFT będzie znacznie szybsza, filtrowanie sygnału w dziedzinie częstotliwości, a następnie konwersja z powrotem za pomocą IFFT. Trik, którego używamy, jest jedną z właściwości splotu, a mianowicie, że splot w dziedzinie czasu może, w niektórych okolicznościach, być modelowany jako zwielokrotnienie w dziedzinie częstotliwości.

Podsumowując, jeśli liczba posiadanych współczynników filtra jest wystarczająco duża, FFT jest szybszy. „Duży” może być tak mały jak sto.

AndrejaKo
źródło
3
Myślę, że przez „klasyczny filtr elektroniczny” miał na myśli filtr analogowy, a nie splot.
jalalipop
1
@jalalipop Może być, ale wyraźnie chciałem wyjaśnić część FFT. W tym czasie mieliśmy już odpowiedź wyjaśniającą, dlaczego chcielibyśmy mieć filtry cyfrowe zamiast analogowych.
AndrejaKo
2

Metody oparte na FFT (nadal będziesz musiał pracować z okienkowaniem i modyfikacjami nakładania-dodawania lub nakładania-przesunięcia) mają tę główną zaletę, że projekt jest solidnie w dziedzinie częstotliwości, a filtr Wienera lub odejmowanie widmowe lub szereg inne systemy opierające się na statystykach sygnałów i modelu naprawdę działają zasadniczo w dziedzinie częstotliwości.

Natomiast eliminacja echa i różne warianty nie polegają na modelu szumu, ale na niedoskonałym nagraniu silnie skorelowanym z hałasem. Dokonuje się tego przy użyciu różnych filtrów (zwykle FIR), aby odjąć oszacowanie szumu od sygnału i zaktualizować filtry w celu utrzymania minimalnej korelacji pozostałego sygnału z kanałem szumu. W przypadku tych technik FFT nie jest aż tak użyteczne (gdy dopuszczalne są znaczne opóźnienia wynikowego sygnału i aktualizacji filtrów, można je stosować jako element w FIR blackbox z opóźnieniem ze względu na wydajność, ale nie są tak naprawdę przydatne możliwość reprezentacji w dziedzinie częstotliwości).


źródło
solidnie w dziedzinie częstotliwości . Nie byłoby żadnej szczególnej korzyści w tym przypadku, gdyby nie było, ponieważ tony i nuty mają właściwości tonu podstawowego i nadtonu.
mathreadler
2

Filtry analogowe są dość łatwe do zaprojektowania, ale ograniczeniem jest to, że musisz ciągle dodawać fizyczne elementy filtrujące, aby osiągnąć filtrowanie pasmowe dla określonych częstotliwości. I musisz dostosować wartości składników, jeśli chcesz przesuwać wycięcia. Pojedynczy opamp może wykonać jedno wycięcie pasma, więc musisz dodać kolejny wzmacniacz dla każdego wycięcia, którego potrzebujesz. Aby uzyskać bardziej selektywne wycięcie, potrzebujesz dwóch wzmacniaczy na wycięcie.

Z praktycznego punktu widzenia najlepiej byłoby, gdyby najlepiej zastosować filtr dolnoprzepustowy trzeciego rzędu, który można zrobić z pojedynczym wzmacniaczem optycznym lub filtr dolnoprzepustowy piątego rzędu, który wymaga dwóch. Użyj filtrów dolnoprzepustowych, aby tłumić częstotliwości powyżej częstotliwości Nyquista (1/2 częstotliwości próbkowania) z pewnym marginesem, a otrzymasz wysokiej jakości próbkę cyfrową do przetworzenia. Dzięki takiemu czystemu nagraniu możesz następnie zastosować filtry FFT, aby w razie potrzeby utworzyć filtry górnoprzepustowe, pasmowoprzepustowe i pasmowoprzepustowe.

Barleyman
źródło
1

Filtrowanie niezmiennicze w czasie liniowym, które wykonuje „klasyczny filtr elektroniczny”, jest po prostu „głupim” zwielokrotnieniem w dziedzinie Fouriera. Ale informacje, które znajdziesz w FFT, zawierają więcej szczegółów niż tylko odpowiedź jednego filtra, który jest po prostu liniową kombinacją tych składników. Korzystając z tych informacji, możesz sterować przetwarzaniem danych i dostosować je do danych. Hałas ma pewne cechy, których nie mają wyraźne wokale i tony muzyczne, na przykład korelacja między podtekstami nie jest prawie taka sama dla szumu jak dla głosu lub muzyki.

Jeśli więc potrafimy zidentyfikować korelacje między składnikami częstotliwości - tj. Znajdując „ton ziemi”, możemy w jakiś sposób sterować filtrowaniem i dostosować go do danych.

matematyk
źródło