Strona 1 z 1

Generowanie sygnału sinusoidalnego i zapis do pliku

: 18 sty 2017 20:54
autor: apol
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!

Generowanie sygnału sinusoidalnego i zapis do pliku

: 21 sty 2017 21:18
autor: ksyhu
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.

Re: Generowanie sygnału sinusoidalnego i zapis do pliku

: 23 sty 2017 21:45
autor: apol
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.