Forum: Mikrocontroller und Digitale Elektronik 1 bit DAC und signalverbesserung


von Lupin (Gast)


Lesenswert?

Hi,

Ich erzeuge per PWM ein audio signal, ich habe das ganze mal
aufgenommen und mir ist aufgefallen das man sogar die einzelnen pulse
noch erkennt (wird über einen 2mhz timer generiert). Nun will ich das
signal durch zusätzliche Beschaltung verbessern, was kann ich da alles
machen?

Ich brauch für einen 1 bit DAC ja einen widerstand, kondensator und
op-amp. Wie man das zusammenschalten muss hab ich schon raus gefunden
aber welche werte sollten die komponenten haben damit man am ende nicht
nur gemurmel hört oder das ganze keinen effekt hat? Was für einen op-amp
kann ich da verwenden (gibt es da überhaupt unterschiede)?

Bitte macht mir mal ein paar Vorschläge und vor allem mit teile-nummern
und Werten :)

Gibt es vielleicht schon fertige ICs die noch höhere qualität erreichen
können als eine eigene schaltung?

von Lupin (Gast)


Lesenswert?

Ach ja, ich hab das hier gefunden, das ist soweit ich das verstehe auch
ein 1 bit dac nur ohne op-amp:

http://www.elektronik-kompendium.de/sites/slt/0206172.htm

Wenn ich jetzt wüsste was die Grenzfrequenz sein muss könnte ich mir
die werte ja errechnen :)

von Unbekannter (Gast)


Lesenswert?

Ein einfaches RC-Glied wird bei wohl zu flach sein. Du wirst vermutlich
einen steileren Filter benötigen.

Wie hoch ist die Frequenz des PWM-Outputs? (Nicht die Frequenze mit dem
der PWM-Zähler gespeist wird)

von TravelRec. (Gast)


Lesenswert?

Du kannst alternativ einen Atmel mit integrierter PLL nehmen (Tiny26),
der kann dann High-Speed PWM, mit einer Ausgabefrequenz von 500kHz bei
8 Bit. Mit einem kleinen Kondensator und einem passigen Widerstand vor
einem OP bekommt man da schon seeehr schöne Audio-Signale.

von Lupin (Gast)


Lesenswert?

Der PWM zähler hat eine frequenz von 2 mhz, das signal ist 8 bit lang
also wird die Frequenz des PWM-Outputs bei (2000000 / 256) Hz = 7812,5
Hz liegen wenn mich nicht alles täuscht, was deutlich unter der 20khz
grenze ist :)

Das erzeugte signal hat ein deutlich hörbares piepsen im hintergrund,
erst wenn ich es auf 6 bit runter stelle kann man es nicht mehr hören
(dann liegt die Frequenz bei 31250Hz also über der 20khz grenze).
Soweit ich weiss sind alle Töne ünter 20khz wahrnehmbar und dadurch
habe ich dieses problem mit dem piepston :(

von Lupin (Gast)


Lesenswert?

den controller kann ich leider nicht wechseln.

von alex (Gast)


Lesenswert?

Du meinst wahrscheinlich nicht 2 mHz, sondern 2 MHz...

von TheMason (Gast)


Lesenswert?

hallo lupin,

das problem mit dem piepston wirst du nur umgehen können in dem du ein
relativ steilflankiges filter (4.-6.ordnung) dahinter schaltest, oder
deine pwm-frequenz vervielfachst.
wenn du eine pwm mit 7,8 kHz hast und deine pwm immer aktiv ist hast du
natürlich einen ton überlagert der bei 7,8 kHz liegt. wenn du deine
bit-anzahl reduzierst erhöhst du ja gleichzeitig die pwm-frequenz. das
führt dann bei 6 bit dazu das die frequenz bei 31kHz liegt und das hört
man eben nicht mehr.
ich habe auch mal eine pwm realisiert, allerdings in einem fpga. da war
meine pwm-frequenz 50MHz und meine sample-frequenz (also die frequenz
mit der ich die einzelnen werte ausgebe) liegt bei 48kHz (8-bit
auflösung). der filter ist bei mir 2. ordnung (das reicht bei solch
hohen frequenzen)

gruß
rene
gruß
rene

von Unbekannter (Gast)


Lesenswert?

Puh, da hast Du natürlich ein "kleines" Problem.

Könntest Du mit dem Kompromiss leben, und eine 7-Bit-PWM verwenden?
Dann wärst Du bei rund 15 kHz PWM-Frequenz.

Mit welcher Frequenz hast Du die Audio-Daten eigentlich gesammpelt?
Sind die Audio-Daten statisch vorberechnet oder im Flash etc.
abgelegt?

Wenn ja, könntest Du den -3 dB Punkt das Filter am PWM-Output nämlich
relativ tief legen, sogar etwas in die Audio-Daten hinein und die
Samples, bevor Du sie ins Flash ablegst, mit einem Invers-Filter
anheben, so dass nach dem Filter am PWM-Output noch Dein Signal
einigermaßen korrekt rauskommt. Du opferst damit eben auch wieder etwas
Dynamik bei der ganzen Sache.

Schreib' mal mehr Details zu Deinem Projekt. Also woher die
Audio-Daten kommen, wie sie gesampelt sind, was Du eigentlich vor hast
etc.

von Christoph Kessler (Gast)


Lesenswert?

Einfache LC-Tiefpassfilter kann man z.B. mit dem
Filterberechnungsprogramm von http://www.aade.com/filter.htm
berechnen.
das sind 4 oder 6 Bauteile, CAUER-Filter haben den steilsten Abfall bei
geringem Bauteilaufwand, die anderen Typen dafür einen schöneren
Frequenz- und vor allem Phasenverlauf

von Unbekannter (Gast)


Lesenswert?

LC-Filter bei ca. 10 kHz? Na dann viel Spaß damit!

von Lupin (Gast)


Lesenswert?

Ich mach das ganze mit diesem Gerät hier: http://pokeme.shizzle.it/

Ich hab meinen schon ein wenig modifiziert (hintergrundbeleuchtung,
audio out und lautstärke rädchen und wollte die soundqualität
verbessern. Normalerweise (bei den offiziellen spielen) spielt das teil
immer nur gedudel ab und ist dafür auch hervorragend geeignet nun will
ich aber richtige Musik damit abspielen und den audio output verbessern
:)

Meine sample frequenz liegt bei 8000 Hz aber das hat ja nicht wirklich
was mit dem hintergrund-piepsen zu tun.

Meine daten sind fest im flash programmiert. Ein ändern der daten wäre
kein Thema, das basteln eines Filters schon eher :)

von Lupin (Gast)


Lesenswert?

Was ist denn mit dem MAX293? Wäre der für meine Anwendung in ordnung?
Der scheint ja kaum externe beschaltung zu brauchen
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/1443

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.