One bit Quantizer block
- Size of input vector :
Type 'vec' of size 1. Size of the regular input port.
- Amplitude of outputs :
Type 'vec' of size -1. This parameter is a linear gain applied on the outputs.
- Accepted herited (0/1)? :
Type 'vec' of size 1. Enable the event herited property (disable the event input port).
- always active: no
- direct-feedthrough: yes
- zero-crossing: no
- mode: no
- number/sizes of inputs: 1 / 1
- number/sizes of outputs: 1 / 1
- number/sizes of activation inputs: 0 /
- number/sizes of activation outputs: 0 /
- continuous-time state: no
- discrete-time state: no
- name of computational function: comp
COMP_f.sci
/* comp Scicos sign comparison block
* Type 4 simulation function - scilab-3.0
* IRCOM GROUP - Author : A.Layec
*/
/* REVISION HISTORY :
* $Log$
*/
#include "scicos_block.h"
/* Cette fonction de simulation realise la comparaison de signe
* du vecteur d'entrée. Le vecteur de sortie prend les valeurs
* +- ampl suivant le signe du vecteur d'entrée.
* Si le paramètre rpar est un vecteur on appelle compv_c
* si c'est un scalaire on appelle comp_c.
*
* entrée régulière : u[0..nu-1] vecteur d'entrée
* sortie régulière : y[0..ny-1] vecteur de sortie
* entrée évènementielle : Heritage ou explicite
* sortie évènementeille : néant
*
* paramètre entier : néant
* paramètre réel : rpar[0] ou rpar[0..nu-1] amplitude de sortie
*/
/*
* compv_c routine de calcul de comparaison de signe
*
* Entrées :
* n : taille des vecteurs
* amp : amplitude des sorties (vecteur)
* u : vecteur d'entrée
* Sorties :
* y : vecteur de sortie
*/
void compv_c(int *n,double *ampl,double *u,double *y)
{
int i;
for(i=0;i<(*n);i++)
{
if(u[i]>=0) y[i]=ampl[i];
else y[i]=-ampl[i];
}
return;
}
/*Prototype*/
void comp(scicos_block *block,int flag)
{
/*déclaration*/
double *u,*y;
int i;
/*récupération des adresses des ports réguliers*/
u=(double *)block->inptr[0];
y=(double *)block->outptr[0];
if(flag==1)
{
if (block->nrpar==1)
/*Appel comp_c*/
comp_c(&block->insz[0],&block->rpar[0],&u[0],&y[0]);
else
/*Appel compv_c*/
compv_c(&block->insz[0],&block->rpar[0],&u[0],&y[0]);
}
}
IRCOM Group
Alan Layec