0

我正在研究 MatLab 并试图提高自己。

我目前已将一些 .wav 文件转换为带有以下功能的回显版本

function [ ] = lab2echo(alpha,m )

fil=wavread('daffy.wav'); 
fil=transpose(fil);
fil2=[fil zeros(1,m)];
shifting_fil=[zeros(1,m) fil];
fil_echo=alpha*shifting_fil;
result=fil2+fil_echo;
sound(result);
end

现在我想编写一个将回声转换为旧版本的函数。

有什么简单的方法吗?

4

2 回答 2

2

计算信号与自身的互相关。你应该得到两个峰值。峰值之间的差异应该是回波延迟。

于 2012-11-07T17:24:27.210 回答
0

很可能不是一个简单的方法。但是您可以尝试首先使用 xcorr 自行交叉关联信号以找到滞后。然后你必须估计回声的贡献并减去它。

可能有一个值 alpha,它使 的能量最小化signal + alpha*delayed_signal,其中 alpha>0。

于 2012-11-07T17:25:33.363 回答