0% ont trouvé ce document utile (0 vote)
38 vues11 pages

Codage audio avec Matlab : élimination du bruit

Ce document décrit les étapes de base du traitement du signal audio sous Matlab, notamment la lecture d'un fichier audio, l'introduction et l'élimination de bruit, et le filtrage dans les domaines temporel et fréquentiel. Il contient plusieurs exemples de code pour appliquer ces concepts à un signal audio.

Transféré par

oassarikhi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
38 vues11 pages

Codage audio avec Matlab : élimination du bruit

Ce document décrit les étapes de base du traitement du signal audio sous Matlab, notamment la lecture d'un fichier audio, l'introduction et l'élimination de bruit, et le filtrage dans les domaines temporel et fréquentiel. Il contient plusieurs exemples de code pour appliquer ces concepts à un signal audio.

Transféré par

oassarikhi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

1

Polycopié des Travaux Pratique

Codage Parole
Pour les Élèves de la 2ème Année
Filière d’Ingénieurs
Systèmes Intelligents Communicants & Mobiles
(SICoM2)

Première Partie

Préparé par : Abdelfettah BELHABIB


A. Belhabib 2023/2024- SICoM2
2

Table des matières


I. Lire un son dans Matlab : ....................................................................................................................... 3
II. Introduction et élimination du bruit : ................................................................................................... 4
II. 1. Théorème de Nyquist : .................................................................................................................. 4
II. 2. Filtre anti-repliement : .................................................................................................................. 5
III. Introduction et élimination du bruit : Domain temporelle/fréquentielle : ......................................... 6
III. 1. Application sur un fichier audio : ................................................................................................. 7
IV. Introduction et élimination de l’écho : ............................................................................................... 9
V. Élimination du problème du craquement : …………….. ....................................................................... 11

A. Belhabib 2023/2024- SICoM2


3

I. Lire un son dans Matlab :


Il est possible de charger un fichier audio sous l’environnement Matlab suivant l’une des
techniques suivante :

1. Si le fichier audio existe dans la bibliothèque de Matlab :


Dans ce cas, nous pouvons l'appeler en utilisant la commande « load handel ». Dans ce
cas, Matlab défini deux variable « y » et « Fs », et il enregistre le son dans « y » avec
la fréquence d’échantillonnage « Fs ».
2. le fichier que nous appelons speech existe sur votre PC :
Dans ce cas, vous pouvez utiliser l'une des commandes suivantes :
• [y,fe]=wavread('emplacement_dans_pc\speech.wav')
• [y,fe]=audioread('emplacement_dans_pc\speech.mp3')

Ces deux commandes vous donneront les données audio échantillonnées. Une fois le son chargé,
vous pouvez le jouer ou l'arrêter en utilisant l'une des deux méthodes suivantes :

1. Commandes : « sound(y,fe) » pour écouter le son et « clear sound » pour l’arrêter.


2. Ou avec les commandes : p=audioplayer(speech,fs) et play(p) pour lire le son, et stop(p)
pour l’arrêter.

Volume du son : Pour augmenter ou diminuer le volume d'un son, il suffit de le multiplier par une
constante 𝛼 comme suit :

• p=audioplayer(𝜶*speech,fs) et play(p)
• sound(𝜶 ∗y,fe)

Note : Fe ou Fs représentent la même chose, soit la fréquence d'échantillonnage.

A. Belhabib 2023/2024- SICoM2


4

II. Introduction et élimination du bruit :

Les sons que nous entendons sont rarement purs (c’est-


à-dire composés d’une seule fréquence). La plupart des
sons sont constitués d’une multitude de fréquences
(voir figure ci-contre). Notre oreille est sensible aux
fréquences dites audibles, comprises entre 20 Hz et 20
kHz. En dessous de 20 Hz, on parle d’infrasons, et au-
dessus de 20 kHz, d’ultrasons. Parfois, l'information
souhaitée est bruitée, c'est-à-dire qu'elle est superposée
à des hautes fréquences indésirables, ce qui rend l'audio
incompréhensible. Dans cette section, vous allez
charger un morceau d'audio, puis y ajouter du bruit.
Ensuite, vous éliminerez le bruit à l'aide d'un filtre
approprié.

• Générer un signal « y1 » composé des trois fréquences : f1=2KHz, f2=20KHz et


f3=30KHz
• Trouver la fréquence maximale qui existe dans ce signal (utiliser la commande fft)
• Que se passet il si on choisit une période/fréquence d’échantillonnage de fe=3KHz ?

II. 1. Théorème de Nyquist :

Selon le théorème d'échantillonnage de Nyquist, la fréquence d'échantillonnage doit être au moins


deux fois supérieure à la composante de fréquence maximale du signal d'intérêt. En d'autres termes,
la fréquence maximale du signal d'entrée ( pour les sons audible, fmax=20KHz) doit être inférieure

A. Belhabib 2023/2024- SICoM2


5

ou égale à la moitié de la fréquence d'échantillonnage. Dans cette partie, on va voir l’effet de la


fréquence d’échantillonnage sur le son perçu, pour ce faire, suivre les étapes suivantes :

