Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - filtraggio_suoni
Forum - C/C++ - filtraggio_suoni

Avatar
asteroid (Normal User)
Newbie


Messaggi: 17
Iscritto: 21/01/2011

Segnala al moderatore
Postato alle 18:18
Lunedì, 07/02/2011
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 = A[0]x + A[1]y
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 in modo da
ottenere una nuovo suono filtrato y =è 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 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:
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. int main(void)
  5. {int i,n,k;
  6.   float x[100];
  7.   float y[100];
  8.   float A[][2]={2.5F,3.1F};
  9.   float C[10];
  10.   float z[100];
  11.   printf("inserisci il size delle informazioni dei file sonori:");
  12.   scanf("%d",&n);
  13.   printf("inserisci le informazioni relative al file sonoro x:\n");
  14.   for(i=0; i<n; i++)
  15.   scanf("%f",&x[i]);
  16.   printf("inserisci le informazioni relative al file sonoro y:\n");
  17.   for(i=0; i<n; i++)
  18.   scanf("%f",&y[i]);
  19.   system("PAUSE");     
  20.   return 0;
  21. }


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? ;)


herman
PM Quote
Avatar
asteroid (Normal User)
Newbie


Messaggi: 17
Iscritto: 21/01/2011

Segnala al moderatore
Postato alle 18:28
Mercoledì, 09/02/2011
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. int main(void)
  5. {int i,k;
  6.   float x[20];
  7.   float y[20];
  8.   float A[2]={0.1F,0.5F}; /*valori di amplificazione*/
  9.   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*/
  10.   float z[100];
  11.   float x_casuale;
  12.   float y_casuale;
  13. srand(time(NULL));
  14.   for(i=0; i<20;i++){
  15.            x_casuale=-10.0F+20.0F*(float)rand()/(float)RAND_MAX;
  16.            x[i]=x_casuale;
  17.    printf("\nvisualizza %d-esimo di x:%f\n",i,x[i]);
  18.  
  19. }
  20. printf("\n\n\n\n");
  21. for(i=0; i<20;i++){
  22.            y_casuale=-10.0F+20.0F*(float)rand()/(float)RAND_MAX;
  23.            y[i]=y_casuale;
  24.    printf("\nvisualizza %d-esimo di y:%f\n",i,y[i]);
  25. }
  26. system ("color 2");
  27.   system("PAUSE");     
  28.   return 0;
  29. }


genero casualmente i valori di x,e y  
ma poi la mistura della funzione z[ i ] =A[0]x[ i ]+A[1]y[ i ] come faccio ad implementarla in C?

Ultima modifica effettuata da asteroid il 09/02/2011 alle 18:31


herman
PM Quote