1 bit DAC und signalverbesserung

Gast #269466
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?
Gast #269468
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)
Gast #269469
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.
Gast #269470
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 :(
Gast #269473
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
Gast #269474
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.
Gast #269477
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 :)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren