Filtry o bardzo niskiej częstotliwości


13

Mam kartę akwizycji danych (A / D + cyfrowy procesor sygnałowy) i chcę sprawdzić, czy cyfrowy filtr górnoprzepustowy (zaimplementowany w DSP) przy wyjątkowo niskiej częstotliwości odcięcia (0,05 Hz) faktycznie działa.

Gdyby to była częstotliwość, którą mógłbym wygenerować za pomocą generatora sygnału, łatwo byłoby to sprawdzić, ale 0,05 Hz jest zbyt niska i nie mogę jej wygenerować. Jak inżynierowie sprawdzają tego rodzaju filtry?


3
Moje pytanie jest pod wrażeniem tego pytania i odpowiedzi! Nigdy nie zastanawiałem się nad odfiltrowaniem tak niskiej częstotliwości :)
bitsmack

6
@bitsmack Widziałem górnoprzepustowy 50 miliHz w instrumencie elektrogastrograficznym (EGG).
Nick Alexeev

Niektóre generatory sygnałów mają zarówno przycisk MHz, jak i przycisk MHz.
AndrejaKo

Czy możesz podać sygnał testowy w postaci cyfrowej do DSP? Generowanie dowolnej częstotliwości w formie cyfrowej jest łatwe. --- Wadą jest to, że nie przetestujesz analogowej i A / D części płytki.
pabouk

1
@bitsmack Oznacza to, że musisz poczekać długo, zanim wszystko się uspokoi, a „zamiatanie” musi być bardzo wolne (godziny i godziny), ale dobrze jest przetestować rzeczywistą wydajność w czasie rzeczywistym przynajmniej raz, zanim zaufasz, że zadziała zwolnił (po przetestowaniu przyspieszył). Rzeczy takie jak aliasing mogą odwrócić głowę.
Spehro Pefhany

Odpowiedzi:


18

Myślę, że zależy to od kilku czynników, między innymi kolejności filtra, ale masz kilka możliwości:

  1. Znajdź generator sygnału, który się tam dostanie. Są one obecnie dość niedrogie.
  2. Zaufaj matematyce. Jest to filtr cyfrowy i jako taki skaluje się z częstotliwością próbkowania. Jeśli możesz zwiększyć częstotliwość próbkowania o dwa rzędy wielkości, uzyskasz filtr z odcięciem 5 Hz, znacznie łatwiejszym do zmierzenia. Podobnie, jeśli czynnikiem ograniczającym staje się ADC, możesz go odizolować od filtra i wprowadzić sztuczne dane cyfrowe.
  3. Użyj odpowiedzi krokowej (wystarczyłoby wiele sygnałów szerokopasmowych). Oblicz odpowiedź krokową żądanego filtra i porównaj z wynikiem. Lub, alternatywnie, oblicz odpowiedź częstotliwościową za pomocą FFT odpowiedzi skokowej.

Używamy wariantu alternatywnego 3 w niektórych naszych testowych konfiguracjach, nie dlatego, że nie jesteśmy w stanie wygenerować wymaganych wolnych przebiegów, ale dlatego, że odcięcie <0,01 Hz naszych filtrów analogowych zajęłoby zbyt dużo czasu, aby je scharakteryzować, gdybyśmy spróbowali nawet szorstkiego przemiatania częstotliwości . Skróciło to czas testowania z ponad godziny do zaledwie kilku minut.


10

Chciałbym użyć mojego generatora funkcji Agilent, który spada do 1 Hz, dość nietypowego (i przestarzałego) modelu 33522A. Myślę, że mój Rigol DG4102 ma również rozdzielczość 1 Hz i kosztuje mniej.μμ

Niestety, nie można uzyskać tak niskiego poziomu przy tanich modułach DDS (np. AD9850), ponieważ słowo strojenia ma tylko 32 bity, a zegar jest zwykle 125 MHz, więc to rozdzielczość 0,03 Hz. Przypuszczam, że dałoby to kilka punktów danych (0,0291 / 0,0582 / 0,0873 Hz)

Możesz również nakarmić go krokiem i spojrzeć na odpowiedź w dziedzinie czasu.


2
Jeśli twój moduł DDS może przyjmować zewnętrzny sygnał zegara, po prostu podkręć go! DDS to naprawdę bardzo fantazyjny podział przez N w sercu ....
ThreePhaseEel 30.01.2019

1
@ThreePhaseEel Możesz to zrobić, ale generalnie nie będzie to bardzo przyjemne wyjście, chyba że przeprojektujesz wyjściowy filtr dolnoprzepustowy, który jest zwykle czymś w rodzaju 5-biegunowego filtra eliptycznego LC. W przypadku OP, ponieważ maksymalna częstotliwość jest tak niska, prawdopodobnie mógłby po prostu dodać do wyjścia filtr dolnoprzepustowy RC i uzyskać ładny sygnał.
Spehro Pefhany 30.01.2019

