1. 消除回声之后的信号不是近端减去远端。
而是近端减去远端的延迟信号(而且不是某一个特定的延迟,是多个不同的延迟,因为同一个声音从喇叭出来,可以经过多条不同的反射路径,最后进入话筒)。
2.其实就很好想象了。
上面已经说了,你想要的,没有回声的信号,加上了不同的延迟的远端信号,得到了近端信号。
那么,我不知道到底有哪些延迟,一开始在考察的这个问题时,我就要假设每一个延迟都有。
这里以离散时间信号为例哈:x(n)是远端信号。
y(n)是近端信号。
m(n) 是把y(n)去除了回声之后的信号。
要得到m(n),我一开始,最通用的假设是,y(n)=m(n)+ a*x(n)+ b*x(n-1)+c*x(n-2)+…很明显,求出a,b,c 等等,那么你就能够找到m(n)你的去回声的算法要通用,所以你也能想到,不同人,音箱和话筒位置不同,房间的构造不同,上面的a,b,c等等在他的系统里都会不同。
所以,这个a,b,c 等等会“自适应”地改变。
接下来我们要看怎么求a,b,c等等。
这里面的核心点子是这样的:我们构造一个标准,这个标准是个公式,这个公式能算出一个结果。
当然,这个结果要用来描述我们去除回声的效果如何。
同时这个公式的结果要和我们的a,b,c等值有关系。
算出的值小,那么说明我们当前的a,b,c等的取值还行,去回声效果好。
。
算出来大,表示我们当前的a,b,c等的取值不好,去回声效果不好。
这个公式,我们称之为“代价函数”我们的代价函数是这样的:|e(n)|^2=|y(n)-(a*x(n)+ b*x(n-1)+c*x(n-2)+…)|^2(这里是当成向量了哈,然后这取模的平方)你一定觉得奇怪。
这个e(n)不就是m(n)吗?如果a,b,c等的取值正好合适,那么e(n)=m(n).如果不合适,你知道会发生什么情况吗?现在n的取值是有一定长度的。
e(1)^2 + e(2)^2+ e(3)^2+… 会比m(1)^2 + m(2)^2+m(3)^2+…大。
于是,当e(n)取最小值时,就是m(n)如果从向量的角度来说,就是m(n) 这个向量,会和x(n),x(n-1)等等这些向量是尽量正交的。
对于两个不同的信号,这在信号处理里面,n足够大的时候,通常是个很合理的假设。
很多信号分离,都是基于这个假设。
而,lms,nlms是用来求e(n)最小值时a,b,c等的迭代方法。
既然是迭代方法,如果此刻a,b,c等发生了变化,再经过几次迭代,又能找到新的a,b,c等。
那么这就是使得这个系统拥有“自适应性”。
3. 傅立叶变换,是因为卷积和在频域是相乘。
主要是计算简化。
但是,那要一大堆一大堆的信号一起处理。
有的时候可能给整个系统输出带来很大的延迟。
4.matlab:Acoustic Echo Cancellation (AEC)enjoy.
上一篇:有一个妹妹是怎样一种体验?
下一篇:在健身房,你最讨厌什么样的人?
- 夏天的风 姑娘 老男孩 理想三旬 月半小夜曲 生日快乐 其实 那些年 光阴的故事 少年 后来遇见他 那女孩对我说 世界这么大还是遇见你 火红的萨日朗 想见你想见你想见你 冬眠 关键词 芒种 往后余生 关山酒 年轮说 小镇姑娘 烟雨行舟 记念 你笑起来真好看 来自天堂的魔鬼 学猫叫 你的酒馆对我打了烊 不仅仅是喜欢 浪人琵琶 卡路里 带你去旅行 红昭愿 纸短情长 最美的期待 体面 小跳蛙 悬溺 侧脸 山楂树之恋 我的名字 失眠飞行 有可能的夜晚 追光者 请先说你好 流浪 东西 星球坠落 我的将军啊 烟火里的尘埃 答案 心如止水 我们不一样 嘴巴嘟嘟 晴天 成都 告白气球 南山南 女儿情 天空之城
报歉!评论已关闭。