实验八(7)

2019-04-09 11:06

结果分析:k的值为50;所得结果与4求得的一样 深入题

6.写出一个MATLAB函数来完成重叠相加的快卷积。这个函数应当以单位冲激响应h,数据向量x和分段长度作为输入,而且该函数应容许数据向量x是任意长,分段长度L是比滤波器长度大的任意整数。函数的第一行应读出 function y=oafilt(h,x,L)

利用这个函数做5,并用这个结果与利用conv直接卷积所得结果进行比较,从而证实这个函数运行无误。 答:

function y=oafilt(h,x,L); m=length(x); k=ceil(m/L); for j=1:k;

if (j-1)*k

§8.7通过逆滤波器的回声消除

目的

这个练习要研究从一段语音信号的记录中消除回声的问题。 相关知识

着手这个练习之前,需要装入语音文件lineuo.mat。如果这个文件已经在你的MATLABPATH的某个地方,就键入 >> load lineup.mat

将数据装进MATLAB中去。一旦数据装入MATLAB,语音波形就存入变量y中。因为这段语音是用采样率8192Hz录制的,所以键入 >> sound(y,8192)

就能听到语音,应该听到词组“line up”并有回声。由向量y表示的y[n]具有形式为

y[n]?x[n]?ax[n?N]

(2.4)

其中x[n]是未被污染的语音信号,它被延时N个样本且在幅度上减小a?1倍后又反过来加到x[n]上去。这对于像从一面墙那样的吸收反射回来的信号所形成的回声来说,是一个合理的模型。

本练习都用回声的眼是指N=1000,回声衰减a?0.5。 基本题

1. 本练习用线性滤波消除回声。因为回声可用(2.4)式的线性系统表示,试求并

画出(2.4)式回声系统的单位冲激响应,并将它在0?n?1000内的值存入向量he中。

代码:

2.考虑由下面差分方程描述的回声消除系统

z[n]?az[n?N]?y[n] (2.5) 式中y[n]是输入,z[n]式回声消除的输出。根据导出关联z[n]和x[n]的总差分方程证明,

(2.5)式确实是(2.4)式的逆。对于总差分方程,z[n]?答:是 中等题

3.(2.5)式的回声消除系统其单位冲激响应是无限长的。假设N=1000,a?0.5,利用filter,在输入为单位脉冲(由d=[1 zeros(1 4000)]给出)时计算系统的单位冲激响应,并利用这4001个单位冲激响应的样本近似值存入her中。 代码: x=zeros(1,1001); x(1)=1; x(1001)=0.5; a=x; b=1;

d=[1 zeros(1,4000)]; her=filter(b,a,d)

4. 利用z=filter(1,a,y)实现这个回声消除系统,其中a是由(2.5)式导出的系数向

量。利用plot画出输出,同时利用sound听听输出。应该不再听到回声。

代码: load lineup.mat x=zeros(1,1001); x(1)=1; x(1001)=0.5; a=x; z=filter(1,a,y) plot(z); sound(z);

x[n]是一个真实的解吗?

5. 计算将回声系统(2.4)式与回声消除系统(2.5)式级联后的总单位冲激响应,这

可将he和her卷积,并将卷积结果存入hoa中。画出总单位冲激响应。应注意,这个结果不是一个单位脉冲。已经计算出的her是he的逆,为什么结果会是这样呢?

代码: load lineup.mat x=zeros(1,1001); x(1)=1; x(1001)=0.5; a=x; z=filter(1,a,y) x=zeros(1,1001); x(1)=1; x(1001)=0.5; a=x; b=1;

d=[1 zeros(1,4000)]; her=filter(b,a,d) hoa=conv(he,her) 深入题

6.假设已知y[n],但是不知道回声时间N的值,或者不知道回声的幅度a,基于(2.4)式你能确定一种估计这些只得方法吗? 提示:考虑这个回声系统的输出y具有如下形式: 并考虑信号Ryy[n]?y[n]?x[n]?(?[n]?a?[n?N])

y[n]?y[?n],即y[n]的自相关函数,并常用于回声时间的估计。

用Rxx[n]写出Ryy[n]并画出Ryy[n]。在计算之前必须将y[n]截断,以便保持Ryy[n]在限制内。将会发现,当y截断后,自相关函数的许多性质仍然成立。另外,用改变N,alpha和NX试试下面的简单回声问题: >> NX=100;

>> x=randn(1,NX); >> N=50; >> alpha=0.9;

>> y=filter([1 zeros(1,N) alpha],1,x); >> Ryy=conv(y,fliplr(y)); >> plot([-NX+1:NX-1],Ryy)

当装入lineup.mat时,也同时装入另外的两个向量。向量y2含有词组“line up”,并有不同的回声时间N和不同的回声幅度a。向量y3含有两个回声的同样一个词组,每一个都具有各自的回声时间和幅度。你能对y2估计出N和a吗?对y3估计出N1,a1,N2和a2吗?


实验八(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大一无机化学复习题库

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: