Generowanie sygnału sinusoidalnego i zapis do pliku

Tematy związane z LabVIEW FPGA oraz programowaniem układów.
apol
Posty: 4
Rejestracja: 12 sty 2017 00:02
Wersja środowiska: LabVIEW 2014

Generowanie sygnału sinusoidalnego i zapis do pliku

Post autor: apol » 18 sty 2017 20:54

Cześć!
Wiem, ze jest to problem dość powszechny i jest wiele przykładów w internecie dotyczących tego wątku. Niestety mimo przeszukania całego internetu wciąz mam problemy. W pliku FPGA chcę generowac sinusa o okreslanej przeze mnie czestotliwosci i amplitudzie i wysylac go na wyjscie analogowe oraz odczytywac dane z AI.
Żądane parametry wpisuje w host VI na PC i tam tez odczytuje swojego sinusa i zapisuje do pliku.
Teoretycznie wszystko dziala, ale praktycznie absolutnie nie tak jakbym sobie tego życzyła. Plik wynikowy jest wypełniony zerami, nawet jesli na podglądowym wykresie na fpga vi widze ze tworzy sie sinus, to nie jest on przesyłany do host VI. Dlaczego? Bede bardzo wdzieczna za pomoc.
Pozdrawiam!
Załączniki
Bez tytułu.png

Awatar użytkownika
ksyhu
Posty: 31
Rejestracja: 06 lis 2009 19:15
Wersja środowiska: Nie mam LabVIEW
Lokalizacja: Kraków

Generowanie sygnału sinusoidalnego i zapis do pliku

Post autor: ksyhu » 21 sty 2017 21:18

Krótko mówiąc nakombinowałaś z rzutowaniami. Ale do rzeczy... Na początek polecam:
http://www.ni.com/newsletter/50303/en/
https://zone.ni.com/reference/en-XX/hel ... pes_table/

Pierwsza pętla po lewej od dołu (na niej łatwiej wytłumaczyć - zakładam, że to sbRIO9636 (z poprzedniego tematu)). Fix-point ma wartość ±20,5 (przyjmuje wartości ±16 z deltą 1,90735E-6) i rzutujesz go na I16 tracąc znaczną część informacji jakie niesie pomiar. W zasadzie twoim pomiarem będą tylko części całkowite i to z zakresu ±16, Zamień kolejkę FIFO na Fix-point lub skonwertuj na double/single przed kolejką i kolejkę na DBL/SGL. Wedle potrzeb/uznania. Pętla powyżej, zawiera ten sam błąd. Czy sinus ma amplitudę mniejszą niż 1?

Przy okazji czy fifo mają odpowiednio ostawiony rozmiar? Nie gubisz danych? Odczytujesz z analog_input?
Dodatkowo polecam:
https://www.ni.com/compactriodevguide/
Niby o cRIO, ale znajdziesz tam wiele informacji. Dobrych praktyk i wzorców.

Ogólnie to co robisz powyżej da się zrobić o wiele prościej, ale trening najlepszym nauczycielem.
Często prowadzę z sobą długie rozmowy i jestem przy tym tak mądry, że czasami nie rozumiem ani jednego słowa z tego, co mówię.

apol
Posty: 4
Rejestracja: 12 sty 2017 00:02
Wersja środowiska: LabVIEW 2014

Re: Generowanie sygnału sinusoidalnego i zapis do pliku

Post autor: apol » 23 sty 2017 21:45

Dziękuję za odpowiedź!

OK. Zamieniłam FIFO na FXP, ale nadal mój sygnał wyjściowy jest nieco kwadratowy i zaburza mi to pomiary :/

I z tym generowaniem sinusa, to zupełnie namieszałam wcześniej, to też już jest naprawione :)

Teraz staram się zapisywać do pliku dane dla różnych częstotliwosci (co 10Hz), niestety moja metoda nie sprawdza się. Jakieś dziwne przebiegi mi rysuje :/

Proszę o pomoc, jak można to inaczej zrobić.

Co do rozmiaru FIFO, to moje ma 1023.

Załaczam poprawiony projekt z nieudanym pomyslem na zmienianie częstotliwosci.
Załączniki
LV_FPGA.zip
(610.3 KiB) Pobrany 37 razy

ODPOWIEDZ