回波的产生与消除

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);%叠加信号

相关文档
最新文档