Re^3: Verfremden von Waves
Hallo Ralph,
1. Digitale Filter. Damit lassen sich alle bekannten
Filterfunktionen mathematisch simulieren. Sie werden gerne in
Echtzeitanwendungen eingesetzt.
redest Du hier von Hardwarelösungen?
Auch. Das hängt immer von der Abtastrate ab. Bei hochfrequenten Signalen, z.B. auch im Videobereich kann es nötig sein, die Filter in Hardware aufzubauen. Bei Audioanwendungen können das auch Signalproszessoren bequem per Software durchrechnen. Bei "offline"-Anwendungen kannst Du es auch in Basic programmieren.
2. Fourier-Transformation. Das Sample wird zunächst in den
Frequenzbereich transformiert, also in sein komplexes
Frequenzpektrum. Im Frequenzbereich lassen sich die einzelnen
Frequenzbereiche gut bearbeiten. Anschließend wird das
komplexe Spektrum wieder in eine reale Zeitfunktion
rücktransformiert.
Moment, da durchschießt es mich! Das ist doch auch ein Teil
der mp3 Kompression, oder?
Fourier-Transformation dürfte das wichtigsten Signal-Analyseverfahren überhaupt sein. Da Analyse der 1. Schritt bei der Datenkompression ist, ist dieser Zusammenhang mit mp3 fast zwangsläufig.
Also ist es nicht so einfach
möglich, eine Trägerfreguenz mit bekannter Hertzzahl einfach
durch lgische Operationen mit meiner Wave-Datei zu verknüpfen?
Doch schon, einfache Modulationsverfahren basieren nur auf Multiplikation von Trägerwelle und Modulationssignal. Das ist trivial, hört sich aber auch nicht besonders schön an.
Zu beiden Verfahren sollte es Unmengen an Literatur geben,
insbesondere im Zusammenhang mit der Programmierung von
Signalprozessoren.
Oder kennst Du auch gute Links (irgendwelche Universitäten,
Fraunhofer, Working Papers im Netz,...
Leider nicht, als ich mich intensiver damit befasst hatte, war das Internet noch nicht soweit. Wenn Du unter "FIR-Filter" oder "FFT" ( Fast Fourier Transform ) suchst, solltest Du aber von Informationen und Algorithmen erschlagen werden.
Das ist das Prinzip des Harmonizers. Das kann man natürlich
auch simulieren. Du legst die Daten in einem Ringpuffer von
z.B. 20 ms Länge ab, in den die Daten zyklisch reingeschrieben
werden. Aus diesem Puffer werden die Daten dann ebenfalls
zyklisch, jedoch mit einer anderen Abtastrate ausgelesen. Ggf.
muß anschließend die Abtastrate wieder auf den ursprünglichen
Wert zurückgerechnet werden. Kritisch ist noch der Moment,
wenn sich Lese- und Schreibpointer gegenseitig "überholen".
Diese Unstetigkeitsstelle im Lesesignal macht sich durch einen
Knack bemerkbar.
Nicht ganz so elegent aber vom Prinzip her hab' ichs ja mal
probiert. Ich les' mal weiter, jetzt scheint es spannend zu
werden ;-)
Das kann man ausbügeln, indem man den Puffer
nicht einfach überschreibt, sondern eine weiche Übergangszone
schafft, in der neue und alte Werte vermischt sind und der
Anteil der alten Werte langsam auf null sinkt.
Das hab' ich jetzt nicht gleich zu 100% verstanden, aber ich
lasse mir mal Deine Ausführungen durch den Kopf gehen,
prinzipiell ist mir klar, was Du meinst . Ich danke Dir für
Deine Tipps
Es geht auch anders, ist vielleicht auch einfacher zu Programmieren:
Du nimmst 2 Lesepointer, die gleichschnell Abtasten und um eine halbe Pufferlänge versetzt sind. Du wertest aber im Normalfall immer nur einen Lesepointer aus. Immer wenn der aktive Lesepointer in die Nähe der Position des Schreibpointers gerät, blendest Du langsam auf den anderen Pointer um. Dadurch kann der Lesepointer nie den "Knackpunkt" erreichen.
reale dreidimensionale akustische Filterfunktionen simulieren
willst, z.B. das Klangverhalten eines Konzertsaales, kann es
beliebig kompliziert werden.
Herr im Himmel, jetzt wird es richtig professionel
Ich dank Dir für die sehr guten Anregungen, du kannst hier
gern noch mehr darüber schreiben.
Lieber nicht, denn darüber müßte ich dann auch erst intensiv nachdenken. Wenn Du aber konkrete Fragen hast, gerne
Das sind genau die
Denkanstöße, die ich gesucht habe.
Das ist doch schonmal erfreulich :-)
Jörg