Bonjour à tous,

J'ai pour projet de créer un programme d'édition sonore sur Matlab, à la façon d'Audacity. Pour cela je compte enregistrer un son wav, l'importer sur Matlab et représenter son spectre à la façon d'Audacity, c'est-à-dire en ne gardant que les fréquences positives.

Voici mon code, largement inspiré d'un post sur ce forum :


Code :
1
2
3
4
5
6
7
8
9
function a=fourier(t,signal,Fs)
N=length(signal);
f=-Fs/2:Fs/N:Fs/2-Fs/N; 
S=abs(fft(signal)); 
S=fftshift(S);
plot(f,S);
axis([0 Fs/2-Fs/N 0 1.1*max(S)])
xlabel('Fréquence (Hz)')
ylabel('Module')

En essayant avec :

Code :
1
2
3
4
t=linspace(0,10,100);
f1=200; f2=400;
signal=1*sin(2*pi*t*f1)+0.5*sin(2*pi*t*f2);
Fs=2000;
j'obtiens 2 pics mais à des mauvais endroits...
Je pense que c'est dû à une erreur concernant la définition du vecteur fréquence mais je ne suis pas excellent dans ce domaine, alors je ne comprends pas d'où elle pourrait venir ...

En cherchant sur le net j'ai trouvé ceci :
http://public.iutenligne.net/telecom...gnal/spectre.m
qui est un lien d'un professeur d'un certain iut qui trace grace à une fonction un joli spectre etc mais j'ai le même problème, c'est-à-dire 2 pics à des mauvais endroits (ici 0,2 Hz et 0.5Hz). Alors je remets aussi en question mon vecteur signal ...


Pourriez-vous m'aider ?

Un grand merci d'avance !

Apeth