Bloc Scicos
eng - fr


Bloc modulateur I/Q

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

Contenu

Palette

Description

Ce bloc realise un oscillateur local complexe. Il calcule :

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

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

où u1,u2 sont les deux entrées régulières et y1, y2 les sorties régulières. w0 est renseigné par le paramètre 'Vector of carrier frequency' de la boîte de dialogue. Ce bloc est typiquement utilisé pour réaliser une transposition de composantes symboles en bande de base autour d'une fréquence porteuse comme le montre la figure suivante :
\scalebox{1.1}{\includegraphics{f12.eps}}

Les dates d'activation de ce bloc déterminent le pas d'échantillonnage des grandeurs de sorties.

Modèle équivalent en Super Bloc

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

Boîte de dialogue

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

Propriétés par défaut

Fonction d'interface

MODIQ_f.sci

Fonction de calcul (type 2)


/* modiq Scicos modulator 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 modulée autour d'une fréquence wo à partir de la partie réelle et imaginaire
 * de l'enveloppe complexe en bande de base :
 * 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 en bande de base 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 en bande de base
 *                     u2[0..insz[0]-1] vecteur des parties imaginaires du signal en bande de base
 * sorties régulières : y1[0..insz[0]-1] vecteur des parties réelles du signal modulé
 *                      y2[0..insz[0]-1] vecteur des parties imaginaires du signal modulé
 * 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 modiq(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 flag1 calcule la partie réelle et imaginaire
  * du signal modulé
  */
 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