PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Funktionsgenerator mit frei einstellbarer Kurvenform



Crazy Harry
28.11.2007, 22:04
hallo @ all,

gibt es ein gerät, bei dem man (z.b. mittels einer grafischen pc-software) eine kurvenform frei "zeichnen" kann und diese perodisch ausgeben ? also eine art funktionsgenerator.

wenn ja - wie heißt sowas ?

gruss
harry

tholan
29.11.2007, 06:23
Hi,
wenns nur den Audiobereich abdecken soll, nennt sich sowas "Sampler".
Da kannst Du Dir mit den meisten Audioeditoren schon selbst Wellen basteln.
Wenn Du was schnelles brauchst, dann google mal nach "DDS"
(Direct Digital Synthesis).
Infos und Links gibts bei Wikipedia, Stichwort: Funktionsgenerator.

shaun
29.11.2007, 18:07
DDS steht und fällt mit der Periodizität und Stetigkeit eines Signals, nur bei solchen kann man durch variieren des Abtastzeitpunktes (Stichwort:Phasenakkumulator) die Frequenz beeinflussen. Eine arbiträre Kurvenform lässt sich direkt nicht mit einer DDS ausgeben, nur über den Umweg, dass eine frequenzagile DDS einen Zähler steuert, der wiederum ein ROM o.ä. mit der gespeicherten Kurvenform steuert. Dahinter dann einen DAC, ggf noch filtern und fertig ist das Signal.
Die Frage suggeriert allerdings, dass zwischen "Klicken und fertig" bei meinem Vorschlag etwas viel Elektronik stattfindet ;)

SIGINT
29.11.2007, 18:42
@shaun: Harry hat doch von "periodisch ausgeben" gesprochen... wo ist also das Problem? Und meines Wissens noch muss das Signal für die DDS auch nicht stetig sein, man kann ja auch eine Rechteckschwingung mit einer DDS erzeugen. Für eine gute Qualität sollte man aber möglichst viele Werte in der Tabelle haben. Hier ist ne interesannte Seite:
http://www.myplace.nu/avr/minidds/index.htm
Mit diesem Prinzip hab ich keinen kleinen SID-Player gebastelt, der sich auch ganz ok anhört.

Gruß,
SIGINT

shaun
29.11.2007, 21:21
Sobald Du Unstetigkeiten oder genau genommen sogar eine von der Sinusform abweichende Funktion ausgeben willst, musst Du aber schlimmstenfalls und damit korrekter Weise dafür sorgen, dass in jeder Periode jeder mögliche Stützpunkt der arbitäreren Kurvenform einmal abgerufen wird. Das ergibt sich indirekt aus Deiner Forderung nach möglichst vielen Werten, allerdings ist es zwingende Voraussetzung. Die nutzbare Frequenz wird daher im Gegensatz der Sinus-DDS um Größenordnungen niedriger als fs/2 liegen.

Crazy Harry
02.12.2007, 19:27
herzlichen dank @ all .... auch wenn es meine frage nicht beantwortet :D

aber ich habe auf empfehlung WG 810 und WG 820 bei conrad "gefunden", bei denen 7 kurven frei definierbar sind bis in den MHz-bereich (was ich nicht brauche).

gruss
harry

PICture
02.12.2007, 22:12
Hallo Crazy Harry!

Wenn Du so ein Generator selber bauen willst, am einfachsten wird vom PC (über LPT) oder µC gesteuerter DAC (z.B. TDA7802) sein. Der TDA7802 mit 8 Bit ist 30 MHz schnell und kann eine biliebige Kurve bis 300 KHz mit einer Genauigkeit von 1% darstellen.

MfG

Crazy Harry
03.12.2007, 07:32
hallo PICture,

dazu fehlt mir das wissen eine passende pc-software zu schreiben.

gruss
harry

PICture
03.12.2007, 09:34
Hallo Crazy Harry!

Ich habe früher, noch unter DOS, ein PC in ASM programmiert, aber unter Windows XP kann ich das nicht mehr so wie damals machen.

Man kann aber das ganze auch mit Grafikdisplay (z.B. 128x160 oder 128x256 mit einem Kontroller) auf einem µC realisieren. Den Kursor kann man z.B. mit zwei Tasten (Achsenauswahl) und einem Mausrad/Drehgeber bewegen und die Punkte zuerst in RAM und wenn nötig, danach, die ganze Kurve in Flash speichern. Wenn man eine Seite des Speichers nimmt, kann man 1024 Punkte frei zeichnen.

Ich habe sowas änliches, aber für 8 Kanäle (nur Rechteck) mit GLCD 64x128 und PIC18F252 schon realisiert. Für eine beliebige Kurve mit einem Kanal auf dem AVR wird es sicher nicht viel schweriger und vom PC unabhängig.

Wenn Du auf die PICs umsteigst, kann ich Dir sicher mehr dabei helfen. :)

MfG

vajk
03.12.2007, 10:37
Tipp .. hol die einen günstigen Borlandcompiler .. das ist nicht so schwer wie es aussieht ... und PICs was ist der Vorteil von PICs ... ATmegas rulz :-)

PICture
03.12.2007, 10:48
Hallo vajk!

Dein Tipp finde ich sehr gut, aber ich habe bisher MASM benutzt und habe schon keine Lust wieder was neues lernen. Dann lieber schreibe ich es unter DOS und benutze dann alten Laptop, oder wenn ich Glück habe, läuft mein Program im DOS Modus sogar unter Windows XP. :)

Für mich ist ein PIC einfach sympatischer, habe schon vorher andere Prozessoren (wenn µC noch nicht gegeben hat) in ASM programmiert.

vy 73!

shaun
03.12.2007, 16:52
PIC/AVR, Linux/Windows, AMD/Intel, rot/grün, süß/sauer - jeder wie er es mag. Ich habe irgendwann '99 von MCS51 auf AVR umgeschwenkt und bin dabei geblieben, aber wenn ein Kunde PIC hat oder PIC will - meinetwegen.
Was die Windowsprogramme angeht: ich habe unter DOS auch teilweise in Assembler, größtenteils aber in C programmiert, inzwischen ist die Intelligenz und zeitkritische Seite bei mir in extene Hardware ausgelagert, daher "klatsche" ich meine Frontends inzwischen in Tcl/Tk zusammen. Aber auch hier - wenn ein Kunde Labview will, meinetwegen kriegt er auch das. Obwohl ich es hochnervig finde ;)