Der Umgang mit dem Sinus in MATLAB ist in vielen Fachrichtungen nicht mehr wegzudenken. In der Signalverarbeitung benötigt man immer wieder das Erzeugen, Abspielen und Plotten eines Sinus. Wie Sie das möglichst einfach in einem MATLAB-Skript implementieren, erfahren Sie hier.

MATLAB Sinus erzeugen und abspielen

Der erste Schritt, um ein Sinus-Array zu generieren, ist das Sammeln von den Eigenschaften des Sinus. Besonders wichtig sind die Frequenz und Länge des Signals. Für unser Beispiel wählen wir eine Frequenz von f = 300 Hz und eine Signallänge von T = 3 s. Wir implementieren darüber hinaus weitere Eigenschaften des Sinus wie die Amplitude A = 0.8 und die Phasenverschiebung ϕ = 0.8. Wenn Sie diese Parameter nicht übernehmen, dann werden die Standardwerte übernommen A = 1 und ϕ = 0. Besonders wenn man allerdings mehrere Signale miteinander addieren möchte, ist es sinnvoll, mit der Amplitude und Phasenverschiebung zu arbeiten.

Zusätzlich zu den Sinuseigenschaften legen wir die Signaleigenschaften fest. Wir wählen eine Samplingrate von sr = 44100 Hz und eine Samplingtiefe von bit = 24 bit. Die Samplingrate gibt an, wie viele Werte pro Sekunde gespeichert werden und entscheidet damit über die maximale darstellbare Frequenz (Nyquist-Frequenz). Bei der Hälfte der Samplingrate liegt die Nyquist-Frequenz, also in diesem Fall bei circa 22 kHz. Die Samplingtiefe entscheidet über unseren Dynamikumfang und gibt den Wertebereich an, mit dem jedes einzelne Sample codiert werden kann.

Des Weiteren benötigen wir:

  • Diskretisierungs-Schrittweite: dt = 1 / sr
  • Das Zeit-Array: von 0 s bis T = 3 s mit einer Schrittweite von dt
  • Die Erzeugung des Sinus: A ⋅ sin(2⋅π⋅f⋅t + ϕ)

MATLAB erstellt automatisch ein Array aus unserem Sinus, da wir unser Zeit-Array t im Argument einsetzen. Um den Sinus abzuspielen, greifen wir auf die sound() Funktion von MATLAB zurück. Hier schreiben Sie das abzuspielende Array, die Samplingrate und die Samplingtiefe in das Argument der Funktion: sound(sinus, sr, bit). Dann haben Sie einen Sinus produziert und abgespielt. Abbildung 1 zeigt Ihnen den gesamten Quelltext.

MATLAB Sinus erzeugen abspielen und plotten Skript

Abb. 1: MATLAB Skript zum Erzeugen, Abspielen und Plotten eines Sinus-Signals

Sinus plotten

Das Plotten in MATLAB ist einfach gehalten. In der einfachsten Form reicht die Funktion plot() aus. Wir plotten auf der y-Achse die Zeit t und auf der x-Achse unseren Sinus: plot(t, sinus). Zusätzlich legen wir noch den Bereich fest, in dem MATLAB unseren Plot anzeigt, mit ylim() für die y-Achse und xlim() für die x-Achse. Ohne Festlegung des Bereiches plottet MATLAB den kompletten Zeitbereich und es sind die einzelnen Schwingungen nicht mehr zu erkennen, wie in Abbildung 2 (A) dargestellt. Nach dem Festlegen des Plot-Bereiches ist das Betrachten der Sinusschwingung deutlich einfacher, wie in Abbildung 2 (B) dargestellt. Natürlich gibt es noch viele weitere Optionen, um komplexere Plots zu erstellen, wie beispielsweise mit Legenden und Beschriftungen der Achsen.

Plot Sinus MATLAB

Abb. 2: Sinus Plotten in Matlab (A) ohne festgelegte Grenzen und (B) mit Grenzbereich

Mit nur 25 Sinus-Generatoren können Sie den Sound aus der Wasserwaagen-App Tiltification nachbauen, oder an Ihrem eigenen Sound Design feilen, um am Sonic-Tilt Wettbewerb teilzunehmen und eine App mit Ihrem eigenen Sound zu veröffentlichen.