Bonjour;
Est ce que quelqu'un peut m'aider à mettre en oeuvre le principe que l'oreil humain ne peut pas s'apercevoir que des fréquences entre 20Hz et 20KHz.
Alors, j'ai pris un signal, j'ai calculé son FFT. puis j'ai supprimé les fréquences au déla de l'intervalle d'audibilité [20H,20KHz].
Le morceau de code est donné comme suit:
Mais le pb que je sens la modification faite malgré qu'elle a affecté l'intervalle non audible
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 clear all; [xn,fs]=wavread('rooster44100.wav'); sound(xn,fs); % Analyse spectrale Xn = fft(xn); Xn_shift = fftshift(Xn); A=abs(Xn); P=angle(Xn); N=length(Xn); f = (-N/2:N/2-1).*fs/N; plot(f,A); %% retrouver le son original s_orig=real(ifft(A.*exp(i*P))); sound(s_orig,fs); %supp les freq inf 20 Hz a=find(f>-20 & f<20); A2=A; A2(a)=0; figure(1);plot(f,A2); s_mod=real(ifft(A2.*exp(i*P))); sound(s_mod,fs); %supp les freq sup 20 KHz A1=A; b = find(f>22000 | f<-22000); A1(b)=0; figure(2);plot(f,A1); s_mod=real(ifft(A1.*exp(i*P))); sound(s_mod,fs);.
Merci pour toute aide
Partager