Forum: Digitale Signalverarbeitung / DSP / Machine Learning Vibrato / Frequenzänderung


von Chris G. (chris94g)


Lesenswert?

Hallo,
ich muss für einen DSP ein Vibrato / Tonhöhenänderung eines Signals in C 
erstellen.. hab nur leider im Moment gar keinen Plan wie und wo ich 
anfange, stehe voll auf m Schlauch.. hab irgendetwas von Modulation mit 
nem LFO gelesen, aber wie ich das zsm bringe, will mir einfach nicht in 
den Kopf.
Wäre froh wenn mir jemand n bisl auf die Sprünge helfen könnte, danke!

von larx (Gast)


Lesenswert?

Modulation mit einem LFO:

Du erzeugst einen niederfrequenten Sinus und multiplizierst den 
Datenstrom mit diesem Signal.

Normal mit daten * 1
Jetzt mit daten * (1 + amplitude_LFO * sin(omega*t))

von ...... (Gast)


Lesenswert?

> Du erzeugst einen niederfrequenten Sinus und multiplizierst den
> Datenstrom mit diesem Signal.

Das nennt sich Tremolo und ist kein Vibrato.

Vibrato:
Eingangssignal aeqidistant in einen Speicher schreiben.
Den Auslesepunkt aus diesem Speicher mit einem LFO modulieren.
Fertig ist das Vibrato.

von Chris G. (chris94g)


Lesenswert?

"..m it einem LFO modulieren."
.. also jeden Wert aus dem Daten Array mit dem LFO (z.B. 
Âsin(2PI*10Hz*t)?) multiplizieren? oder was genau meint modulieren?

von ...... (Gast)


Lesenswert?

array[++ptr]=input();
output(array[ptr + delay + LFO]);

von Chris G. (chris94g)


Lesenswert?

Danke, aber wo kommt die Verzögerung her bzw wofür wird die benötigt? 
oder ist die dann schon für den Chorus Effekt zu gebrauchen?

von J. S. (engineer) Benutzerseite


Lesenswert?

Das ist aber ein wenig arg grob, weil man dann das Vibrato mit der 
Samplefrequenz faltet. Das reicht normalerweise nicht aus.

Man muss das Signal entsprechend über-abtasten und interpolieren / 
filtern. Dann wie beschrieben mit einem Adresszähler schwingend 
auslesen. Wenn es um kleine Änderungen geht, kann man das auf 
Hardwareebene machen, in dem man den Takt des Wandlers verzieht.

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.