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

Signalsteuerung

 

upt0zer0
Forum-Century

Forum-Century


Beiträge: 107
Anmeldedatum: 10.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.08.2012, 21:58     Titel: Signalsteuerung
  Antworten mit Zitat      
Hallo,

ich habe folgendes Problem. Ich habe ein Signal, das kommt rein, hat unendlich viele Stellen, also ...01010111010000101.... geht immer so weiter, also praktisch ein kontinuierliches Signal.

Jetzt will ich folgendes, wenn ich einer Konstante den Wert 1 gebe, soll die Zahl die ganze vorne steht in Kanal 1 geschoben werden, steht eine 2 dort, sollen 2 Bit in Kanal 2 geschoben werden und steht dort eine 4, sollen 4 Bit in Kanal 3 geschoben werden.

Habe eigentlich gedacht, dass ist nicht so schwer, aber irgendwie komm ich einfach nicht hin, weder mit Blöcken noch mit "Embedded Code".

Brauche dringend Hilfe, irgendwelche Ideen, egal wie gut oder schlecht, hilft mir alles irgendwie weiter!

Danke!
Private Nachricht senden Benutzer-Profile anzeigen


flashpixx
Forum-Guru

Forum-Guru


Beiträge: 355
Anmeldedatum: 19.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.08.2012, 23:11     Titel:
  Antworten mit Zitat      
Da es sich um einen kontinuierlichen Strom handelt, musst Du eben einen Zähler mit laufen lassen, wie viele Bits verarbeitet wurden und entsprechend mit dann jedes Mal, wenn der Zähler das Limit erreicht hat, die Daten schreiben. Natürlich musst Du, so lange der Zähler das Limit nicht erreicht hat, die Daten zwischen speichern.

Letztendlich musst Du die Arbeitsweise eines Schieberegisters ( http://de.wikipedia.org/wiki/Schieberegister ) implementieren
Private Nachricht senden Benutzer-Profile anzeigen
 
upt0zer0
Themenstarter

Forum-Century

Forum-Century


Beiträge: 107
Anmeldedatum: 10.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.08.2012, 23:42     Titel:
  Antworten mit Zitat      
ok das hab ich kapiert, aber 1. wie speicher ich das gescheit zwischen und 2. wie geb ich mehrere in einem taktschritt aus? 3. wo ist da das signal-"routing"?

danke aber schonmal
Private Nachricht senden Benutzer-Profile anzeigen
 
flashpixx
Forum-Guru

Forum-Guru


Beiträge: 355
Anmeldedatum: 19.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.08.2012, 21:06     Titel:
  Antworten mit Zitat      
Wenn Du nur die Bits verteilen willst, dann brauchst keine Zwischenspeicherung. Ich dachte Du willst immer n Bits aufnehmen und dann verteilen.

Aber an sich bleibt es das gleiche. Du musst eben einen Zähler mitlaufen lassen und anhand des Wertes entscheiden, wohin Du die Daten gibst. Das geht mit einer Division auf welchen Kanal es soll
Private Nachricht senden Benutzer-Profile anzeigen
 
upt0zer0
Themenstarter

Forum-Century

Forum-Century


Beiträge: 107
Anmeldedatum: 10.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.08.2012, 08:24     Titel:
  Antworten mit Zitat      
Und wie verteile ich die Bits? Kannst mal bisschen genauer werden? Danke schonmal
Private Nachricht senden Benutzer-Profile anzeigen
 
flashpixx
Forum-Guru

Forum-Guru


Beiträge: 355
Anmeldedatum: 19.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.08.2012, 10:45     Titel:
  Antworten mit Zitat      
Nehmen wir an, Du musst die Daten auf 5 Kanäle (Werte 0 bis 4) verteilen, ich habe einen Zähler i, der aktuell 123, 124, 125 ist, d.h. nach jedem Wert inkrementiere ich i um 1 (also i = i+1). Mit welcher mathematischen Operation kann ich nun ermitteln auf welchen Kanal ich den Wert 123igsten, 124igsten, 125igsten Wert legen muss?
Also auf welchen Wert in [0,4] muss ich 123 abbilden?
Private Nachricht senden Benutzer-Profile anzeigen
 
upt0zer0
Themenstarter

Forum-Century

Forum-Century


Beiträge: 107
Anmeldedatum: 10.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.08.2012, 12:32     Titel:
  Antworten mit Zitat      
ok, ganz verstanden hab ichs nicht, willst nicht zufällg mal nen passenden code / passendes modell erstellen oder?
Private Nachricht senden Benutzer-Profile anzeigen
 
flashpixx
Forum-Guru

Forum-Guru


Beiträge: 355
Anmeldedatum: 19.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.08.2012, 14:11     Titel:
  Antworten mit Zitat      
Nein, Du sollst verstehen, was Du da machen musst. Ich gebe grundsätzlich keine Lösungen vor, weil das bringt ja nichts, wenn Du etwas fertiges vorgekaut bekommst. Das ist eine mathematische Operation, die Du in Quellcode gießen musst.

Du bekommst einen Bitstrom, also bei jedem Takt ein Bit und Du lässt einen Zähler mit laufen, der zählt wie viele Bits schon verarbeitet wurden. Nun hast Du n Kanäle, durchnummiert von 0 bis n-1. Nun bist Du beim i-ten Bit. In welchen Kanal muss nun dieses Bit?

Das ist eine Operation die zwischen i und n statt finden muss. Also so etwas in der Art wie
Code:

channel_number = number_of_bit + number_of_channels
 

und statt dem + muss man eben etwas anderes machen. Was muss man da machen?
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.