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

B-FFT in Matlab GUI integrieren

 

Dellirius
Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 06.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2009, 21:08     Titel: B-FFT in Matlab GUI integrieren
  Antworten mit Zitat      
Hi Leute,

ich habe eine Frage. In Simulink kann ich den B-FFT Block verwenden um mir damit schön das Spectrum eines Signals anzeigen zulassen. Besteht die Möglichkeit diesen Plot in mein matlab GUI zu integrieren?

mfg Fabian
Private Nachricht senden Benutzer-Profile anzeigen


gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.06.2009, 15:14     Titel:
  Antworten mit Zitat      
ja, die möglichkeit besteht. aber dazu brauch ich schon genauere angaben von dir was du überhaupt willst.
willst du erst in simulink simulieren und das ergebnis in der gui haben, oder gleich mit fft() rechnen?
wie liegen die daten vor?
etc...

hab leider meine glaskugel gerade verlegt, sry.
 
Dellirius
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 06.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2009, 13:09     Titel:
  Antworten mit Zitat      
Hi,

ich möchte direkt mit FFT rechnen, also während die Simulation läuft. Mein Signal selbst von dessen ich die FFT möchte kann ich schon in der GUI in Realtime plotten, dies habe ich mit einem eventListener auf einen Scope Block realisiert. An die Datenpunkte komme ich mit:

Code:


blk_eeg = 'Simulinkmodell/Scope';

ad.eventHandle  = add_exec_event_listener(blk_eeg,...
   'PostOutputs', @localEventListener_eegSignal);


function localEventListener_eegSignal(block, eventdata)

time = block.CurrentTime;
signal = block.InputPort(1);

 


habe nun jedoch ein Problem die fft hier anzuwenden, mein Ansatz wahr:

Code:


    t = time;                                 % Zeitvektor
    x = signal;                              % Datenvektor ("Messwerte")

    Ts = diff (t(1:2)); ;                   % Abtastzeit
    N = length (x);                         % Länge des Datenvektors
    f = [0:floor((N-1)/2)] / (N*Ts);  % Frequenzvektor für Plot

    X = fft (x);         % Fouriertransformation
    X = X / N;           % Normierung
    X = [X(1) 2*X(2:floor((N-1)/2)+1)];   % Begrenzen auf < F_max

    stem(f, abs (X));
    axis([0 40 0 500]);
    xlabel('Frequenz [Hz]');
    ylabel('Amplitude');
    title('Spektrum');

 


Als dies dann nicht funktioniert hat, wahr hier meine alternative Idee das benützen des B-FFT Blockes. Ich hoffe du hast eine Lösung

mfg Fabian
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.