mikrocontroller.net

Forum: FPGA, VHDL & Co. Digitales Audiosignal mit Lautstärkeregler


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe da eine Frage. Ich arbeite mich gerade in VHDL und FPGAs ein.
Und da wollte ich nun über einen Sigma Delta DAC digitale Audiodaten 
ausgeben. Die Audiodaten liegen als 16Bit PWM vor.

Meine Frage nun kann ich wenn ich die Lautstärke ändern möchte das 
irgendwie mit den PWM Daten machen? Also die Wertigkeit verändern?? So 
das am Ausgang der Sound leise oder lauter wird? Hardware Technisch über 
einen Amplifier geht nicht.

Danke
Gruß

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter schrieb:
> Die Audiodaten liegen als 16Bit PWM vor.
Tatsächlich direkt als PWM-Bitstrom?

Oder eher wie üblich als eine "Audiodatei" mit 16-Bit Werten?
Dann könntest du einfach vor dem Ausgeben der Daten diese "kleiner" 
skalieren. Damit hast du eine geringere Eingangsamplitude für deinen DAC 
und fertig...

Autor: Wissender (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du verlierst natürlich Dynamik wenn du die Werte kleiner machst.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie definierst du Dynamik?
Was vorher doppelt so laut war, ist auch nachher doppelt so laut.
Fazit: Dynamik bleibt gleich.

Bestenfalls der Rauschabstand wird geringer:
was vorher fast unhörbar im Rauschen war, ist nachher weg.

Autor: Karim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Macht auch so schon nicht viel Sinn, von Dynamikverlust zu reden, wenn 
man die Lautstärke reduzieren willst.

Wenn man das Umrechnen will, muss man wenigstens über ein PWM-Period 
hinweg integrieren und rechnen.

Autor: Lattice User (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar Miller schrieb:
> Peter schrieb:
>> Die Audiodaten liegen als 16Bit PWM vor.
> Tatsächlich direkt als PWM-Bitstrom?
>
> Oder eher wie üblich als eine "Audiodatei" mit 16-Bit Werten?

Nennt sich übrigens PCM.

Autor: Marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin Moin

ich wollte auch sowas ähnliches machen wie der Peter.
Habe aber das mit dem skalieren nicht ganz verstanden.

Ist das in etwa so:
z.B.: ein 16Bit Signal in 24Bit eingebettet.

Mittel:
AUDIO_LEFT_VOL_24BIT(31 + 6 downto 0 + 6)  <= AUDIO_LEFT_VOL_16BIT;
AUDIO_RIGHT_VOL_24BIT(31 + 6 downto 0 + 6) <= AUDIO_RIGHT_VOL_16BIT;

Leiser:
AUDIO_LEFT_VOL_24BIT(31 + 3 downto 0 + 3)  <= AUDIO_LEFT_VOL_16BIT;
AUDIO_RIGHT_VOL_24BIT(31 + 3 downto 0 + 3) <= AUDIO_RIGHT_VOL_16BIT;

Lauter
AUDIO_LEFT_VOL_24BIT(31 + 9 downto 0 + 9)  <= AUDIO_LEFT_VOL_16BIT;
AUDIO_RIGHT_VOL_24BIT(31 + 9 downto 0 + 9) <= AUDIO_RIGHT_VOL_16BIT;

Gruß
Marco

Autor: Alfi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du willst mit Faktoren 2 skalieren?
Warum nimmst du nicht den Wert und addierst jeweils die obligaten 0 ... 
3dB?

Du könntest z.B. Faktor 1,125 draufmultiplizieren:

Ergebnis (15downto0) = Input (15downto0) +/-  Input (15downto3)

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]
  • [vhdl]VHDL-Code[/vhdl]
  • [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.