C'est le bloc qui fonctionne de paire avec le bloc UPSMPL_f. Il réalise une diminution du taux d'échantillonage de l'entrée en prenant un élément parmi M, où M et le facteur de sous-échantillonnage.
/* sousecht Scicos temporal undersamplig
* Type 4 simulation function ver 1.0 - scilab-3.0
* 22 Décembre 2004 Author : - IRCOM GROUP - A.Layec
*/
/* REVISION HISTORY :
* $Log$
*/
#include "scicos_block.h"
#include "machine.h"
#include <stdio.h>
/* Cette fonction de simulation réalise un sous échantillonnage d'un
* vecteur d'entrée de taille nu vers un vecteur de sortie de taille ny.
* Pour chaque vecteur, la fonction recopie les valeurs de u dans y
* lorsque l'échantillon testé est celui qui correspond au numéro count
* exemple count = c.i + nech
*
* Entrée régulière : signal surechantilonné
* Sortie régulière : signal sous échantillonnés
* Entrée évènementielle : néant
* Sortie évènementielle : néant
*
* Paramètres entier : insz[0] : taille du vecteur en entrée
* ipar[0] : nombre d'échantillons
*
* état discret : z[0] : valeur initiale du numéro échantillons
*/
/*prototype*/
void sousecht(scicos_block *block,int flag)
{
/*Déclaration des variables*/
double *y;
double *u;
int i,j;
int nu,nech,counter;
/*Récupération des adresses des ports réguliers*/
y=(double *)block->outptr[0];
u=(double *)block->inptr[0];
/*Récupération du nombre d'échantillons*/
nu=block->insz[0];
nech=block->ipar[0];
/*Le flag1*/
if(flag==1)
{
counter=(int)block->z[0];
/*Appel routine sousecht_c*/
sousecht_c(&nu,&nech,&counter,&u[0],&y[0]);
}
}