Info

この質問は閉じられています。 編集または回答するには再度開いてください。

Cancelling the Echo for a Generated Function using Convolution

2 ビュー (過去 30 日間)
Abdelrhman Abdelfatah
Abdelrhman Abdelfatah 2022 年 5 月 10 日
閉鎖済み: Abdelrhman Abdelfatah 2022 年 5 月 12 日
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 件のコメント
Mathieu NOE
Mathieu NOE 2022 年 5 月 11 日
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))

回答 (0 件)

この質問は閉じられています。

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by