% Chargement d'un fichier représentant le son d'un oiseau load chirp sound(y); pause; % bruitage de ce son avec un gain g g=0.1; y1 = y + g*randn(size(y)); sound(y1); pause; % création d'un vecteur t représentant l'abscisse de ce signal son t = (0:length(y)-1)/Fs; % Calcul des spectres d'amplitude du signal son original et du son bruité Y=abs(fft(y)); YY1=abs(fft(y1)); % Calcul du nombre de coefficient n du filtre RIF à réaliser en fonction % des caractéristiques du GABARIT choisi % GABARIT représenté par les amplitudes maximales des ondulations acceptées % à l'intérieur de la bande passante et dans la bande coupée % et aussi des fréquences f1 et f2 delta1=0.01; delta2=0.01; f2=3000; f1=2000; n=ceil (2/3*log10 (1/(10*delta1*delta2))*Fs/(f2-f1)) pause; % synthèse d'un filtre RIF passe-bande par la méthode des fenêtres, âr % défaut il s'agit de la fenêtre de Hamming % Deux filtres RIF sont réalisés avec des fréquences de coupure différentes % bhi1 et bhi2 sont respectivement les deux réponses impulsionnelles des % deux filtres RIF passe-haut réalisés % % l'instruction fir1 est donc utilisée pour la synthèse par la méthode des % fenêtres % % fir1(n,Wn,ftype,window) où n désigne l'ordre dy filtre, [wn1 wn2] désignent % lespulsations de coupure entre (wn1x????wn2x?), ftype désigne le type de % filtre passe-bas, passe-haut ....etc et window la fenêtre de synthèse % utilisée. Si on met pas de window par défaut on utilisera la fenêtre de % Hamming bhi1 = fir1(n+1,[0.2 0.5]); bhi2 = fir1(n+1,[0.5 0.7]); figure; subplot(2,1,1); plot(bhi1); subplot(2,1,2); plot(bhi2); pause; % % ANALYSE SEPCTRALE DES FILTRES RIF REALISES % % REPONSES FREQUENTIELLES % % l'intruction freqz(bhi1,1)permet de représenter le sepctre d'amplitude en % dB et de phase du premier filtre RIF figure; freqz(bhi1,1) % % l'intruction freqz(bhi2,1)permet de représenter le sepctre d'amplitude en % dB et de phase du deuxième filtre RIF figure; freqz(bhi2,1) % % % PLAN Z % représentation des zéros (c'est un RIF) par zplane % figure; zplane(bhi1,1); figure; zplane(bhi2,1); pause; % Application du premier filtre RIF passe-bande réalisé sur le fichier son % bruité outhi1 = filter(bhi1,1,y1); sound(outhi1); Y1=abs(fft(outhi1)); pause; % Application du second filtre RIF passe-bande réalisé sur le fichier son % bruité outhi2 = filter(bhi2,1,y1); sound(outhi2); Y2=abs(fft(outhi2)); pause; figure; subplot(4,1,1) plot(t,y) title('Signal Original') ys = ylim; subplot(4,1,2) plot(t,y1) title('Signal bruité') subplot(4,1,3) plot(t,outhi1) title('Signal filtré par le premier filtre RIF passe-bande') xlabel('Time (s)') ylim(ys); subplot(4,1,4) plot(t,outhi2) title('Signal filtré par le second filtre RIF passe-bande'); figure; subplot(4,1,1); plot(Y); subplot(4,1,2); plot(YY1); subplot(4,1,3); plot(Y1); subplot(4,1,4); plot(Y2);