欢迎来到天天文库
浏览记录
ID:25744615
大小:73.68 KB
页数:3页
时间:2018-11-22
《信号与系统综合训练》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《信号与系统》综合训练1一.训练要求:(1)利用声音信号x产生带有回声的声音信号y。(2)可控制回声的大小、次数及间隔。(3)从带有回声的信号y中消除回声。二.实验步骤:1、声音信号x的产生:我们直接利用现成的声音文件(happy.wav),绘制其波形,并播放声音,声音信号x的产生程序如下:%-------------------------提取声音信号----------------------------[x,fs]=wavread('happy');%提取声音信号figure(1);plot(x(1:80000));xlabel('time');ylabel('amplitude');
2、title('原始声音信号');sound(x,fs);2、带回声的声音信号y产生:在已有声音信号x的基础上产生带回声的声音信号,可以表达为在原信号的基础上叠加其延时衰减的分量。可简化其模型为:y(n)=x(n)+ax(n-N)+a^2*x(n-N)+….+a^k*x(n-N)a为反射系数;N为延迟时间,k为回声的次数。利用此原理我们进行编程实现:(1)分别读入反射系数a、回声次数k、延迟时间N的大小。(2)取原声音的一个声道,对其做时间的延迟和衰减,将处理后的声音叠加在原声上,产生叠加信号y。(3)播放产生的回声信号y并绘制其波形。%----------------------------
3、-产生回声--------------------------------x=x(:,1);%提取单声道做处理delay=input('输入回声间隔时间:');%输入回声间隔时间:Attenuation=input('输入回声衰减系数:');%输入回声衰减系数:n=input('输入回声次数:');%输入回声次数:fori=0:1:nj=n-i;N1=i*fs*delay;%延迟量等于延迟时间乘以采样率z1=zeros(N1,1);z2=zeros(N2,1);y=Attenuation^i*[z1;x;z2];%产生回波信号endfigure(2);plot(y(1:80000));xla
4、bel('time');ylabel('amplitude');title('回声');sound(y,fs);3.从带有回声的声音信号中恢复原信号设计合适的滤波器,对带有回声的声音信号进行滤波,恢复原信号。由于回声产生原理为:y(n)=x(n)+ax(n-N)+a^2*x(n-2N)+….+a^k*x(n-kN)a为反射系数,N为延迟时间,k为回声的次数。由此设计出滤波器函数为:s(n)=y(n)-ay(n-N)-a^2*y(n-2N)-….-a^k*y(n-kN)此滤波函数,由于起的设计缺陷性,对衰减系数小及回声次数多的声波滤波效果较好,而当衰减系数大及回声次数少的时候滤波效果相当差。恢
5、复信号程序分析如下:%-----------------------------回声的消除------------------------------q=input('请按enter键确认消除回声以播放原音');N=n*fs*delay;z=zeros(N,1);y0=[y;z];fori=1:1:nj=n-i;N1=i*fs*delay;N2=j*fs*delay;z1=zeros(N1,1);z2=zeros(N2,1);s=y0-Attenuation^i*[z1;y;z2];endfigure(3);plot(s(1:80000));xlabel('frequency');ylabe
6、l('amplitude');title('滤波后得到的信号');sound(s,fs);
此文档下载收益归作者所有