Как найти синусы разных частот из справочной таблицы фиксированного размера?

Я дискретизирую синусоидальную волну на частоте 48 кГц, частотный диапазон моей синусоидальной волны может варьироваться от 0 до 20000 Гц с шагом около 100 Гц. Я использую подход таблицы поиска. Таким образом, я генерирую 4096 образцов для синусоидальной волны для 4096 различных фаз. Я думаю, что общая идея заключается в том, чтобы увеличить размер шага и использовать разные размеры шага для разных частот. Поэтому я делаю следующее (псевдокод). Но я не уверен, как размер шага будет связан с частотой, на которой я хочу генерировать выборки синусоидальной волны? Например, если моя частота составляет 15000 Гц, какой размер шага мне нужно пройти? Мой размер выборки (4096) слишком мал для этого?

 // 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];
 }

Заранее спасибо.

Ответы на вопрос(5)

Ваш ответ на вопрос