Low level routine
eng -
fr
mash1_c - first order delta-sigma modulator computational routine
- n : size of input vector (scalar)
- m : gain of modulator (scalar)
- u : address of input vector
- e : integrator state (scalar)
- z : output state +m;-m (scalar)
- y : address of output vector (+1;-1)
- q : address of error quantification output vector
/* mash1_c subroutine
* First order MASH Sigma-Delta Modulator
* IRCOM GROUP - Author : A.Layec
*/
/* REVISION HISTORY :
* $Log$
*/
#include "mod_num_lib.h"
/* mash1_c routine de calcul d'un modulateur sigma-delta du 1er ordre type MASH
*
* entrées :
* n : longueur du vecteur d'entrée (scalaire)
* m : gain du modulateur (scalaire)
* u : adresse de départ du vecteur à convertir
* entrées/sorties
* e : intégral du signal d'erreur du dernier élément (scalaire)
* z : etat de sortie du dernier élément +m;-m (scalaire)
* y : adresse de départ du vecteur de sortie (+1;-1)
* sorties :
* q : adresse de départ du vecteur de sortie de l'erreur de quantification
*/
void mash1_c(int *n,double *m,double *u,double *e,double *z,double *y,double *q)
{
/*déclaration*/
int i;
for(i=0;i<(*n);i++)
{
/*Calcul de l'intégrale du signal d'erreur*/
*e+=u[i]-(*z);
/*Réalisation de la comparaison de signe*/
if((*e)>0) y[i]=1;
else y[i]=-1;
/*mise en mémoire de la sortie*/
*z = *m*y[i];
/*Calcul du bruit de quantification*/
q[i]=(*z)-(*e);
}
return;
}
IRCOM Group
Alan Layec