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
|
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define BOOL int
#define TRUE 1
#define FALSE 0
main()
{
char Div_lu[500];
int iDiv = 100;
FILE *ID, *OF;
float time_Div;
double X, Y, Z, Tot;
BOOL FIRST=TRUE;
ID = fopen("Dive.txt", "r");
OF = fopen("Filtre.txt", "w");
/*Question: Comment arriver à faire comprendre au programme que le signal sur lequel il doit travailler n'est pas défini par une équation, mais qu'il est composé de toutes les valeurs lues dans le tableau de départ?
/*Calcul de la transformée de Fourier du signal:
int[] ReSig = new int[N/2];
int[] ImSig = new int[N/2];
for(int f=0;f<(N/2);f++) {
for(int i=0;i<N;i++) {
double w = 2*Math.PI*(double)i/N;
ReSig[f]+=signal[i]*Math.cos(f*w);
/* Ici, il faut définir une variable signal, qui correspond aux valeurs lues dans le fichier d'entrée.
ImSig[f]-=signal[i]*Math.sin(f*w);
}
ReSig[f]/=(N/2);
ImSig[f]/=(N/2);
}
/* Transformée de Fourier du filtre:
double alpha=50.0;
double[] ReFil = new double[N/2];
double[] ImFil = new double[N/2];
for(int f=0;f<(N/2);f++) {
double w = 2*Math.PI*f;
ReFil[f]=alpha*alpha/(alpha*alpha+w*w);
ImFil[f]=-w*alpha/(alpha*alpha+w*w);
} |
Partager