MATLAB语言编程实现回波信号的产生和消除可编辑修改word版.docx
《MATLAB语言编程实现回波信号的产生和消除可编辑修改word版.docx》由会员分享,可在线阅读,更多相关《MATLAB语言编程实现回波信号的产生和消除可编辑修改word版.docx(8页珍藏版)》请在冰豆网上搜索。
MATLAB语言编程实现回波信号的产生和消除可编辑修改word版
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,有
∑
jk-1
B(t
j,tk
)Zj
Zk≥0。
2·熟悉MATLAB的编程语言。
(3)设计内容
1·信号的采集
录制一段音频(如歌曲,说话声等),绘制其时域波形,对此音频信号用FFT作频谱分析。
我截取了一段自己的手机铃声,转换为WAV格式,重命名为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);
plot(h1);title('点1');h2=h(6200:
6600);
[r2,t2]=max(h2);t2=t2+6200-t1;
subplot(4,1,3);plot(h2);title('点2');h3=h(6800:
7200);
[r3,t3]=max(h3);t3=t3+6800-t1;
subplot(4,1,4);plot(h3);title('点3');t=[t2,t3]
t=
5991165
L=V·n/fs
总结与致谢
此次课程设计主要基于数字信号处理的知识,应用MATLAB软件对声音信号进行分析运算,通过延时信号叠加产生回波信号,并对回波信号进行分析,利用相关函数法测量反射物的距离,分别通过已知参数和测量估计的参数恢复回波信号、滤除回声的到消除回声的信号,并对不同的衰减程度对反射物的距离和声音恢复的影响进行了简单的研究。
通过此次实验,熟悉了MATLAB软件的应用,学会了软件的基本技能,对其常用函数有了进一步的研究,同时学会了应用数学软件对信号进行分析的方法,加深了对数字信号处理课程中采样频率、采样位数、回声信号,相关性分析的概念的理解,将采样定理付诸实际应用,对数字滤波器设计原理和方法有了进一步的认识,并能通过软件设计简单的数字滤波器对信号进行处理。
在实验的过程中,我遇到了一些问题,除了自己查找资料以外,老师和同学们都给予了我很大的帮助,在这里我对耐心帮助我的老师和同学表示衷心的感谢。
谢谢大家!
参考文献
[1]高西全、丁玉美编著《数字信号处理》西安:
西安电子科技大学出版社,2008.
[2]丁玉美、高西全编著《数字信号处理学习指导》西安:
西安电子科技大学出版社,2001.
[3]郑君里等编《信号与系统》北京:
高等教育出版社,2000.
[4]罗军辉等编著《MATLAB7.0在数字信号处理中的应用》北京:
机械工业出版社,2005.
[5]陈怀琛等编著《MATLAB及在电子信息课中的应用》北京:
电子工业出版社,2002.