• Charger un fichier son sous Matlab et y extraire le signal ainsi que la période
d’échantillonnage, puis écouter le son.
• Écouter le même son mais cette fois avec une période d’échantillonnage dont la fréquence
est deux fois la fréquence maximale audible (=20KHz)
• Expliquer le phénomène
• Pourquoi la fréquence d’échantillonnage dépasse la limite du théorème de Nyquist ?

Résultat : Même si l'on est sûr que la fréquence du signal mesuré est limitée, les signaux parasites
(tels que la fréquence des lignes électriques ou des stations de radio locales) peuvent contenir des
fréquences supérieures à la fréquence de Nyquist. Ces fréquences peuvent alors se superposer à la
gamme de fréquences appropriée et vous donner des résultats erronés. Ce qui explique le fait de
choix d’une fréquence d’échantillonnage plus grande que la limite de théorème de shanon Nyquist.

II. 2. Filtre anti-repliement :

Pour récupérer un son noyé dans le bruit, il est nécessaire d'utiliser un filtre passe-bas/ou filtre
anti-repliement. Un filtre anti-repliement idéal (Figure 1) laisse passer toutes les fréquences
d'entrée appropriées (inférieures à fe) et coupe toutes les fréquences indésirables (supérieures à
fe). Cependant, un tel filtre n'est pas physiquement réalisable. Dans la pratique, les filtres
ressemblent à l'illustration (b) ci-dessous. Ils laissent passer toutes les fréquences < fe et coupent
toutes les fréquences > f2. La région entre fe et f2 est connue sous le nom de bande de transition,
qui contient une atténuation progressive des fréquences d'entrée. Bien que vous souhaitiez ne
laisser passer que les signaux dont la fréquence est inférieure à fe, les signaux situés dans la bande
de transition peuvent toujours provoquer un repliement. C'est pourquoi, dans la pratique, la
fréquence d'échantillonnage doit être supérieure à deux fois la fréquence la plus élevée de la bande
de transition. Il s'avère que cette fréquence est plus de deux fois supérieure à la fréquence d'entrée

A. Belhabib 2023/2024- SICoM2


6

maximale (fe). C'est l'une des raisons pour lesquelles vous pouvez constater que la fréquence
d'échantillonnage est plus de deux fois supérieure à la fréquence d'entrée maximale.

Figure 1 Filtre passe bas idéal vs réel


II. 2. 1. Application

• Utiliser un filtre passe bas pour éliminer les deux fréquences f2 et f3, pour ce faire, vous
pouvez utiliser les commandes « butter » et « filtre » pour créer un filtre adéquat.
• Tracer le signal obtenu après le filtrage.

III. Introduction et élimination du bruit : Domain temporelle/fréquentielle :

Dans le domaine temporel, nous devons convoluer notre signal avec un filtre passe-bas, qui élimine
les hautes fréquences (voir le script ci-dessus). Pour ce faire :

• Avec la commande « fft », trouver la fréquence de coupure adéquat pour filtrer le bruit du
votre son.
• Créer le filtre avec la commande « butter et filter » ou avec « fir1 »
• Convoluer votre signal audio avec le filtre à l’aide de la commande « conv »
• Écouter le son et réadapter le filtre si le son contient encore du bruit
• Note : Vous pouvez extraire une piste spécifique à partir des données chargées en
utilisant y_piste = y(:, 1) pour un son mono.

A. Belhabib 2023/2024- SICoM2


7

1ere partie Deuxième partie


clear all %% filtrage des hautes fréquences
clc % fréquence de coupure :
%% time domain fc=12e3/Fe/2; % pour garder que les basses fréquences
% freq d'échantillonnage % définir l’ordre du filtre "réponse impulsionnelle "
Fe=80e3; order = 30;
Te=1/Fe; % construire un filtre passe bas avec la fenêtre de
f1=1e3; % 1 kHz hamming "fir1
f2=20e3; % h=fir1(order,fc); % par défaut, fir1 utilise la fenêtre de
f3=30e3; Hamming, h = fir1(n, Wn, ftype) allows you to specify
% trame de 5 ms the filter type (lowpass, highpass, bandpass, bandstop,
dt=0:Te:5e-3; or multiband).
% le signal demandé plot(h)
y=5*sin(2*pi*dt*f1) + con=conv(y,h) ; % convolution between the noisy signal
10*sin(2*pi*dt*f2)+2*sin(2*pi*dt*f3); y and the impulse response to the low pass filter h
% tracer le signal pendant dt plot(con)
plot(dt,y)

III. 1. Application sur un fichier audio :


III. 1. 1. Introduction d’un bruit :
Toujours on commence par charger le fichier audio sous Matlab :
clear all, clc, close all,
[speech, fs]= audioread('C:\Users\abdel\Desktop\test_son.mp3');

