Forum: Mikrocontroller und Digitale Elektronik Pwm als Audio speichern


von Pio (Gast)


Lesenswert?

Hi, ich bin noch neu bei Mikrocontrollern und frage mich, ob man Pwm als 
Audio Datei abspeichern kann. Vlt. hat das jmd. schon einmal 
ausprobiert?

Liebe Grüsse,

Pio

von Wolfgang (Gast)


Lesenswert?

Pio schrieb:
> Hi, ich bin noch neu bei Mikrocontrollern und frage mich, ob man Pwm als
> Audio Datei abspeichern kann.

Audio ist gewöhnlich gleichspannungsfrei, PWM ist es nicht.
Abgesehen von der Bandbreitet kommt es also drauf an, welchen Sinn und 
Zweck du damit verfolgst.

von Pioo (Gast)


Lesenswert?

Ich hätte gern zwei Servos verfahren über den linken und den rechten 
Kanal.

Liebe Grüsse

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Gehen tut das schon, wenn du nur genügend Bandbreite spendierst, damit 
die Flanken des Rechteck steil genug aufgezeichnet und wiedergegeben 
werden.
Da du zwei Servos hast, solltest du ein Stereosignal verwenden. Wenn du 
einen Dekoder auf der Seite der Servos hast, reicht auch ein 
Summensignal. Das kann man an der Schüler/Lehrerbuchse einiger 
Modellfernbedienungen abzapfen.
Damit die Rechtecke noch zu erkennen sind, eher mit 44kHz samplen als 
mit 22kHz.
Und du musst das Signal bei Wiedergabe wieder auf einen Pegel anheben, 
den die Servos erkennen. Und das Signal muss 0V als Basis haben und dann 
eben auf mindestens 3-5V gehen. Es darf also nicht einfach AC gekoppelt 
werden.

: Bearbeitet durch User
von Pioo (Gast)


Lesenswert?

Was meinen Sie mit Bandbreite?

Folgendes, kann ich nicht folgen:
Damit die Rechtecke noch zu erkennen sind, eher mit 44kHz samplen als
mit 22kHz.
Und du musst das Signal bei Wiedergabe wieder auf einen Pegel anheben,
den die Servos erkennen.

von Pioo (Gast)


Lesenswert?

Ist mit Bandbreite die Auflösung der Audiodatei gemeint?

Und du musst das Signal bei Wiedergabe wieder auf einen Pegel anheben,
den die Servos erkennen.

Ist damit die Lautstärke meiner Audiodatei gemeint?


Damit die Rechtecke noch zu erkennen sind, eher mit 44kHz samplen als
mit 22kHz.

Was meinen Sie damit?

von Claus (Gast)


Lesenswert?

Matthias S. schrieb:
> Damit die Rechtecke noch zu erkennen sind, eher mit 44kHz samplen als
> mit 22kHz.

Modellbauservos werden mit 50 Hz bei Pulsbreiten zwischen 0.5 und 2.5 ms 
von  angesteuert ...

von STK500-Besitzer (Gast)


Lesenswert?

Was soll das werden?
Kein Servo reagiert auf eine Frequenz von 22kHz oder 44kHz (eher so 
50Hz).
Ein digitales Signal mit der Auflösung zu speichern ist 
Platzverschwendung.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Pioo schrieb:
> Damit die Rechtecke noch zu erkennen sind, eher mit 44kHz samplen als
> mit 22kHz.

Audiodateien werden mit einer Samplerate eingelesen und wiedergegeben. 
Das sind die 'Proben', die pro Sekunde genommen werden. Eine Samplerate 
von Stereo/44kHz (meist 44,1 kHz) bedeutet, das pro Sekunde von jedem 
Kanal 44100 Abtastungen gespeichert werden. Je höher die Samplerate, 
umso besser ist die Qualität der Aufzeichnung.
Da Servosignale steilflankige Rechtecke sind, ist zur Erhaltung der 
steilen Flanken eine hohe Abtastrate sinnvoll.

Pioo schrieb:
> Und du musst das Signal bei Wiedergabe wieder auf einen Pegel anheben,
> den die Servos erkennen.
>
> Ist damit die Lautstärke meiner Audiodatei gemeint?

Eher die Lautstärke der Wiedergabe. So ein Servosignal erfordert einen 
Pegel zwischen 0 und mindestens etwa 3-4V, damit die Servos das Signal 
erkennen.

von NichtWichtig (Gast)


Lesenswert?

Claus schrieb:
> Matthias S. schrieb:
>> Damit die Rechtecke noch zu erkennen sind, eher mit 44kHz samplen als
>> mit 22kHz.
>
> Modellbauservos werden mit 50 Hz bei Pulsbreiten zwischen 0.5 und 2.5 ms
> von  angesteuert ...

Kommt drauf an, manche können auch deutlich schneller.

Jedoch kann keine Audiokarte DC und der Vorschlag schnell zu sampeln ist 
für die Flanken schon förderlich. Darf auch 96 oder 192KS sein.
Zudem ist ja die Auflösung eben bei der 1.5ms Pulse zu betrachten.
Da möchte man das Servo ja in feinen Schritten verfahren, als mal 1.51ms 
..1.504ms, etc pp

