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