Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Układ i środowisko do zespołu filtrów FIR

encore 05 Oct 2020 11:56 597 8
  • #1
    encore
    Level 18  
    Zamierzam zrobić moduł, który będzie generował szum cyfrowy a potem ten szum będzie filtrowany przez zestaw filtów cyfrowych górnoprzepustowych, środkowoprzepustowych i dolnoprzepustowych.
    Czyli chcę mieć szum "pseudobiały" tylko w przewnych przedziałach częstotliwości.

    Miałem zrobić to całkiem analogowo jedank zabawa z filtrami LC nie uśmiecha mi się zbytnio.
    Ponieważ nie potrzebuję szumu o szczególnie dobrych parametrach eleganckim wyjściem jest zrobienie wszystkiego w jednym układzie FPGA.

    Teraz mam pytanie.
    Szum najlepiej gdyby był do 30MHz ale jak realia zmuszą to może być tylko 10MHz.
    Filtracja też nie musi być bardzo precyzyjna.
    Lepiej zastosować układ Xlilinx Atrix7 czy Altera Cyclone IV ?
    Da się relatywnie prosto w FPGA taki układ zralizować?
    Wybór padł na te układy z powodu dostępności u chińczyków tanich płytek testowych.
    A może coś od Lattice?
  • Helpful post
    #2
    DVDM14
    Level 35  
    Obaj producenci dostarczają IPCore filtra FIR do którego wystarczy wrzucić współczynniki i dostajesz bloczek gotowy do połączenia z resztą układu. Współczynniki możesz wygenerować w matlabie albo kalkulatorach online.

    Xilinx dostarcza ten IPCore za darmo, w przypadku Altery, jeśli dobrze pamiętam, jest on dostępny tylko do ewaluacji - możesz wgrać na żywca do FPGA, ale musisz zapłacić żeby wynik syntezy używającej tego cora można było wgrać do pamięci konfiguracyjnej.

    EDIT:
    https://www.intel.com/content/dam/www/program.../en/pdfs/literature/ug/ug_fir_compiler_ii.pdf Strona 13. Core Altery jest płatny, Xilinx dostarcza całkowicie bez opłat.
  • #3
    encore
    Level 18  
    Da radę zrobić zestaw filtrów działających na częstotliwości około 30MHz?
    Atrtix 7 poradzi sobie z taką częstotliwością filtrów?
    Z tego co przeglądałem z reguły filtrację cyfrową robi się dla częstotliwości do 50-100kHz.
  • #4
    DVDM14
    Level 35  
    Same core mogą spokojnie pracować z zegarem rzędu 400-600MHz (zegar wyższy od próbkowania pozwala wykonywać kilka mnożeń jednym blokiem DSP, zmniejszając ilość wymaganych zasobów). Pytanie, jakie filtry konkretnie chcesz zaimplementować - ile współczynników i jaka precyzja. Policz sobie współczynniki, wrzuć do generatora IPCore w vivado i zobacz ile zasobów oszacuje, a dowiesz się jak dużego FPGA potrzebujesz.

    encore wrote:

    Z tego co przeglądałem z reguły filtrację cyfrową robi się dla częstotliwości do 50-100kHz.


    Skąd takie rewelacje? BTS-y, SDR-y etc wykorzystują filtry cyfrowe pracujące na sporych częstotliwościach. Ostatnio implementowałem decymator działający z próbkowaniem wejściowym 250Msps. ;)
  • #5
    encore
    Level 18  
    Będę potrzebował :

    1 filtr dolnoprzepustowy
    1 filtr górno przepustowy
    2-4 filtrów środkowoprzepustowych.

    Zbocza filtrów nie muszą być bardzo strome. To co robie to ma być urządzenie do eksprymentu z pogranicza biologii, fizyki i elektroniki.
    Na razie to testowanie pomysłu. Na zasadzie "zobaczmy co się stanie".
    Chodzi w tej chwili żeby "wymacać" temat bojem i zrobić to jak najtaniej póki nie wiadomo czy pomysł ma ręce i nogi.
  • #6
    DVDM14
    Level 35  
    Potrzebne są konkretne liczby. :) Rozdzielczość bitowa próbek, częstotliwość próbkowania, pasmo przenoszenia, tłumienie poza pasmem przenoszenia, stromość zbocza... W tej chwili nie mamy nic na podstawie czego można oszacować wymagane zasoby.
  • #7
    vertigo_02
    Level 15  
    Myślę, że do tego - skądinąd prostego - zastosowania nada się większość układów FPGA, które posiadają układy mnożące. To ile układów mnożących będzie potrzebne, zależy od wymaganych parametrów filtrów, tak jak napisali koledzy powyżej, chociaż jeśli wymagania nie są zbyt wysokie, a tak wynika z zastosowania opisanego w pierwszym poście, pewnie 20-30 układów mnożących wystarczy w zupełności.

    Implementacja filtrów FIR w FPGA jest łatwe z uwagi na generatory IP. Chyba zarówno Xilinx jak i Intel posiadają IP Core o modyfikowalnych współczynnikach filtru (w trakcie pracy), dzięki czemu za pomocą jednego układu filtru można zmieniać odpowiedź częstotliwościową w trakcie pracy układu.

    Sama część implementowana w FPGA wydaje się dość prosta. Nie lekceważyłbym części sprzętowej - należy dobrać odpowiedni przetwornik C/A, dobrać częstotliwość konwersji, zaprojektować filtr wyjściowy, układy wyjściowe itd.
    A może nie trzeba komplikować sobie życia i użyć jakiegoś generatora arbitralnego z wbudowanym generatorem szumu i dorobić do tego jakiś prosty zestaw filtrów analogowych? Może na pierwszy prototyp to byłoby wystarczające?
  • #8
    encore
    Level 18  
    Zależałoby mi na w miarę dowolnym ustawianiu częstotliwości filtrów.
    Możliwość swobodnego doboru parametrów filtrów FIR do dla mnie duża zaleta.
    Robienie filtrów LC do nie taka prosta sprawa dla mnie. Poza tym filtry analogowe mają sztywne częstotliwości a ich zmiana nie jest taka łatwa.

    Nie zamierzam zamieniać szumu cyfrowego na analogowy.
    Impulsy cyforwe maja pójść do anteny.

    Dla mnie nie jest ważny kształt impulsu tylko widmo mocy. A nawet prosty szum cyfrowy ma z grubsza widmo mocy szumu białego.
    Nie widzę sensu żeby sygnał cyfrowy zamieniać na analogowy.
  • #9
    atom1477
    Level 43  
    encore wrote:
    Nie zamierzam zamieniać szumu cyfrowego na analogowy.
    Impulsy cyforwe maja pójść do anteny.

    Ale jak by to miało działać?
    Sygnał cyfrowy a impulsy cyfrowe to co innego.
    Sygnał cyfrowy może być np. równoległy. No i w klasycznym przetwarzaniu cyfrowym jest równoległy.
    A jako "impulsy" rozumie się sygnał szeregowy.

    Sygnału cyfrowego nie da się wypuścić na antenę zachowując zakodowane w nim widmo. Bo ono jest tam tylko "zakodowane", ale nie jest w nim umieszczone bezpośrednio.
    Żeby z sygnału cyfrowego uzyskać wprost sygnał do anteny, potrzeba ten sygnał cyfrowy (równoległy) przerobić na szeregowy który będzie miał odpowiednie widmo. To będzie po porostu konwersja C/A.
    I można to zrobić nawet w samym FPGA.
    Ale nie chodzi to wcale o zrobienie układu serializera.
    To powinien być modulator.
    Najlepiej modulator sigma-delta. Choć modulator PWM też może być.
    Z niego miał byś wyjściowe impulsy, które wymagałyby tylko prostego analogowego przefiltrowania dolnoprzepustowego (ten filtr nie wymagał by specjalnego strojenia).