Hallo, ich möchte ein Audio Signal digitalisieren und als PWM über einen Class-D Verstärker wiedergeben. Deshalb so, weil ich die Kosten und den Platz drastisch einsparen muß. So nun wird ein Signal ja laut diversen Empfehlungen mit der 4fachen Samplerate (Analog zu PWM) gespeichert. Also bei 8kHz mit 32kHz. Wie speicher ich nun die Informationen (Datensignal) ab? Das ist ja wesentlich mehr als beim normalen Samplen. Wenn ich nun 32x bei einer Sinuswelle die Information vom PWM speicher mit 8 Bit, dann habe ich ja 32 Bytes gegenüber 2 Bytes bei der "normalen" Version. Verstehe ich da was falsch? Grüsse, Philipp
Mit einem Class-D-Verstärker kannst du nur analoge Signale wiedergeben. Für PWM-Signale reicht eine Schaltendstufe mit Filterung.
ArnoR schrieb: > Mit einem Class-D-Verstärker kannst du nur analoge Signale wiedergeben. > Für PWM-Signale reicht eine Schaltendstufe mit Filterung. Lies nochmal die Frage... deine Antwort geht ein wenig daran vorbei. @Phillip: Das Stichwort das du suchst lautet "Kompression". - gerd
Also ich hab noch etwas nachgedacht. Werden die Daten für die Ausgabe als PWM eigentlich anders abgespeichert oder erfolgt die Berechnung der PWM erst bei der Ausgabe? Bei einem MP3 Player sind die Daten nach der MP3 Decodierung ja auch als Samples vorhanden. Bei eine 4kHz Sinuswelle habe ich bei 8kHz Sampling eigentlich nur 2 Samples. Bei der Wiedergabe als PWM (über einen Class-D) ist das PWM Signal aber fast unbrauchbar - funktioniert das überhaupt?
Dein (Class-D-) PWM-Signal muss VIEL Schneller takten, ×4 Reicht da nicht, eher so richtung ×100. Da macht es auch keinen Sinn, die einzelnen Takt-Einschaltdauern zu speichern. Taste dein Eingangssignal mit z.B. 32kHz ab. Speicher die Werte. (ggfs komprimiert) Beim Abspielen: Zwischen den gespeicherten Werten interpoliern, daraus PWM mit z.B. 125kHz erzeugen, die auf H-Brücke geben, Lautsprecher dazwischen.
Kommerzielle Class-D Verstärker werden nach wie vor nicht per PWM angesteuert, sondern mit einem analogen Eingangssignal. Die PWM wird intern gemacht.
Sebastian schrieb: > Kommerzielle Class-D Verstärker werden nach wie vor nicht per PWM > angesteuert, Naja, wenn man Class-D als Verstärkerart sieht und nicht als Produktbezeichnung, wie sie gern vom Marketing genutzt wird, dann ist ein PWM-Signal schon das korrekte Eingangssignal. Also in diesem Sinne waren hier keine falschen Aussagen gemacht worden. - gerd
Also im Grunde möchte ich mit einem Cortex-M3 das auf einem ADC Eingang liegende Audiosignal sampeln, intern im Flash speichern (habe 384KB) und dann auf einem Pin ausgeben (PWM). Über einen RC bzw. LC Filter an den OPAmp und auf einen 32 Ohm Lautsprecher ausgeben. Also die Samplingdaten werden roh (ähn. WAV) im Flash abgelegt. Wie konvertiere ich die in die PWM? Im Grunde genommen ist der "Puls" zur "Pause" wie die Abtastzeit zur Steigung des Signals. Wird in der Realität hier wirklich eine Interpolierung durchgeführt? Angenommen ich habe 2 Samples auf je 100%max und 100%min vom Signal, dann wäre die Puls-Pause wie? Ist 0 beim Signal eigentlich dann 50:50 beim PWM? Viele Fragen und ich Google schon den ganzen Tag :-(
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.