Cours:Elen4 TNS TP TraitAudioEtDemodulation : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Traitement audio)
(Traitements audio)
Ligne 15 : Ligne 15 :
 
''s(n) = x(n) + a x(n-d)''
 
''s(n) = x(n) + a x(n-d)''
 
</center>
 
</center>
où ''a'' représente le facteur d'atténuation (0<''a''<1) et ''d'' est le nombre d'échantillons de retard du signal répliqué.
+
où ''a'' représente le facteur d'atténuation (0 < ''a'' < 1) et ''d'' est le nombre d'échantillons de retard du signal répliqué.
  
 
Vous travaillerez avec un retard de τ=0,5s en considérant que ''τ=d Te'', ''Te'' étant la période d'échantillonnage.  
 
Vous travaillerez avec un retard de τ=0,5s en considérant que ''τ=d Te'', ''Te'' étant la période d'échantillonnage.  
Ligne 33 : Ligne 33 :
  
 
{{q| e)}} Appliquer ce filtre au signal ''y'' et écouter le signal qui ne doit plus présenter de phénomène d’écho.
 
{{q| e)}} Appliquer ce filtre au signal ''y'' et écouter le signal qui ne doit plus présenter de phénomène d’écho.
 +
 +
===== Réverbération =====
 +
 +
La réverbération est due au mélange de réflexions directes ou indirectes et résulte en un son confus. Considérons une situation simple où une seule réverbération est présente. Soit ''x(n)'' le signal original, la réverbération est obtenue en additionnant le signal d’entrée avec le signal de sortie retardé :
 +
<center>
 +
''y(n) = x(n) + b y(n-r)''
 +
</center>
 +
 +
où ''b'' est le facteur d’atténuation (0 < ''b'' < 1) et ''r'' le nombre d’échantillons de retard du signal répliqué.
  
 
=== Codage d'un bloc Gnuradio en C++ ===
 
=== Codage d'un bloc Gnuradio en C++ ===

Version du 21 mars 2023 à 18:50

Retour à la page du cours

TP5 : Traitements audio et temps réel / codage d'un bloc en c++

Le but de ce TP est d'ajouter puis de supprimer des effets audio (écho et réverbération). La source sera un enregistrement parlé numérisé. Les effets et leurs suppressions seront implémentés à l'aide de filtres numériques.

Traitements audio

Écho

Les échos se produisent lorsqu'au signal émis s'ajoutent une ou plusieurs répliques retardées et affaiblies de ce même signal source. Nous considérons une situation simple où seul un écho s'ajoute au signal original x(n). En raison de l'écho, le signal obtenu est

s(n) = x(n) + a x(n-d)

a représente le facteur d'atténuation (0 < a < 1) et d est le nombre d'échantillons de retard du signal répliqué.

Vous travaillerez avec un retard de τ=0,5s en considérant que τ=d Te, Te étant la période d'échantillonnage.

a) Si la fréquence d’échantillonnage est fixée à Fe = 22050Hz, montrer que la fonction de transfert du filtre d'écho est

H(z) = 1 + a z-11025

b) Télécharger le fichier RienNeSertdeCourir.zip, et l'utiliser comme entrée dans Gnuradio à l'aide d'un bloc Wav File Source. L'écouter en audio en l'envoyant dans un bloc Audio Sink, en spécifiant 22050Hz comme fréquence d'échantillonnage.

c) Appliquer le filtre H à la phrase enregistrée pour créer une sortie y(n). Écouter cette phrase pour vérifier à l'oreille la présence d’un écho. L’application du filtre sera réalisée de la même façon qu'au TP3 - Implémentations de filtres.

d) On souhaite à présent concevoir un système d’annulation de l’écho. Il s’agit donc de déterminer un filtre numérique de réponse impulsionnelle g(n) qui doit permettre de supprimer l’écho.

Déterminer la fonction de transfert G(z) du filtre d’annulation en fonction de H(z).

e) Appliquer ce filtre au signal y et écouter le signal qui ne doit plus présenter de phénomène d’écho.

Réverbération

La réverbération est due au mélange de réflexions directes ou indirectes et résulte en un son confus. Considérons une situation simple où une seule réverbération est présente. Soit x(n) le signal original, la réverbération est obtenue en additionnant le signal d’entrée avec le signal de sortie retardé :

y(n) = x(n) + b y(n-r)

b est le facteur d’atténuation (0 < b < 1) et r le nombre d’échantillons de retard du signal répliqué.

Codage d'un bloc Gnuradio en C++

...

Traitement temps réel

...