Verfasst am: 18.11.2009, 12:40
Titel: Generierung eines Pulssignals in Matlab Simulink
Hallo!
Ich bin Anfänger in Matlab/Simulink und stehe vor folgendem Problem:
Ich möchte ein Pulssignal erzeugen, dass allerdings keine regelmäßige Frequenz hat. Mit dem Pulsgenerator sind ja wohl nur periodische Pulssignale möglich?
Das zugrunde liegende Problem ist, dass ich die Abtastung eines inkrementellen Drehgebers nachstellen will, der mir Pulse mit konstanter Dauer liefert. Der Abstand ist allerdings abhängig von der Drehgeschwindigkeit die ich gerne als Funktion vorgeben würde.
Dachte damit würde ich mich nicht so schwer tun, hat sich leider als falsch erwiesen.
Hab schon einiges mit Triggern versucht, steh aber irgendwie auf dem Schlauch!
Hat da jemand eine Idee??
Gruß Bernd
ich weiß zwar leider nicht, wo genau das Problem bei Deinem Algorithmus liegt.
Ich habe mal folgende Funktion definiert:
Code:
function[t,s,fmom,wpulsesig]=pulsegeneric(f0,df,fmodu,fbasic,N);
% pulsegeneric % f0 = Grundfrequenz [Hz], z.B. 100 % df = Modulationshub [Hz], z.B. 30 % fmodu = Modulationsfrequenz [Hz], z.B. 2 % fbasic = Grundabtastfrequenz [Hz], z.B. 1000 % N = Samples gesamt, z.B. 10000
t=0:1:N-1; % Zeitachse definieren
t=t ./fbasic;
fmom=f0 + df .*sin(2 .*pi .*fmodu .*t); % Momentanfrequenz
momentanwinkel=2*pi .*cumsum(fmom) ./fbasic;
sn=sin(momentanwinkel); % Normal- und Quadratursignal
sq=cos(momentanwinkel);
s=sn; % Wir brauchen nur das Normalsignal
digsignal=sn > 0; % Das binarisieren wir jetzt
w1=digsignal(1:1:N-1); % Nur bei der steigenden Flanke lassen wir den Impuls zu
w2=digsignal(2:1:N);
wpulsesig=(w2==1) & (w1==0);
wpulsesig=[0,wpulsesig];
% Hier verbreitern wir den Impuls ein wenig
B=[1,1,1]; A=[1];
wpulsesig=filter(B,A,wpulsesig);
Du solltest dann im oberen Teil des Plots deine Impulse sehen. Ich habe für die Verbereiterung der Pulse mit einer simplen Filterfunktion gearbeitet.
Hilft das erst mal weiter ?
Grüße
_________________
Andreas Geißler
Einstellungen und Berechtigungen
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
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.