Witam,
Mam problem ze zrozumieniem działania FFT w c++ z biblioteki fftw3.
Otóż wkładam do funkcji sinusa i nie wiem dokładnie jak mam go wyświetlić w oknie w Qt.
Wykres x: czas, y: amplituda.
Oto jak to robię, ale nie podoba mi się to co pokazuje mi się w oknie.
Pytanie o poprawność działania umieszczone w kodzie.
int f = 100; //częstotliwość
int N = x/f; //ilość próbek x-czas trwania sygnału
QSplineSeries *FFTW = new QSplineSeries;
QSplineSeries *FFTW1 = new QSplineSeries;
fftw_complex signal[N];
fftw_complex result[N];
fftw_plan plan = fftw_plan_dft_1d(N, signal, result, FFTW_FORWARD, FFTW_ESTIMATE);
for(int i=0; i<N; i++)
{
signal[i-54][0] = sinus[i]; //RE sinus[i] to tablica sinusa
signal[i-54][1] = 0.0; //IM
}
fftw_execute(plan);
for(int i=0; i<N; i++)
{
FFTW->append(1/f*i, result[i][0]); //czy tak poprawnie wyświetlać wykres otrzymanego wyniku FFT?
}
fftw_destroy_plan(plan);
Robiłem kiedyś FFT w matlabie, ale tam od razu wypluwał wynik, który można było wyświetlić, a tutaj po prostu nie wiem jak to zrobić.