[c] filtraggio_suoni

di il
3 risposte

[c] filtraggio_suoni

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.

3 Risposte

  • Re: [c] filtraggio_suoni

    #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;
    }
    
    
    i valori di x, e y sono scelti casualmente
    come faccio ad ottenere la mistura z[ i ]=A[0]x[ i ]+A[1]y[ i ]
  • Re: [c] filtraggio_suoni

    Intendi questo?
    for(i=0; i<20;i++){
    z[i] = a[0]*x[i] + a[1]*y[i];
    }
  • Re: [c] filtraggio_suoni

    No sarebbe stato troppo bello,
    fare una mistura dei due file sonori x, e y.. è più elettronica dei segnali audio che programmazione C: cioè creare un filtro equalizzazione e somma :S
    e poi successivamente un filtraggio FIR
Devi accedere o registrarti per scrivere nel forum
3 risposte