Generátor: Generovaní sinusového a trojúhelníkového průběhu

Taky je možné nemít pevný počet vzorků na periodu. Provede se to velmi jednoduše pomocí fázového akumulátoru. Funkce SINGEN() se volá s konstatní periodou a výstupní frekvence je lineárně zavislá na parametru f.

int SINGEN(int f)
{
static int A=0; // A je akumulator faze
const int SIN_LUT]={ }; // tabulka sinus x

A=A+f; // posun faze

return SIN_LUT[A];
}

Takhle jsem to napsal jen pro ilustraci, v praxi se počet členů tabulky omezí a adresuje se jen několika horními bity fázového akumulátoru.
Dále je pak vhodné upravit výstup D/A vhodnou dolní propustí.