mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP I2S Audio-Pegelreduzierung


Autor: Ludwig G. (l_g) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,


Ich muss den Audio-Pegel zum DSP von einer 3-Draht Verbindung (I2S) um 
ca. 6-10 dBfs absenken. Daher suche ich einen Baustein oder eine 
einfache Schaltung, die den seriellen digitalen Audio-Datenstrom 
abschwächen kann.

Viele DAC haben den Attenuator bereits mit auf dem Chip integriet. Nur 
den ganzen DAC brauche ich nicht, da das Digitalsignal (I2S) direkt in 
den DSP zur Weiterverarbeitung geht.

Wer kann mir bitte weiterhelfen.

Vielen Dank für Ihre Rückmeldungen

L_G

: Verschoben durch Admin
Autor: Nicht"Gast" (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin mal so frei zu verallgemeinern...

Hä? I2s ist ein digitalbus. Was willst du denn da den Pegel verringern?

Wenn du den vom Audio Signal meinst, die Daten liegen in digitaler Form 
vor. da kannst du die Werte einfaxh dividieren.


Grüsse

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Ich nehme mal an, er meint die Amplitude des Audiosignals und nicht die 
den digitalen Pegel. Das Signal muss selbstredend dekodiert werden, die 
"analoge" Amplitude entsprechend reduziert und dann wieder verpackt 
werden.

Autor: multi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum kann der DSP das nicht einfach mit tun? Wäre in der software doch 
einfach machbar.

Autor: Ludwig G. (l_g) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Nicht"Gast" schrieb:
> Ich bin mal so frei zu verallgemeinern...
>
> Hä? I2s ist ein digitalbus. Was willst du denn da den Pegel verringern?
>
> Wenn du den vom Audio Signal meinst, die Daten liegen in digitaler Form
> vor. da kannst du die Werte einfaxh dividieren.
>
>
> Grüsse


Genau, wie kann ich ein serielles 24-bit Audiosignal mit einfachen 
Mitteln dividieren.

Viele Grüße

L_G

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Genau, wie kann ich ein serielles 24-bit Audiosignal mit einfachen
>Mitteln dividieren.

a = b / 2;

3dB weniger für a.

Autor: Andreas S. (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
1 lesenswert
nicht lesenswert
6 dB.

Wenn es unbedingt in Hardware passieren soll, dann kannst du 2 
D-Flipflops nehmen und das Datensignal um 1 Bittakt verzögern, das 
ergibt eine Division durch 2.

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
6,03 dB :-)

Das alles muss aber an der richtigen Stelle im Datenstrom passieren. 
Also doch decodieren. Eine Verringerung des Pegels kann man mit einem 
simplen Adder machen, einfach Neu = Alt - Alt / 4,8,16 etc.

Autor: Andreas S. (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei den üblichen I2S-Modi (weniger als 32 Bit, Rest mit Nullen 
aufgefüllt, MSB- oder LSB-aligned ist egal) reicht es, das Datensignal 
einfach zu verzögern, es muss nichts decodiert werden.

Autor: Ludwig G. (l_g) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Schwarz schrieb:
> Bei den üblichen I2S-Modi (weniger als 32 Bit, Rest mit Nullen
> aufgefüllt, MSB- oder LSB-aligned ist egal) reicht es, das Datensignal
> einfach zu verzögern, es muss nichts decodiert werden.

Vielen herzlichen Dank für Ihre Rückmeldungen.

Müsste dann auch so funktionieren:

Die seriellen Audio-Daten (SDATA)
werden im "Sender" als I2S Mode geliefert

und im "Empfänger" als LEFT-JUSTIFIED-MODE (LJ-Mode) eingelesen.

So entsteht genau eine SDATA Bit-Verschiebung um einen Takt zum SCLK.

Im LJ-Mode liegt dann das MSB im 1. L-H Takt und
im I2S Mode wird das MSB vom "Sender" erst im 2. L-H Takt angeliefert.

Das LRCK-Signal muss dann auch nur noch invertiert werden.

Oder habe ich da was übersehen?

Viele Grüße

L_G

Autor: Kurt H. (Firma: KHTronik) (kurtharders)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Ludwig,

welchen Grund gibt es, den Algorithmus so zu verwursteln? Wer soll das 
in fünf Jahren noch verstehen oder gar pflegen? Lies den I2S-Wert ein 
und führe dann die Korrektur durch. Wenn Dein ADC einen Abschwächer hat, 
dann kannst Du den verwenden. Aber gewollte Fehlinterpretationen eines 
üblichen Protokolls sind ein Graus.

Grüße, Kurt

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch wenn der thread schon älter ist, eine kleine Info dazu:

Es gibt Hinweise, dass einige Hersteller von professionellen Zuspielern 
im I2S Datenstrom in Richtung von S/PDIF-Transceivern in der Tat 
probieren, mit einer Bitverschiebung auf slow level Ebene, eine 
Lautstärkeanpassung zu vollziehen, was dann dazu führt, dass bestimmte 
Endgeräte es nicht verarbeiten können, weil die Wandlerchips es nicht 
verstehen.

Einige digitale Lautsprecher laborieren an den Problem.

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.