mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Audiosignale übereinander legen


Autor: Clément K. (versuchx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Mit welchen logischen/mathematischen Operationen kann man zwei unsigned 
8 Bit mono Audiosignale übereinanderlegen, so dass bei der Wiedergabe 
beide mit ihrer ursprünglichen Lautstärke zu hören sind?
(Soll auf einem uC ausführbar sein)

Gruß
Clément

Autor: R. M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Addition (das Ergebnis hat dann aber 9 Bit).

Autor: MonetenHannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
R. M. schrieb:
> Addition (das Ergebnis hat dann aber 9 Bit).

Und dann mit 0,5 multiplizieren

Autor: MonetenHannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MonetenHannes schrieb:
> Und dann mit 0,5 multiplizieren

bzw. shiften

Autor: Christoph db1uq K. (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann haben sie aber nicht mehr die ursprüngliche Lautstärke. Die 
Forderung ist unerfüllbar.

Autor: Clément K. (versuchx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann würde ich noch durch zwei Teilen und dann passt es ja in etwa.

Autor: Achim H. (anymouse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einfach nur addieren -- und irgendwie mit dem potentiellen 
9-Bit-Ergebnis klarkommen (16-bit-Rechnung?).

Oder vorher den rechts-shift -- und dann die Lautstärke im Endverstärker 
verdoppeln.

Autor: Analog OPA (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Achim H. schrieb:
> Oder vorher den rechts-shift -- und dann die Lautstärke im Endverstärker
> verdoppeln.

... und damit 1 Bit an Auflösung verlieren. Super Idee!

Autor: Na (Gast)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Natürlich verliert man ein Bit an Auflösung, Wenn man den Durchschnitt 
von zwei Ints zu einem Int rundet passiert das nunmal.

Autor: Gerald M. (gerald_m17)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man bekommt dann aber einen Fehler rein. Einfaches Beispiel:
0x01 und 0x01
Shiftet man vorher, ergibt das:
0x00 und 0x00, was addiert und geshiftet 0x00 ergibt.
Addiert man zuerst, und shiftet dann das 9bit ergebis, erhält man:
0x01 + 0x01 = 0x02 was nach rechts geshiftet 0x01 ergibt, was natürlich 
deutlich mehr Sinn macht.

Das Problem bei der Addition ist aber, dass sich gegenphasige Signale 
auslöschen.
Hat man die Folge:
0,1,0,-1,0,1... und das gleiche Signal phasenverschoben, also:
0,-1,0,1,0,-1...
und addiert diese, bekommt man immer 0 heraus. Wie wahrscheinlich das 
bei deinem Signal ist kann ich nicht beurteilen. Bei normaler Musik 
sollte das nicht wirklich vorkommen.

Autor: Raymund H. (raymund_h753)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Gerald M. schrieb:
> Man bekommt dann aber einen Fehler rein. Einfaches Beispiel:

Also ich denke er OP kommt hier nicht ohne ein in aufwändigen 
AB-Teststudien Audiophil akkreditiertes Dithering aus, denn gerade bei 8 
Bit kann das fast jeder hören.

Autor: MonetenHannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Clément K. schrieb:
> 8 Bit mono Audiosignale

Raymund H. schrieb:
> Also ich denke er OP kommt hier nicht ohne ein in aufwändigen
> AB-Teststudien Audiophil akkreditiertes Dithering aus


:-D

Autor: Brüder K. Ling & K. Lang (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Clément K. schrieb:

> Mit welchen logischen/mathematischen Operationen kann man zwei unsigned
> 8 Bit mono Audiosignale übereinanderlegen, so dass bei der Wiedergabe
> beide mit ihrer ursprünglichen Lautstärke zu hören sind?



Samplerate verdoppeln,  abwechselnd Samples in Azsgangsstrom einfügen
Antialiasingfilter, Samplerate halbieren.

Wenn man pech hat löschen sich die zwei Signale beim Überlagern aus 
(Interferenz bei 180 Grad Phasenverschobenen periodischen Signalen)

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

Bewertung
1 lesenswert
nicht lesenswert
Gerald M. schrieb:
> Bei normaler Musik
> sollte das nicht wirklich vorkommen.
Nicht in dieser extremen Weise, aber Auslöschungen hat man eigentlich 
immer. Das ist ja der Grund, warum die Lautstärke bei der Summierung von 
2 Signalen durchschnittlich nur um 3dB ansteigt. Hinzu kommt, dass die 
Lautstärkemaxima in den Spuren nicht unbedingt zusammenfallen.

Rein von der Wellenaddition ist das durchaus beachtenswert, wenn z.B. 
ähnliche Instrumente in den Bässen zusammenwirken: Kurzfristig kommt es 
da zu scheinbaren Auslöschungen, das Hirn hört aber beide Töne ungetrübt 
weiter. Den umgekehrten Effekt hat man bei der Addition von Oberwellen: 
Da entstehen im Signal urplötzlich gewaltige Amplituden, die mit der 
gehörten Lautstärke nicht zusammenpassen wollen. Wehe aber man limitiert 
diese kurzen peaks oder komprimiert sie platt, dann hat man hörbare 
Klangveränderungen und Harmonische.

So oder so ist es also durchaus richtig, wenn durch eine Addition eine 
Signalabschwächung geschieht.

Brüder K. Ling & K. Lang schrieb:
> Samplerate verdoppeln,  abwechselnd Samples in Azsgangsstrom einfügen
> Antialiasingfilter, Samplerate halbieren.
Das passt dann aber nicht mit der Phase zusammen. Diese Thematik haben 
wir z.B. bei manchen Billigwandlern im Stereobetrieb.

> Wenn man pech hat löschen sich die zwei Signale beim Überlagern aus
> (Interferenz bei 180 Grad Phasenverschobenen periodischen Signalen)
Dazu müssten sie so verschoben sein, dass der künstliche Versatz durch 
die Samples auch noch passt, also 180-x/fs.

Autor: Brüder K. Ling & K. Lang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jürgen S. schrieb:

> Brüder K. Ling & K. Lang schrieb:
>> Samplerate verdoppeln,  abwechselnd Samples in Azsgangsstrom einfügen
>> Antialiasingfilter, Samplerate halbieren.
> Das passt dann aber nicht mit der Phase zusammen. Diese Thematik haben
> wir z.B. bei manchen Billigwandlern im Stereobetrieb.

Woran erkennen das die Ohren, diese unstimmende Phase?

Autor: Raymund H. (raymund_h753)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Brüder K. Ling & K. Lang schrieb:
> Woran erkennen das die Ohren, diese unstimmende Phase?

An evtl. Amplitudenvariationen von hohen Frequenzen (Stereobetrieb), 
veränderlich duch die Bewegung des Kopfs.
Muss man aber schon genau hinhören.

Konkret für die Anwendung hier wohl ziemlich Egal.

Autor: hbbvfiöidhf (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Gerald M. schrieb:
> Das Problem bei der Addition ist aber, dass sich gegenphasige Signale
> auslöschen.
> Hat man die Folge:
> 0,1,0,-1,0,1... und das gleiche Signal phasenverschoben, also:
> 0,-1,0,1,0,-1...
> und addiert diese, bekommt man immer 0 heraus.

Das passiert aber genauso, wenn man die Addition analog macht.

hbbvfiöidhf

Autor: Äxl (geloescht) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Seht mal bei Elm Chan in seiner polyphonen Spieldose nach. Dort werden 
die einzelnen DDS-Signale auch "normiert" und "gemischt". Klingt wie 
analog gemischt. Von der Qualität völlig ausreichend.
(Link weis ich gerade nicht auswendig)
SuFu: Beitrag "Polyphone Töne erzeugen"

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Brüder K. Ling & K. Lang schrieb:
> Woran erkennen das die Ohren, diese unstimmende Phase?

Die Ohren erkennen garnichts, aber unser Hirn macht das ganz gerne. 
Genau so wie bei optischen Täuschungen. Da wird was hingerechenet, damit 
es stimmt!

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

Bewertung
0 lesenswert
nicht lesenswert
Brüder K. Ling & K. Lang schrieb:
> oran erkennen das die Ohren, diese unstimmende Phase?

Am Versatz auf der Stereobasis, wenn man Pech hat und dies insbesondere, 
wenn man die Signale mit anderen mischt, die einen Bezug haben, z.B. 
unterschiedliche Mikrofonkanäle derselben Aufnahmeszene. Man bekommt ja 
ein halbes Sample Versatz. Je nach Quelle kann der Mensch 
Zeitunterschiede im Bereich 5-10us unterscheiden. Zudem bekommt man ein 
untaugliches Signalgemisch, wenn man bei MS-Aufnahmen oder XY die 
Stereobasis, bzw den Monoanteil durch Mischen verändern will. Das stimmt 
dann nicht mehr.

Eine solche Technik ist Murks. Wenn man sowas benutzen möchte, muss man 
den verzögert auszugebenden Kanal neu samplen und vorverzögern, damit 
die Konstellation stimmt. Bei Radaranwendungen und Ultrasschall / Sonar 
wird das im Zusammenhang mit beamforming benutzt.

Autor: Clément K. (versuchx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke schon mal für eure Beiträge!
Ich werde das mit dem addieren und dem oversampling ausprobieren.
Vielleicht reicht es ja sogar für meine Zwecke.

Autor: Rolf S. (audiorolf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum so kompliziert? Beim Multiplexen und hochsampeln muss man das 
Ergebnis noch  filtern!

: Bearbeitet durch User

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.