Hi! Ich würde mir zu Versuchszwecken gerne einen Funktionsgenerator basteln der mir Sinusfrequenzen von ka.. 0.1Hz bis ~25khz zur Verfügung stellt. Nun hab ich aber mal eine Frage an da nachgeschaltete RC-Glied. Muss das bei 25khz nicht völlig anders Dimensioniert werden als bei 1Hz? Da vergeht ja eine viel längere Zeit zwischen einem Sample als bei 25khz. Ist es empfehlenswerter für Recheck, Dreieck, Sägezahn und Sinus eher ein analoges Funktionsgenerator-IC zu verwenden und einfach einen Frequenzzähler als Anzeige zu nehmen? mfg PoWl
Also die taktrate mit der du von deinem DAC neue Analogwerte auf den Ausgang gibts bleibt ja gleich. Es vergeht also nicht mehr Zeit zwischen den Samples. (es sei denn du macht das mit einstellbarer Frequenz). Was sich aber aendert, ist der "Sprung" in der Ausgangsspannung. Bei einem 1Hz Sinus hat sich die Sollausgangsspannung nur wenig zwischen zwei Samples geaendet, bei einem 24kHz Sinus schon mehr. D.H. bei hoher Frequenz sind die Stufen zwischen den einzelnen Samples deutlicher Ausgepraegt. Das wiederum heisst, dass du mehr Oberwellen hast, also nicht nur den gewnuenschten Sinus. Bei langsamer Frequenz hast du weniger Oberwellen. Das haengt aber auch von der Auflaesung deines DACs und der taktfrequenz ab. Bei langsamem Takt kann es sein, dass du direkt mehrer bits aendern musst. Auf diese Fragen mit "empfiehlt sich" kann man immernur sagen: kommt drauf an. Willst du nur schnell was machen? Dann ja. Willst du dir nen Frequenzgenerator bauen, der Auch komische Signalformen kann, dann bleib bei DDS. Bei hohen Frequenzen sind analoge ICs natuerlich besser. Wer will schon 30Mhz mit nem DAC machen..
Wie hast du dein Schema denn gemeint? > Was sich aber aendert, ist der "Sprung" in der Ausgangsspannung. Bei einem > 1Hz Sinus hat sich die Sollausgangsspannung nur wenig zwischen zwei > Samples geaendet, bei einem 24kHz Sinus schon mehr. Was du meinst, ist also, dass ich eine konstante Samplerate und eine hohe Auflösung habe und bei 1Hz diese volle Auflösung ausnutze, was dann entsprechend lange dauert, wobei ich bei 24kHz etliche Zwischenschritte weglasse und somit eine höhe Frequenz erhalte. Hm naja wie gesagt, die Frequenz soll variablen einstellbar sein. Also die Zeit für ein Sample (bzw. "DDS-Takt") ändert sich. Die Samplerate bestimmt die Frequenz und die Stufen sind immer gleich groß (bedingt durch die konstante Auflösung des DAC von 8 Bit). Beim Sinus ist es ja noch so dass es in der Nähe des Scheitelpunkts häufiger vorkommt dass sich erst nach mehreren Samples ein Bit ändert. Im Nulldurchgang beträgt die Steigung des Sinus 1, was bedeutet, dass sich bei 8 Bit Auflösung alle 1/256 Perioden die Spannung um eine Stufe ändert. Bei 1Hz dauert so eine Periode 1 Sekunde. D.h. ich habe für knapp 4ms die gleiche Spannung und bräuchte ein entsprechend langsames RC-glied. Bei höheren Frequenzen ist die Zeit zwischen dem Wechsel einer Stufe also entsprechend kürzer. Das gleiche RC-Glied wie bei 1Hz würde hier meine schöne Wechselspannung bis zur Gleichspannung glattglätten.. Zu Signalformen: Pulse wäre auch interessant um die Impulsantwort von Audioanwendungen auszutesten. Oder am PC generierte Signalformen. Ist aber eignetlich nur Spielerei und nicht wirklich dringend Notwendig. Sägezahl möchte ich aber gerne.
ach so, ich hatte das so verstanden, dass dein Takt konstant ist, und die Frequenz des generierten Sinus sich nur aendern soll. Ich persoenlich finde es praktischer immer eine hohe Samplerate zu nehmen. Das baut sich leicht, musst in deinem uC keine Timerintervalle aendern. Was du sagst ist richtig. Bei varialem Takt filter ter Tiefpass mal besser, mal schlechter. Da hilft auch ein fester, hoher Takt. Denn die Taktfrequenz wird, in welchem Masse auch immer, in deinem Ausgangssignal vorkommen. Wenn der Takt hoch ist laesst sich das einfacher filtern. Signalformen: bedenke, dass du keinen Puls bekommen wirst, wenn du einen Filter am Ausgangs hast! Je niedriger die Frequenz des Filters, desto weniger bleibt vom Puls uebrig. Du musst immer bedenken, dass alle nicht-sinusfoermigen Funktionen Oberwellen jenseits der Grundfrequenz haben. Wenn du nur einen Sinus machen willst kannst du den Filter kurz oberhalb der Sinusfrequenz ansetzen. Alle anderen Funktionen brauchen da mehr Luft nach oben. Sonst sieht so ein Dreieicksignal auch nur noch aus wie ein Sinus mit Dellen. Auch von den steilen Flanken eines Saegezahns bleibt nach einem Filter nicht mehr viel uebrig. Man kann sich dann ueberleben, ob man den Filter nicht weglaesst, um auch schnelle Spruenge moeglich zu machen, un dafuer die Aufloesung des DAC erhoeht. So kann man dann den Ausgang dem Wunschsignal besser angleichen.
ok, bei maximaler frequenz von 24kHz kann man eh nicht mehr jeden Punkt samplen.. bei 16Mhz Takt hätte ich da nur noch 2,4Takte je Sample
Das Thema wird doch komplizierter als ich dachte, da hast du Recht das gibt Probleme mit dem Timing. Wenn ich allerdings eine hohe Auflösung verwende, kriege ich Probleme mit meinem µC. Der hat nicht soviel Speicher als dass ich da ellenlange Sinustabellen einspeichern könnte. Mehr als 10 Bit werden da nicht drin sein. Noch dazu soll die Frequenz möglichst fein einstellbar sein. Für < 100 Hz ist es z.B. Sinnvoll dass die Genaugkeit bis auf 0.5Hz, für <10Hz bis auf 0.1Hz runtergeht. Ich bräuchte demnach noch eine Methode um für jede beliebige Frequenz zu berechnen, wie viele "Samples" ich ausblende um die Periodenlänge zu verkürzen. Zwischen vielen Frequenzen wird es dann auch gar keinen Unterschied geben da die Anzahl an ausblendbaren Samples durch die Auflösung begrenzt ist. Wie wäre es, wenn ich einen analogen Funktionsgenerator mit einem DSS kombiniere? Als Taktquelle könnte ja ein AVR dienen, somit wär durch den die Frequenz eindeutig festgelegt. Eine Analogschaltung könnte aus dem Rechtecksignal des AVRs (ist das ein sauberes Rechtecksignal?) dann Dreieck und Sinus erzeugen. Allerdings fehlt mir dann immernoch der Sägezahn :-( lg PoWl
Wenn du eine Analogschaltung baust kannst du dir den Saegezahn aus einem Integrierer bauen, der eine konstante Spannung integriert. Wenn der eine bestimmte spannung erreicht hat schliesst du dann den Kondensator mit einem Mosfet kurz und die Integration beginnt von neuem. Jenachdem wie dreieckig die Rampe sein soll musst du auch nicht einen INtegriere nehmen, sondern kannst einen RC Tiefpass verwenden. Die Spannung ueber dem C sieht zu beginn recht rampenfoermig aus. Eine 25kHz aus einem uC sieh eigentlich recht gut aus. Das ist keine Frequenz die der heutigen Technik Probleme machen. Die Flanken sollten steil sein. Kann aber sein, dass du etwas ringing bekommst. Haengt aber davon ab wie du das aufbaust.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.