von Pioo (Gast)


Lesenswert?

Vielen lieben Dank. Ihr habt mir sehr geholfen.

Gruss,

Pio

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Ich habe übrigens nicht behauptet, das das Vorhaben sinnvoll ist. Ich 
programmiere mir einen MC, wenn ich sowas brauchen würde.

von HildeK (Gast)


Angehängte Dateien:

Lesenswert?

Matthias S. schrieb:
> Da Servosignale steilflankige Rechtecke sind, ist zur Erhaltung der
> steilen Flanken eine hohe Abtastrate sinnvoll.

Meiner Einschätzung nach ist das nicht so wichtig. Eher wichtig ist, 
dass die untere Grenzfrequenz niedrig genug ist; wie schon gesagt wurde: 
50Hz ist die Wiederholrate des Telegrams.
Im Anhang ein in einer DAW gefiltertes Beispiel mit 3kHz Bandbreite. Der 
Einfluss ist gering, klar, die Flanken werden weniger steil. Das 
Ausgangssignal eines Audiowiedergabegerätes muss man aber eh 
aufbereiten, z.B. mit einem Komparator.

von c-hater (Gast)


Lesenswert?

Pioo schrieb:

> Ist mit Bandbreite die Auflösung der Audiodatei gemeint?

Die zeitliche Auflösung (AKA: Samplerate) bestimmt hier die mögliche 
Bandbreite. Zumindest zum Teil.

> Und du musst das Signal bei Wiedergabe wieder auf einen Pegel anheben,
> den die Servos erkennen.
>
> Ist damit die Lautstärke meiner Audiodatei gemeint?

Nö. Nicht die "Lautstärke" der Datei ist gemeint, sondern der Pegel, mit 
der der Kram bei der Wiedergabe letztlich beim PWM-Controller ankommt.

Übrigens irrt Matthias S. in diesem Zusammenhang etwas. 3.3V-fähige 
PWM-Controller (heute die Mehrheit) lassen sich problemlos aus eine 
üblichen Line-Ausgang füttern und auch die meisten offiziell nur 
5V-fähigen.

Schwierigkeiten (und die Notwendigkeit zur Anhebung des Pegels) sind 
allerdings zu erwarten, wenn man keinen Line-Ausgang verwendet, sondern 
einen Kopfhörer-Ausgang.

von Claus (Gast)


Lesenswert?

Pioo schrieb:
> Damit die Rechtecke noch zu erkennen sind, eher mit 44kHz samplen als
> mit 22kHz.

Im 35MHz-Fernsteuer-Band wird ein Kanalraster von 20kHz benutzt, mit 
einem Frequenzhub von 4kHz. Und da passt dein Impulssignal rein, und das 
schon seit zig Jahrzehnten!

Mit 44.1kHz gesampelte Audiodateien soll sich wohl unverstandenerweise 
auf die Compact Disk 16-bit LPCM Stereo beziehen (vgl. RedBook 1980) - 
und das ist eben eine total andere Hausnummer!

So was einem Anfänger vorzuschlagen, dabei penetrant jeglicher Erklärung 
aus dem Weg zu gehen, ist für mich sehr weit unter der Gürtellinie.

just my 2ct

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Claus schrieb:
> So was einem Anfänger vorzuschlagen, dabei penetrant jeglicher Erklärung
> aus dem Weg zu gehen, ist für mich sehr weit unter der Gürtellinie.

Was quatschst du denn für einen Unsinn? Der TE fragt ausdrücklich nach 
Audiodateien und nicht nach HF Übertragung von Summensignalen (die 
übrigens erst im Empfänger so konditioniert werden, das sie wieder 
steilflankig werden).
Er möchte Servo-PWM in Audiodateien speichern und dazu braucht es nun 
mal eine gewisse Signaltreue, die nur mit höherer Samplerate gegeben 
ist. Ob das sinnvoll ist, sei dahingestellt.
Du solltest auch mal über deine Attitude nachdenken.

Claus schrieb:
> unverstandenerweise

Du hast es nicht verstanden. Und da hilft auch keine noch so tolle 
Erwähnung von Redbook oder was auch immer.

von testuser (Gast)


Lesenswert?

Matthias S. schrieb:
> Da Servosignale steilflankige Rechtecke sind, ist zur Erhaltung der
> steilen Flanken eine hohe Abtastrate sinnvoll.

Wieso? Man kann schlicht den Wertebereich voll nutzen. Also immer 
zwischen zwei festen Werten (Maximum und Minimum) wechseln, eben ja nach 
PWM. Quasi eine 1 Bit PCM.

STK500-Besitzer schrieb:
> Was soll das werden?
> Kein Servo reagiert auf eine Frequenz von 22kHz oder 44kHz (eher so
> 50Hz).
> Ein digitales Signal mit der Auflösung zu speichern ist
> Platzverschwendung.

