Programmation Octave/Traitement du son

Jouer un son

modifier

Octave permet de jouer un son grâce à la commande sound . Cette commande se trouve dans le package audio. sound prend en argument un vecteur représentant l'échantillon à jouer et éventuellement la fréquence d'échantillonnage:

octave> n = 1:10000;
octave> s = 10*sin(2.*pi.*n./500);
octave> sound(s);
Input Filename : -
Sample Size    : 16-bits
Sample Encoding: signed (2's complement)
Channels       : 1
Sample Rate    : 8000

Time: 00:01.25 [4473:54.21] of 4473:55.46 (  0.0%) Output Buffer:  59.80K

Done.

Lire et écrire des WAV

modifier

Octave permet de lire et d'écrire des fichier son en .wav les fonctions sont wavread et wavwrite . Par exemple si on veut écrire le signal s  :

octave> wavwrite("test.wav",s);

Et si maintenant on veut lire le signal :

octave> x = wavread("test.wav");

Transformées d'un signal

modifier

La commande fft calcule la transformée de Fourier d'un signal :

octave> x = [1 2 1];
octave> X = fft(x)
X =

  4.00000 + 0.00000i  -0.50000 - 0.86603i  -0.50000 + 0.86603i

Et la commande ifft retourne la transformée inverse :

octave> ifft(X)
ans =

   1   2   1

Les commandes dct et idct calculent la transformée en cosinus discrète ainsi que sa transformée inverse :

octave> X = dct(x)
X =

   2.30940   0.00000  -0.81650

octave> idct(X)
ans =

   1.0000   2.0000   1.0000