Fiche Rapport +description Tp5

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 4

TRAITEMENT DE SIGNAL

FICHE DE RAPPORT
SÉANCE #5 (TP5)
Filtrage audio

NOM ET PRÉNOM CLASSE

#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.

Analyse du spectre du signal audio et identification des porteuses à


supprimer
1. Analyse du spectre du signal
Signal original
[x,Fe]=audioread('Mozart_Bruit.wav');
disp('Signal original')

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)')

 Quelle est la fréquence d’échantillonnage Fe du signal audio ?


 Quelles sont les fréquences des porteuses à supprimer ?

Fe (Hz) f1 (Hz) f2 (Hz) Fe-f1(Hz) Fe-f2(Hz)

Programme à compléter

2. Identification des porteuses à supprimer


[valeur,indice]=max(X(1:end/2)); % détermination de la valeur et de l'indice du max
% de la bande inférieure du spectre
f0=(indice-1)*Fe/N;
f0p=f(indice);

 Quelle est la porteuse f0 identifiée ?


 Quelle relation lie f0 et f0p ?

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=filter( ) ;commande à compléter

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])

A partir du programme ci-dessus :


Répondez aux Questions par VRAI OU FAUX
Nbpic=1

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)')

 Ecoutez et comparez les signaux traité et original


 Comparez le spectre du signal original et traité. Conclure
 En vous référant au chapitre 6 du cours et les réponses aux questions j) et
k) ci-dessus, quelle serait l’allure de la réponse en fréquence
('20log_1_0(|H^1(f)H^2(f)|)') que l’on aurait obtenue si c’était plutôt l’autre
solution (la réponse fausse) qui était utilisée ?

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

Vous aimerez peut-être aussi