基于matlab回波的产生与消除课程设计
回声抵消器的MATLAB设计与实现
回声抵消器的MATLAB设计与实现前言随着信息时代的到来,人们日渐依赖的通信方式正从早期的单一语言通信向多种业务、多种网络综合通信的方向发展,这也正是目前讨论比较多的多媒体通信的发展方向。
在各种各样的通信业务中,凡是需要同时使用扬声器和麦克风的场合,例如会议电视、免提电话等系统终端,都不可避免地会因本地扩声系统和麦克风之间电声祸合,产生回声问题。
为了增加系统稳定性,提到通信的质量,必须设置回声抵消器来排除回声的影响。
1回声抵消的原理回声抵消器(ACE)的基本原理是用一个自适应滤波器去辨识扬声器与麦克风之间的声回波路径,通过自适应滤波算法的调整,使其自适应权值与声回波房间的冲激响应逼近,从而得到声回波估计信号,再将估计信号从麦克风接收到的语言信号中减去,即可实现声回波抵消(如图1所示)。
其中,声回波抵消器产生的回波抵消预测信号为r(n),实际声回波信号为r(n),预测误差信号为e(n)。
则用公式表达声回波抵消的过程为:e(n)=r(n)-r(n) (1)(2)由图1可知,声回波抵消的核心是一个自适应滤波器。
自适应滤波器使用中要考虑的重要问题是优化调整滤波器参数的准则,该准则不仅要对滤波器性能提供有意义的度量,而且必须导出可实现的算法。
对自适应算法的要求是收敛速度快,计算复杂度低,稳定性好,失调误差小。
2回声抵消器的算法回声抵消器的算法都采用自适应算法,目前最受欢迎的自适应算法是LMS 算法,LMS 算法简单有效,易于实现,最小均方误差算法(LMS )是一种用瞬时值估计梯度矢量的方法,即2[()]()2()()()n e n e n n n ∂∇==-∂X h (3)按照自适应滤波器滤波系数矢量的变化与梯度矢量估计的方向之间的关系,可以写出LMS 算法调整滤波器系数的公式如下所示:1(1)()[()]2n n n μ+=+-∇h h()()()n e n n μ=+h X (4)上式中的μ为步长因子。
基于MATLAB的_回声信号产生器课程设计
电子信息工程学院《DSP技术及应用》课程设计报告题目:基于MATLAB的回声信号产生器专业班级:通信工程专业二〇一三年六月十六日目录一、设计目的 (1)二、设计要求 (1)三、设计原理及方案 (1)四、设计流程 (5)五、调试分析 (5)六、GUI界面 (17)七、设计总结.………………………………………………………. .20一、设计目的综合运用我们掌握的数字信号处理知识,利用matlab语言编程进行回声信号产生器的设计再对其进行频谱分析,实现回声的产生,消除和隐藏。
1、首先熟练掌握对声音采集、处理、衰减、延时等过程的理论知识。
2、根据设计思路,学习资料的搜集与整理。
3、通过理论与实际的结合,在理论的基础结合实际情况完成课程的设计。
关于MATLAB软件:MATLAB语言具备高效、可及推理能力强等特点,是目前工程界流行最广泛的科学计算语言。
MATLAB强大的运算和图形显示功能,可使信号与系统上机实验效率大大提高。
特别是它的频谱分析和滤波器分析与设计功能很强,使数字信号处理工作变得十分简单,直观。
关于GUI界面:图形用户界面GUI (Graphics User Interface) 是由各种图形对象,如图形窗口、图轴、菜单、按钮、文本框等构建的用户界面,是人机交流信息的工具和方法。
GUI 设计即可以基本的MATLAB 程序设计为主,也可以鼠标为主利用GUIDE 工具进行设计。
二、设计要求首先,自己录取一个合适的原声信号,并对其进行频谱分析;然后通过数字信号处理对已录制好的原声信号进行延时,衰减,产生出回声信号,通过图形与原声信号进行比较;再把信息转换成二进制信号将其叠加在回声中,通过数字信号处理实现信息的隐藏;最后,通过设计GUI界面将结果展示出来。
1、通过计算机中的y=fft(x)傅里叶变换,对原声信号和回声信号进行频谱分析。
2、通过设计FIR、IIR滤波器对原声信号进行衰减、延时产生一次、三次、六次无限次回声。
回波的产生和消除.
Vbur compBfi y slogan倩号系统«程设计之翌波的产生 估算和消哮,班级:280010SO 熔号:2800103002 址名:序I 必新主要内容模块HI利用声音信号X 产生带有回声的声音信号y (n)y(n)=x(n)+ax(n-N}代码如下: Delay^O.lc;N = fs * delay;Attcnuation.origin =0.5 % 袞减系数设为 0•百 sound(Xr f^r z = zeros(N, 1); %构造一个N 行一列的#矩阵 y = [x; z] + Attenuation * [z; x]; sound(y, f 环 bits);何L ?B 期计純流啓::……科祓的蹄Vbwr compsfi y ^oganHMftantii tt tr 号产i. 何)diUA 空.N 的 n•宅"SffP ; ■(n)itwrifflKrttt •通域n 栢关挂 M if 址和我碱点 Br 回波信号可以表达为在原侑号的基础上叠加其延时衰减的分:1.本 文假设只有一个回声的情况下・可简化其a 期为,•y(n}=x(n)+ax(n-N),带回波信号的产生r r r • r * f%设《延迟为O.lsVburcompany stolen产生的回波信号与原声音信号在时域上的图像对比:±<根据#的自梅关函数.希9能已经V 的自相关Sft 在两个量离点处的值来推导 thttitN 和衰的方徐 相关系《定义, -比丿川* 2- H 也•川Hm]«堀巳知的关勲 入y 的e 梅关aft 计算公氏有*. J«h S 加"1 枷IaL->a丄 M 闪刖・ nW"卜4<fwW 利• W 卜町®7” NW'I T ’R 用%k$Ww ・A]) (I )将fi=O 和n=Nir 入上比 <1)A * , O <? •^«Ka2 3 4 5 SlimoVbur coinpan y■丹 *自相关函数分析<1)8 a 4 sat*期A 「I : r M 片62vC>l lia<Lz =c ・4^=\ I- A"|4«!«(«»— A/H/n] +o^^rw — N]C (F 4 再']}M" WI ;■W ,|pVJ 7 IM** • V|Af/n)i i4i|ivi f WU|or AfJ i ui|nv i N - iVfif m) t u'.ifm V - N}\[m ' /V) 1用(4)式比上(5)式ST 议得到一个关于•的一元二次方《 (对自相关求出 在0和N 处的《大值之后)如⑼」一Y (其屮C 为人于1的常数)aC±7C '-4自相关函数分析(续)椎毎血栋“ft …三V "叱4讪鸞瞟監恶肚黑普廈晾2 卄八 W W E ]-()1(3)久」0曰14/妙」(”孩4)(5)r 解方程:/. cF — Ca + 1=0 0JN1得到的估4结巢址下J *与设定值3 = 0.5,delay=0・ls相比较>吻合的较好。
matlab课程设计-基于MATLAB的回波信号的产生与消除
数字信号处理课程设计题目:基于MATLAB的回波信号的产生与消除课程:MATLAB课程设计姓名:学号:摘要在这个课程设计中,利用matlab采集一段语音,在这段语音的基础上,加入一定延时和衰减的回音,最后消去回音并且测出延时时间来计算障碍物距离正文①设计目的与要求采集语音:采集一段语音,绘制其时域波形,对此音频信号用FFT作谱分析。
加入回声:对采集的语音进行处理,加入一段回声,并绘制其时域波形,对其进行FFT频谱分析,绘制频谱图。
从带有回声的声音信号中恢复原信号:设计合适的滤波器,对带有回声的声音信号进行滤波,恢复原信号。
绘制所设计滤波器的幅频和相频特性,及滤波后的信号的时域波形和频谱图。
从带有回声的声音信号中估计反射物的距离:采用相关分析法从带有回声的声音信号中估计反射物的距离。
②具体内容及原理(1)语音采集利用matlab采集一段语音并保存,代码如下fs=8000;x=wavrecord(3*fs,fs,'double');wavplay(x,fs);wavwrite(x,'原始信号'); //存储音频:原始信号(2)原始信号的时域波形,FFT频谱分析代码如下subplot(3,1,1);plot(x);grid on;xlabel('时间');ylabel('幅值');title('原始信号时域波形');subplot(3,1,2);f=(0:3*fs-1)*fs/(3*fs);plot(f,abs(wx));grid on;xlabel('频率');ylabel('幅值');title('幅频特性');subplot(3,1,3);plot(f,angle(wx));grid on;xlabel('频率');ylabel('相位') ;title('相频特性');图如下:(3)加入回声在已有声音信号x的基础上产生带回声的声音信号,可以表达为在原信号的基础上叠加其延时衰减的分量。
matlab课程设计-基于MATLAB的回波信号的产生与消除
(5) 从带有回声的声音信号中恢复原信号且估计反射物的距离
这里把信号的恢复和反射物距离的估计放到一起是基于这么一种考虑,说明如下: 在回声产生的过程中,用到了:y(n)=x(n)+ax(n-N),用的a=0.5,N=2400。然而现在要从加 回声后的信号中恢复原信号,应该是在这么一种前提下,即“只有y(n)已知,其他都 是未知的”。就是说,要假设我们并不知道原信号,且a与N都是未知的,这就给信号的 恢复带来了困难,如果直接用y(n)=x(n)+0.5*x(n-2400)是不合理的。这个时候就要用到对 反射物距离的估计的过程,在这个过程中利用相关分析法可以估算出N的值,利用N来 算反射物的距离,求得N,则可以进一步求得a,具体方法和原理如下:
加回声后的信号.wav
恢复后的信号:
恢复后的信号.wav
小结:
这个过程大体上完成了所要求的功能:采集一个语音信号,加入回声,恢复原信号,估计反 射物距离。在这里,有一个非常大的不足就是,对于各个函数都是直接引用已有函数,并未 自己编程实现。在整个过程中,我认为有一点对于从回声信号中恢复原信号来说非常重要,
H (z)
X (z) 1 Y ( z ) 1 0.4* z 2400
知道系统函数后,可以调用filter函数 filter是一维数字滤波器 其使用方法如下: Y = filter (B,A,X) ,输入X为滤波前序列,Y为滤波结果序列,B/A 提供滤波器系数,B 为分子, A为分母整个滤波过程是通过下面差分方程实现的: a(1)*y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb)- a(2)*y(n-1) - ... a(na+1)*y(n-na) 下面从带有回声的声音信号中恢复原信号并保存,并且画出时域图与频域图 代码如下 a=[1,zeros(1,2399),0.5]; b=[1]; x1=filter(b,a,y); wavwrite(x1,'恢复后的信号') subplot(3,1,1); plot(x1); grid on; xlabel('时间'); ylabel('幅值'); title('恢复后的信号时域波形'); subplot(3,1,2); wx1=fft(x1); f=(0:3*fs+N-1)*fs/(3*fs+N); plot(f,abs(wx1)); grid on; xlabel('频率'); ylabel('幅值'); title('幅频特性'); subplot(3,1,3); plot(f,angle(wx1)); grid on; xlabel('频率'); ylabel('相位') ;title('相频特性');
《信号与系统》经典课程设计回波的产生与消除
回波实验产生与消除【设计题目】回波实验产生与消除【设计要求】(1) 利用声音信号x产生带有回声实验声音信号y。
(2) 从带有回声实验信号y中消除回声。
(3) 从y中估计反射物实验距离。
【设计工具】MATLAB【设计原理】1、声音信号x实验产生:声音信号x,既可以从现成实验声音文件(.wav)中获取;也可以利用MATLAB 录音命令现行录制(可自行设置采样频率等录音参数)。
2、带回声实验声音信号y产生:带回声实验声音信号,可以表达为在原信号实验基础上叠加其延时衰减实验分量。
假设只有一个回声实验情况下,可简化其模型为:y(n)=x(n)+a x(n-N) (式1)a为反射系数;N为延迟时间。
思考1: 分别改变反射系数a和延迟时间N实验大小,播放产生实验回声信号y,分析反射系数a和延迟时间N对原始声音实验影响。
思考2: 按照以上思路,当有两个、三个或更多回声时,就有更多实验信号叠加,程序编制变得繁琐。
有什么更好实验办法产生回声?3、回声消除如何从信号y中恢复出信号x?即是(式1)实验一个逆向求解过程。
因此回声消除实验关键可以通过(式1)实验模型建立从信号y中恢复信号x实验模型。
只要恢复模型建立,即可将信号y作为输入信号,求得恢复后实验信号x’。
4、从信号y中估计反射物实验距离从信号y中估计反射物实验距离,可理解为估计(式1)中实验N。
也就是,估计y(n)中实验原始声音信号x(n)与其延时衰减分量a x(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 中估计反射物实验距离。
实验四 回声估计和回声消除 信号分析与处理实验电子教案
实验四 回声估计和回声消除
一、实验目的
掌握利用信号分析和系统设计的基本原理进行回 声估计和回声抑制的基本原理和基本方法。
Байду номын сангаас
实验四 回声估计和回声消除
二、 实验原理
利用MATLAB命令load mtlb取得语音信号x[k]。然 后用命令x=mtlb将语音数据存在x向量中。含有回声的语 音信号y[k]的数学模型可表示成:
y[k]=x[k]+ax[k-n] (a<1) 其中,x[k]是未被污损的语音信号,y[k]是由x[k]叠加 回声信号ax[k-n]组成,回声信号ax[k-n]是延时n个时刻且 在幅度上减小到a倍的x[k]。
回声信号的产生与消除
数字信号处理课程设计回声信号的产生与消除姓名张针海学号 ******** 专业电子信息工程指导教师樊玲年级 10级电信2班日期 2013 .5 . 25【摘要】本课程是利用Windows下的录音机,录制一段自己不小于10s的语音,然后在Matlab 软件平台下,利用函数wavread对语音信号进行采样,并记录采样频率和采样点数。
在抽样信号的基础上,通过采样后的的信号与原信号实现一次及多次延迟、叠加产生回波信号,再使用Matlab绘出有回声及无回声语音信号的时域波形和频谱图。
再分别用频率抽样法设计的FIR滤波器和冲激相应不变法设计设计的IIR滤波器消除回声,并记录滤波器的频域响应,再绘制滤波后信号的时域波形和频谱,并对前后信号进行对比,分析信号的变化。
[关键词] 录音 matlab 采样滤波抽样[Abstract] this course is to use a tape recorder to record voice under Windows, a section of their own not less than 10s, then in Matlab software platform, sampling of the speech signal using the function wavread, and record the sampling frequency and sampling points. Based on the sampling signal, through its implementation of single and multiple superposition delay, echo, and use Matlab to draw the echo and echo free speech signal time-domain waveform and spectrum. FIR filter respectively by frequency sampling design method and impulse corresponding invariant IIR filter design to eliminate echo, and record the response of the filter in frequency domain, and then draw the time-domain waveform and spectrum of the filtered signal, and compared before and after the signal, analysis of signal changes目录1 设计目的及要求 (3)1.1设计回音目的及要求 (3)1.2设计滤波器目的及要求 (3)1.2.1 FIR滤波器 (3)1. 2. 2 巴特沃兹滤波器 (3)1. 2. 3 距离估计要求 (4)2 设计原理 (4)3设计内容 (4)3.1语音采集........ (4)3. 2信号分析 (4)3.3制作回音 (5)3.4设计滤波器及滤波 (8)3. 4. 1 设计FIR滤波器及滤波 (8)3.4.1.1单回声的滤波 (8)3. 4.2设计巴特沃兹滤波器及滤波 (12)3.4.2.1设计巴特沃斯数字低通滤波器 (12)3.5估算距离 (13)3.5.1通过理论计算法 (13)3.5.2程序返回测量法 (14)4总结 (15)5、参考文献 (16)1 设计目的及要求1.1设计回音目的及要求现代通信中回波是影响通信质量的噪声,本课程设计是在matble库元件中搜索一段不小于10s的录音,再利用函数wavread对语音信号进行采样,并自身实现一次及多次延迟、叠加产生回波信号,再使用Matlab绘出有回声及无回声语音信号的时域波形和频谱图。
山东建筑大学基于matlab的回波分析与消除
2.设Hale Waihona Puke 原理2.1 设计的理论依据
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)的共轭
山东建筑大学信电学院课程设计说明书
基于 MATLAB 的回波信号的产生与消除
摘要:
回波是现代通信中影响通信质量的噪声干扰,也有测距估算等的使用价值。
本文基于 MATLAB 以回波这一最简单的线性模型进行分析,实现了回波的产生、消除、 测量反射物的距离。本设计方案用 MATLAB 自带的函数功能读取语音信号,通过延迟叠 加产生回波信号来模拟回声, 通过计算分析输出信号的自相关函数利用基于自相关函数 的方法来估计衰减系数和延迟,并利用快速傅里叶变换将回波信号滤除回声,得到原声 音信号,同时根据延迟估计反射物的距离。
2013信号课程设计任务书2
信号处理与系统分析课程设计(任务书二)以下题目可以选一个作为课程设计的题目。
设计一基于MATLAB的语音信号分析和处理系统的设计要求学生采集语音信号(录制一段自己的话音,时间在1s内)后,在MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声(在语音频率范围内),对加入噪声的信号进行频谱分析,确定滤波器的性能指标,设计各种滤波器对语音信号进行滤波。
设计方法要求为:IIR滤波器采用双线性变换法,和FIR滤波器采用窗函数法与频率采样法。
画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放滤波前后的语音信号。
并设计一个简单易用的图形用户界面(GUI),来解决一般应用条件下的各种语音信号的处理。
设计二基于Matlab的数字滤波器设计及滤波仿真1. 程序设计法:利用Maltab模拟生成一个基本输入信号(如三个正弦频率信号的叠加),设计各种滤波器(低通,高通,带通),信号频率和滤波器的技术指标自行设定,设计方法要求为:IIR滤波器采用双线性变换法,和FIR 滤波器采用窗函数法。
并进行滤波处理,最后得到分离的三个正弦频率信号,并与理论上得滤波效果进行对比和讨论。
为便于操作,设计一个简单易用的图形用户界面(GUI),来实现各功能。
2. 信号处理工具箱的FDATool的设计方法:FDATool可以设计几乎所有的基本的常规滤波器,包括FIR和IIR 的各种设计方法。
这里的设计任务与1基本相同,设计完成后,调用Simulink中的功能模块构成数字滤波器的理论计算并画出fs f ≤≤0范围的幅度谱,标出峰值频率,观察系统的实际识别结果,分析其正确性。
例:假设输入信号为342Hz 的正弦信号,则分类结果输出为“第二类”。
2. 输入是两个正弦频率信号的合成,仍能输出分类结果。
例:假设输入信号为340Hz 和700Hz 的正弦信号,则分类结果输出为“第二类和第三类”。
3. 为便于操作,设计一个简单易用的图形用户界面(GUI ),来实现各功能。
基于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);图12、带回声的声音信号y产生:在已有声音信号x的基础上产生带回声的声音信号,可以表达为在原信号的基础上叠加其延时衰减的分量。
回波的产生和消除
得到y的自相关函数的图像:
y的 自 相 关 函 数 1600
1400
1200
1000
800
600
400
200
0
-200
-400
0
2
4
6
8
10
12
14
16
18
4
x 1Y0our company slogan
得到的估计结果如下:*
与设定值a=0.5, delay=0.1s相比较 ,吻合的较好。
1
1.5
2
2.5
3
3.5
4
4.5
frequency( hz)
4
x 1Y0our company slogan
angle
产生的回波信号与原声音信号在时域上的图像对比: *
原信号的波形 1
0.5
amplitude
0
-0.5
-1
0
1
2
3
4
5
6
7
8
time 回波信号的波形
4
x 10
1
0.5
amplitude
y,y[0] 1 a2 C (其中C为大于1的常数) y,y[N] a
解方程: a2 Ca 1 0
得: a C C 2 4 2
Q C 1 且a<1,
a C C2 4 2
Your company slogan
计算延时和衰减系数程序段
%--------------------------参数估计---------------------------------y_corr=xcorr(y);%回波信号序列的自相关 figure(3); plot(y_corr); title('y的自相关函数'); [h1,h1_location]=max(y_corr);%找峰值及其坐标 y_corr(h1_locationfs/21:h1_location+fs/21)=zeros(2*fs/21+1, 1); [h2,h2_location]=max(y_corr);%抹去零附近的值再找最值 N_delay=abs(h1_location-h2_location);%两个最大峰值的坐标 之差的绝对值即为时间延迟 time_delay=N_delay/fs %延迟的时间 c=h1/h2; %峰值比 a_estimated=(c-sqrt(c*c-4))/2 %估计衰减系数
回波的产生与消除
一、回波的产生与消除【设计原理】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 中估计反射物的距离。
《信号与系统》课程设计——回音的产生与消除
《信号与系统》课程设计——回音的产生与消除班级:光电一(6)班姓名:骆骏学号:2010051060023全部源程序如下:[x,fs,bits]=wavread('xiyangyang');figure(1);subplot(3,1,1);plot(x(1:65000));title('原始信号');y=fft(x);subplot(3,1,2);plot(abs(y));title('幅值');subplot(3,1,3);plot(angle(y));title('相位');sound(x,fs);pause(10)x1=x(1:65000);x2=x(1:65000);x1=[x1,zeros(1,10000)];x2=[zeros(1,10000),0.7*x2];y=x1+x2;figure(2);subplot(3,1,1);plot(y(1:65000));title('回声');y1=fft(y);subplot(3,1,2);plot(abs(y1));title('幅值');subplot(3,1,3);plot(angle(y1));title('相位');sound(y,fs);pause(10)b=1;a=zeros(1,10000);a(1)=1;a=[a,0.7];z1=filter(b,a,y);z2=fft(z1);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:65000));title('滤波信号');sound(z1,fs);程序简要分析:首先利用声卡或软件(本人用的是格式工厂)录下一段采样率为22050Hz的wav格式的音频文件,并将其复制到Matlab的work工作区,取名“xiyangyang”。
MATLAB语言编程实现回波信号的产生和消除
MATLAB语言编程实现回波信号的产生和消除回波信号是指由于信号在传输过程中遇到了障碍物或者边界发生反射而产生的一个或多个反射信号。
在信号处理领域中,我们经常需要对回波信号进行处理以消除或分离出原始信号。
1.回波信号的产生在MATLAB中,可以使用sin函数来生成一个原始信号,然后再添加回波信号。
以下是一个简单的示例代码:```matlabt = 0:1/fs:1; % 时间范围f1=300;%原始信号频率f2=600;%回波信号频率A1=1;%原始信号幅度A2=0.5;%回波信号幅度x = A1*sin(2*pi*f1*t) + A2*sin(2*pi*f2*t); % 生成回波信号plot(t, x); % 绘制信号波形xlabel('Time');ylabel('Amplitude');title('Echo Signal');```在这个示例中,我们首先设置了采样率(fs)和时间范围(t),然后定义了原始信号和回波信号的频率和幅度(f1, f2, A1, A2)。
然后使用sin函数生成了原始信号和回波信号,并相加得到了回波信号。
2.回波信号的消除回波信号的消除可以通过减小回波信号的幅度来实现。
在MATLAB中,可以使用滤波器来实现回波信号的消除。
以下是一个简单的示例代码:```matlabt = 0:1/fs:1; % 时间范围f1=300;%原始信号频率f2=600;%回波信号频率A1=1;%原始信号幅度A2=0.5;%回波信号幅度x = A1*sin(2*pi*f1*t) + A2*sin(2*pi*f2*t); % 生成回波信号[b, a] = butter(4, 2*f2/fs); % 设计低通滤波器系数y = filter(b, a, x); % 对回波信号进行滤波subplot(2,1,1);plot(t, x); % 绘制回波信号波形xlabel('Time');ylabel('Amplitude');title('Echo Signal');subplot(2,1,2);plot(t, y); % 绘制消除回波信号波形xlabel('Time');ylabel('Amplitude');title('Echo Cancellation');```在这个示例中,我们使用了MATLAB中的butter函数来设计了一个4阶低通滤波器,并把回波信号(x)作为输入进行滤波得到输出信号(y)。
回波的产生与消除
回波的产生与消除一、设计要求利用matlab实现回波的消除二、摘要由于在使用扩音器、语音软件等过程中,如果麦克风和音响距离过近,会产生重复的的回音影响声音信号的获取。
利用matlab为工具通过信号与系统的计算和分析方法,对含有回声的信号进行处理得到更清晰的声音信号。
可以利用matlab对回声信号进行良好的去除。
关键字(Key Words): matlab、自相关函数、回声、信号处理三、前言利用自相关系数的两个最大值的比值进行衰减系数和时间延迟的估计,利用估计得到的衰减系数和时间延迟通过逆变换由获得的掺杂回声的信号,进行计算得到没有回声的信号。
四、正文计算产生一次回声的情况,设原声信号为x(t),收到的带有回声的信号为y(t)。
对于有一次回声的信号,有:y(t)= x(t)+ a*x(t -τ)。
其中a为衰减系数;τ为时间延迟。
若能估计得到a和τ的数值,则h(t)=б(t)+ a * б(t - τ)再经过傅里叶变换和反变换得到X(jw)= Y(jw)/H(jw)进而通过y(t)得到x(t)。
下面是本文估计a和t0的方法:相关系数度量指的是两个不同事件彼此之间的相互影响程度;而自相关系数度量的是同一事件在两个不同时期之间的相关程度。
由于一般来讲,线性时不变信号经过时移之后,信号的期望和方差不会发生变化,所以两个信号的期望和方差相等,有:进一步有R(τ) = E[ ( X t * X t+τ)-μ2]/σ2例如对于周期信号x = sin(t),显然当τ=0时RX取到最大值,因为τ=0时没有进行平移两个函数完全一样自相关系数取最大值,而当τ=周期的整数倍时由于函数的周期性,RX也会取得同样的最大值。
在回声的去除中,可以假设y(t)为x(t)经过有限次衰减时移再相加的结果,因此如果我们假设信号产生了n次回声,只需要寻找R(τ)函数的n个极大值点,每个τ即对应一个回声间隔τ。
又因为标准差σ以及μ只与信号本身有关而与需要估计的衰减系数a和时移量τ以及无关。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《信号与系统》课程设计——回波的产生与消除
班级:
学生姓名:
学号:
摘要
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)+a x(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)○1保持N不变,改变a大小分析声音信号并播放:我们取N= , a从0.1到1:观察每个情况下声音信号的变化:回声信号的强度随着a的增大而变大
○2保持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 =
6000 12000 18000。