Jak wyszukać sinus różnych częstotliwości z tabeli przeglądowej o ustalonej wielkości?
Próbkuję falę sinusoidalną przy 48 kHz, zakres częstotliwości mojej fali sinusoidalnej może zmieniać się od 0 do 20000 Hz z krokiem około 100 Hz. Używam metody tabeli przeglądowej. Dlatego generuję 4096 próbek dla fali sinusoidalnej dla 4096 różnych faz. Myślę, że ogólną ideą tego jest zwiększenie rozmiaru kroku i użycie różnych rozmiarów kroku dla różnych frequncy. Robię więc następujące czynności (pseudo kod). Ale nie jestem pewien, jak rozmiar kroku będzie związany z częstotliwością, którą chcę wygenerować próbki sinusoidy? Na przykład, jeśli moja częstotliwość wynosi 15000 Hz, jaki byłby rozmiar kroku, który muszę przejść? Czy mój rozmiar próbki (4096) jest za niski?
// Pseudocode
uint16_t audio_sample[4096] = {...};
NSTEP = freq; //???How is the step size going to be related to the freq here
for(int i = 0; i < 4096; i = i+NSTEP)
{
sine_f(i) = audio_sample[i];
}
Z góry dziękuję.