Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Projekt filtru cyfrowego do zastosowania w ukladzie DPLL

11 Cze 2009 23:32 1710 1
  • Poziom 15  
    Witam. Mam pewne wątpliwości co do mojego projektu i szukam porady. Myślę, że wybrałem odpowiedni dział. Tak jak w temacie, zajmuje się projektem cyfrowej pętli fazowej ( Digital Phase Locked Loop) wg modelu który został zaprezentowany w artykule w załączniku. W części 3 artykułu, w punkcie B mamy podany wzór na transfer function takiego układu. W tym wzorze jedynymi parametrami są "alfa" oraz "ro" których przykładowe wartości zostały są przedstawione w części 5 pod wykresem 9 - "Magnitude response of a phase domain ADPLL". Jak widać, wartości te są ułamkami ( np alfa=2e-06 , ro=2e-9).

    Teraz przejdę do istoty wątpliwości. Własną wersję tego projektu wykonuje w VHDL. Tworzę model behawioralny takiego układu. Mam problem z tym, jak dobrać te współczynniki do filtru. Wg zasady działania która jest przedstawiona, układ porównuje dwie liczby które są zawarte w dwóch rejestrach, a różnica tych wartości jest podawana na wejście filtru w układzie pętli. Liczby które są podawane na wejście są z zakresu 0 ( najmniejszy błąd fazy/częstotliwości) do dużych wartości, zależnych od wartości mnożnika. Następnie ta liczba ( przykładowo z zakresu 1-2000) jest podawana na wejście filtru i mnożona przez współczynniki. Jednak w praktyce w vhdl liczba wyjściowa to wektor , powiedzmy A(20 downto 0) gdzie na najmłodszych bitach znajduje się wartość 1. Jak w takim razie zaprogramować mnożenie przez współczynniki 2e-08? Teoretycznie to oznacza przesunięcie o 8 bitów w dół. Czy powinienem to zrobić tak, że liczba wejściowa jest zapisana na bitach od 8 w górę sygnału "A(20 downto 0)" ?
    Po drugie eksperymentalnie sprawdziłem, że układ działa jedynie w sytuacji, kiedy liczba wejściowa do filtru, A(20 downto 0) jest przenoszona bez żadnych przesunięć bitowych wewnątrz filtru. Oznacza to, że mnożniki wynoszą w tej sytuacji 2e+0 , ale po podstawieniu tych wartości do modelu w dziedzinie Z otrzymuję charakterystyki nietypowe dla układów pętli fazowych .
    Jeśli ktoś miał jakieś doświadczenie w tej dziedzinie proszę o poradę. Wiem, że odrobinę zagmatwałem, jednak główne pytanie sprowadza się do tego, jak zaimplementować mnozniki w filtrze.
  • Poziom 18  
    Musisz obliczenia zrobić na liczbach stałoprzecinkowych aby uzyskać odpowiednią dokładność, a to wymaga odpowiedniego skalowania. Jeżeli użyjesz liczb całkowitych to mnożenie przez współczynnik 2e-8 jest bardzo niedokładne, np. pomnożenie liczb z zakresu 1-255 przez ten współczynnik daje taki sam wynik.