-
Format output Unbuffer
Bonsoir,
Je ne comprends pas le fonctionnement du bloc unbuffer sur simulink. En effet, je lui transmets un vecteur de format [64x1] et le format de sortie est toujours [64x1]. Je voudrais avoir en sortie un format [1x1] afin de pouvoir transmettre un scalaire à mon bloc QPSK.
Pouvez-vous me dire où je fais une erreur?
Merci! :ccool:
-
J'alimente un peu le débat...
Après avoir longuement cherché, je n'ai toujours pas compris exactement le fonctionnement du bloc Unbuffer. Cependant, j'apporte ici quelques éléments à la réflexion:
1°) Cet article explique la différence que fait le bloc Unbuffer selon le mode Sample Base et Frame Base:
http://www.mathworks.com/matlabcentr...w_thread/51338
2°) Sur Matlab Central, quelqu'un a rencontré le même problème et l'a résolu en ajoutant un bloc "Frame Conversion" avant le bloc "Unbuffer". Cette solution ne fonctionne pas pour moi et je ne vois pas pourquoi elle fonctionnerait d'ailleurs...
3°) L'idée qui m'a été soumise a été de voir l'évolution de mon signal au cours de ma modélisation et cela à l'aide de l'option présente dans Format/SampleTimeDisplay/Colors. J'ai pu constater que mon signal est d'abord discret puis arrive de manière continue sur mon Unbuffer. L'erreur étant:
"All sample times for this block must be discrete. Continuous samle time is not allowed"
j'ai choisi d'utiliser le bloc "Rate Transition" qui me permet d'artificiellement rendre mon signal discret. L'erreur sur le bloc Unbuffer disparait, cependant la sortie est toujours monolithique et non échantillon par échantillon comme je le souhaiterai! ([64x1] au lieu de [1x1]) :(
Si vous avez des suggestions ou des réactions par rapport à ce que j'ai pu trouver n'hésitez pas. J'en ai marre de bloquer sur ce problème d'apparence aussi simple et qui paralyse complètement mon système!
Merci ;)
-
Salut à tous!
Puis que cela peut sûrement servir à d'autres, voilà la solution! :mrgreen:
J'ai pu trouver le problème grâce à l'outil "Format/SampleTimeDisplay/Colors" que je vous conseille fortement!
Le problème venait d'un de mes blocs qui transformait mon signal temps-discret en signal temps-continu. Et ça, le bloc Unbuffer il aime pas! ;-)
J'ai donc utilisé le bloc "Rate Transition" qui m'a permis de discrétiser artificiellement mon signal en fixant le bon taux d'échantillonnage. Mais ce n'est pas tout!
Avant le bloc "Unbuffer", il fallait encore ajouter le bloc "To Frame". Le bloc "Unbuffer" reçoit alors une trame qu'il tranche en plusieurs échantillons. Sans ce bloc "To Frame" le bloc "Unbuffer" reçoit un vecteur qu'il se contente de retransmettre tel quel.
J'ai donc bien en sorti de mon "Unbuffer" des échantillons [1x1]! :ccool:
Si quelqu'un en revanche pouvait m'expliquer pourquoi le bloc "To Frame" est indispensable pour l'utilisation du Unbuffer, je suis preneur!
A bientôt!!!