Calculando inversa de fourrier - ex. musicas

Disponível somente no TrabalhosFeitos
  • Páginas : 2 (251 palavras )
  • Download(s) : 0
  • Publicado : 16 de outubro de 2012
Ler documento completo
Amostra do texto
#include
#include
#include
#include


void insertionSort(double *vetor, int tamanho_vetor, int *indice, double complex *vTransf);
unsigned char* inverseFourier(double complex*coefficients, int N);

//- UMA ESTRUTURA FICARIA MAIS FÁCIL DE MODIFICAR, MAS OCUPARIA MAIS MEMÓRIA DURANTE O PROGRAMA TODO
//- JÁ QUE ESTOU DESALOCANDO ESPAÇO LOGO QUE OS PONTEIROS SE TORNAM INÚTEISint main (){
char nome[20];
FILE *arq;
scanf("%s", nome);
arq = fopen(nome, "rb");
int coeficientes; //- QUANTOS COEFICIENTES O USUÁRIO DESEJA?
unsigned char*valores; //- SERÃO GUARDADOS OS VALORES
int indice_valores = 1; //- NUMERO DE OBSERVAÇÕES E TAMBÉM É O K
valores = malloc(1 * sizeof (unsigned char));
scanf("%d",&coeficientes);
int n, k, i; //- VARIÁVEIS AUXILIARES
int menores_qzero = 0;
//-- LEITURA DO ARQUIVO
do
{
fread(&valores[indice_valores - 1], sizeof(unsigned char), 1, arq);if (feof(arq) != 0)
{
valores = realloc (valores, sizeof(unsigned char) * (--indice_valores));
fclose(arq);
break;
}valores = realloc (valores, sizeof(unsigned char) * (++indice_valores));
} while (1);
//- DECLARAÇÃO PARA A TRANSF. DE FOURRIER
double complex *valores_transformados; //- VALORESAPÓS A TRANSFORMADA DE FOURRIER (CK)
valores_transformados = malloc (indice_valores * sizeof(double complex));
double *magnitudes;
magnitudes = malloc( indice_valores *sizeof(double));
int *posicao; //- USADO PARA A REORDENAÇÃO DO VETOR POSTERIORMENTE
posicao = malloc(indice_valores * sizeof(int));
//- LENDO C [INDICE DO VETOR] A PARTIR DE ZERO
//- OQUE IMPLICA QUE, NA DIVISÃO E NOMEAÇÃO ELE TERÁ QUE SER [INDICE + 1]
//- JÁ QUE CK É ( >= 1 )
for (n=0; n < indice_valores; n++){
for (k=0; k< indice_valores; k++){...
tracking img