MATLAB语言编程实现回波信号的产生和消除
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1.摘要 (2)
2.正文 (3)
(1)设计目的和要求 (3)
(2)设计原理 (3)
(3)设计内容 (3)
3.总结与致谢 (11)
4.参考文献 (12)
摘要
回波是现代通信中影响通信质量的噪声干扰,也有测距估算等的使用价值。MATLAB语言具备高效、可及推理能力强等特点,在数值计算方法、图形功能、用户界面设计编程手段和工具等方面有着重要的应用,随着MATLAB应用领域不断扩大,使其成为一种影响大、流行广的科学计算语言。本文基于MATLAB以回波这一最简单的线性模型进行分析,实现了回波的产生、消除、测量反射物的距离。本设计方案用MATLAB自带的函数功能读取语音信号,通过延迟叠加产生回波信号来模拟回声,通过计算分析输出信号的自相关函数利用基于自相关函数的方法来估计衰减系数和延迟,并利用快速傅里叶变换将回波信号滤除回声,得到原声音信号,同时根据延迟估计反射物的距离。
关键字:回波自相关函数MATLAB 延迟距离
正文
(1)设计目的和要求
本课程设计要求用MATLAB 语言编程实现回波信号的产生和消除。
具体要求:
(1)利用声音信号x 产生带有回声的声音文件y 。
(2)从带有回声的文件y 中消除回声。
(3)从y 中估计反射物的距离。
(2)设计原理
1·根据设计要求分析系统功能,掌握设计中所需理论(采样频率、采样位数的概念,采样定理:回声信号,相关性分析;数字滤波器设计原理和方法)。
采样频率:采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取
并成离散信号的采样个数。
采样位数:即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和
播放声音文件时所使用数字声音信号的二进制位数。
采样定理:在进行模拟/数字信号的转换过程中,当采样频率fs.max 大于信号中最
高频率fmax 的2倍时(fs.max>=2fmax),采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍;采样定理又称奈奎斯特定理。
相关函数:X(t)为随机过程,a(t)=EX(t)为期望,则相关函数定义为: B(s,t)=E(X(s)-a(t))(X(t)-a(t))。若X(t)=Y(t)+i*Z(t),Y ,Z 为实过程,则称X(t)为复随机过程,相关函数定义为:B(s,t)=E(X(s)-a(t))(X(t)-a(t))(后一个括号取共轭)
相关函数两个本质特性:
1)共轭对称:B(s,t)=B(t,s)的共轭
2)非负定:对任意的n>=1,t1……tn 属于T,n 个复数Z1,Z2……,Zn ,有
()01,≥∑-k j k
n jk j Z Z t t B 。
2·熟悉MATLAB的编程语言。
(3)设计内容
1·信号的采集
录制一段音频(如歌曲,说话声等),绘制其时域波形,对此音频信号用FFT作频谱分析。
我截取了一段自己的手机铃声,转换为WA V格式,重命名为gwm,输入代码并得到图谱如下:
[x,fs]=wavread('gwm');
figure(1);
subplot(3,1,1);
plot(x(1:4000));
title('原始信号');
y=fft(x);
subplot(3,1,2);
plot(abs(y));
title('幅值');
2·回声信号的产生
在录制信号基础上产生带有回声的声音信号并绘制其时域波形,对其进行FFT频谱分析,绘制频谱图。本段输入代码及得到图谱如下:
[x,fs]=wavread('gwm');
x1=x(1:4000);
x2=x(1:4000);
x3=x(1:4000);
x1=[x1,zeros(1,1800)];
x2=[zeros(1,600),0.7*x2,zeros(1,1200)];
x3=[zeros(1,1200),0.4*x3,zeros(1,600)];
y=x1+x2+x3;figure(2);
subplot(3,1,1);
plot(y(1:5800));
title('回声');
y1=fft(y);
subplot(3,1,2);
plot(abs(y1));
title('幅值');
sound(y,fs);
3·从带有回声的声音信号中恢复原信号
设计合适的滤波器,对带有回声的声音信号进行滤波,恢复原信号。绘制所设计滤波器的幅频和相频特性,及滤波后的信号的时域波形和频谱图。本段输入代码和获得图谱如下:
b=1;
a=zeros(1,1800); a(1)=1;
a(601)=0.7;
a(1001)=0.4;
z1=filter(b,a,y); z2=fft(zl,4000); figure(3);
subplot(3,1,1); plot(abs(z2));
title('滤波幅值'); subplot(3,1,2); plot(angle(z2)); title('滤波相位'); subplot(3,1,3); plot(z1(1:1024)); title('滤波信号');
4·从带有回声的声音信号中估计反射物的距离
采用相关分析法从带有回声的声音信号中估计反射物的距离。本段输入代码和获得图谱如下:
h=xcorr(y);
figure(4);
subplot(4,1,1);
plot(abs(h));
title('最值');
h1=h(5600:6000);
[r1,t1]=max(h1');
t1=t1+5600;
subplot(4,1,2);