Programa en C

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

#define LEN 1024 //numero de muestras tomadas

int multiplica(double *,double *);

int genera(double *,double *);

int main(void){ //funcion main que llama a las demas

int d;

double sin_rf[LEN]; //señal de alta frecuencia - Portadora

double sin_lo[LEN]; //señal de baja frecuencia - Moduladora

genera(sin_rf,sin_lo);

multiplica(sin_rf,sin_lo);

printf("terminado...\n");

scanf("%d",&d);

return 0;

}

//genera los valores de dos ondas senoidales de frecuencias muy diferentes

int genera(double * sin_rf, double * sin_lo){

int i;

float rad;

rad=3.141592654/180; //conversion a radian

for(i=0;i<=LEN-1;i++){

sin_rf[i]=sin(rad*i*100);

sin_lo[i]=sin(rad*i*3);

}

}

//Multiplica ambas senoidales y las imprime junto a originales

int multiplica(double * sin_rf, double * sin_lo){

double rad;

int i,j;

double res[LEN];

FILE *frf,*flo,*fo;

frf=fopen("sin_rf.txt","w");

flo=fopen("sin_lo.txt","w");

for(i=0;i<=LEN-1;i++){

fprintf(frf,"%f\n",sin_rf[i]); //originales

fprintf(flo,"%f\n",sin_lo[i]);

}

fclose(frf);

fclose(flo);

fo=fopen("salida.txt","w");

for(j=0;j<=LEN-1;j++){

res[j]=(sin_rf[j])*(sin_lo[j]); //mezcla

fprintf(fo,"%f\n",res[j]);printf("w");

}

fclose(fo);

return 0;

}