怎么将卷积产生的回音消除掉得到原声?

设计的回声产生系统如下,后面要怎么将卷积产生的回音消除掉从而还原出原声来呢?

clear,clc;
% 记录数据或读取数据
fs=8000; % 采样频率
rd=2; % 记录时间
recObj = audiorecorder;%创建一个保存音频信息的对象
fprintf('Speaking for %d seconds. \n',rd);
disp('Start speaking.')
recordblocking(recObj, rd); % 录下2秒钟声音。
disp('End of Recording.');
x = getaudiodata(recObj);% 提取录音数据。
% 冲击响应函数h(t)
t=[0:1/fs:rd];
h =0.8*my_delta(t-0.5) + 0.6*my_delta(t-1.0) + 0.4*my_delta(t-1.5);
% 通过卷积产生回声信号
y=1/fs*conv(x,h);
echo=audioplayer(y,fs);%创建用于播放音频的对象
play(echo); % 播放回声
% % 写入音频文件
audiowrite('Record_x.wav',x,fs);
audiowrite('Record_y.wav',y,fs);
subplot(2,1,1);
plot(x);
title('原始音');
subplot(2,1,2);
plot(y);
title('经过回音系统');

你好,请试试反卷积操作deconv函数