Low level routine
eng -
fr
demodqam_c - Quadrature amplitude demodulator computational routine
- n : size of vectors
- m : length of the binary words in number of bits (scalar)
- i_c : address of input vector of I component
- q_c : address of input vector of Q component
- y : address of output vector of the number of symbol
/* demodqam_c subroutine
* Quadrature Amplitude Modulation demodulator
* IRCOM GROUP - Author : A.Layec
*/
/* REVISION HISTORY :
* $Log$
*/
#include "mod_num_lib.h"
/* demodqam_c routine de calcul d'un démodulataur mQAM
*
* Entrées :
* n :longueur des vecteurs d'entrées
* m :longueurs des mots binaires en nombre de bits (scalaire)
* i_c :adresse de départ du vecteur de la composante I
* q_c :adresse de départ du vecteur de la composante Q
*
* Sortie :
* y : adresse de départ du vecteur du symbole
*
* Dépendances:
*/
void demodqam_c(int *n,int *m,double *i_c,double *q_c,double *y)
{
/*déclaration des variables*/
int i,j;
int ng,nd;
int d,g;
for(i=0;i<(*n);i++)
{
/*Calcul des sélecteurs binaires (c'est maladroit!!)*/
nd=(1<<(*m)/2)-1;
ng=(1<<(*m))-1-nd;
/*récupération des valeurs d'entrée*/
d=(int)i_c[i];
g=(int)q_c[i];
/*Calcul les nombres binaires droit et gauche*/
d=(d+nd)/2;
g=((g+nd)/2)<<((*m)/2);
/*Calcul du registre de sortie y[]*/
y[i]=d+g;
}
return;
}
IRCOM Group
Alan Layec