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; 

}