%p=audioplayer(speech,fs);
%play(p)
% x=speech +bruit
x=awgn(speech,0.5);
u=audioplayer(x,fs); %lire le son bruité :
play(u)
III. 1. 2. Élimination du bruit :
% soit le fichier audio : « test_son » placé dans le chemin « 'C:\Users\abdel\Desktop\’ »
clear all, clc
[speech, fs]= audioread('C:\Users\abdel\Desktop\test_son.mp3');
p=audioplayer(speech,fs);
%play(p)
nfft=length(speech);
nfft2=2.^nextpow2(nfft);
TF_sp=fft(speech,nfft2); %TF of the signal

A. Belhabib 2023/2024- SICoM2


8

TF_sp=TF_sp(1:nfft2/2);
order=100;
fc=10e3/fs/2;
h=fir1(order,fc);
TF_wp=fft(h,nfft2);
TF_wp=TF_wp(1:nfft2/2); %Take only the first part
res=TF_wp.*TF_sp;
g=ifft(res);
new=audioplayer(g,fs); play(new); plot(abs(g))

Que ce que vous remarquer quand vous varier la fréquence de coupure de votre filtre, ainsi que
son ordre ? conclure.

Conclusion : Le signal de parole est non stationnaire, nous ne pouvons donc pas en retirer le
bruit, car nous ne connaissons pas la fréquence de coupure que nous devrions utiliser (limitation
du TF pour les signaux non stationnaires). Cependant, nous devons utiliser une analyse à court
terme avec la technique du fenêtrage.( Analyse à court terme avec la commande « spectrogram » )

Figure 2 TF du signal audio


Dans la Figure 2, il est difficile d'identifier les hautes fréquences des basses fréquences, mais dans
la Figure 3, nous pouvons identifier avec précision le comportement des fréquences dans chaque

A. Belhabib 2023/2024- SICoM2


9

segment du son audio, ce qui nous permet d'éliminer les fréquences bruyantes dans des fenêtres
spécifiques.

Figure 3 Spectrogramme du signal audio

IV. Introduction et élimination de l’écho :

En acoustique, un écho fait référence à la réflexion du son qui arrive aux oreilles de l'auditeur
après le son original, généralement causée par des ondes sonores qui rebondissent sur des surfaces,
ce qui entraîne une répétition différée du son initial. Examinons quelques points essentiels
concernant les échos :

Figure 4 Phénomène d'Écho

A. Belhabib 2023/2024- SICoM2


10

• Réflexion : Lorsqu'une onde sonore rencontre une surface, une partie est réfléchie vers
l'auditeur. Si ce son réfléchi est entendu distinctement après un court délai, il s'agit d'un écho.
• Retard : Le temps nécessaire pour que le son réfléchi revienne vers l'auditeur est appelé
délai ou temps d'écho. Des délais plus longs donnent des échos plus prononcés.
• Surfaces réfléchissantes : Les échos sont plus importants lorsque les ondes sonores frappent
des surfaces dures et réfléchissantes telles que des murs, des bâtiments ou des montagnes.
Les matériaux souples ou absorbants, comme les rideaux ou les panneaux de mousse, tendent
à réduire les échos en absorbant l'énergie sonore.
• Environnement : Les caractéristiques de l'environnement, notamment sa taille et sa forme,
peuvent influencer la présence et les caractéristiques des échos. Les grands espaces ouverts,
comme les salles de concert vides, peuvent produire des échos longs et réverbérant, tandis
que les petits espaces fermés peuvent produire des échos plus courts et plus discrets.
• Source sonore : La nature de la source sonore influe également sur la perception des échos.
Les sons forts et aigus sont plus susceptibles de produire des échos distincts que les sons
plus doux ou étouffés.

Dans cette section, nous allons introduire de l'écho sur une piste musicale en retardant le signal
audio avec le filtre suivant :

Figure 5 filtre en peigne

L'effet de ce filtre (filtre) en peigne se produit lorsqu'un signal sonore se combine avec ses
premières réflexions (réverbérations) au cours de sa propagation, ce qui donne lieu à des motifs
acoustiques spécifiques à la position d'écoute.

A. Belhabib 2023/2024- SICoM2


11

𝑌(𝑧)
• On se basent sur ce filtre, montrer que : = 1 + 𝐾𝑧 −1 = 𝐻(𝑧) avec K est le gain du
𝑋(𝑧)

filtre.
• Utiliser la comande « filter » pour appliquer le filtre sur votre audio. Ensuite comparer les
deux audios avant et après le filtrage.
• Le filtre en peinge montré précedement (retard le signal d’un pas, ce qui est pas percebtible
par notre système de l’audition) est la plus petite unité du filtre globale illustré ci-dessus :

Figure 6 Filtre en peine d'ordre N

• Pour le filtre de la Figure 6, trouvez l'expression de sa


transmittance en z, puis utilisez cette transmittance pour
appliquer l'écho à votre morceau de musique.
• Quel est l'ordre du filtre dans lequel vous écoutez l'effet Écho
?
• Éliminez l'écho, introduit précédemment, à l'aide d'un filtre
tous pôles. Démontrez son expression dans le domaine Z.

V. Élimination du problème du craquement : ……………..


Commande Median

A. Belhabib 2023/2024- SICoM2

Vous aimerez peut-être aussi