Labview fpga średnia ruchoma


Obliczanie średniej ruchomej Ten VI oblicza i wyświetla średnią ruchomą, używając wstępnie wybranego numeru. Najpierw VI inicjalizuje dwa rejestry zmianowe. Górny rejestr przesuwny jest inicjalizowany jednym elementem, a następnie ciągle dodaje poprzednią wartość z nową wartością. Ten rejestr przesuwny zachowuje sumę ostatnich x pomiarów. Po podzieleniu wyników funkcji dodawania z wstępnie wybraną wartością, VI oblicza wartość średniej ruchomej. Dolny rejestr przesuwny zawiera tablicę z wymiarem Średnia. Ten rejestr przesuwny przechowuje wszystkie wartości pomiaru. Funkcja wymiany zastępuje nową wartość po każdej pętli. Ta VI jest bardzo wydajna i szybka, ponieważ wykorzystuje funkcję zamiany elementu wewnątrz pętli while i inicjuje tablicę, zanim wejdzie w pętlę. Ten VI został stworzony w LabVIEW 6.1. Dodaj do ulubionych amp Shareexponentia l średnia ruchomych odpowiedzi fpga Mam problem z moim filtrem, wykładniczym ważonym filtrem średniej ruchomej (IIR 1.st). Z książki: Zrozumienie cyfrowego przetwarzania sygnałów (Lyons Richard) Mam następującą formułę obliczającą częstotliwość 3dB (fc) z alfa. Alfa to parametr kontrolujący filtr. Równanie różniczkowe filtra: ynxnalpha (1 - alfa) yn-1 Relacja fc i alfa: alpha cos (2fcfs) - 1 sqrtcos (2fcfs) - 4cos (2fcfs) 3 Jeśli teraz wybiorę częstotliwość 3dB 0,0794 Hz (czas stała (TC) 2s) alfa 0,00169621. (fs94Hz) W przypadku filtra IIR pierwszego rzędu czas narastania (ta) odpowiedzi skokowej (od 10 do 90) wynosi: ta.02TC, co daje 4,4 s. Ale jeśli zasymuluję odpowiedź skokową, mój czas narastania wynosi około 3 razy od tej wartości w 14 s. Nie mogę wyjaśnić, dlaczego odpowiedź krokowa mojego filtra różni się tak bardzo. Dla mojego filtru średniej ruchomej obliczony i symulowany czas narastania jest równy. Mam vi, który jest wykonywany na dołączonym FPGA. Może ktoś może znaleźć błąd. (patrz także filtr alfa lub filtr RC) Czy twoja częstotliwość próbkowania (fs) jest poprawna Jeśli nie zgadza się z czasem, to by to wyjaśniło. Twoje typy danych wyglądają dobrze (aby uzyskać alfa w ciągu 1). Ale sugerowałbym niewielką zmianę w implementacji. W obecnej postaci jest nieco podatny na zaokrąglanie, ponieważ (1-alfa) jest wielokrotnie mnożony przez yn-1. Nieco bardziej niezawodną metodą jest np. Yn yn-1 (alfa (xn-yn-1)). Różnica jest subtelna, ale daje mi wielokrotnie lepsze wyniki. I eliminuje jeden mnożenie. Nawiasem mówiąc, reinterpretacja liczby robi to samo, co konwersja z FXP na bool, a następnie z powrotem. Jest jednak trochę mniej zagmatwany. Jestem trochę zaskoczony przez czasową pętlę, która nigdy nie zapętla się. Czy to w ten sposób wpływa na taktowanie (zakładałem, że tak by nie było, więc nigdy go nie użyłem Zamiast tego używam Loop Timera.) CLD User od rev 8.6. Wiadomość 2 z 13 (1045 wyświetleń) Odp: exponentia l średnia krocząca odpowiedź fpga 10-01-2018 02:05 AM - edytowana 10-01-2018 02:17 AM dziękuję za odpowiedź. 1, potwierdzam moją częstotliwość próbkowania za pomocą timera pętli. Moje dane wejściowe wynoszą 425,532 takty 94 Hz. Ten tickrate jest potwierdzany przez kleszcze EWMA. - Może ktoś może przetestować kod i powiedzieć mi 2, znalazłem twoje podejście w dziale porad i wskazówek w książce Lyonsa. Spróbuję, ale czy mógłbyś wyjaśnić zakończenie gry trochę dryfując? Jestem całkiem nowy w tej dziedzinie. Czy istnieje dodatkowa korzyść z wyeliminowania jednego mnożnika, z wyjątkiem zasobów? Czy odpowiedź częstotliwościowa, odpowiedź impulsowa i odpowiedź skokowa są takie same 3, Jeśli tylko przesunięcie bitowe, to jestem przyzwyczajony do tej metody Nie jestem pewien, czy funkcja ponownego wyznaczania prędkości używa mniej zasobów. Ale dzięki za zwrócenie na to uwagi. 4, pętla z timerem iteruje co 425,532 tyknięcia jeden raz. Tak więc przy częstotliwości 94 Hz wartość jest obliczana przez kod, ponieważ kod wewnątrz pętli czasowej wymaga tylko jednej iteracji. A może nie rozumiem twojego pytania Nie jestem pewien, jakich dalszych informacji potrzebujesz. Próbuję porównać reakcję skokową średniej ruchomej z wykładniczą średnią kroczącą (EWMA). Właściwie to chcę tylko potwierdzić teorię. Jak wspomniano powyżej, aby uzyskać stałą czasową 2s przy częstotliwości próbkowania 94 Hz, alfa musi wynosić 0,00169. Czas narastania odpowiedzi skokowej od 10 do 90 wartości końcowej różni się od teorii. czas narastania powinien wynosić 4,4s ze stałą czasową 2s, ale otrzymuję prawie 14s jeśli uruchomię mój kod na FPGA. Potwierdziłem, że przy alfa 0,00169 mój kod pobiera 1297 prób do uzyskania od 0,1 do 0,9 (wartość końcowa wynosi 1, wartość początkowa 0). Jak widać w moim kodzie, sprawdzam czas pętli z wskaźnikiem zaznaczającym ewmę, aby potwierdzić częstotliwość próbkowania SCTL. Czy ktoś inny może potwierdzić 1297 przykładów, które są potrzebne przy alfa 0,00169 Ponieważ myślę, że potrzebuję zbyt wielu próbek, aby osiągnąć wartość 0,9. Wprowadziłem już sugerowaną wersję EWMA z pierwszej odpowiedzi. Ten sam problem tutaj. Wiadomość 5 z 13 (995 wyświetleń) Re: exponentia l moving average step response fpga 10-01-2018 08:13 - edytowany 10-01-2018 08:15 AM 1, potwierdzam moją częstotliwość próbkowania z timerem pętli. Moje dane wejściowe wynoszą 425,532 takty 94 Hz. Ten tickrate jest potwierdzany przez kleszcze EWMA. - Może ktoś może przetestować kod i powiedzieć mi 2, znalazłem twoje podejście w dziale porad i wskazówek w książce Lyonsa. Spróbuję, ale czy mógłbyś wyjaśnić zakończenie gry trochę dryfując? Jestem całkiem nowy w tej dziedzinie. Czy istnieje dodatkowa korzyść z wyeliminowania jednego mnożnika, z wyjątkiem zasobów? Czy odpowiedź częstotliwościowa, odpowiedź impulsowa i odpowiedź skokowa są takie same 3, Jeśli tylko przesunięcie bitowe, to jestem przyzwyczajony do tej metody Nie jestem pewien, czy funkcja ponownego wyznaczania prędkości używa mniej zasobów. Ale dzięki za zwrócenie na to uwagi. 4, pętla z timerem iteruje co 425,532 tyknięcia jeden raz. Tak więc przy częstotliwości 94 Hz wartość jest obliczana przez kod, ponieważ kod wewnątrz pętli czasowej wymaga tylko jednej iteracji. Czy też nie rozumiem twojego pytania Użyłem arkusza kalkulacyjnego do symulacji i uzyskam prawie dokładnie tę samą odpowiedź (1299 cykli, aby przejść od 0,1 do 0,9). Arkusze kalkulacyjne są przydatnym narzędziem do testowania obliczeń. 1. W porządku. Nigdy nie użyłem pętli z pojedynczym cyklem pomiarowym (SCTL) z T zapisanym do zatrzymania. Zmusiłoby to funkcje matematyczne do jednego cyklu, ale nie jestem pewien, czy to jest jakaś korzyść. Chciałem tylko upewnić się, że czas został potwierdzony i tak jest. 2. Zaokrąglenie driftu prawdopodobnie nie pojawi się, jeśli twoje wejście nie będzie małe (mniej niż 0,1). Teraz widzę, że masz 40 bitów (39 po prawej stronie miejsca dziesiętnego po przecinku). To zajmuje sporo FPGA, aby się pomnożyć, ale nie będzie miało problemów z zaokrąglaniem. Pozostałe części miały tylko 18 bitów (17 po prawej stronie miejsca dziesiętnego), więc alfa (0,00169 - .000007) razy wartość wejściowa 0,1 wynosiłaby 0,000169 - 0,000007, czyli 7 błędów). Ale to pomnożenie jest również 40-bitowe, więc nie powinieneś widzieć żadnych problemów. Zazwyczaj wyjściowy yn ma mniej bitów i zaokrągla się w ostatnim bicie. Ale ponieważ jest za każdym razem w pętli mnożącej się przez 1-alpha, zaokrąglenie czasami gromadzi każdą pętlę, dopóki nie będzie wystarczająco duże, aby wpłynąć na wyniki dodawania. Trudno to wytłumaczyć, ale moja ogólna zasada brzmi, że oczekuję błędu równego najmniejszemu bitowi podzielonemu przez alfa, przy użyciu oryginalnej metody lub około połowy tej metody z jednym pomnożeniem. Odpowiedzi będą prawie identyczne, z wyjątkiem niewielkiej różnicy. Największą zaletą jest oszczędność miejsca FPGA (i czasu kompilacji). Możesz zmniejszyć liczbę bitów, aby zaoszczędzić jeszcze więcej. 3. Są w zasadzie identyczne. Obie metody są darmowe w FPGA. Bity nie są zmieniane, więc nie jest potrzebna żadna logika, są one po prostu ponownie oznaczone. 4. Myślę, że dobrze na nią odpowiedziałeś. Ogólnie rzecz biorąc, w tym momencie dostosowywałbym alfa, dopóki moje wyniki nie pasowałyby do tego, co chciałem, i ruszyły dalej. Nienawidzę nie rozumieć niedopasowania, ale zazwyczaj nie mam czasu, aby zanurkować. Ale, dla dobra nauki, rozważmy, że twoja formuła może być wadliwa. Myślę, że możesz używać formuły do ​​ciągłego rozkładu wykładniczego (e-ttau), a nie do dyskretnego rozkładu wykładniczego ((1-alfa) i). Łatwiej jest na to spojrzeć jako funkcji krokowej od 1 do 0. W tym przypadku yn (dla ngt0) to yn (1-alpha) (n). Możemy znaleźć n dla yn 0.9, jako nlog1-alpha (0.9) 62, a n dla yn 0.1, jako 1361, dla różnicy 1299. CLD User od rev 8.6. dziękuję za szczegółową odpowiedź. Jeśli chodzi o kwestię czasu wzrostu, myślę, że znalazłem błąd. Możesz mieć rację, że formuła nie jest poprawna lub, co jest prawdopodobnie, źle rozumiane przeze mnie i osadzone w niewłaściwym kontekście. Kiedy wracałem z pracy do domu, przypomniałem sobie o przydatnej funkcji labview: wygładzanie współczynników filtra. W tym miejscu wystarczy ustawić tauTC i fs, a oblicza on mianownik i mianownik dla wykładniczej średniej kroczącej i średniej kroczącej. Jako że nominator jest alfa, mogłem porównać wynik z formułą, której użyłem, i było dość różnicy. Labview używa następującej formuły: alpha1-exp (-1 (fsTC)). Z tą formułą TC2s jest równe alpha0,0053. A dzięki tej alfa moja symulacja działa Risetime 4,4s Cytując: Ogólnie, w tym momencie dostosowywałbym alfa, dopóki moje wyniki nie pasowały do ​​tego, co chciałem i ruszyły dalej. Chciałbym zrobić to samo, ale ponieważ to jest moja praca magisterska, muszę rozwiązywać takie rzeczy. Teraz wracam do kwestii zaokrąglania. Rozumiem, że małe wartości są większym problemem. Ponieważ filtr ten jest używany w Lock In, wartości będą NAPRAWDĘ małe. Ale już przetestowałem to na naszym urządzeniu pomiarowym i działa, dlatego też mam zamiar przetestować twoją wersję, ale jeśli nie mam problemów, myślę, że trzymam go na poziomie 40 bitów. Symulacja poniższej konfiguracji spowodowała błąd 2.3. Użycie 57 bitów zmniejszyło błąd do 1. Uważam, że 40 bitów powinno wystarczyć. A jeśli chodzi o zasoby, nie mam żadnych zmartwień. Mimo że w końcu używałem myrio, wciąż mam wiele plastrów DSP do mnożenia i 10 darmowych FlipFlops. Zgaduję więc, że ten temat został rozwiązany. Dzięki za twoją wspaniałą pomoc i ciekawe myśli. Fajnie, cieszę się, że działa, teraz. Dorastałem w epoce bez plastra DSP w FPGA i mniejszej liczby komórek, więc wciąż myślę w tych kategoriach. Nadal jednak wolę spędzić 25 minut na programowaniu, aby zmniejszyć czasy kompilacji. Miałem przypadki, w których skracałem czas kompilacji z 90 minut do 45 minut, optymalizując całkiem sporo. Dzięki potężnemu serwerowi do kompilacji jest to mniej ważne. Jedną z tych optymalizacji jest zmniejszenie liczby bitów tam, gdzie mogę, szczególnie w przypadku mnożenia. Na przykład alpha to 160, a dla 0.0053 można również użyć 12-4 (liczba całkowita ujemna). Możesz również wyeliminować wiele górnych bitów ze swojego wejścia. 5 minut, aby wybrać najmniejszą liczbę bitów, można łatwo zaoszczędzić 2-10 minut na każdą kompilację. Moją drugą optymalizacją jest zmniejszenie mnożenia, ale z plastrem DSP, to nie jest tak ważne. Nie mogę znaleźć dobrej dokumentacji na temat plasterków DSP (jeśli masz jakieś, proszę zamieścić linki), ale jak rozumiem, jeśli pomnożysz większe liczby (liczba bitów), potrzebuje wielu plasterków, a może czasu, aby połączyć wyniki. I jeszcze jedna sztuczka: wybierz alfabet z prostą wartością binarną, na przykład 1256 (wybrałeś około 1189) i zmieniaj fs, aż uzyskasz wygładzenie, którego chcesz. Następnie użyj stałej dla alfa. Mnożenie przez stałą 1256 jest wolne w FPGA (po prostu przesuwa bity). W tym przypadku, utworzenie stałej alfa może zoptymalizować mnożenie całkiem sporo. W zależności od sprytów optymalizatora może zamiast tego zmienić go na zestaw dodatków. Wejścia na panelu przednim są świetne do tego, aby wszystko działało, ale stałe optymalizują DUŻO lepiej. Użytkownik CLD od rev 8.6. Jeśli masz średnio 16 razy więcej próbek (co 16x, co to było), powinieneś uwzględnić 4 dodatkowe bity w swojej opinii. Już masz pyszności, więc to może nie być ważne, chyba że idziesz znacznie szybciej. W przeciwnym razie zwiększenie fs jest prawdopodobnie dobre. Jeśli wejście ma szum niskiej częstotliwości, to dzięki próbkowaniu wcale nie pomaga w wyeliminowaniu tego. Hałas o wysokiej częstotliwości zmniejsza się jednak z nadmiernym próbkowaniem. Jeśli, na przykład, szum powyżej 10 Hz wynosi -5dB (czyli 10 -5,6 razy większa amplituda sygnału, który lubisz), a próbujesz w 20 sekundach, prawdopodobnie weźmiesz -5 dB w początkowych odczytach. Jeśli twój -3dB (fc) jest również 10Hz, to skończy się na tym, że w sygnale pozostało około -8 dB szumów. Jeśli zamiast tego weźmiesz 200 S, średnie grupy po 10, a następnie przekażesz te średnie do filtra, nie pomożesz przy 10 Hz (mierzysz 10 Hz bez efektów próbkowania), ale zmniejszysz hałas powyżej 100 Hz o około współczynnik zbliżony do (ale nie do końca) 10. Są całe klasy semestralne, które omawiają, dlaczego, jak, itp. Krótka wersja jest taka: Każda próbka jest sumą sygnału, który chcesz i hałasu. Jeśli dodasz 10 próbek, otrzymasz 10x sygnał, który chcesz, i sumę 10 szumów. Charakter szumów określa, co masz, gdy dodasz 10 próbek hałasu. Szum Gaussa dodaje jeden sposób (coś w stylu: jeśli 83 próbek znajduje się poniżej X, suma ma 83 sumy poniżej 1,1X lub coś w tym stylu). Hałas liniowy dodaje inny sposób. A powtarzanie wzorów dodaje inny sposób. Tak więc, nie wiedząc dokładnie, jaki jest hałas, nikt nie może odpowiedzieć z pewnością, z wyjątkiem tego, że uśrednienie wielu próbek prawdopodobnie pomaga i prawie nigdy nie boli. Istnieje również kwestia aliasingu. Jeśli masz interferencję sinusoidalną 60Hz, przy -3dB i próbujesz przy 10.001Ss (zawsze zakładaj, że zegary nie będą pasować do siebie), otrzymasz coś w rodzaju 0.006Hz przy -3dB dodanego do twojego sygnału, a twój filtr nie usunie go . Ale podskoczenie częstotliwości próbkowania do 100.001 Ss, spowoduje zakłócenia na poziomie około 40 Hz, więc twój filtr powinien go wyeliminować. Uśrednienie 10 próbek na raz jest rodzajem filtra (pudełko). Jeśli spojrzeć na to w dziedzinie częstotliwości, można zauważyć, że niektóre wyższe częstotliwości są w dziwny sposób przenoszone na niższe częstotliwości, a nie wszystkie są zmniejszane. Jeśli średnio 4000 Ss, 100 na raz, otrzymasz średnią 40 razy na sekundę. Przy interferencji 60 Hz dostaniesz około 13 szumów, przesuniętych do 20 Hz, które nie będą filtrować tak dobrze, jak 60 Hz. Więc lepiej byłoby użyć filtra EWMA przy wyższej częstotliwości próbkowania. niż na średnie bloki wejść, a następnie filtruj to. Uśrednianie jest (prawdopodobnie) lepsze niż użycie wolniejszej częstotliwości próbkowania. Jeśli masz adapter wejściowy z wbudowanymi filtrami elektronicznymi, to jest jeszcze lepiej i nie trzeba próbkować więcej niż 2 razy częstotliwości filtrów. CLD User since rev 8.6.LabVIEW Zestaw narzędzi do projektowania filtrów cyfrowych 8.2.1 Readme Zestaw narzędzi do projektowania filtrów cyfrowych LabVIEW 8.2.1 rozwiązuje problemy z instalacją w systemie Windows Vista x64 Edition, wersja 64-bitowa, które znajdują się w zestawie narzędzi do projektowania filtrów cyfrowych 8.2. Jeśli masz zainstalowany zestaw Digital Filter Design Toolkit 8.2, musisz najpierw odinstalować tę wersję przed zainstalowaniem zestawu Digital Filter Design Toolkit 8.2.1. Ten plik zawiera informacje, dzięki którym można zapoznać się z zestawem narzędzi do projektowania filtra cyfrowego. Ten plik zawiera także zasoby pomocy, z których można korzystać podczas pracy z zestawem narzędzi. Plik zawiera następujące informacje, które należy zrozumieć. Zestaw Digital Filter Design Toolkit zawiera kolekcję cyfrowych narzędzi do projektowania filtrów, które uzupełniają LabVIEW Full lub Professional Development System. Zestaw narzędzi do projektowania filtrów cyfrowych pomaga w projektowaniu filtrów cyfrowych bez konieczności posiadania zaawansowanej wiedzy na temat cyfrowego przetwarzania sygnałów lub technik cyfrowego filtrowania. Za pomocą pakietu Digital Filter Design Toolkit można projektować, analizować i symulować zmiennoprzecinkowe i stałe filtry cyfrowe. Bez wcześniejszej wiedzy o programowaniu w LabVIEW, możesz użyć Digital Filter Design Express VIs do graficznej interakcji ze specyfikacją filtra w celu zaprojektowania odpowiednich filtrów cyfrowych. Zestaw narzędzi do projektowania filtrów cyfrowych zawiera elementy VI, które można wykorzystać do zaprojektowania cyfrowej odpowiedzi skończonego impulsu (FIR) lub filtra nieskończonej odpowiedzi impulsowej (IIR), analizy charakterystyk filtra cyfrowego, zmiany struktury implementacji filtra cyfrowego i danych procesowych z filtrem cyfrowym. Oprócz wsparcia zmiennoprzecinkowego, zestaw narzędzi do projektowania filtrów cyfrowych zawiera zestaw VI, które można wykorzystać do stworzenia stałego filtra cyfrowego, analizy właściwości filtra cyfrowego o stałym punkcie, symulowania wydajności ustalonego filtra - punktowy filtr cyfrowy i generuj stały kod C, całkowity kod LabVIEW lub kod pola FPV (LabVIEW) do określonego celu o ustalonym punkcie. Zestaw cyfrowy do projektowania filtrów zapewnia VIs dla wielorakich cyfrowych projektów filtrów. Za pomocą VIs można zaprojektować i przeanalizować wielostopniowy filtr wielostopniowy o zmiennym punkcie. Następnie można użyć zaprojektowanego filtru wielordzeniowego do przetwarzania danych. Zestaw narzędzi do projektowania filtrów cyfrowych zapewnia również zestaw VI, za pomocą których można tworzyć, analizować i symulować wielordzeniowy filtr o stałym punkcie. Możesz wygenerować kod FPGA LabVIEW z zaprojektowanego wielordzeniowego filtra o stałym punkcie dla celu NI Rekonfigurowalna IO (RIO). Oprócz narzędzi graficznych do projektowania filtrów cyfrowych, pakiet Digital Filter Design Toolkit udostępnia również funkcje MathScript obsługiwane przez LabVIEW MathScript. Te funkcje MathScript umożliwiają projektowanie filtrów w środowisku tekstowym. Aby korzystać z Zestawu do projektowania Digital Filter, musisz posiadać oprogramowanie National Instruments LabVIEW 8.2 lub nowszy, Full lub Professional Development System, zainstalowane na komputerze-hoście. Uwaga: Jeśli chcesz użyć zestawu do projektowania filtrów cyfrowych, aby wygenerować kod FPGA LabVIEW z filtra o stałym punkcie, musisz mieć zainstalowany moduł FPGA National Instruments LabVIEW i oprogramowanie NI-RIO z LabVIEW. Upewnij się, że zainstalowałeś moduł FPGA i oprogramowanie NI-RIO przed zainstalowaniem zestawu do projektowania Digital Filter. Jeśli masz już zainstalowany zestaw do projektowania filtra cyfrowego, odinstaluj Zestaw narzędzi do projektowania filtra cyfrowego przed zainstalowaniem modułu FPGA i oprogramowania NI-RIO. Wykonaj następujące kroki, aby zainstalować Zestaw narzędzi do projektowania filtra cyfrowego. Przed instalacją sprawdź, czy komputer spełnia następujące warunki: Zainstalowana jest zgodna wersja oprogramowania LabVIEW. Nie są instalowane żadne wcześniejsze wersje pakietu Digital Filter Design Toolkit, w tym wersje beta. LabVIEW nie działa. Uwaga: Jeśli chcesz użyć zestawu do projektowania filtrów cyfrowych, aby wygenerować kod FPGA LabVIEW z filtra o stałym punkcie, sprawdź, czy masz zainstalowany moduł FPGA i oprogramowanie NI-RIO. Włóż płytę CD LabVIEW Digital Filter Design Toolkit. Uruchom program setup. exe. Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie. Zestaw narzędzi do projektowania filtrów cyfrowych 8.2.1 zawiera poprawki błędów, ale nie zapewnia żadnych nowych funkcji. Zestaw narzędzi do projektowania filtrów cyfrowych 8.2 zawiera następujące nowe funkcje: Projektowanie filtru cyfrowego Funkcje MathScript Wykorzystanie funkcji MathScript do projektowania filtrów cyfrowych do projektowania filtrów cyfrowych za pomocą LabVIEW MathScript w środowisku tekstowym. Udoskonalone narzędzia do projektowania filtrów o ustalonych punktach Zestaw narzędzi do projektowania filtrów cyfrowych 8.2 poprawia użyteczność narzędzi VIs z Fixed-Point Tools. Te VIs mogą pomóc ci zaprojektować filtr o stałym punkcie z tylko kilkoma wymaganymi wejściami. Możesz również użyć tych VI do ulepszenia projektu filtra. Zestaw narzędzi do projektowania filtrów cyfrowych 8.2 klasyfikuje współczynniki filtra na dwie grupy: współczynniki filtru a k i współczynniki filtru b v. Te dwie grupy współczynników filtru używają różnych zakresów wartości. Ta zmiana umożliwia wydajne kwantyzowanie współczynników filtra przy użyciu ograniczonej liczby bitów. Ulepszone generowanie kodów filtrów stałych Narzędzie do projektowania filtrów cyfrowych 8.2 usprawnia generowanie kodów filtra o stałym punkcie i obsługuje więcej modeli filtrów o stałym punkcie, takich jak te z 32-bitowymi współczynnikami. Można określić model filtru ze stałym punktem, aby wykonać mnożenie I32xI16 lub I32xI32, oprócz multiplikacji I16xI16. Możesz także wygenerować blok filtru, który może przetwarzać sygnały wielokanałowe. Zestaw do projektowania Digital Filter organizuje wygenerowany kod LabVIEW w plikach projektu LabVIEW (.lvproj), dzięki czemu można zintegrować filtr z innym projektem. W celu generowania kodu LabVIEW FPGA, zestaw narzędzi do projektowania filtrów cyfrowych 8.2 usprawnia mechanizm przechowywania współczynników filtrów i stanów wewnętrznych filtrów cyfrowych. Nowy mechanizm przechowuje wewnętrzne stany filtra w elementach pamięci wygenerowanego kodu FPGA LabVIEW. W przypadku filtrów FIR mechanizm ten przechowuje współczynniki filtra FIR w tabelach wyszukiwania. Podczas przetwarzania sygnałów wielokanałowych kod LabVIEW FPGA może współdzielić współczynniki filtru i logiczne zasoby sterowania filtrami między wieloma kanałami. Obsługa filtrów wielowymiarowych Rational Resampling Zestaw narzędzi do projektowania filtrów cyfrowych 8.2 zapewnia wsparcie dla projektowania, analizy i wdrażania racjonalnych resamplingów filtrów wielowarstwowych, oprócz filtrów decymacyjnych i interpolacyjnych. Racjonalne ponowne próbkowanie jest przydatne do łączenia z systemami cyfrowego przetwarzania sygnałów (DSP), które działają z różną szybkością. Na przykład, możesz użyć racjonalnego resamplingu do konwersji sygnału 48 kHz z profesjonalnego systemu audio na sygnał 44,1 kHz dla audio CD. Multirate Filter Design Express VIs Zastosuj Multirate FIR Design, Multistage Multirate Filter Design i Multirate CIC Design Express VIs, aby interaktywnie projektować wielordzeniowe filtry FIR, wielostopniowe filtry wielordzeniowe i wielotonowy kaskadowy filtr grzebieniowy integratora (CIC). Obsługa wielomiejscowego filtru wielopunktowego Obsługa wielordzeniowych narzędzi stałych VIs do kwantowania, modelowania i symulacji filtrów wielopunktowych o stałym punkcie. Filtr wielotranowy o stałym punkcie Obsługa generowania kodu FPGA Użyj generatora kodów MRF DFD FXP i generatora kodu źródłowego DFD FXP NStage VIs, aby wygenerować kod FPGA LabVIEW z wielostanowiskowych filtrów o ustalonym punkcie. Możesz wygenerować kod dla aplikacji do filtrowania jednokanałowego i wielokanałowego. Możesz również generować kod zarówno z filtrów wielostopniowych, jak i jednostopniowych i wielostopniowych. Poprawiono średnią filtrację FPGA Obsługa generatora kodu ruchu DFD FXP, aby wygenerować kod FPGA LabVIEW z filtrów średniej ruchomej (MA) o stałym punkcie. Kod FPGA LabVIEW generowany z filtru MA o stałym punkcie pomaga w wydajnym filtrowaniu MA na sygnale wejściowym przy użyciu niewielkiej ilości zasobów sprzętowych. Użyj narzędzi VIs, aby narysować funkcje transferu, zero-biegunowe i równania różnicy w elementach sterujących obrazem. Filtruj Zachowaj i wczytaj fromto Narzędzia plików tekstowych Użyj DFD Zapisz do pliku tekstowego i DFD Zapisz MRate do pliku tekstowego VIs, aby zapisać filtry, w tym filtry wielotorowe, jako pliki tekstowe. Struktury filtrów, kolejność filtrów i współczynniki filtrów można uzyskać z plików tekstowych. Następnie można skopiować współczynniki filtru z plików tekstowych i użyć współczynników w innych aplikacjach. Użyj obciążenia DFD z pliku tekstowego VI, aby załadować filtr z pliku tekstowego. Nie możesz użyć tego VI do załadowania filtra wielotorowego. Zestaw narzędzi do projektowania filtrów cyfrowych 8.2 zawiera ponad 100 przykładów pokazujących, jak wykonać określone zadania za pomocą funkcji VI i funkcji filtru cyfrowego. Te przykłady obejmują zarówno samouczki, jak i pogłębione studia przypadków. Wersja 8.2.1 (438APUX0) Zestaw narzędzi do projektowania filtrów cyfrowych 8.2.1 rozwiązuje problem polegający na tym, że funkcja MathScriptphase MathScript nie potrafi poprawnie obliczyć minimalnego współczynnika widmowego fazy filtru o sile liniowej, skończonej odpowiedzi impulsowej (FIR). Wersja 8.2 Zestaw narzędzi do projektowania filtrów cyfrowych 7.5 nie zawierał ograniczeń liczby stopni ani opóźnienia różnicowego filtra CIC. Zestaw narzędzi do projektowania filtrów cyfrowych 8.2 ogranicza liczbę stopni filtru CIC do zakresu 1, 8 i ogranicza wartość opóźnienia różnicowego do 1 lub 2. Jeśli chcesz użyć filtru zaprojektowanego za pomocą zestawu Digital Filter Design Toolkit 7.5, zestaw narzędzi do projektowania filtrów cyfrowych 8.2 może zgłosić ten filtr jako nieprawidłowy obiekt filtrujący. Jeśli napotkasz tę sytuację, zapisz filtr jako plik binarny w pakiecie Digital Filter Design Toolkit 7.5, a następnie użyj zestawu do projektowania filtrów cyfrowych 8.2, aby załadować filtr z pliku binarnego. Zestaw narzędzi do projektowania filtrów cyfrowych 7.5 zdefiniował częstotliwość próbkowania filtra wielordzeniowego jako maksymalną częstotliwość próbkowania w filtrze wielordzeniowym. Zestaw narzędzi do projektowania filtrów cyfrowych 8.2 definiuje częstotliwość próbkowania filtra wielordzeniowego jako wejściową częstotliwość próbkowania w filtrze wielordzeniowym. Dlatego, jeśli chcesz użyć filtru interpolacyjnego, który zaprojektowałeś za pomocą zestawu Digital Filter Design Toolkit 7.5, musisz najpierw zmienić częstotliwość próbkowania filtra interpolacyjnego z maksymalnej częstotliwości próbkowania na częstotliwość próbkowania wejściowego. Ta zmiana nie wpływa na filtry dziesiętne i filtry bez zmian. W zestawie narzędzi do projektowania filtrów cyfrowych 8.2, modelowanie DFD FXP dla CodeGen Express VI nie znajduje się na palecie narzędzi o stałym punkcie. Użyj funkcji DFD FXP Quantize Coef VI, aby kwantyzować współczynniki filtru i modelowanie VIF DFD, aby zamiast tego utworzyć model filtru o stałym punkcie. W zestawie narzędzi do projektowania filtrów cyfrowych 7.5, odpowiedzi odpowiedzi na wielkość i odpowiedzi fazowe wykresu DFD MRate Freq Response VI były klastrami. W zestawie narzędzi do projektowania filtrów cyfrowych 8.2 te wyjścia są tablicami klastrów. Wersja 8.2.1 Oprócz znanych problemów w zestawie narzędzi do projektowania filtrów cyfrowych 8.2. Zestaw narzędzi do projektowania filtru cyfrowego 8.2.1 zawiera następujący nowy znany problem: Ponieważ domyślne czcionki w systemie Windows Vista różnią się od domyślnych czcionek w poprzednich wersjach systemu Windows, można zauważyć problemy z kosmetykami, takie jak nakładające się lub obcięte ciągi tekstowe, w VIs i okna dialogowe LabVIEW. Aby rozwiązać ten problem, zmień motyw systemu operacyjnego na Klasyczny Windows w oknie dialogowym Ustawienia motywu, a następnie uruchom ponownie LabVIEW. Wybierz Start0187Control Panel0187Appearance and Personalization i kliknij Zmień motyw, aby wyświetlić okno dialogowe Ustawienia motywu. Analiza filtrów VI może zająć dużo czasu, aby przeanalizować filtr o wysokim porządku. DFD Remez Design VI może zająć dużo czasu, aby zaprojektować filtr FIR z wysokim poziomem. DFD Least Pth Norm Design VI może wymagać dużo czasu, aby wykonać projekty z algorytmami iteracyjnymi. Zestaw narzędzi do projektowania filtrów cyfrowych 8.2 nie zezwala na zerowanie wartości zerowych w Pole-Zero Placement Express VI. Jeśli wybierzesz zero o wartości zero, Express VI zmusza zero wartości zera do zero zero. Podczas projektowania filtru stałoprzecinkowego należy skonfigurować kwantyzatory. Każdy kwantyzator zawiera podpisaną wartość logiczną, która określa, czy traktować numer wejściowy jako numer podpisany. Zestaw narzędzi do projektowania filtru cyfrowego 8.2 obsługuje tylko podpisane cyfry. Charakterystyka filtru może się zmienić, jeśli wystąpią błędy numeryczne podczas konwersji między współczynnikami filtra różnych struktur filtrów. Po przekonwertowaniu struktury filtra filtr z nową strukturą może być zupełnie inny niż oryginalny filtr. Jeśli napotkasz tę sytuację, spróbuj użyć innej struktury. Konieczne może być skompilowanie przykładu VIs architektury filtru cyfrowego, który demonstruje sposób użycia wygenerowanego kodu LabVIEW FPGA w projektach LabVIEW. Zobacz pomoc LabVIEW. dostępne poprzez wybranie Help0187 Wyszukaj Pomoc LabVIEW z rozwijanego menu w LabVIEW, aby uzyskać informacje na temat korzystania z zestawu narzędzi do projektowania filtra cyfrowego. Możesz uzyskać dostęp do przykładów zestawu narzędzi do projektowania filtrów cyfrowych, wybierając Help0187Find Examples, aby wyświetlić NI Example Finder, a następnie przejdź do folderu Designs Toolkits i Modules0187Digital Filter. Możesz także kliknąć link Znajdź przykłady w sekcji Przykłady w oknie Pierwsze kroki, aby wyświetlić Przykładowy Wyszukiwacz NI. Możesz zmodyfikować przykład VI, aby pasował do aplikacji, lub możesz skopiować i wkleić z jednego lub więcej przykładów do tworzonego VI. Można również znaleźć przykłady dla zestawu narzędzi do projektowania filtra cyfrowego w katalogu labviewexamplesDigital Filter Design. 0169 200682112007 National Instruments Corporation. Wszelkie prawa zastrzeżone. Zgodnie z prawem autorskim niniejsza publikacja nie może być powielana ani przekazywana w żadnej formie, elektronicznej lub mechanicznej, w tym kopiowanie, nagrywanie, przechowywanie w systemie wyszukiwania informacji lub tłumaczenie, w całości lub w części, bez uprzedniej pisemnej zgody National Instruments Korporacja. National Instruments, NI, ni. i LabVIEW są znakami towarowymi firmy National Instruments Corporation. Więcej informacji na temat znaków towarowych National Instruments można znaleźć w sekcji Warunki korzystania z witryny nilegal. Inne nazwy produktów i firm wymienione w niniejszym dokumencie są znakami towarowymi lub nazwami handlowymi odpowiednich firm. Patenty dotyczące produktów National Instruments można znaleźć w odpowiedniej lokalizacji: Pomoc0187Patenty w oprogramowaniu, plik patents. txt na dysku CD lub programy typu nipatents.

Comments

Popular Posts