Low level routine
eng - fr


demodqam_c - Quadrature amplitude demodulator computational routine

Library

Parameters

File content


/* 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;
}

Authors

IRCOM Group Alan Layec