WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Erzeugung eines sinusförmigen Signals

 

MatLabNewby

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.10.2011, 10:07     Titel: Erzeugung eines sinusförmigen Signals
  Antworten mit Zitat      
Hallo,

ich bin absoluter MatLab Neuling und soll nun "Erzeugung eines sinusförmigen
Signals" in MatLab realisieren. Ergebnisse sollen Funktionswerte, Zeitwerte sein und Übergabeparameter sollen Amplitude, Gleichanteil, Frequenz, Phase und Anzahl der Perioden sein. So wie mache ich das nun?

Bis lang habe ich bereits:
Code:

function[y,t]  = sinus(a, f0, p)

%**********************************
%  Erstellung einer Sinusschwingung
% f0: Frequenz
% y: Sinussignal (L Werte)
% t: Zeitwerte   (L Werte)
% a: Amplitude
% p: Phase
% File: sinus.m
%**********************************
T = 1/f0;         % Länge der Vektoren
t=0:T;            % Eine Periode
t=t/T/f0;             % Zeitvektor
y=a*sin(2*pi*t*f0 + p);   % Sinussignalvektor
 

Ist das so erstmal richtig und wie kriege ich den Gleichanteil und die Anzahl der Perioden mit rein?

Danke!

_Peter_: Bitte Codeumgebung nutzen. Danke.


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 16.10.2011, 10:37     Titel:
  Antworten mit Zitat      
Das wäre mein Vorschlag...

Code:

function[y,t] = sinus(a, f0, phase, anz_per, dc)

%**********************************
% Erstellung einer Sinusschwingung
% f0: Frequenz
% y: Sinussignal (L Werte)
% t: Zeitwerte (L Werte)
% a: Amplitude
% phase: Phase
% anz_per = Anzahl Perioden
% dc: Gleichanteil
% File: sinus.m
%**********************************
T = 1/f0; %  Periodendauer
T_end = T * anz_per;
% Abtasttheorem: fa mindestens >= 2*f0
Ta = 1/fa; % Abtastrate
t = 0:Ta:T_end; % Zeitvektor
y = dc + a*sin(2*pi*t*f0 + phase); % Sinussignalvektor
 


Jetzt musst du dir noch überlegen, wie du die Abtastrate Ta wählst. Es gilt hier das Abtasttheorem zu beachten, damit der Sinus korrekt dargestellt wird. Ich würde für fa allerdings >> 2*fo wählen. Gleichzeitig muss Ta ein ganzzahliges Verhältnis zu T_end haben, damit auch wirklich die volle Periodenanzahl dargestellt wird.
Private Nachricht senden Benutzer-Profile anzeigen
 
derbigmac

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.09.2014, 12:03     Titel: Tonhöhe bestimmen
  Antworten mit Zitat      
Vielen Dank für den Code.

Ich habe ein UI erstellt, wo man die Parameter der Funktion eingeben kann.
So sollen verschiedene Sinustöne individuell generiert werden.

Mein Problem: wenn ich die Frequenz ändere, verändert sich NICHT die Tonhöhe. Nur über die Abtastrate kann ich die Frequenz verändern :-/
Das erschließt sich mir nicht, weil ich immer dachte: Amplitude = Lautstärke (funktioniert auch) und Frequenz = Tonhöhe (geht nicht).

Könntet ihr mir das bitte noch einmal erklären?

Vielen Dank im Voraus!
DerBigMac
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.