《信号与系统》课程设计——回音的产生与消除

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《信号与系统》课程设计——回音的产生与消除班级:光电一(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”。然后利用wavread函数读入并将其一维数组的值赋给变量x,经size(x)测得其长度为66230(x取前65000位)。

利用图形窗口subplot函数将figure(1)分成3个绘图区,以便于分别用plot函数将原始音频的原始信号,幅值和相位在figure(1)上输出。相关函数有title,用于标注图形名称; fft用来计算离散傅里叶变换,此函数将序列x的快速离散傅里叶变换的结果存到向量y中,即其幅值;angle函数用于返回向量y的弧度,即一维复合元素的向量矩阵。最后利用sound命令把原始音频文件输出。

然后分别把x赋x1和x2,并分别在x1的最后和x2的最前加10000个0,且设x2的回音衰减系数为0.7。使原始信号产生一个10000的时延和0.7的衰减率并将其进行叠加赋给y,而输出的y就实现了x1和x2的叠加,即产生回音的过程,再分别将y的回声,幅值和相位用相似的处理方法输出在figure(2)上。

最后是回音的消除过程,此过程利用了一个关键的一维数字滤波滤波器函数filter,即建立一个一维差分方程,最后反求出原始信号x,即程序中所指的z1。“z1=filter(b,a,y)”的意思是使b*z1=a*y,而a,b,y和z1均可以是向量(实过程为“a(1)*z1(n)+a(2)*z1(n-1)+ a(3)*z1(n-2)+…..=b(1)*y(n)+b(2)*y(n-1)+b(3)*y(n-2)+…..“),最后输出的是z(n)。执行此语句后,z1(n)+0.7*z1(n-10001)=y(n),而显然得到的z1(n)就是叠加信号y 减去原来的回音x2后所得的原始信号,即x。

注:

1.本程序包含三个sound命令,应利用pause函数实现其先顺序的播放,否则播放时效果

不好甚至混乱。

2.本程序只设计了一个回音信号x2,也可以按相似方法多设计几个回音信号x3,x4等,

即实现其回音次数的控制。只是注意其维数必须相同,否则不能相加,在最后回音消除的时候再按相似方法去掉回音即可。

3.关于回音间隔,可通过改变其时延N来控制;至于回音大小,通过改变回音的回音衰减

系数即可。

4.在录取的音频不能太大,否则易造成程序执行时间过长,特别是filter函数的计算过程,

一旦过长就极易死机。

5.本程序参考了一些网上相关的回音的产生与消除的程序。

感想:

信号与系统是一门理论与实践紧密结合的课程,通过本次课程设计,增强了自己的实际动手能力,上网查资料以及自学能力。

相关文档
最新文档