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

s-Function Buffer

 

upt0zer0
Forum-Century

Forum-Century


Beiträge: 107
Anmeldedatum: 10.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2012, 13:47     Titel: s-Function Buffer
  Antworten mit Zitat      
Hey Leute,

ich müsste einen Buffer mit Hilfe einer S-Function realisieren.

Problem ist folgendes, ich bekomme ein Signal rein, das aber nicht zwangsläufig mit dem Anfang anfängt. Der Anfang wird erst gesucht und ab da adnn weitergegeben. Problem ist, dass jetzt aebr am Ende (auch für den nächsten Verarbeitungsschritt), eine feste Länge ausgegeben werden muss.

Beginnt das Signal etwa bei der Hälfte, muss die zweite Hälfte dann mit dem nächsten Frame gefüllt werden usw... hoffe das ist verständlich.

Wie also bring ich meiner S-Function bei nur dann etwas auszugeben wenn genug da ist und ansonsten in dem Taktschritt einfach nichts zu tun?
Private Nachricht senden Benutzer-Profile anzeigen


upt0zer0
Themenstarter

Forum-Century

Forum-Century


Beiträge: 107
Anmeldedatum: 10.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.10.2012, 22:29     Titel:
  Antworten mit Zitat      
Also ich wurde gebeten, das ich das hier etwas mehr erkläre:

Also wir haben das Signal A, das aus 960 Stellen besteht. Durch Verzerrung im Kanal sind die Frames jetzt aber verschoben, heißt Wert 1 ist nicht mehr der Anfang.

Eine Funktion sucht jetzt den neuen Anfang und makiert ihn. Sagen wir bei 460. Heißt 460 = 1. Wert, 461 = 2. Wert,...

Der nächste Verarbeitungsschritt erwartet jetzt aber wieder volle 960 Stellen, wobei der erste Wert wie oben beschrieben in der Mitte liegt. Wenn also 960 Werte reinkommen und bei 460 begonnen wird, hat das Signal dann aber nur 500 Werte. Die fehlenden 460 Werte sind die aus dem darauffolgenden 2. Frame.

Also müssen immer mindestens 2 Frames in der S-Function sein. Heißt entweder die gibt beim ersten mal nichts aus, oder nur Nullen. Da ja auf den zweiten Frame gewartet werden muss, um die 460 fehlenden Werte zu bekommen. Sobald dann alles entsprechend stimmt muss während der erste "neu zusammengesetzte" Frame ausgegeben wird, muss der dritte schon nachgeladen werden, damit im nächsten Schritt direkt "neuer Frame 2" ausgegeben werden kann.

Hoffe das war jetzt verständlich, ich lad noch eine Paint Skizze mit hoch.... die Kästchen sollten eigentlich gleich groß sein...

PS: Ob als S-Function oder Embedded Matlab oder wie auch immer ist erstmal egal

buffer_problem.png
 Beschreibung:

Download
 Dateiname:  buffer_problem.png
 Dateigröße:  6.8 KB
 Heruntergeladen:  593 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
upt0zer0
Themenstarter

Forum-Century

Forum-Century


Beiträge: 107
Anmeldedatum: 10.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.10.2012, 22:56     Titel:
  Antworten mit Zitat      
So Leute,

ich hätte so theoretisch gesehn eine Lösung, wenn mir jemand sagen kann, wie ich Variablen von einer S-Function Ausführung in die nächste übernehmen kann. Also eine Speicherung, die nicht bei jedem neuen Wert der reinkommt direkt überschrieben wird.

Hab ein haufen über Dwork vektoren und persistent variables gelesen, aber so wirklih schlau bin ich nicht geworden, wie ich selbige in die S-Function einbaue.

Kann mir jemand helfen?
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.