1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
double * FrequencyTransposition(double *signal, int N,int signal)
{
int i;
double surechantillonnage1,surechantillonnage2,tk;
double signal_transpose=NULL;
double cosinus[N],sinus[N];
double fp;
signal_transpose=malloc(sizeof(double)*N);
printf("\nEntrez la fréquence de la porteuse en MHz :");
scanf("%lf",&fp);
printf("\nEntrez la valeur du facteur de suréchantillonnage lors de l'émission (filtre de Nyquist) :");
scanf("%lf",&surechantillonnage1);
printf("\nEntrez la valeur du facteur d'interpolation lors de l'émission (CIC Interpolateur) :");
scanf("%lf",&surechantillonnage2);
tk = 1/(surechantillonnage1*surechantillonnage2); /*Le pas d'échantillons*/
if(signal==1)
{
printf("\nSignal partie réelle transposée par une porteuse de %lf MHz :",fp);
for(i=0;i<N;i++)
{
cosinus[i] = cos(-2*3.1416*fp*i*tk);
signal_transpose[i]=signal[i]*cosinus[i]; /*Multiplication du signal reel par cos(-2*pi*fp*tk)*/
}
}
else
{
printf("\nSignal partie imaginaire trnasposée par une portuese de %lf MHz :", fp);
for(i=0;i<N;i++)
{
sinus[i] = sin(-2*3.1416*fp*i*tk);
signal_tranpose[i]= signal[i]*sinus[i];
}
}
return(signal_transpose);
} |