2015-12-27 1 views
2

Je cherchais des moyens de transférer des données matricielles d'un bloc à un autre. Je me demandais s'il était possible de faire la même chose. Ce à quoi j'ai pensé jusqu'à maintenant, c'est de convertir la matrice numpy en une liste, et d'envoyer la liste après l'avoir remplie avec le nombre de lignes et de colonnes à la fin. Après réception, il suffit de remodeler la liste en une matrice chiffrée et de procéder comme requis. Mais d'après ce que je comprends, la longueur d'une liste doit être connue en faisant les blocs. Je voudrais savoir s'il est possible d'implémenter ceci, ou si je vais devoir le regarder d'une autre manière.Existe-t-il un moyen de transférer des données matricielles entre des blocs dans gnuradio?

Répondre

2

GNU Radio se fiche de ce que vos objets représentent réellement, seulement leur taille en octets.

Par conséquent, vous pouvez définir des tailles d'élément arbitraires et mettre plusieurs nombres dans un élément. En fait, ce que font stream_to_vector et vector_to_stream est exactement cela.

Vous utiliseriez un output_signature = gr.io_signature(1,1, [gr.sizeofgr_complex] * N_elements) avec N_elements étant votre nombre d'entrées de matrice. En guise de remarque, les matrices échangées ne tiennent pas compte des estimations des canaux ou de l'égalisation; ceux-ci sont souvent traités plus élégamment par des messages asynchrones que des flux d'éléments.