回波的产生与消除
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、回波的产生与消除
【设计原理】
1、声音信号x 的产生:
声音信号x ,既可以从现成的声音文件(.wav )中获取;也可以利用MATLAB 录音命令现行录制(可自行设置采样频率等录音参数)。
2、带回声的声音信号y 产生:
带回声的声音信号,可以表达为在原信号的基础上叠加其延时衰减的分量。假设只有一个回声的情况下,可简化其模型为:
y(n)=x(n)+ax(n-N) (式1)
a 为反射系数;N 为延迟时间。
思考: 分别改变反射系数a 和延迟时间N 的大小,播放产生的回声信号y ,分析反射系数a 和延迟时间N 对原始声音的影响。
3、回声消除
如何从信号y 中恢复出信号x ?即是(式1)的一个逆向求解过程。因此回声消除的关键可以通过(式1)的模型建立从信号y 中恢复信号x 的模型。只要恢复模型建立,即可将信号y 作为输入信号,求得恢复后的信号x ’。
4、从信号y 中估计反射物的距离
从信号y 中估计反射物的距离,可理解为估计(式1)中的N 。也就是,估计y(n)中的原始声音信号x(n)与其延时衰减分量ax(n-N)的相关联的程度。下面简单介绍一下信号相关的概念。
在统计通信及信号处理中,相关的概念是一个十分重要的概念。相关函数和信号的功率谱有密切关系。所谓相关是指两个确定信号或两个随机信号之间的相互关系,对于随机信号,信号一般是不确定的,但是通过对它的规律进行统计,它们的相关函数往往是确定的,因而在随机信号处理中,可以用相关函数来描述一个平稳随机信号的统计特性。
已知x(n)和y(n)是两个实数序列,它们的自相关函数
,[]x x n φ、,[]y y n φ,及互相关函数,[]x y n φ分别定义为:
,,,[][][][][][][][][]
x x m y y m x y m n x m n x m n y m n y m n x m n y m φφφ∞=-∞∞=-∞∞=-∞=
+=
+=
+∑∑∑ (式2) 考虑如何利用相关性从信号y 中估计反射物的距离。 源程序及输出结果展示:
[x,fs]=wavread('ak47.wav');%读出信号
n=5000;c=0.6;%c 为反射系数,可控制回声声强大小
g=zeros(1,n+1);%1*n+1阶零矩阵
g(1)=1;%令第一个元素为1
x1=conv(g,x);%g 与x 做卷积,形成原始信号
h=zeros(1,n+1);%1*n+1阶零矩阵
h(n+1)=1;%令第n+1个元素为1
x2=c*conv(h,x);%h与x做卷积再与反射系数相乘,形成回声信号y=x1+x2;%信号叠加
figure(1);%创建图形1
subplot(3,1,1);
plot(x1);title('原始信号');%画出原始信号波形
subplot(3,1,2);
plot(x2);title('回声信号');%画出回声信号波形
subplot(3,1,3);
plot(y);title('叠加信号');%画出叠加信号
figure(2);
subplot(4,1,1);
plot(abs(x));title('原始信号幅值');%画出原始信号幅值subplot(4,1,2);
plot(angle(x));title('原始信号相位');%画出原始信号相位subplot(4,1,3);
plot(abs(y));title('叠加信号幅值');%画出叠加信号幅值subplot(4,1,4);
plot(angle(y));title('叠加信号频谱');
b=1;
a(1)=1;%令矩阵a的第一个元素为1
a(n+1)=2;%令矩阵a的最后一个元素为0.4
z1=filter(b,a,y);%从y中滤出产生滤波信号
z=z1(1:length(x));
g=xcorr(y);%产生自相关g
figure(3);
subplot(3,1,1);
plot(abs(g));title('y的自相关函数');
n1=10000;
n2=25000;
n3=50000;
g1=g(n1:n2);%第一个极值点的大概区间
[r1,t1]=max(g1');%找出峰值及坐标
g2=g(n2:n3);%第二个极值点大概区间
[r2,t2]=max(g2');%找出峰值及坐标
subplot(3,1,2);
plot(g1);title('原声音信号极值点1')
subplot(3,1,3);
plot(g2);title('回声信号自相关极值点')
t2= t2+n2-t1-n1%回声与原始声音之间的距离,也为相差采样点数t3=t2/fs%声音传到障碍物的时间
n=r2/r1;%自相关函数衰减幅度
figure(4)
subplot(3,1,1);
plot(y);%画出带回声信号
title('带回声信号');
subplot(3,1,2);
plot(z);%画出去除回声后的信号title('去除回声信号');
subplot(3,1,3);
plot(x);%画出原始信号
title('原始信号')
sound(x1,fs);%原始信号pause(5)
sound(x2,fs);%回声信号
pause(5)
sound(y,fs);%叠加信号