Czy możemy zastosować filtr antyaliasingu cyfrowego?
12
Pracuję na płycie, która nie ma filtra antyializującego na wejściu ADC. Mam opcję zaimplementowania własnego filtra za pomocą obwodu RC + Opamp. Ale czy można również wdrożyć filtr antyaliasingu po próbkowaniu przez ADC i przetworzeniu w domenie cyfrowej: cyfrowy filtr antyaliasingu?
Aby wesprzeć odpowiedź Matta i podać kilka dodatkowych szczegółów:
Większość współczesnych ADC wykonuje większość trudnych zadań antyaliasingu w domenie cyfrowej. Powodem jest to, że filtry cyfrowe zwykle wytwarzają mniej produktów ubocznych przy znacznie niższych kosztach. Rzeczywisty łańcuch to:
Wejście analogowe.
Analogowy filtr antyaliasingowy.
Nadpróbkowanie (np. Przy 8x).
Cyfrowy filtr antyaliasingu.
Dziesiętny (redukcja do 1x).
Wyjście cyfrowe.
Poniżej zilustruj, rozważ następujące kwestie:
Próbkowanie dźwięku odbywa się przy częstotliwości 44100 Hz.
Zapewnia to częstotliwość Nyquista wynoszącą 22050 Hz.
Wszelkie częstotliwości powyżej 24100 Hz zostaną przywrócone do zakresu słyszalnego (poniżej 20 kHz).
Od 20000 Hz do 24100 to około ćwierć oktawy.
Nawet przy stromym filtrze 80dB / 8ve redukujesz częstotliwości aliasingu tylko o 20dB.
Ale z 8-krotnym nadpróbkowaniem:
Próbkowanie dźwięku odbywa się w częstotliwości 352,8 kHz (44,1 kHz x 8).
Nyquist ma 176,4 kHz.
Tylko częstotliwości powyżej 332,8 kHz będą odzwierciedlać słyszalny zakres.
To około 4 oktawy.
Możesz więc zastosować filtr analogowy 24dB / 8ve, aby zmniejszyć częstotliwości aliasingu o 96dB.
Potem nadpróbka.
Następnie zastosuj filtr cyfrowy fazy liniowej między 20 kHz a 24,1 kHz
To, co mówisz, jest z pewnością prawdziwe w przypadku aplikacji audio (w których gotowe do użycia zintegrowane układy kodeków już dawno zastąpiły ADC / DAC) - ale istnieje wiele dziedzin inżynierii, w których akwizycja jest nadal wykonywana przez waniliowe przetworniki ADC SAR (jako samodzielne chipy lub wbudowane w mikrokontrolery) - i dzięki nim musisz wykonać ciężką pracę!
fenenety
To świetny komentarz. Uważam jednak, że odpowiedź nadal jest aktualna - jeśli możesz sobie na to pozwolić, cyfrowe filtry antyaliasingowe przynoszą wiele korzyści.
Izhaki
chciałem tylko wiedzieć, czy to sposób, aby upewnić się, że filtry analogowe będą miały małą geometrię i wagę?
gpuguy
1
Jeśli dobrze rozumiem pytanie, to tak - użycie filtru cyfrowego będzie oznaczało znacznie prostszy analogowy instalator (szczególnie jeśli liczy się jakość).
Izhaki
Czy masz na myśli „zdziesiątkowanie” od ostatniego do ostatniego kroku w przepływie pracy nadpróbkowania?
Nick T
15
Nie, to nie ma sensu. Powiedz, że częstotliwość próbkowania ADC wynosi 1 kHz. Fala sinusoidalna o częstotliwości 100 Hz i fala sinusoidalna o częstotliwości 900 Hz da dokładnie taką samą sekwencję próbek cyfrowych po wprowadzeniu do ADC - ale chcesz przejść do pierwszej i osłabić później. Jak oczekujesz, że Twój filtr cyfrowy będzie generował różne wyjścia, gdy będzie zasilany tym samym wejściem?
Jedyne, co mogłoby zadziałać, to próbkowanie sygnału wejściowego tak szybko, jak pozwala na to ADC, a następnie próbkowanie go w domenie cyfrowej do docelowej częstotliwości próbkowania - ale jeśli nie masz do stracenia cykli procesora, lepiej użyj analogowego filtruj w górę.
„Fala sinusoidalna 100 Hz i fala sinusoidalna 900 Hz da dokładnie taką samą sekwencję próbek cyfrowych”. Zasadniczo nie jest to prawda (chociaż rozumiem, co masz na myśli).
niaren
3
Ok, to wymaga szczególnego warunku dla ich faz do działania, ale nie o to chodzi! Chodzi o to, że twoje cyfrowe próbki mogą wyglądać, jakby pochodziły z sinusoidy o częstotliwości 100 Hz, podczas gdy ta sama sekwencja danych mogłaby zostać wygenerowana przez falę sinusoidalną o częstotliwości 900 Hz.
fenenety
czy możesz powiedzieć, co to za warunek (aby dokładnie utrzymać)?
niaren
1
π
w twojej odpowiedzi jest błąd. 100 Hz i 900 Hz nie mają tej samej próbkowanej mocy wyjściowej. W rzeczywistości jest to [100 +/- k * 1000], który da te same próbki. Zatem -900, 1100, 2100 itd. To częstotliwości aliasowane odpowiadające 100 Hz. W rzeczywistości 900 Hz będzie ujemne dla fali o wielkości 100 Hz.
15
Zgadzam się z odpowiedzią pikenet, ale chciałbym dodać, że dość powszechną praktyką jest stosowanie prostego niedrogiego analogowego filtra antyaliasingowego niskiego rzędu i wykonywanie pozostałej części filtrowania antyaliasingu w domenie cyfrowej. Oznacza to oczywiście, że nie przetwarzasz z maksymalną częstotliwością próbkowania, ale że próbkujesz w dół po cyfrowym filtrze antyaliasingu. Zreasumowanie:
Filtr analogowy może być bardzo prosty, jeśli możesz obniżyć próbkę sygnału. W takim przypadku możesz zrobić więcej usuwania aliasingu w domenie cyfrowej (przed próbkowaniem w dół).
Nie, to nie ma sensu. Powiedz, że częstotliwość próbkowania ADC wynosi 1 kHz. Fala sinusoidalna o częstotliwości 100 Hz i fala sinusoidalna o częstotliwości 900 Hz da dokładnie taką samą sekwencję próbek cyfrowych po wprowadzeniu do ADC - ale chcesz przejść do pierwszej i osłabić później. Jak oczekujesz, że Twój filtr cyfrowy będzie generował różne wyjścia, gdy będzie zasilany tym samym wejściem?
Jedyne, co mogłoby zadziałać, to próbkowanie sygnału wejściowego tak szybko, jak pozwala na to ADC, a następnie próbkowanie go w domenie cyfrowej do docelowej częstotliwości próbkowania - ale jeśli nie masz do stracenia cykli procesora, lepiej użyj analogowego filtruj w górę.
źródło
Zgadzam się z odpowiedzią pikenet, ale chciałbym dodać, że dość powszechną praktyką jest stosowanie prostego niedrogiego analogowego filtra antyaliasingowego niskiego rzędu i wykonywanie pozostałej części filtrowania antyaliasingu w domenie cyfrowej. Oznacza to oczywiście, że nie przetwarzasz z maksymalną częstotliwością próbkowania, ale że próbkujesz w dół po cyfrowym filtrze antyaliasingu. Zreasumowanie:
Oczywiście potrzebujesz analogowego filtra antyaliasingowego.
Filtr analogowy może być bardzo prosty, jeśli możesz obniżyć próbkę sygnału. W takim przypadku możesz zrobić więcej usuwania aliasingu w domenie cyfrowej (przed próbkowaniem w dół).
źródło