Oppure

Loading
07/02/11 17:18
asteroid
SALVE developers;
Siano dati due array monodimensionali x ed y di dimensione 1xn contenente le
informazioni relative a due file sonori. Implementare una funzione che permette di
ottenere la mistura dei due segnali secondo la seguente relazione:
z[i] = A[0]x[i] + A[1]y[i]
dove A è un array di dimensioni 1x2 i cui valori di amplificazione sono compresi
nell’intervallo [0,1] e sono inseriti dall’utente.
Successivamente implementare il seguente “filtraggio” della mistura z[i] in modo da
ottenere una nuovo suono filtrato y[i] =è una sommatoria che va da k=0 a k=9;
C[k]z[i+k]
dove C è un vettore di coefficienti inseriti dall’utente e di dimensione 10. Si noti che
per ottenere il “filtraggio” bisogna aggiungere degli zero alla fine della sequenza z[i].
I suoni vengono inizializzati casualmente con valori float nell’intervallo [-10, 10]
e i coefficienti vengono inseriti dall’utente.

ho iniziato a dichiarare gli elementi ed inizializzarli:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{int i,n,k;
  float x[100];
  float y[100];
  float A[][2]={2.5F,3.1F};
  float C[10];
  float z[100];
  printf("inserisci il size delle informazioni dei file sonori:");
  scanf("%d",&n);
  printf("inserisci le informazioni relative al file sonoro x:\n");
  for(i=0; i<n; i++)
  scanf("%f",&x[i]);
  printf("inserisci le informazioni relative al file sonoro y:\n");
  for(i=0; i<n; i++)
  scanf("%f",&y[i]);
  system("PAUSE");	
  return 0;
}

ora dovrei fare una mistura: cioè un miscuglio degli elementi dell array A con l'array x e y, quindi questi ultimi due devono essere dei numeri float giusto?
poi successivamente dovrei creare un vettore C che deve contenere dei "coefficienti", cioè vale a dire sempre dei numeri float? ;)
aaa
09/02/11 17:28
asteroid
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{int i,k;
  float x[20];
  float y[20];
  float A[2]={0.1F,0.5F}; /*valori di amplificazione*/
  float C[10]={1.0F,1.1F,2.2F,2.3F,2.6F,4.1F,4.5F,5.2F,5.3F,5.4F}; /*vettore coefficienti*/
  float z[100];
  float x_casuale;
  float y_casuale;
srand(time(NULL));
  for(i=0; i<20;i++){
           x_casuale=-10.0F+20.0F*(float)rand()/(float)RAND_MAX;
           x[i]=x_casuale;
   printf("\nvisualizza %d-esimo di x:%f\n",i,x[i]);

}
printf("\n\n\n\n");
for(i=0; i<20;i++){
           y_casuale=-10.0F+20.0F*(float)rand()/(float)RAND_MAX;
           y[i]=y_casuale;
   printf("\nvisualizza %d-esimo di y:%f\n",i,y[i]);
} 
system ("color 2");
  system("PAUSE");	
  return 0;
}


genero casualmente i valori di x,e y
ma poi la mistura della funzione z[ i ][i] =A[0]x[ i ][i]+A[1]y[ i ][i] come faccio ad implementarla in C?
Ultima modifica effettuata da asteroid 09/02/11 17:31
aaa