基于matlab回波的产生与消除课程设计.docx
- 文档编号:17451308
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:11
- 大小:161.33KB
基于matlab回波的产生与消除课程设计.docx
《基于matlab回波的产生与消除课程设计.docx》由会员分享,可在线阅读,更多相关《基于matlab回波的产生与消除课程设计.docx(11页珍藏版)》请在冰点文库上搜索。
基于matlab回波的产生与消除课程设计
《信号和系统》课程设计——回波的产生和消除
班级:
学生姓名:
学号:
摘要
MATLAB语言具备高效、可及推理能力强等特点,是目前工程界流行最广泛的科学计算语言。
信号和系统是一门理论和实践紧密结合的课程。
MATLAB强大的运算和图形显示功能,可使信号和系统上机实验效率大大提高。
特别是它的频谱分析和滤波器分析和设计功能很强,使数字信号处理工作变得十分简单,直观。
本实验就是运用MATLAB对声音信号进行分析和滤波,并估计反射物距离。
关键词:
MATLAB;声音信号;回波产生,回波消除,估计反射物距离,频谱分析;滤波器。
一.设计要求
(1)利用声音信号x产生带有回声的声音信号y。
(2)从带有回声的信号y中消除回声。
(3)从y中估计反射物的距离
二.设计内容和步骤
理论依据
根据设计要求分析系统功能,掌握设计中所需理论(采样频率、采样位数的概念,采样定理;回声信号,卷积,相关分析;时域信号的FFT分析;数字滤波器设计原理和方法)。
1、声音信号x的产生:
声音信号x,既可以从现成的声音文件(.wav)中获取;也可以利用MATLAB录音命令现行录制(可自行设置采样频率等录音参数)。
我们直接利用现成的声音文件(login.wav),绘制其时域波形,对此音频信号用FFT作谱分析并播放。
声音信号x的产生程序和图形分析如下:
[x,fs]=wavread('login');
figure
(1);
subplot(3,1,1);
plot(x(1:
40000));
title('原始信号');
y=fft(x);
subplot(3,1,2);
plot(abs(y));
title('幅值');
subplot(3,1,3);
plot(angle(y));
title('相位');
sound(x,fs);
图1
2、带回声的声音信号y产生:
在已有声音信号x的基础上产生带回声的声音信号,可以表达为在原信号的基础上叠加其延时衰减的分量。
假设只有一个回声的情况下,可简化其模型为:
y(n)=x(n)+ax(n-N)(式1)
a为反射系数;N为延迟时间。
利用此原理我们进行编程实现:
(1)在我们编程实现回波产生的基础上,再绘制其时域波形,对其进行FFT频谱分析,绘制频谱图并播放。
(2)分别改变反射系数a和延迟时间N的大小,播放产生的回声信号y,分析反射系数a和延迟时间N对原始声音的影响。
(3)按照以上思路,当有两个、三个或更多回声,我门这儿讨论三个回声时的情况
(1)我们编程实现了一个回声信号的声音信号y,程序和图形分析如下(并播放):
此处,N=,a=0.7
[x,fs]=wavread('login');
x1=x(1:
40000);
x2=x(1:
40000);
x1=[x1',zeros(1,18000)];
x2=[zeros(1,18000),0.7*x2'];
y=x1+x2;
figure
(2);
subplot(3,1,1);
plot(y(1:
58000));
title('回声');
y1=fft(y);
subplot(3,1,2);
plot(abs(y1));
title('幅值');
subplot(3,1,3);
plot(angle(y1));
title('相位');
sound(y,fs);
图2
(2)
保持N不变,改变a大小分析声音信号并播放:
我们取N=,a从0.1到1:
观察每个情况下声音信号的变化:
回声信号的强度随着a的增大而变大
保持a不变,改变N大小分析声音信号并播放:
我们取a=0.7,N从10000到50000
观察每个情况下声音信号的变化:
N的值不能太大也不能太小,当N大于40000或小于180000时将当N在18000到40000这个范围内取值时,随着N的增大回声和原来的声音信号之间的时间间隔越
(3)有三个回声的信号y的产生程序和图形分析如下:
[x,fs]=wavread('login');
x1=x(1:
40000);
x2=x(1:
40000);
x3=x(1:
40000);
x4=x(1:
40000);
x1=[x1',zeros(1,18000)];
x2=[zeros(1,6000),0.7*x2',zeros(1,12000)];
x3=[zeros(1,12000),0.4*x3',zeros(1,6000)];
x4=[zeros(1,18000),0.1*x4'];
y=x1+x2+x3+x4;
figure
(2);
subplot(3,1,1);
plot(y(1:
58000));
title('回声');
y1=fft(y);
subplot(3,1,2);
plot(abs(y1));
title('幅值');
subplot(3,1,3);
plot(angle(y1));
title('相位');
sound(y,fs);
图3
3.从带有回声的声音信号中恢复原信号
设计合适的滤波器,对带有回声的声音信号进行滤波,恢复原信号。
绘制所设计滤波器的幅频和相频特性,及滤波后的信号的时域波形和频谱图。
我们这儿就只讨论有三个回声的情况:
恢复信号程序和图形分析如下:
b=1;
a=zeros(1,18000);
a
(1)=1;
a(6001)=0.7;
a(12001)=0.4;
a(18001)=0.1;
z1=filter(b,a,y);
z2=fft(z1,1024);
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:
40000));
title('滤波信号');
sound(z1,fs);
图4
4.从带有回声的声音信号中估计反射物的距离
采用相关分析法从带有回声的声音信号中估计反射物的距离
我们这儿也是从三个回声的情况下考虑的:
程序如下:
h=xcorr(y);
figure(4);
subplot(5,1,1)
plot(abs(h));
title('最值');
h1=h(56000:
60000);
[r1,t1]=max(h1');
t1=t1+56000;
subplot(5,1,2);
plot(h1);
title('点1');
h2=h(62000:
66000);
[r2,t2]=max(h2);
t2=t2+62000-t1;
subplot(5,1,3);
plot(h2);
title('点2');
h3=h(68000:
72000);
[r3,t3]=max(h3);
t3=t3+68000-t1;
subplot(5,1,4);
plot(h3);
title('点3');
h4=h(74000:
78000);
[r4,t4]=max(h4);
t4=t4+74000-t1;
subplot(5,1,5);
plot(h4);
title('点4');
t=[t2,t3,t4]
通过编程计算出三个延时的结果如下所示:
t=[t2,t3,t4]
t=
60001200018000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 matlab 回波 产生 消除 课程设计