资源描述:
《本科毕业设计论文--信号与系统课程设计基于matlab回波的产生与消除课程设计.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、信号与系统课程设计课程名称:信号与系统题目名称:回波的产生与消除系统设计学院:…………专业班级:……….学号:…….学生姓名:…….指导教师:……..201.年12月23日摘要MATLAB语言具备高效、可及推理能力强等特点,是目前工程界流行最广泛的科学计算语言。信号与系统是一门理论与实践紧密结合的课程。MATLAB强大的运算和图形显示功能,可使信号与系统上机实验效率大大提高。特别是它的频谱分析和滤波器分析与设计功能很强,使数字信号处理工作变得十分简单,直观。本实验就是运用MATLAB对声音信号进行分析
2、与滤波,并估计反射物距离。关键词:MATLAB;声音信号;回波产生,回波消除,估计反射物距离,频谱分析;滤波器。一.设计要求(1)利用声音信号x产生带有回声的声音信号y。(2)从带有回声的信号y中消除回声。(3)从y中估计反射物的距离二.设计内容和步骤理论依据根据设计要求分析系统功能,掌握设计中所需理论(采样频率、采样位数的概念,采样定理;回声信号,卷积,相关分析;时域信号的FFT分析;数字滤波器设计原理和方法)。1、声音信号x的产生:声音信号x,既可以从现成的声音文件(.wav)中获取;也可以利用M
3、ATLAB录音命令现行录制(可自行设置采样频率等录音参数)。我们直接利用现成的声音文件(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
4、(y));title('相位');sound(x,fs);图11、带回声的声音信号y产生:在已有声音信号x的基础上产生带回声的声音信号,可以表达为在原信号的基础上叠加其延时衰减的分量。假设只有一个回声的情况下,可简化其模型为:y(n)=x(n)+ax(n-N)(式1)a为反射系数;N为延迟时间。利用此原理我们进行编程实现:(1)在我们编程实现回波产生的基础上,再绘制其时域波形,对其进行FFT频谱分析,绘制频谱图并播放。(2)分别改变反射系数a和延迟时间N的大小,播放产生的回声信号y,分析反射系数a和延
5、迟时间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));
6、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的值不能太
7、大也不能太小,当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=[zero
8、s(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