Effacer les filtres
Effacer les filtres

Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

Cancelling the Echo for a Generated Function using Convolution

1 vue (au cours des 30 derniers jours)
Abdelrhman Abdelfatah
Abdelrhman Abdelfatah le 10 Mai 2022
Clôturé : Abdelrhman Abdelfatah le 12 Mai 2022
So I generated an Echo for a function using Convolution, using the following code
[y,Fs] = audioread('Test1.wav');
%Definding Delay & attenuation_factor
------
------
------
%Definding Impluse
h1=zeros(1,delay);%Impulse
h1(delay)=attenuation_factor; %Impulse at delay
h1(1)=1;
%Generating function with echo
z=conv(y,h1);
sound(z,Fs)
Now I want to cancel this echo again, and here is what i wrote so far
%Delcaring anothr Impluse
h2= [1,(zeros(1,delay))];
h2(delay)=-attenuation_factor;
h2(1)=1;
o=conv(h2,z);
But the final output function ( o ) is still having an echo, what am i doing wrong?
And why is the final output (o) domain is still beyond the original functin as shown below
  2 commentaires
Mathieu NOE
Mathieu NOE le 11 Mai 2022
hello
your "anti echo" is not working because it's not the inverse process of the echo
in discrete (z) equations :
when you do the echo , : Y = (1 + attenuation_factor*z^(-delay)) * X
so this is basically a FIR filter. The best inverse of that would be the IIR filter : 1 / (1 + attenuation_factor*z^(-delay))

Réponses (0)

Cette question est clôturée.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by