Wie gibt man am besten über einen uC eine möglichst genaue Sinusschwingung aus? Wie kann ich davon wiederum viele Sinus mit unterschiedlichen Amplituden übereinander legen? Hat jemand ein (anschauliches) Beispiel? Vielen Dank!
frager schrieb: > Wie gibt man am besten über einen uC eine möglichst genaue > Sinusschwingung aus? Am besten mit einem entsprechend potenten Rechenknecht und einem DAC mit hoher Auflösung. Zu allgemein? Dann sag doch mal genauer, wofür du das brauchst?
frager schrieb: > Wie gibt man am besten über einen uC eine möglichst genaue > Sinusschwingung aus? Was ist den "möglichst genau? Ich hab das die Tage erst gemacht mit ner PWM und nem Tiefpass dahinter. frager schrieb: > Wie kann ich davon wiederum viele Sinus mit unterschiedlichen Amplituden > übereinander legen? Wie man es mit allen anderen Signalen macht: Einfach überlagern. frager schrieb: > Hat jemand ein (anschauliches) Beispiel? Was willst du denn genau machen? Das ist sinnvoller als hier ein Beispiel zu posten, dass deinen Anforderungen nicht gerecht wird.
>Re: uC Sinus DAC
Der verstümmelte Titel soll wahrscheinlich heißen:
"Sinus mit uC für einen DAC" nehme Ich an.
Für moderate Anwendungen reicht eine vorberechnete Tabelle, für genauere
Anwendungen nehmen wir den Sinus-CORDIC. Wikipedia weiß mehr.
frager schrieb: > Wie gibt man am besten über einen uC eine möglichst genaue Sinusschwingung aus? DDS > Wie kann ich davon wiederum viele Sinus mit unterschiedlichen Amplituden > übereinander legen? Mehrere Phasenakkumulatoren bauen und deren Zugriffe in die Sinustabelle mit den entsprechenden Lautstärken addieren. > Hat jemand ein (anschauliches) Beispiel? http://interface.khm.de/index.php/lab/interfaces-advanced/arduino-dds-sinewave-generator/
>Wie gibt man am besten über einen uC eine möglichst genaue >Sinusschwingung aus? So:
1 | void setup() |
2 | {
|
3 | }
|
4 | |
5 | void loop() |
6 | {
|
7 | float phase=0; |
8 | int amplitude=256; |
9 | int x=amplitude/2*sin(phase)+amplitude/2; |
10 | phase+=0.0001; |
11 | if(phase>2*PI)phase-=2*PI; |
12 | analogWrite(A0,x); // oder irgendein DAC |
13 | delay(10); |
14 | }
|
> viele Sinus mit unterschiedlichen Amplituden
z.B. uC mit 4x 12-bit DAC für 1.50 EUR: EFM8LB1 QFP32
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.