Sommare sinusoidale a file audio

di il
1 risposte

Sommare sinusoidale a file audio

Mi trovo davanti un esercizio che concettualmente non mi reca nessun problema ma nell'esecuzione sto facendo un errore che non riesco purtroppo a trovare. Il testo dell'esercizio è il seguente:
Devo caricare in MatLab un file audio passato dal professore, questo dovrà poi essere aperto (e fin qui ovviamente nessun problema).
Ora devo creare un'onda sinusoidale a 10kHz con ampiezza 0,3, campionata a 32kHz della durata pari a quella dell'audio precedente. Dopodichè devo sommare i due e dividere il risultato per 1,2 salvando questo su un nuovo file audio. L'errore è dimostrato perchè ascoltando il file originale e quello prodotto da me non c'è nessuna differenza che dovrebbe invece esserci.

Io ho scritto questo codice per creare l'onda:
con y indico il file audio caricato
x=length(y)
dt=1/fs; %periodo di campionamento
t=[0:t:x]
y1=0.3*sin(2*pi*1000*t);

y1=0.3*sin(2*pi*10000*length(y));

audiowrite('noise.wav',y,fs)

Concettualmente ho trovato il periodo di campionamento, ho pensato di creare il vettore tempo (che creato così mi dà errore poichè mi scrive che supera i limiti di memoria), dopodichè applicare tutto per creare la sinusoide.
Qualcuno potrebbe aiutarmi a trovare l'errore? Vi ringrazio

1 Risposte

  • Re: Sommare sinusoidale a file audio

    "dopodichè devo sommare i due e dividere il risultato per 1,2 salvando questo su un nuovo file audio" Dov'è questo?

    x=length(y)
    dt=1/fs; %periodo di campionamento
    t=[0:t:x]
    y1=0.3*sin(2*pi*1000*t);
    y1=0.3*sin(2*pi*10000*length(y));
    nuovoy=(y1+y)/1.2%
    audiowrite('noise.wav',nuovoy,fs)
Devi accedere o registrarti per scrivere nel forum
1 risposte