mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 1 bit DAC und signalverbesserung


Autor: Lupin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Lupin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lupin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :(

Autor: Lupin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
den controller kann ich leider nicht wechseln.

Autor: alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du meinst wahrscheinlich nicht 2 mHz, sondern 2 MHz...

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christoph Kessler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Unbekannter (Gast)
Datum:

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

Autor: Lupin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Lupin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.