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

FFT in Embedded Matlab Funktion in Simulink

 

mmm555

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2011, 09:43     Titel: FFT in Embedded Matlab Funktion in Simulink
  Antworten mit Zitat      
Hallo,
ich bin leider nicht so fit in Simulink und Matlab und komme im Moment einfach nicht weiter. es geht um folgendes:

ich habe ein modell in simulink mit dem ich signale mithilfe von RTAI aufzeichne. nun möchte ich online mit einer embedded matlab funktion die FFT(fouriertransformation) berechnen.
das problem ist nur dass die fft von jedem einzelnem signal berechnet wird und mir somit kein vernünftiges ergebnis liefert. ich hätte es aber gerne so dass die fft immer erst nach 256ms berechnet wird. sprich:
256 signale werden in einen vektor geschrieben->berechnung der fft dieses vektor->die nächsten 256 signale werden in einen vektor geschrieben->...

ich hoffe ich konnte mein problem einigermaßen verständlich schildern und es gibt jemanden der mir weiterhelfen kann.

beste grüße


Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2011, 10:13     Titel:
  Antworten mit Zitat      
Es macht "Buffer" (bzw. "Unbuffer") Block und er liegt in DSP System Toolbox.
 
mmm555

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2011, 10:19     Titel:
  Antworten mit Zitat      
die toolbox hab ich aber leider nicht. bekommt man die iwie?
 
mmm555

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2011, 10:21     Titel:
  Antworten mit Zitat      
die toolbox hab ich aber leider nicht. bekommt man die iwie?
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2011, 12:00     Titel:
  Antworten mit Zitat      
Mögliche Lösung: erst einen Buffer füllen und dann FFT. Die Variable valid sagt, wann wir FFT Werte ausgeben.

Code:
function [y, valid] = myfft(u)

persistent val;
persistent i;

if isempty(val)
   val = zeros(256, 1);
end

if isempty(i)
   i = 0;
end

i = i + 1;
val(i) = u;
if i >= 256
   i = 0;
   y = abs(fft(val))/256;
   valid = true;
else
   y = zeros(256, 1);
   valid = false;
end

 
 
mmm555

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2011, 16:38     Titel:
  Antworten mit Zitat      
danke!! hat gut geklappt
 
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.