Gast
#761358
Hallo,
ich habe anscheinend irgendwo ein Denkfehler. Ich will mittels DDS ein
Sinussignal erzeugen und komme mit dem Berechnen der Sprungweite nicht
zurecht. Folgender Ansatz:
float sinustab[1000];
///Sinustabelle füllen
void sinusinit()//Tabelle mit Werten füllen
{
for(i=0;i<1000;i++)
{
sinustab[i]=sin(2*pi*i/1000);
}
//Funktion im DA Wandler
if (Wandler==ready) //Wenn der Wandler fertig ist für den nächsten Wert
{
int i;//
x=sinustab[(i+sprungweite)%1000];//Modulo 1000 wegen 1000 Werten
}
Wie berechne ich die Sprungweite abhängig von der gewünschten Frequenz?
wenn man eine Wandlerfrequenz von 10 kHz annimmt und einen Sinus mit
10Hz ausgeben will muss man einfach jeden 10. Wert ausgeben. Das würde
bedeuten:
Sprungweite=Wandlerfrequenz/Anzahl der Abtastwerte
Das ist zu einfach und außerdem fehlt die Ausgabefrequenz. Ist bestimmt
ganz einfach nur komm ich momentan nicht drauf.
Viele Grüße
Horst