Fiche Rapport +description Tp5
Fiche Rapport +description Tp5
Fiche Rapport +description Tp5
FICHE DE RAPPORT
SÉANCE #5 (TP5)
Filtrage audio
#1
#2
OBJECTIFS
Réaliser un filtrage audio en vue de supprimer un signal masquant.
1
TRAVAIL A FAIRE
Il s’agit de traiter un signal audio masqué par plusieurs fréquences. Pour il vous est demandé
de visualiser le spectre du signal audio original puis de compléter un programme permettant de
supprimer par filtrage lesdites porteuses et répondre aux questions posées. La solution
proposée, vue en cours, prévoit un filtrage à l’aide de deux (02) filtres coupe bande mis en
cascade.
sound(x,Fe)
N=length(x); % longueur du signal temporel : nombre d'échantillons
Nfft=N;
X=abs(fft(x)); % détermination du spectre du signal audio
Xinit=X; % on garde une version non traitée du spectre
f=0:Fe/N:Fe*(1-1/N); % vecteur fréquence
t=0:1/Fe:(N-1)/Fe; % vecteur temps
figure
plot(f,20*log10(abs(X)),'b');
grid on;
xlim([0 Fe]);
xlabel('Fréquence (Hz)')
ylabel('Amplitude (dB)')
Programme à compléter
3. Suppression automatique des porteuses par filtrage réjecteur (on ne traite que les
deux pics de la bande [0 Fe/2])
Nbpic=2; % Nombre de pics à détecter
H1=ones(1,1024)
ind1=[];
aa=zeros(2,3);
bb=zeros(2,3);
2
for k=1:Nbpic;
X=abs(fft(x));
[val,ind]=max(X(1:end/2));
f0(k)=f(ind);
Z0=exp(j*2*pi*f0(k)/Fe);
P0=0.9*Z0;
a=[1 -2*real(Z0) real(Z0*Z0')];
b=[1 -2*real(P0) real(P0*P0')];
Y=abs(fft(y));
x=y;
[H ff]=freqz(a,b,1024,Fe);
H1=H1.*H.';
ind1=[ind1 ; ind];
aa(k,:)=a;
bb(k,:)=b;
end
num=a;
den=b;
num=conv(aa(1,:),aa(2,:));
den=conv(bb(1,:),bb(2,:));
f=0:Fe/Nfft:Fe-Fe/Nfft;
z=exp(-j*2*pi*f/Fe);
Hnum=zeros(1,length(f));
Hden=zeros(1,length(f));
for i=1:length(num)
Hnum=Hnum+num(i)*z.^(i-1);
Hden=Hden+den(i)*z.^(i-1);
end
figure
plot(f,20*log10(abs(Hnum./Hden)))
ylabel('20log_1_0(|H^1(f)H^2(f)|)')
xlabel('f (Hz)')
grid on
xlim([0 Fe])
Vrai Faux
a. 𝑓0(𝑘)= 1397 Hz
b. a=[1 -2*real(Z0) real(Z0*Z0')]=[1 -2*cos(2*1397/Fe) 1]
c. Z0=exp(j*2*pi*f0(k)/Fe) est une racine de a
d. P0=0.9*Z0 est une racine de b qui améliore la réponse
en fréquence du filtre
e. Z0 supprime la perturbation correspondant à f0(k)
Nbpic=2
f. 𝑓0(𝑘)=5658 Hz
g. a=[1 -2*real(Z0) real(Z0*Z0')]=[1 -2*cos(2*5658/Fe) 1]
h. Z0=exp(j*2*pi*f0(k)/Fe) est une racine de a
i. P0=0.9*Z0 est une racine de b qui améliore la réponse
en fréquence du filtre
3
j. Le système de filtrage est constitué de deux filtres RII en cascade
k. Le système de filtrage est constitué de deux filtres RIF en cascade
l. Z0 supprime la perturbation correspondant à f0(k)
YY=fft(y(:,1),Nfft);
Signal traité
disp('Signal traité')
sound(y,Fe)
audiowrite('Mozart_Bruit_Corrige.wav',y,Fe);
figure
plot(f,20*log10(abs(Xinit)),'b');
hold on;
plot(f,20*log10(abs(YY)),'k');
hold off
grid on;
xlim([0 Fe]);
legend('Spectre du signal original','Spectre du signal traité')
xlabel('Fréquence (Hz)')
ylabel('Amplitude (dB)')
Contenu du Rapport
Le Rapport doit contenir :
La commande Matlab complétée ;
Toutes les réponses aux questions posées ;
Toutes les figures tracées, y compris l’allure de la réponse en fréquence correspondant
à la dernière question;
Vos conclusions