Programowy symulator ADC - od czego zacząć?

0

Czołem!
Mam za zadanie napisać w c++ programowy symulator ADC. Program ma umożliwiać wybór jednej z 3 funkcji ciągłych zaszystch w programie, oraz parametrów przetwornika.
Ma też być zrobiona ilustracja próbkowania i kwantyzacji w gnuPlocie.

No i mam taki problem, że nie mam pojęcia jak się za to zabrać - Jak zaszyć funkcję ciągłą w programie?
Mogę liczyć na jakąś podpowiedź naprowadzającą?

0
skoomi napisał(a):

No i mam taki problem, że nie mam pojęcia jak się za to zabrać - Jak zaszyć funkcję ciągłą w programie?

To jest najbardziej skomplikowana część zadania:

double funkcja_zaszyta_w_programie(double x) { return x*x; }
0

Opisz co to dokładnie ma robić, jakie parametry ADC odwzorować i co potem robić z danymi. Ale generalnie - nie za bardzo można zrobić cokolwiek poza zagęszczeniem wejścia o wiele bardziej w stosunku do czasu próbkowania ADC. Pytanie czemu ta zabawa ma służyć, bo nie wiem, czy masz na tym zademonstrować funkcje okien, przecieki widmowe i inne DSPowe rzeczy, czy odwzorować DNL i INL przetwornika, albo np. pokazać dynamikę układu track-and-hold. Bo "symulator ADC" to potwornie szerokie pojęcie.

0

Mam zrobić symulator i zbadać jak działa dla 3 funkcji(np sin, cos, sin*cos) w zależności od parametrów(rozdzielczość,okres próbkowania,..)

Efektem mają być ilustracje w gnuplocie przedstawiająca próbkowanie sygnału.

Możesz to troszkę rozjaśnić?: "nie za bardzo można zrobić cokolwiek poza zagęszczeniem wejścia o wiele bardziej w stosunku do czasu próbkowania ADC"

0

Nie wiem czy tutaj potrzebny jest "symulator ADC". Równie dobrze możesz zrobić coś w stylu:

std::vector<double> signal;
  
  for (i = 0; i < nsamples; ++i) {
    signal.push_back(sin(i*2*M_PI*sineFreq/samplingFreq));
  } 

Czy tam pakować wynik do struktury czas/wartość czy jak tam jeszcze inaczej to chcesz/widzisz. Mając coś takiego można już pokazać zależności między częstotliwością sygnału a częstotliwością próbkowania.

BTW - czemu C++ a nie Scilab/Matlab/Octave, ew. Python? Tam się to robi o wiele szybciej.

EDIT: tzn. powyższe nie uwzględnia rozdzielczości ani innych parametrów, jedynie częstotliwości są brane pod uwagę. I mówiąc szczerze radziłbym trzymać się tego podejścia w temacie próbkowania, chyba, że masz modelować jakieś bardziej "fizyczne" zjawiska. Szczerze mówiąc myślałem o nich na poczatku stąd moje zdanie o "zagęszczeniu" dziedziny czasu.

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1