насколько я понял вы сохраняете значения опорных сигналов в таблице? Может лучше пойти другим путем: Для каждого из 16 сигналов сохраняете 16 значений счетчика cx и приращения dx каждое dx вычисляйте так
dx = (fx*max)/fs где fx - частота сигнала, max максимальное значение счетчика для 8 бит это 0xFF, 16 бит 0xFFFF итд. fs - частота выборок.
на каждой выборке увеличиваете значение счетчика соотв частоты на dx: cx+=dx, тогда старший бит cx и будет табличным значением синуса. Косинус получаете вычитанием из cx max/4.
Этот метод получения опорных сигналов подробно описан в примере DTMF генератора от атмела.