www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Sinusgenerator in MATLAB ( Nicht der Funktionsblock in Simuling)


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: m. S. (marek)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hallo @ all,

ich hab mal eine Frage, im MATLAB/Simuling gibt es ja den Funktionsblock 
zur erzeugung von Sinus Signalen. Ich will mir aber gerne selber einen 
erstellen bzw. muss mir selber einen erstellen. Mir wurde gesagt es soll 
ihrgend wie mit hinterlegung von TAbbellen gehen die die entsprechenden 
Were bei bestimmten Winkeln hinterlegt haben. Hat sich damit schon 
jemande beschäftigt so das er mir vielleicht einen denk Ansatz geben 
kann bzw. einen Hinweis wo ich mich dazu belesen kann. Da ich bis jetzt 
nur verweise auf den Sinulink Sinusgenerator bekomme. Danke euch schon 
mal die mir weiterhelfen und dan die die sich bemüchen.

mfg
m.s.

Autor: Hannes Jaeger (pnuebergang)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Ein abgetasteter Sinus, hier mit Octave gemacht (Matlab sollte ähnlich 
sein), und bewusst zur Demonstration mit mehr Variablen als man wirklich 
braucht:
f   = 1e6;               % Frequenz
T   = 1/f;               % Periodendauer
A   = 1;                 % Amplitude
off = 0;                 % Y-Offset
phi = 0;                 % Phasenverschiebung
K   = 20;                % Anzahl Abtastwerte pro Periode

fs  = K * f;             % Abtastfrequenz
Ts  = 1 / fs;            % Abtastperiode
N   = 1;                 % Anzahl abzutastender Perioden
ts  = 0:Ts:(T * N);      % Zeitpunkte an denen abgetastet wird
                         %   plus ein letzter Wert, damit der Plot
                         %   besser aussieht. Ansonsten
% ts  = 0:Ts:(T * N - Ts);

x = off + A * sin(2 * pi *f * ts + phi); % abgetasteter Sinus

% Nur zum Spass:
plot(ts, x)

Autor: Jan K. (jan_k)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Bedenke, matlab ist (hauptsächlich) ein numerisches Programm. Du musst 
also erst einen Vektor (eine Tabelle..) von Zeitpunkten erstellen, die 
dann von einer Funktion (z.B. sin(t), t ist eine Zahl oder ein Vektor, 
dann wird der Sinus auf alle Zahlen des Vektors angewendet) benutzt 
werden, um daraus deine y-Werte zu erzeugen.

Du hast also hinterher einen t Vektor für z.B. 200 Zeitpunkte in 
bestimmtem Abstand und die dazugehörigen Funktionswerte.

Wie das geht hat Hannes Jaeger oben schön demonstriert.

ts ist der Zeitvektor, x deine Funktionswerte.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net