Forum: Digitale Signalverarbeitung / DSP / Machine Learning Audiosignale übereinander legen


von Clément K. (versuchx)


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

von R. M. (Gast)


Lesenswert?

Addition (das Ergebnis hat dann aber 9 Bit).

von MonetenHannes (Gast)


Lesenswert?

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

Und dann mit 0,5 multiplizieren

von MonetenHannes (Gast)


Lesenswert?

MonetenHannes schrieb:
> Und dann mit 0,5 multiplizieren

bzw. shiften

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

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

von Clément K. (versuchx)


Lesenswert?

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

von Achim H. (anymouse)


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.

von Analog OPA (Gast)


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!

von Na (Gast)


Lesenswert?

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

von Gerald M. (gerald_m17)


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.

von Raymund H. (raymund_h753)


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.

von MonetenHannes (Gast)


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

von Brüder K. Ling & K. Lang (Gast)


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)

von J. S. (engineer) Benutzerseite


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.

von Brüder K. Ling & K. Lang (Gast)


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?

von Raymund H. (raymund_h753)


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.

von hbbvfiöidhf (Gast)


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

von Äxl (geloescht) (Gast)


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"

von Christian (Gast)


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!

von J. S. (engineer) Benutzerseite


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.

von Clément K. (versuchx)


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.

von Rolf S. (audiorolf)


Lesenswert?

Warum so kompliziert? Beim Multiplexen und hochsampeln muss man das 
Ergebnis noch  filtern!

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.