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

Schiebregister

 

MartinBruha
Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 31.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2010, 20:09     Titel: Schiebregister
  Antworten mit Zitat      
Hallo zusammen,

kann mir jemand beraten, wie einen Schiebregister zu realisieren? Vielleicht ist es schon in der Simulink Library vorgefertigt, nur habe ich es nicht gefunden.
Ich will damit dann eine FFT eines Signals durchzuführen. Das Signal bekomme ich aus einem Modell (sehr komplex..), speichere in workspace und aus workspace brauche ich es dann wieder einlesen und FFT analysieren.

Vielen Dank für jede Idee Smile

Martin
_________________

Martin Bruha
Private Nachricht senden Benutzer-Profile anzeigen


MartinBruha
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 31.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.04.2010, 19:44     Titel:
  Antworten mit Zitat      
Niemand mit guter Idee???
_________________

Martin Bruha
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2010, 08:18     Titel:
  Antworten mit Zitat      
Willst Du die FFT nach der Simulation auf das Signal werfen oder muss das alles während der Simulation passieren?

Wenn es nach der Simulation passieren soll, guck Dir mal den To Workspace-Block in der Sinks-Bibliothek an.
Private Nachricht senden Benutzer-Profile anzeigen
 
MartinBruha
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 31.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2010, 10:20     Titel:
  Antworten mit Zitat      
Ich habe einen Block, der die FFT während der Simulation macht. Das ist aber nicht so praktisch, da mein Modell sehr komplex und umfangreich ist und die FFT würde es noch viel mehr bremsen. Deshalb möchte ich das Signal erst nach der Simulation analysieren.
Ich versuchte mit From Workspace die gespeicherten Daten für FFT liefern, aber dann stimmen die Dimensionen des Eingangvektors nicht mehr..
So habe ich gedacht, dass ich den Signalvektor mit einem Schiebregister in den FFT Block schicke, mit gleichem Schritt wie während der Simulation. So sollte das gehen, oder?
_________________

Martin Bruha
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2010, 10:46     Titel:
  Antworten mit Zitat      
Also brauchst Du die Ergebnisse der FFT nicht zur Simulationszeit, richtig?

Dann einfach die Simulation wie gewohnt durchführen und die Werte mit dem To-Workspace-Block in den Workspace schreiben. Da steht dir dann in der Variablen Zeitvektor + Datenvektor zur Verfügung. Damit solltest Du dann die FFT durchführen können.
Private Nachricht senden Benutzer-Profile anzeigen
 
MartinBruha
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 31.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2010, 11:35     Titel:
  Antworten mit Zitat      
Ja, so habe ich es auch gedacht. Leider funktioniert es nicht. Der FFT Block erwartet andere Dimensionen.
Wenn ich die FFT eines Signals während der Simulation durchführe, stelle ich die Dimension auf 1 ein, wenn ich FFT von einem Signal aus dreiphasigen System mache, dann ist die Dimension 3.
Ich kann aber nicht so einfach die gespeicherten Werte dem Block als Eingangssignal geben, dann stimmen die Dimensionen nicht. Deshalb möchte ich es so quasi "dosieren".
Das Problem ist, dass ich gar keinen Zeitvektor verwende. Im FFT Block stelle ich die Abtastzeit von diskreten Werten meines Signals und den Simulationsschritt.
_________________

Martin Bruha
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2010, 11:51     Titel:
  Antworten mit Zitat      
Muss denn die FFT unbedingt über Simulink gemacht werden?
Private Nachricht senden Benutzer-Profile anzeigen
 
MartinBruha
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 31.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2010, 12:21     Titel:
  Antworten mit Zitat      
Die FFT muss nicht unbedingt über Simulink gemacht werden. Ich hatte den Block zur Verfügung, dann dachte ich, dass es so einfach sein könnte. Aber tatsächlich ist es nicht so.
Ich habe vorher auch den Command fft benutzt, dann schreibt aber Matlab, dass es mit Daten im double Format nicht geht..
_________________

Martin Bruha
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2010, 13:43     Titel:
  Antworten mit Zitat      
Poste mal den Code, wie Du die Variable vom ToWorkspace in die FFT-Funktion von Matlab transportierst. Normalerweise kann die FFT-Funktion schon mit double umgehen.
Private Nachricht senden Benutzer-Profile anzeigen
 
MartinBruha
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 47
Anmeldedatum: 31.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.04.2010, 10:12     Titel:
  Antworten mit Zitat      
Also es funktioniert schon.
Ich habe es laut dem einfachen Beispiel gemacht, das in doc fft steht:

t = 0:0.001:0.6;
x = sin(2*pi*50*t)+sin(2*pi*120*t);
y = x + 2*randn(size(t));
plot(1000*t(1:50),y(1:50))
title('Signal Corrupted with Zero-Mean Random Noise')
xlabel('time (milliseconds)')

Y = fft(y,512);
Pyy = Y.* conj(Y) / 512;
f = 1000*(0:256)/512;
plot(f,Pyy(1:257))
title('Frequency content of y')
xlabel('frequency (Hz)')

Das ist ein Beispiel für die Abtastfrequenz 1kHz. Wenn in meinem Fall die Abtastfrequenz z.B. 5 kHz ist, wäre dann die x-Achse mit Frequenz so modifiziert?
f=5000*(0:256)/512;

Und wie kann ich die fft programmieren, dass z.B. der DC Anteil auf Null gesetzt wird oder nicht abgebildet wird?
Ich untersuche nämlich die Welligkeit des Drehmoments, der DC Anteil ist dann der grösste, interessiert mich jedoch nicht.

Vielen Dank für ihre Vorschläge und Ideen!
_________________

Martin Bruha
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 2024 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.