Du verwechselst Abtastrate mit Auflösung. Bei der Auflösung könnte man 
hier auf 1 Bit runtergehen.

von Harald W. (wilhelms)


Lesenswert?

Matthias S. schrieb:

> Da Servosignale steilflankige Rechtecke sind, ist zur Erhaltung der
> steilen Flanken eine hohe Abtastrate sinnvoll.

Nein, das ist nicht so wichtig. Die steilen Flanken kann man bei der
Wiedergabe problemlos mit einem nachgeschalteten Komparator wieder
herstellen. Der kann ausserdem auch AC wieder in DC wandeln. Da
PWM-Signale für Modellbauservos recht langsam sind, wäre eine hohe
Abtastrate auch eine ziemliche Verschwendung von Speicherplatz.
,

: Bearbeitet durch User
von Rolf M. (rmagnus)


Lesenswert?

testuser schrieb:
> Matthias S. schrieb:
>> Da Servosignale steilflankige Rechtecke sind, ist zur Erhaltung der
>> steilen Flanken eine hohe Abtastrate sinnvoll.
>
> Wieso? Man kann schlicht den Wertebereich voll nutzen. Also immer
> zwischen zwei festen Werten (Maximum und Minimum) wechseln, eben ja nach
> PWM. Quasi eine 1 Bit PCM.

Zu einem Audio-ADC gehört auch ein Alias-Filter, dessen Grenzfrequenz 
unterhalb der Hälfte der Abtastrate liegt. Das begrenzt die  mögliche 
Flankensteilheit des Signals.

Harald W. schrieb:
> Da PWM-Signale für Modellbauservos recht langsam sind, wäre eine hohe
> Abtastrate auch eine ziemliche Verschwendung von Speicherplatz.

Es geht aber nicht nur darum, ob das Signal da ist oder nicht, sondern 
die Impulsdauer muss auch erkannt werden. Das geht nur dann fein 
abgestuft, wenn auch entsprechend of gesampelt wird. Aus dem Grund muss 
ja auch die Basisfrequenz der PWM-Erzeugung sehr viel höher sein als die 
PWM-Frequenz selbst.
Oder anders gesagt: Bei 44,1 kHz kann man schon nicht mehr sauber 
unterscheiden, ob der Impuls jetzt 1,5 ms oder 1,51 ms lang war, weil 
nur alle ca. 22 µs gesamplet wird.

: Bearbeitet durch User
von testuser (Gast)


Lesenswert?

Rolf M. schrieb:
> Zu einem Audio-ADC gehört auch ein Alias-Filter, dessen Grenzfrequenz
> unterhalb der Hälfte der Abtastrate liegt.

Korrekt. Aber der TO hat doch überhaupt nicht geschrieben, dass er eine 
PWM mit einem ADC irgendwie digitalisieren will. Eher im Gegenteil:

Pioo schrieb:
> Ich hätte gern zwei Servos verfahren über den linken und den rechten
> Kanal.

Das klingt so, dass er sich die PWM am PC erzeugen und als Audiodatei 
abspeichern will. Die will er dann abspielen und so die PWM ausgeben.

von Rolf M. (rmagnus)


Lesenswert?

testuser schrieb:
> Das klingt so, dass er sich die PWM am PC erzeugen und als Audiodatei
> abspeichern will. Die will er dann abspielen und so die PWM ausgeben.

Ob das Signal nun aufgezeichnet oder künstlich erzeugt ist, ändert am 
Rest aber auch nichts.

von Testuser (Gast)


Lesenswert?

Doch klar. Wenn man es künstlich generiert, dann mann man von einem zum 
nächsten Sample von minimalem Wert auf maximalen Wert springen. Das 
erlauben die ADCs eben wegen dem AAFilter nicht.

von Rolf M. (rmagnus)


Lesenswert?

Testuser schrieb:
> Doch klar. Wenn man es künstlich generiert, dann mann man von einem zum
> nächsten Sample von minimalem Wert auf maximalen Wert springen.

Nur wenn dem Ausgang das Rekonstruktionsfilter fehlt.

von Peter D. (peda)


Lesenswert?

Pio schrieb:
> ob man Pwm als
> Audio Datei abspeichern kann.

Warum sollte man sowas verrücktes tun?
2 Byte alle 20ms speichern reicht doch völlig.

von Nautilus (Gast)


Lesenswert?

Signal als Manchestercode speichern. Das haben die Heimcomputer schon 
vor über 40ig Jahren gemacht.

von Jobst M. (jobstens-de)


Lesenswert?

Nautilus schrieb:
> Signal als Manchestercode speichern. Das haben die Heimcomputer schon
> vor über 40ig Jahren gemacht.

Ja, aber damals ist man noch respektvoll mit Speicherplatz umgegangen. 
Heute werden Texte als Bild gespeichert ...

Gruß
Jobst

von Simon (Gast)


Lesenswert?

Zwei Servos lassen sich ohne Probleme mit den zwei Stereokanälen 
ansteuern. Eventuell sollte man noch einen HC14 als Pegelkonverter 
dazwischen schalten.

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
Noch kein Account? Hier anmelden.