Bloc Scicos
eng - fr


Bloc démodulateur I/Q

\epsfig{file=DEMODIQ_f.eps,width=90.00pt}

Contenu

Palette

Description

Ce bloc realise une démodulation complexe dans le domaine temporel. Il calcule :

$\displaystyle y_{1}(t) = u_{1}\cos\left(\omega_{o}t\right)+u_{2}\sin\left(\omega_{o}t\right)
$

$\displaystyle y_{2}(t) = u_{2}\cos\left(\omega_{o}t\right)-u_{1}\sin\left(\omega_{o}t\right)
$

avec u1,u2 les entrées régulières et y1,y2 les sorties. wo est renseigné par le paramètre "vector of frequencies" de la boîte de dialogue. Ce bloc fonctionne de paire avec le bloc MODIQ_f.

Modèle équivalent en Super Bloc

\epsfig{file=DEMODIQ_f_sblock_equiv.eps,height=9cm}

Boîte de dialogue

\begin{figure}\begin{center}
\epsfig{file=DEMODIQ_f_gui.eps,width=300pt}
\end{center}\end{figure}

Propriétés par défaut

Fonction d'interface

DEMODIQ_f.sci

Fonction de calcul (type 2)


/* demodiq Scicos demodulator I/Q block
 * Type 2 simulation function ver 1.0 - scilab-2.6&2.7
 * 8 novembre 2003 - IRCOM GROUP - Author : A.Layec
 */
 
/* REVISION HISTORY :
 * $Log$
 */
 
#include "machine.h"
#include <math.h>

/* Cette fonction calcule la partie réelle et imaginaire de l'enveloppe
 * complexe en bande de base à partir de la partie réelle et imaginaire
 * de l'enveloppe modulée autour d'une fréquence wo :
 * y1=u1*cos(wot)+u2*sin(wot)
 * y2=u1*sin(wot)-u2*cos(wot)
 * où y1, y2 sont les sorties, u1 et u2 sont la partie réelle et imaginaire
 * du signal modulé et wo un paramètre réel en rad/s. Les porteuses sont en fait
 * sur-échantillonnées par la variable *t. Le rythme des déclenchements défini
 * donc la période de sur-échantillonnage.
 *
 * entrées régulières: u1[0..insz[0]-1] vecteur des parties réelles du signal modulé
 *                     u2[0..insz[0]-1] vecteur des parties imaginaires du signal modulé
 * sorties régulières : y1[0..insz[0]-1] vecteur des parties réelles du signal en bande de base
 *                     y2[0..insz[0]-1] vecteur des parties imaginaires du signal en bande de base
 * entrée évènementielles : instants de suréchantillonnage
 * sorties évènementielles : néant
 * paramatres réels : rpar[0..insz[0]-1] : vecteur des pulsations porteuses
 */
 
/*prototype*/
void demodiq(flag,nevprt,t,xd,x,nx,z,nz,tvec,ntvec,rpar,nrpar,
             ipar,nipar,inptr,insz,nin,outptr,outsz,nout)
integer *flag,*nevprt,*nx,*nz,*ntvec,*nrpar,ipar[],*nipar,insz[],*nin,outsz[],*nout;
double x[],xd[],z[],tvec[],rpar[];
double *inptr[],*outptr[],*t;
{
   /*déclaration des variables*/
   double *y1,*y2;
   double *u1,*u2;
   int nu,i;

   /*récupération des adresses des ports réguliers*/
   y1=(double *)outptr[0];
   y2=(double *)outptr[1];
   u1=(double *)inptr[0];
   u2=(double *)inptr[1];

   /*récupération de la taille des ports d'entrées*/
   nu=insz[0];
    
   /*Le flag 1 calcule la partie réelle et imaginaire de
    * l'enveloppe complexe en bande de base.
    */
   if(*flag==1)
   {
    for(i=0;i<nu;i++)
     {
      /*Calcul du registre y*/
      y1[i]=cos(*t*rpar[i])*u1[i]+sin(*t*rpar[i])*u2[i];
      y2[i]=sin(*t*rpar[i])*u1[i]-cos(*t*rpar[i])*u2[i];
     }
   }
}

Voir aussi

Auteurs

IRCOM Group Alan Layec