Wissenschaftliche Audioverarbeitung, Teil III – Wie man erweiterte mathematische Verarbeitungseffekte auf Audiodateien anwendet mit Octave 4.0 auf Ubuntu
Der dritte Teil unserer Tutorialserie zur digitalen Audioverarbeitung behandelt die Signalmodulation, wir erklären, wie man Amplitudenmodulation, Tremolo-Effekt und Frequenzvariation anwendet.
Modulation
Amplitudenmodulation
Wie der Name schon sagt, variiert dieser Effekt die Amplitude eines Sinusoid entsprechend der zu übertragenden Nachricht. Eine Sinuswelle wird als Träger bezeichnet, weil sie die Informationen trägt. Diese Art der Modulation wird in einigen kommerziellen Rundfunk- und Übertragungs-Bürgerbändern (AM) verwendet.
Warum die Amplitudenmodulation?
Modulationsstrahlung.
Wenn der Kommunikationskanal ein freier Raum ist, sind Antennen erforderlich, um das Signal zu senden und zu empfangen. Sie erfordert eine effiziente elektromagnetische Strahlungsantenne, deren Abmessungen in der Größenordnung der Wellenlänge des zu strahlenden Signals liegen. Viele Signale, einschließlich Audiokomponenten, haben oft 100 Hz oder weniger. Für diese Signale wäre es notwendig, Antennen von ca. 300 km Länge zu bauen, wenn das Signal direkt abgestrahlt werden soll. Wenn mit Hilfe der Signalmodulation die Nachricht auf einen Hochfrequenzträger gedruckt wird, z.B. 100 MHz, dann muss die Antenne nur eine Länge von über einem Meter (Querlänge) haben.
Konzentrationsmodulation oder Multi-Channeling.
Wenn mehr als ein Signal einen einzelnen Kanal verwendet, kann die Modulation verwendet werden, um verschiedene Signale in verschiedene Spektralpositionen zu übertragen, so dass der Empfänger das gewünschte Signal auswählen kann. Anwendungen, die Konzentration nutzen („Multiplexing“), sind Telemetriedaten, Stereo-FM-Radio und Ferngespräche.
Modulation zur Überwindung von Einschränkungen an Geräten.
Die Leistung von Signalverarbeitungsgeräten wie Filtern und Verstärkern und die einfache Konstruktion dieser Geräte hängt von der Situation des Signals im Frequenzbereich und dem Verhältnis zwischen dem höherfrequenten und dem niederfrequenten Signal ab. Die Modulation kann verwendet werden, um das Signal an eine Position im Frequenzbereich zu übertragen, an der die Designanforderungen leichter erfüllt werden können. Die Modulation kann auch verwendet werden, um ein „Breitbandsignal“ (ein Signal, bei dem das Verhältnis zwischen höchster und niedrigster Frequenz groß ist) in ein Zeichen von „Schmalband“ umzuwandeln.
Audio-Effekte
Viele Audioeffekte verwenden eine Amplitudenmodulation, da sie mit solchen Signalen sehr gut umgehen können. Wir können einige nennen wie Tremolo, Chorus, Flanger, etc. Dieses Dienstprogramm ist der Punkt, auf den wir uns in dieser Tutorial-Serie konzentrieren.
Tremolo-Effekt
Der Tremolo-Effekt ist eine der einfachsten Anwendungen der Amplitudenmodulation, um diesen Effekt zu erreichen, müssen wir das Audiosignal mit einem periodischen Signal variieren (multiplizieren), entweder sinusförmig oder anders.
>> tremolo='tremolo.ogg'; >> fs=44100; >> t=0:1/fs:10; >> wo=2*pi*440*t; >> wa=2*pi*1.2*t; >> audiowrite(tremolo, cos(wa).*cos(wo),fs);
Dadurch wird ein sinusförmiges Signal erzeugt, das wie ein „Tremolo“ wirkt.
Tremolo auf echten Audiodateien
Jetzt werden wir den Tremolo-Effekt in der realen Welt zeigen. Zuerst verwenden wir eine Datei, die zuvor von einer männlichen Stimme aufgenommen wurde, die „A“ sagt. Die Darstellung für dieses Signal ist die folgende:
>> [y,fs]=audioread('A.ogg'); >> plot(y);
Nun müssen wir ein Hüllkurvensignal mit den folgenden Parametern erzeugen:
Amplitude = 1
Frequenz= 1,5Hz
Phase = 0
>> t=0:1/fs:4.99999999; >> t=t(:); >> w=2*pi*1.5*t; >> q=cos(w); >> plot(q);
Hinweis: Wenn wir ein Array von Werten der Zeit erstellen, wird dies standardmäßig in Form von Spalten, d.h. 1×220500 Werten, erstellt. Um diesen Satz von Werten zu multiplizieren, muss er in Zeilen (220500×1) transponiert werden. Dies ist der Befehl t=t(:)
Wir werden eine zweite ogg-Datei erstellen, die das resultierende modulierte Signal enthält:
>> tremolo='tremolo.ogg'; >> audiowrite(tremolo, q.*y,fs);
Frequenzvariation
Wir können die Frequenz variieren, um sehr interessante musikalische Effekte wie Verzerrungen, Soundeffekte für Filme und Spiele u.a. zu erhalten.
Wirkung der sinusförmigen Frequenzmodulation
Dies ist der Code, in dem die sinusförmige Modulationsfrequenz nach Gleichung angezeigt wird:
Y=Ac*Cos(wo*Cos(wo/k))
Wo:
Ac = Amplitude
wo = Grundfrequenz
k = Skalarteiler
>> fm='fm.ogg'; >> fs=44100; >> t=0:1/fs:10; >> w=2*pi*442*t; >> audiowrite(fm, cos(cos(w/1500).*w), fs); >> [y,fs]=audioread('fm.ogg'); >> figure (); plot (y);
Die Darstellung des Signals ist:
Sie können fast jede Art von periodischer Funktion als Frequenzmodulator verwenden. Für dieses Beispiel haben wir hier nur eine Sinusfunktion verwendet. Bitte experimentieren Sie mit der Änderung der Frequenzen der Funktionen, der Mischung mit anderen Funktionen oder ändern Sie sogar die Art der Funktion
.