2016-07-21 14 views
4

Ich brauche eine Möglichkeit, die Phase eines Signals zu ändern. Ziel ist es, zwei Signale mit einer geänderten Phase zu erzeugen und die Muster in Kombination zu beobachten.Steuerung der Phase des Signals in reinen Daten

unter dem Programm, das ich so weit bin mit: enter image description here

Wie in der obigen Einstellung, ich brauche das gleiche Signal zu verwenden, eine Phase geändert Signal zu erzeugen und später die beiden Signale kombinieren und prasselt zu beobachten.

Kann mir jemand dabei helfen?

Danke.

+0

Ich stimme zu, diese Frage als off-topic zu schließen, weil sie mit der Elektrotechnik/Signalverarbeitung verbunden zu sein scheint, anstatt zu programmieren. –

+2

@NicolasMiari Oh bitte ... Das OP fragt nicht, was die Phase eines Signals ist, sondern wie eine Programmiersprache (Pd) es behandelt. –

Antwort

4

Die Verwendung des rechten Eingangs des [osc ~] -Objekts ist eine gültige Methode, um die Phase eines Oszillators einzustellen, aber es ist nicht die einzige oder sogar die korrekteste Methode. Der rechte Einlass erlaubt nur einen Schwimmer auf der Kontrollstufe.

Eine umfassendere Manipulation der Phase kann mit dem [Phasor ~], [cos ~], [wrap ~] und [+ ~] Objekte im Signalpegel erfolgen. Im Wesentlichen führen Sie die gleiche Funktion wie [osc ~] mit einer Technik namens Tabellensuche mit [Zeiger ~] und [cos ~]. Sie könnten eine andere Tabelle mit [tabread4 ~] anstelle von [cos ~] lesen.

Diese Technik hält Ihre Oszillatoren synchron. Sie können die Phase Ihrer Oszillatoren mit anderen Oszillatoren, Tabellen-Lookups und natürlich Floats manipulieren (solange der Phasenwert zwischen 0 und 1 liegt, daher das [wrap ~] Objekt).

phase modulation at the signal level

Danach wie die anderen Beispiele hier können Sie die Signale zusammen addieren und schreiben sie Tabellen oder Ausgang der Signalkette oder beides entspricht.

So können Sie das gleiche für eine benutzerdefinierte Tabellennachschlage durchführen. Natürlich würden Sie someable mit Ihrem benutzerdefinierten Tabellennamen und num-samp-in-away-Tabelle mit der Anzahl der Beispiele in Ihrer Tabelle ersetzen.

signal level phase modulation with custom tables

Hoffe, es hilft!

4

Um die Phase eines Oszillators zu ändern, verwenden Sie den rechten Einlass.

Zitiert Johannes Kreidler's Programming Electronic Music in Pd:

3.1.2.1.3 Phase

In Pd, können Sie auch Membranposition für eine Schallwelle eingestellt, wo er anfangen sollte (oder wo sollte es springen). Dies nennt man die Phase einer Welle. Sie können die Phase in Pd im rechten Einlaß des „osc ~“ Objekt mit Zahlen zwischen 0 und 1 festgelegt:

enter image description here

Einer gesamten Zeitraum der Welle durch den Bereich von 0 bis 1. Jedoch umfasst ist, es wird oft in Grad ausgedrückt, wo die gesamte Periode 360 ​​Grad hat. Man spricht beispielsweise von einer "90-Grad-Phasenverschiebung". In Pd würde die Eingabe für die Phase 0,25 sein.

So zum Beispiel, wenn Sie beobachten wollen, wie zwei Signale aufgrund destruktiver Interferenz stumm geschaltet werden können, können Sie so etwas wie dies versuchen:

destructive-interference

Bitte beachte, dass ich einen Knall verbunden einzustellen gleichzeitig die Phasen beider Signale. Dies ist wichtig, denn während Sie die Phase eines Signals jederzeit auf einen beliebigen Wert zwischen 0.0 und 1.0 zurücksetzen können, wird der andere Oszillator nicht zurückgesetzt und die Ergebnisse sind daher ziemlich zufällig (Sie wissen nie, bei welchem ​​Phasenwert der anderes Signal wird an sein!). Das Zurücksetzen macht also den Trick.

+1

Danke @gilberto, das ist genau meine Anforderung. – KTB