Zgodził się, że potrzebujesz filtra końcowego - AD9850 mają minimalny zegar 1 MHz btw, co jest nieco ograniczające, ale wciąż wystarczające, aby uzyskać wyniki, których chce OP
ThreePhaseEel 30.01.19

@ ThreePhaseEel Pewnie, nawet 8 lub 10 MHz dałoby rozdzielczość 0,002 lub 0,0024 Hz.
Spehro Pefhany

6

Opcja 1: Test na komputerze.

Jeśli Twój kod DSP jest napisany w C, możesz skonfigurować wiązkę testową w GCC lub Visual Studio. Znasz częstotliwość próbkowania kodu DSP, więc skorzystaj z programu Excel, aby wygenerować testowy plik CSV, a uprząż testowa zrzuci plik wyjściowy pliku CSV, który możesz sprawdzić.

Opcja 2: Test na DSP z interfejsem PC.

Jeśli Twój kod DSP musi działać na DSP, nadal możesz go użyć do przetestowania komputera. Skonfiguruj wiązkę testową na DSP, która odbiera wartość z komputera, uruchamia jeden krok filtra DSP, a następnie zgłasza wyjście filtra dla tego kroku z powrotem do komputera (przy użyciu USB, RS-232 lub TCP / IP w zależności od jak łączysz się z DSP). Będziesz także potrzebował wiązki testowej po stronie komputera, aby wysyłać i odbierać te wartości. Ponownie możesz skonfigurować plik wejściowy testowy CSV na komputerze, przekazywać kolejne próbki do kodu filtru i zrzucić dane wyjściowe pliku CSV, które możesz sprawdzić.

Dla obu...

Jeśli filtrujesz przy częstotliwości 0,05 Hz, istnieje prawdopodobieństwo, że częstotliwość próbkowania również będzie dość niska. Użycie uprzęży testowej pozwoli Ci przeprowadzić te testy szybciej niż w czasie rzeczywistym, co zwiększy wydajność procesu testowania.


5

Jeśli masz również przetwornik cyfrowo-analogowy w systemie DSP, możesz wygenerować ten wyjątkowo niski sygnał częstotliwości w oprogramowaniu i przesłać go z powrotem do wejścia A / D. Alternatywnie możesz użyć karty D / A lub adaptera USB do wygenerowania sygnału. Jednym z przykładów takich urządzeń byłby LabJack, ale istnieje wiele innych o różnych cenach / możliwościach. Inną możliwością byłoby użycie taniego mikrokontrolera + przetwornika cyfrowo-analogowego, takiego jak Raspberry Pi lub Arduino


2

Gdyby to była częstotliwość, którą mógłbym wygenerować za pomocą generatora sygnału, łatwo byłoby to sprawdzić, ale 0,05 Hz jest zbyt niska i nie mogę jej wygenerować. Jak inżynierowie sprawdzają tego rodzaju filtry?

Istnieją trzy dobre sposoby sprawdzania odpowiedzi filtra, jeden to funkcja delta diraca (funkcja impulsu lub krótki impuls), drugi to wejście krokowe, a ostatni to przemiatanie częstotliwości.

Dzięki instrumentom, z których korzystam, eksperymenty mogą trwać od tygodni do miesięcy, niektóre z naszych układów fizycznych reagują w zakresie dni. Najlepszym sposobem sprawdzenia tych systemów \ filtrów jest użycie danych wejściowych kroku, a następnie zmierzenie stałej czasowej. Jeśli pamiętasz, stała czasowa dla napięcia wejściowego wynosi:

V(t)=V0(1et/τ)

Gdzieτ=RC

wprowadź opis zdjęcia tutaj
Źródło: http://mit6002.blogspot.com/2011/05/1011-parallel-rc-circuit-step-input.html

(pic ma źródło prądu z rezystorem równoległym, który jest równoważny źródłu napięcia z rezystorem szeregowym)


0

Prawdopodobnie można ręcznie wygenerować akceptowalnie gładki sygnał 50 MHz za pomocą potencjometru i zegarka na rękę.

Możesz też obliczyć oczekiwaną odpowiedź krokową swojego filtra. Podaj swój sprzęt krok po kroku , przesuwając przełącznik. Wydrukuj wynik w ciągu około minuty (jeśli twoja baza czasowa oscyloskopu nie pójdzie tak wolno, nagrywaj multimetr i transkrybuj odczyty co sekundę). Porównaj zmierzoną odpowiedź krokową z przewidywaną. Jeśli pasują do siebie (wystarczająco dokładnie, z uwzględnieniem niedokładności ADC / DAC / taktowania), Twój filtr działa zgodnie z przeznaczeniem.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.