当前位置:文档之家› 信号与系统simulink声音的录制播放滤波

信号与系统simulink声音的录制播放滤波

综合训练②
实验内容:利用matlab中simulink 工具,从计算机声卡中录取音频文件。

在matlab中利用该音频文件,产生带回音的音频文件,要求回音产生的次数、间隔、大小可以调整,并通过simuli nk 从声卡播放混有回音的音频文件。

再设计去回音的系统,消除音频中的回音,在通过simuli nk从声卡播放消去回音
的音频文件。

实验步骤:
一、利用simulink 从声卡录取音频文件,并产生回声。

分析:录取音频文件,则需要利用一个接收信号的装置和一个储存信号的装置。

若要产生回声则需要一个信号的衰减和一个信号
如图所示,其中话筒型装置用来收集外部声音信号,通过一个放大器和一个延迟器,再与原信号共同叠加变成回声信号,其中右下角的装置用来收集声音信号。

喇叭装的装置用来输出声音信号。

(理论上也可以采用负反馈的方式来使原信号产生回声)
希反■的管桂IS暑・mFW^S i=a三
i疗
经过回声叠加以后产生的音频信号如图所示。

二、消除音频中的回声
分析:若要消除音频中的回声,则需要做一个滤波器,则先应该把其延迟和回声大小大概估计,然后将延迟的信号过滤掉。

[y,fs, nbits]=wavread('output');
figure(1)
r=xcorr(y);
plot(r);
grid on;
title('y的自相关函数');
[u,v]=max(r);
r1=r;
r1(v-100:v+100,1)=0;
[u1,v1]=max(r1);
N=v-v1;% 利用自相关函数求出回声延迟
a=[1,zeros(1,384),0.5];
b=1;
z=filter(1,a,y);
t=[0:441343];
figure(2),plot(t, z, 'r',t,y,'b'),grid on;
title('带回声的音频信号,回声衰减a=0.5');
xlabel('t');
sou nd(z,44100);
以上程序利用wavread读取声音信号,然后再对回声延迟和回声衰减进行估计。

此为过滤前的输出波形:
然后此为过滤后的输出波形:
M1W =;与回窗第障M旨的■需鱼忏可比
以下为滤波程序:
load lin eup.mat
sou nd(y,8192);
a=[1,zeros(1,999),0.5];
b=1;
z=filter(1,a,y);
');
然后通过与
t=li nspace(0,0.855,7000);
figure(1),plot(t,0.5*z,'r',t,0.5*y,'b'),grid
on;
title('带回声的信号与回声消除之后的信号进行对比
xlabel('t');
sou nd(z,8192);
三、通过simulink 从声卡播放消去回音的音频文件 分析:将上述已经过滤了的波形进行保存 .mat ,
simuli nk 中自带的喇叭相连,就可以播放出声音来。

Loui荣誉巨献。

相关主题