我正在研究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
现在我想编写一个将回显语音转换为旧版本的函数。
有没有简单的方法呢?
答案 0 :(得分:2)
计算信号与自身的互相关。你应该得到两个高峰。峰值之间的差异应该是回声延迟。
答案 1 :(得分:0)
很可能不是一个简单的方法。但您可以尝试首先使用xcorr自行交叉关联信号以找出滞后。然后你必须估计回声的贡献并减去它。
可能有一个值α,可以最小化signal + alpha*delayed_signal
的能量,其中alpha> 0。