Spatz
16.05.2017, 22:35
Moin allerseits,
gleich vorneweg: Ich weiss, dass meine folgenden Überlegungen auf jeden Fall beideuten, dass das Signal verlustbehaftet sind, und dass sie vermutlich wenig mit Hifi-Wiedergabe zu tun haben. Dennoch würde mich interessieren, was wäre wenn...
Ich bin auch in den Feinheiten der berührten Gebiete (Elektrotechnik, Signaltechnik, Psychoakustik) nicht übermäßig bewandert, deswegen freue ich mich über Input von Menschen, die da schlauer sind...
Es geht im folgendes: Meines Wissens nach ist ein digitales Audiosignal (Waveform) zeitdiskret (durch die Abtastrate in Hz) und pegeldiskret (durch die Auflösung in Bit). Das Signal ist aber nicht frequenzdiskret, Shannon und Nyquist sagen zwar, dass die maximale obere Frequenz der Hälfte der Abtastrate entspricht, aber darunter kann das Signal theoretisch jede beliebige Frequenz haben.
(Unter "diskret" verstehe ich, dass ein bestimmtes Merkmal nur bestimmte Werte annehmen kann.)
Was würde nun passieren, wenn man das Signal in ein vollständig diskretes Signal umwandeln würde?
Man könnte das ganze so realisieren:
Man schickt das Signal durch eine Vielzahl von Bandpassfiltern mit sehr höher Güte (also sehr schmal), ich denke da an ca. 100 Frequenzen pro Oktave.
Die Pegelwerte der einzelnen Frequenzbänder liest man mit einer bestimmten Frequenz aus, also z. B. 1000 mal pro Sekunde.
Diese Daten schreibt man in eine Tabelle (Frequenz, Pegel, Zeitpunkt).
Ungefähr so:
| f1 | f2 | f3 | f4
t1 | 42 | 65 | 74 | 17
t2 | 47 | 62 | 34 | 16
t3 | 44 | 69 | 01 | 17
Um das Signal anschließend wiederzugeben, nimmt man für jede Frequenz einen Sinusgenerator, der sein Signal mit der Frequenz f zum Zeitpunkt t mit dem Pegel x wiedergibt.
Aber warum nun das ganze?
Indem das Signal in allen Merkmalen diskret vorliegt, ließe es sich deutlich leichter bearbeiten:
Man will ein Delay in bestimmten Frequenzbereichen? Man verschiebt einfach diese Spalten der Tabellen nach unten.
Man will bestimmte Frequenzen leiser machen? Man subtrahiert einfach den gewünschten Wert von den Pegelwerten.
Man will die Tonhöhe verändern? Man verschiebt einfach die Zeilen nach rechts/links.
Auf gut deutsch: Man könnte all das tun, was FIR-Filter auch können, aber mit deutlich weniger Rechenaufwand. Das Signal wäre in einer volldiskreten Form im Grunde beliebig modifizierbar.
Natürlich hat das so erzeugte Signal nichts mehr mit dem ursprünglichen Signal zu tun, aber zum Glück sind unsere Ohren ja nicht unendlich genau. Aus diesem Grund vermute ich, dass sich ein so umgewandeltes (und sonst noch nicht modifiziertes) Signal zumindest gleich anhören sollte, wenn man die Anzahl der Frequenzen, die Abtastrate der Pegelwerte, und die Pegelwerte selbst ausreichend fein festlegt. Wäre natürlich die Frage, welcher Wert wie genau sein muss, hier gilt es dann, einen Kompromiss zwischen Qualität und Dateigröße zu finden.
Was meint ihr, ist das ein interessanter Ansatz, und wie müsste die Umwandlung aussehen, damit man keinen oder nur noch einen sehr geringen Unterschied hört?
MfG,
Spatz
gleich vorneweg: Ich weiss, dass meine folgenden Überlegungen auf jeden Fall beideuten, dass das Signal verlustbehaftet sind, und dass sie vermutlich wenig mit Hifi-Wiedergabe zu tun haben. Dennoch würde mich interessieren, was wäre wenn...
Ich bin auch in den Feinheiten der berührten Gebiete (Elektrotechnik, Signaltechnik, Psychoakustik) nicht übermäßig bewandert, deswegen freue ich mich über Input von Menschen, die da schlauer sind...
Es geht im folgendes: Meines Wissens nach ist ein digitales Audiosignal (Waveform) zeitdiskret (durch die Abtastrate in Hz) und pegeldiskret (durch die Auflösung in Bit). Das Signal ist aber nicht frequenzdiskret, Shannon und Nyquist sagen zwar, dass die maximale obere Frequenz der Hälfte der Abtastrate entspricht, aber darunter kann das Signal theoretisch jede beliebige Frequenz haben.
(Unter "diskret" verstehe ich, dass ein bestimmtes Merkmal nur bestimmte Werte annehmen kann.)
Was würde nun passieren, wenn man das Signal in ein vollständig diskretes Signal umwandeln würde?
Man könnte das ganze so realisieren:
Man schickt das Signal durch eine Vielzahl von Bandpassfiltern mit sehr höher Güte (also sehr schmal), ich denke da an ca. 100 Frequenzen pro Oktave.
Die Pegelwerte der einzelnen Frequenzbänder liest man mit einer bestimmten Frequenz aus, also z. B. 1000 mal pro Sekunde.
Diese Daten schreibt man in eine Tabelle (Frequenz, Pegel, Zeitpunkt).
Ungefähr so:
| f1 | f2 | f3 | f4
t1 | 42 | 65 | 74 | 17
t2 | 47 | 62 | 34 | 16
t3 | 44 | 69 | 01 | 17
Um das Signal anschließend wiederzugeben, nimmt man für jede Frequenz einen Sinusgenerator, der sein Signal mit der Frequenz f zum Zeitpunkt t mit dem Pegel x wiedergibt.
Aber warum nun das ganze?
Indem das Signal in allen Merkmalen diskret vorliegt, ließe es sich deutlich leichter bearbeiten:
Man will ein Delay in bestimmten Frequenzbereichen? Man verschiebt einfach diese Spalten der Tabellen nach unten.
Man will bestimmte Frequenzen leiser machen? Man subtrahiert einfach den gewünschten Wert von den Pegelwerten.
Man will die Tonhöhe verändern? Man verschiebt einfach die Zeilen nach rechts/links.
Auf gut deutsch: Man könnte all das tun, was FIR-Filter auch können, aber mit deutlich weniger Rechenaufwand. Das Signal wäre in einer volldiskreten Form im Grunde beliebig modifizierbar.
Natürlich hat das so erzeugte Signal nichts mehr mit dem ursprünglichen Signal zu tun, aber zum Glück sind unsere Ohren ja nicht unendlich genau. Aus diesem Grund vermute ich, dass sich ein so umgewandeltes (und sonst noch nicht modifiziertes) Signal zumindest gleich anhören sollte, wenn man die Anzahl der Frequenzen, die Abtastrate der Pegelwerte, und die Pegelwerte selbst ausreichend fein festlegt. Wäre natürlich die Frage, welcher Wert wie genau sein muss, hier gilt es dann, einen Kompromiss zwischen Qualität und Dateigröße zu finden.
Was meint ihr, ist das ein interessanter Ansatz, und wie müsste die Umwandlung aussehen, damit man keinen oder nur noch einen sehr geringen Unterschied hört?
MfG,
Spatz